/* Step24V — DIPA Events design system finale
   Obiettivo: rendere coerenti layout, card, bottoni, form e sezioni su tutte le pagine
   senza modificare logiche business PHP/SQL. */

:root {
    --dipa-bg: #f6f8fb;
    --dipa-surface: #ffffff;
    --dipa-surface-soft: #f8fafc;
    --dipa-border: #e2e8f0;
    --dipa-border-strong: #cbd5e1;
    --dipa-text: #0f172a;
    --dipa-muted: #64748b;
    --dipa-muted-2: #94a3b8;
    --dipa-primary: #4f46e5;
    --dipa-primary-2: #7c3aed;
    --dipa-primary-soft: #eef2ff;
    --dipa-success: #16a34a;
    --dipa-success-soft: #dcfce7;
    --dipa-danger: #dc2626;
    --dipa-danger-soft: #fee2e2;
    --dipa-warning: #d97706;
    --dipa-warning-soft: #fef3c7;
    --dipa-orange: #f97316;
    --dipa-orange-soft: #fff7ed;
    --dipa-radius-sm: 12px;
    --dipa-radius-md: 18px;
    --dipa-radius-lg: 24px;
    --dipa-radius-xl: 30px;
    --dipa-shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);
    --dipa-shadow-md: 0 10px 30px rgba(15, 23, 42, .07);
    --dipa-shadow-lg: 0 18px 50px rgba(15, 23, 42, .12);
    --bg-main: var(--dipa-bg);
    --text-main: var(--dipa-text);
    --text-muted: var(--dipa-muted);
    --accent-purple: var(--dipa-primary);
    --accent-purple-hover: #4338ca;
    --success: var(--dipa-success);
    --danger: var(--dipa-danger);
    --shadow-soft: var(--dipa-shadow-md);
}

/* Step25R — layout unico e controlli senza emoji per profili e storico fatture */
.dipa-design-system {
  --dipa-layout-max: 1240px;
  --dipa-page-gutter: 28px;
}

.dipa-design-system .app-header,
.dipa-page-profilo_cliente .profile-hero,
.dipa-page-profilo_cliente .client-workdesk,
.dipa-page-profilo_cliente .client-flow-panel,
.dipa-page-profilo_cliente .ux-profile-summary,
.dipa-page-profilo_cliente .profile-mode-card,
.dipa-page-profilo_cliente .area-switch,
.dipa-page-profilo_cliente .area-dashboard,
.dipa-page-profilo_cliente .premium-section,
.dipa-page-profilo_cliente .history-container,
.dipa-page-profilo_cliente .stats-panel,
.dipa-page-profilo_cliente .context-tabs,
.dipa-page-profilo_cliente .integrity-alert,
.dipa-page-profilo_condominio .profile-header,
.dipa-page-profilo_condominio .condominio-priority-container,
.dipa-page-profilo_condominio .condominio-flow-panel,
.dipa-page-profilo_condominio .ux-profile-summary,
.dipa-page-profilo_condominio .progressive-section,
.dipa-page-profilo_condominio .section-card.progressive-section,
.dipa-page-dettaglio_gruppo .dipa-event-detail-shell,
.dipa-page-dettaglio_gruppo .event-work-summary,
.dipa-page-dettaglio_gruppo .progressive-section {
  width: min(calc(100% - var(--dipa-page-gutter)), var(--dipa-layout-max)) !important;
  max-width: var(--dipa-layout-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

.dipa-page-profilo_cliente .profile-page,
.dipa-page-profilo_condominio .container,
.dipa-page-dettaglio_gruppo .dettaglio-gruppo-container {
  max-width: none !important;
  width: 100% !important;
}

.dipa-page-profilo_cliente .profile-hero {
  background: #ffffff !important;
  color: var(--dipa-ink) !important;
  border: 1px solid var(--dipa-line) !important;
  border-radius: 16px !important;
  box-shadow: 0 14px 36px rgba(16,24,39,.06) !important;
  overflow: hidden !important;
}

.dipa-page-profilo_cliente .profile-hero *,
.dipa-page-profilo_cliente .profile-hero h1,
.dipa-page-profilo_cliente .profile-hero p {
  color: var(--dipa-ink) !important;
  text-shadow: none !important;
}

.dipa-page-profilo_cliente .profile-hero p {
  color: var(--dipa-ink-soft) !important;
}

.dipa-page-profilo_cliente .profile-hero-inner {
  padding: 28px 28px 22px !important;
  text-align: left !important;
}

.dipa-page-profilo_cliente .profile-hero-inner > div {
  display: grid !important;
  grid-template-columns: 72px minmax(0, 1fr) !important;
  grid-template-areas:
    "avatar title"
    "avatar meta"
    "actions actions" !important;
  gap: 0 18px !important;
  align-items: center !important;
}

.dipa-page-profilo_cliente .profile-avatar {
  grid-area: avatar !important;
  width: 58px !important;
  height: 58px !important;
  margin: 0 !important;
  border-radius: 14px !important;
  background: #eef3f8 !important;
  color: #334155 !important;
  border: 1px solid #d8e2ed !important;
  font-size: 15px !important;
  font-weight: 950 !important;
}

.dipa-page-profilo_cliente .profile-hero h1 {
  grid-area: title !important;
  margin: 0 !important;
  font-size: clamp(30px, 3vw, 42px) !important;
  line-height: 1.06 !important;
}

.dipa-page-profilo_cliente .profile-hero p {
  grid-area: meta !important;
  margin: 4px 0 0 !important;
  font-size: 15px !important;
  font-weight: 800 !important;
}

.dipa-page-profilo_cliente .hero-actions {
  grid-area: actions !important;
  margin-top: 22px !important;
  padding-top: 18px !important;
  border-top: 1px solid #e8edf4 !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  gap: 10px !important;
}

.dipa-page-profilo_cliente .profile-hero .hero-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 118px !important;
  max-width: none !important;
  min-height: 42px !important;
  padding: 0 16px !important;
  background: #f3f6fa !important;
  color: var(--dipa-ink) !important;
  border: 1px solid var(--dipa-line) !important;
  border-radius: 12px !important;
  font-size: 14px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-indent: 0 !important;
}

.dipa-page-profilo_cliente .profile-hero .hero-btn[href^="tel"],
.dipa-page-profilo_cliente .profile-hero .hero-btn[href*="open=festa"],
.dipa-page-profilo_cliente .profile-hero .hero-btn[onclick*="apriCorsoClienteSheet"] {
  background: #111827 !important;
  color: #ffffff !important;
  border-color: #111827 !important;
}

.dipa-page-profilo_cliente .profile-hero .hero-btn.danger {
  background: #fff5f5 !important;
  color: #b91c1c !important;
  border-color: #fecaca !important;
}

.dipa-page-profilo_cliente .premium-section-head h2 {
  display: block !important;
  color: var(--dipa-ink) !important;
}

.dipa-page-profilo_condominio .filter-pills {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
}

.dipa-page-profilo_condominio .filter-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  min-height: 38px !important;
  padding: 0 14px !important;
  background: #ffffff !important;
  color: var(--dipa-ink-soft) !important;
  border: 1px solid var(--dipa-line) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}

.dipa-page-profilo_condominio .filter-pill.active {
  background: #111827 !important;
  color: #ffffff !important;
  border-color: #111827 !important;
}

.status-dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  display: inline-block;
  flex: 0 0 auto;
  background: #94a3b8;
}

.status-dot.paid { background: #16a34a; }
.status-dot.due { background: #dc2626; }
.status-dot.todo { background: #94a3b8; }

.dipa-page-profilo_condominio .history-period-bar {
  margin: 12px 0 12px !important;
  padding: 14px !important;
  display: grid !important;
  grid-template-columns: 1.1fr .7fr auto auto !important;
  gap: 10px !important;
  align-items: end !important;
  background: #f7f9fc !important;
  border: 1px solid var(--dipa-line) !important;
  border-radius: 16px !important;
}

.dipa-page-profilo_condominio .history-period-bar label {
  grid-column: 1 / -1;
  margin: 0 !important;
  color: #69758a !important;
}

.dipa-page-profilo_condominio .history-period-bar select,
.dipa-page-profilo_condominio .history-period-bar input,
.dipa-page-profilo_condominio .assembly-search-row .form-control {
  height: 44px !important;
  min-height: 44px !important;
}

.dipa-page-profilo_condominio .assembly-search-row {
  display: grid !important;
  grid-template-columns: minmax(240px, 1fr) minmax(220px, .65fr) auto !important;
  gap: 10px !important;
  margin: 0 0 14px !important;
}

.dipa-page-profilo_condominio .assembly-search-row .form-control {
  max-width: none !important;
}

.dipa-page-profilo_condominio .invoice-like-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(180px, auto) !important;
  align-items: stretch !important;
  padding: 16px 18px !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

.dipa-page-profilo_condominio .invoice-like-main h3 {
  font-size: 17px !important;
}

.dipa-page-profilo_condominio .invoice-like-status {
  align-items: center !important;
}

.dipa-page-profilo_condominio .invoice-badge {
  min-height: 26px !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
}

.dipa-page-profilo_condominio .invoice-like-side {
  justify-content: center !important;
  min-width: 180px !important;
}

@media (max-width: 980px) {
  .dipa-page-profilo_condominio .history-period-bar,
  .dipa-page-profilo_condominio .assembly-search-row,
  .dipa-page-profilo_condominio .invoice-like-row {
    grid-template-columns: 1fr !important;
  }

  .dipa-page-profilo_cliente .profile-hero-inner > div {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "avatar"
      "title"
      "meta"
      "actions" !important;
  }

  .dipa-page-profilo_cliente .profile-avatar {
    margin-bottom: 12px !important;
  }

  .dipa-page-profilo_cliente .hero-actions {
    align-items: stretch !important;
  }

  .dipa-page-profilo_cliente .profile-hero .hero-btn {
    flex: 1 1 170px !important;
  }
}

@media (max-width: 640px) {
  .dipa-design-system {
    --dipa-page-gutter: 20px;
  }

  .dipa-page-profilo_cliente .profile-hero-inner {
    padding: 20px !important;
  }

  .dipa-page-profilo_cliente .profile-hero .hero-btn {
    width: 100% !important;
    flex-basis: 100% !important;
  }
}

* { box-sizing: border-box; }
html { background: var(--dipa-bg); }
body {
    background:
        radial-gradient(circle at 18% -10%, rgba(79,70,229,.08), transparent 30%),
        radial-gradient(circle at 100% 0%, rgba(249,115,22,.08), transparent 28%),
        var(--dipa-bg);
    color: var(--dipa-text);
    font-feature-settings: "cv02", "cv03", "cv04", "cv11";
}
a { color: inherit; }
button, input, select, textarea { font: inherit; }

/* Header comune */
.app-header {
    min-height: 72px;
    padding: 14px clamp(14px, 3vw, 26px);
    background: rgba(255,255,255,.88);
    border-bottom: 1px solid rgba(226,232,240,.9);
    box-shadow: 0 1px 0 rgba(15,23,42,.03);
}
.app-header h1,
.app-header-content h1 {
    font-size: clamp(18px, 2vw, 22px);
    line-height: 1.1;
    letter-spacing: -.025em;
    font-weight: 950;
}
.app-header p,
.app-header-content p {
    color: var(--dipa-muted);
    font-size: 13px;
    font-weight: 750;
}
.apple-back-btn,
.btn-back {
    border-radius: 16px;
    width: 42px;
    height: 42px;
    background: var(--dipa-surface-soft);
    color: var(--dipa-primary);
    border: 1px solid var(--dipa-border);
    box-shadow: var(--dipa-shadow-sm);
}
.apple-back-btn:hover,
.btn-back:hover { background: var(--dipa-primary-soft); border-color: #c7d2fe; }

/* Layout base */
.container,
.profile-page,
.report-page,
.crm-page,
.dashboard-page { max-width: 1180px; margin: 0 auto; }
.container { padding: clamp(14px, 2.5vw, 24px); }
.card,
.section-card,
.premium-section,
.history-container,
.stats-toolbar,
.stat-card,
.profile-mode-card,
.course-invoice-box,
.finance-subcard,
.area-dashboard-card,
.invoice-card,
.inv-card,
.client-card,
.settings-card,
.dashboard-card {
    background: rgba(255,255,255,.96) !important;
    border: 1px solid var(--dipa-border) !important;
    border-radius: var(--dipa-radius-lg) !important;
    box-shadow: var(--dipa-shadow-md) !important;
}
.card,
.section-card { padding: clamp(16px, 2.2vw, 22px); }
.premium-section,
.history-container { overflow: hidden; }
.premium-section-head,
.history-head,
.finance-block-title {
    background: linear-gradient(180deg, #ffffff, #f8fafc) !important;
    border-bottom: 1px solid var(--dipa-border) !important;
}
.premium-section-head h2,
.history-head h2,
.finance-block-title h2,
.stats-toolbar h2 {
    color: var(--dipa-text) !important;
    letter-spacing: -.025em;
}
.premium-section-head p,
.history-head p,
.finance-block-title p { color: var(--dipa-muted) !important; }

/* Form coerenti */
.form-control,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="date"],
input[type="time"],
select,
textarea {
    border: 1px solid var(--dipa-border-strong) !important;
    border-radius: 14px !important;
    background: #fff !important;
    color: var(--dipa-text) !important;
    min-height: 42px;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.form-control:focus,
input:focus,
select:focus,
textarea:focus {
    border-color: var(--dipa-primary) !important;
    box-shadow: 0 0 0 4px rgba(79,70,229,.11) !important;
}
label,
.input-box label,
.form-section-title {
    color: var(--dipa-muted) !important;
    font-weight: 900 !important;
    letter-spacing: .03em;
}

/* Bottoni / azioni */
button,
.btn-save,
.pill-btn,
.hero-btn,
.invoice-action-btn,
.course-open,
.btn-small,
.desktop-btn-add,
.area-card-actions a,
.context-tabs a,
.context-tabs button,
.course-period-filter a,
.btn-paid-all,
.btn-unpaid-all {
    transition: transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease, opacity .12s ease;
}
button:hover,
a.hero-btn:hover,
.invoice-action-btn:hover,
.course-open:hover,
.area-card-actions a:hover,
.context-tabs a:hover,
.context-tabs button:hover,
.btn-save:hover,
.desktop-btn-add:hover { transform: translateY(-1px); }
button:active,
a:active { transform: translateY(0); }
.btn-save,
.desktop-btn-add,
.invoice-action-primary,
.area-card-actions a.primary,
.context-tabs a.active,
.context-tabs button.active {
    background: linear-gradient(135deg, var(--dipa-primary), var(--dipa-primary-2)) !important;
    color: #fff !important;
    border-color: transparent !important;
    box-shadow: 0 10px 24px rgba(79,70,229,.22) !important;
}
.pill-btn,
.context-tabs a,
.context-tabs button,
.course-period-filter a,
.hero-btn,
.invoice-action-btn,
.course-open {
    border-radius: 999px !important;
    font-weight: 950 !important;
}
.pill-btn.active {
    background: var(--dipa-text) !important;
    border-color: var(--dipa-text) !important;
    color: #fff !important;
}

/* Badge / stati */
.status-pill,
.course-badge,
.badge-type,
.invoice-status,
.inv-status {
    border-radius: 999px !important;
    font-size: 10px !important;
    font-weight: 950 !important;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.status-pill.ok,
.inv-status.ok { background: var(--dipa-success-soft) !important; color: #166534 !important; }
.status-pill.due,
.inv-status.due { background: var(--dipa-danger-soft) !important; color: #991b1b !important; }
.status-pill.todo,
.inv-status.todo { background: var(--dipa-warning-soft) !important; color: #854d0e !important; }

/* Profilo cliente */
.profile-page { padding: 16px 0 42px !important; }
.profile-hero {
    max-width: 1180px;
    margin: 0 14px 18px !important;
    border-radius: var(--dipa-radius-xl) !important;
    background:
        radial-gradient(circle at 10% 0%, rgba(255,255,255,.24), transparent 36%),
        linear-gradient(135deg, #0f172a 0%, #312e81 52%, #065f46 100%) !important;
    box-shadow: var(--dipa-shadow-lg) !important;
}
.profile-hero-inner { padding: clamp(22px, 4vw, 38px) !important; }
.profile-avatar { border-radius: 22px !important; background: rgba(255,255,255,.14) !important; }
.profile-hero h1 { letter-spacing: -.045em !important; }
.hero-actions { gap: 8px !important; }
.hero-btn {
    background: rgba(255,255,255,.14) !important;
    border-color: rgba(255,255,255,.24) !important;
    color: #fff !important;
}
.hero-btn:hover { background: rgba(255,255,255,.22) !important; }
.profile-mode-card,
.area-switch,
.context-tabs,
.premium-section,
.history-container,
.stats-panel,
.area-dashboard { margin-left: 14px !important; margin-right: 14px !important; }
.profile-mode-card { padding: 16px !important; }
.area-switch,
.context-tabs {
    border-radius: var(--dipa-radius-lg) !important;
    border: 1px solid var(--dipa-border) !important;
    background: rgba(255,255,255,.96) !important;
    box-shadow: var(--dipa-shadow-md) !important;
}
.area-switch a,
.context-tabs a,
.context-tabs button { background: var(--dipa-surface-soft) !important; color: #334155 !important; border-color: var(--dipa-border) !important; }
.area-switch a.active,
.context-tabs a.active { background: var(--dipa-primary) !important; color: #fff !important; border-color: var(--dipa-primary) !important; }
.area-dashboard { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.area-dashboard-card { padding: 18px !important; overflow: hidden; }
.area-dashboard-card.course { border-left: 5px solid var(--dipa-primary) !important; }
.area-dashboard-card.party { border-left: 5px solid var(--dipa-orange) !important; }
.area-mini,
.money-box,
.stat-card,
.month-card,
.course-row,
.history-row,
.money-mini {
    background: var(--dipa-surface-soft) !important;
    border: 1px solid var(--dipa-border) !important;
    border-radius: var(--dipa-radius-md) !important;
}
.money-box strong,
.stat-card strong,
.area-mini strong { letter-spacing: -.03em; }
.money-box small { display:block; margin-top:6px; color: var(--dipa-muted); font-size: 11px; font-weight: 800; }
.course-row,
.history-row { background: #fff !important; }
.course-row.selected,
.history-row.selected,
.month-card.active {
    border-color: var(--dipa-primary) !important;
    box-shadow: 0 0 0 4px rgba(79,70,229,.10) !important;
}
.course-open,
.course-row-side a {
    background: var(--dipa-primary-soft) !important;
    color: #3730a3 !important;
    border: 1px solid #c7d2fe !important;
}

/* Gestione corso cliente */
.gcc-page,
.gestione-corso-page { max-width: 1180px; margin: 0 auto; padding-bottom: 42px; }
.gcc-hero,
.course-hero,
.gc-hero {
    border-radius: var(--dipa-radius-xl) !important;
    box-shadow: var(--dipa-shadow-lg) !important;
    background:
        radial-gradient(circle at 12% 0%, rgba(255,255,255,.20), transparent 34%),
        linear-gradient(135deg, #1e1b4b, #4f46e5 55%, #0f766e) !important;
}
.gcc-card,
.gc-card,
.course-card,
.date-card,
.month-card,
.log-card,
.sheet-card {
    background: #fff !important;
    border: 1px solid var(--dipa-border) !important;
    border-radius: var(--dipa-radius-lg) !important;
    box-shadow: var(--dipa-shadow-md) !important;
}
.gcc-tabs,
.course-tabs,
.gc-tabs {
    background: rgba(255,255,255,.96) !important;
    border: 1px solid var(--dipa-border) !important;
    border-radius: var(--dipa-radius-lg) !important;
    box-shadow: var(--dipa-shadow-md) !important;
}
.gcc-tabs a,
.course-tabs a,
.gc-tabs a { border-radius: 999px !important; font-weight: 950 !important; }
.gcc-tabs a.active,
.course-tabs a.active,
.gc-tabs a.active { background: var(--dipa-primary) !important; color: #fff !important; }

/* Tabelle e liste */
table { border-collapse: separate; border-spacing: 0; width: 100%; }
th { color: var(--dipa-muted); font-size: 11px; text-transform: uppercase; letter-spacing: .04em; font-weight: 950; }
td, th { border-bottom: 1px solid var(--dipa-border); }
tr:last-child td { border-bottom: 0; }

/* Modali / bottom sheet */
.sheet-overlay { background: rgba(15,23,42,.58) !important; backdrop-filter: blur(8px) !important; }
.bottom-sheet {
    border-radius: 30px 30px 0 0 !important;
    border: 1px solid rgba(255,255,255,.8);
    box-shadow: 0 -20px 60px rgba(15,23,42,.22) !important;
}
.sheet-header h2 { letter-spacing: -.025em; font-weight: 950; }
.btn-close-sheet { background: var(--dipa-surface-soft) !important; border: 1px solid var(--dipa-border) !important; }

/* Mobile */
@media (max-width: 820px) {
    body { padding-bottom: 92px; }
    .app-header { min-height: 66px; }
    .profile-hero,
    .premium-section,
    .history-container,
    .stats-panel,
    .profile-mode-card,
    .area-switch,
    .context-tabs,
    .area-dashboard { margin-left: 10px !important; margin-right: 10px !important; }
    .area-dashboard,
    .money-strip,
    .finance-strip,
    .annual-summary,
    .stats-grid,
    .month-grid,
    .filter-grid,
    .course-period-filter { grid-template-columns: 1fr !important; }
    .course-row,
    .history-row { grid-template-columns: 1fr !important; }
    .course-row-side,
    .history-money { text-align: left !important; justify-content: flex-start !important; min-width: 0 !important; }
    .payment-actions { grid-template-columns: 1fr !important; }
    .premium-section-head,
    .history-head { flex-direction: column; align-items: stretch !important; }
    .status-pill { align-self: flex-start; }
}

@media (min-width: 1180px) {
    .profile-hero,
    .profile-mode-card,
    .area-switch,
    .context-tabs,
    .premium-section,
    .history-container,
    .stats-panel,
    .area-dashboard { margin-left: auto !important; margin-right: auto !important; }
}

/* Step24W — pulizia UI: contrasto, frecce e incassi evidenti */
:root {
    --dipa-readable: #0f172a;
    --dipa-readable-muted: #475569;
}

/* Contrasto forte: evita testo grigio troppo vicino allo sfondo */
body,
.card,
.section-card,
.premium-section,
.history-container,
.finance-subcard,
.course-invoice-box,
.area-dashboard-card,
.invoice-card,
.inv-card,
.course-row,
.history-row,
.month-card,
.stat-card {
    color: var(--dipa-readable) !important;
}

p,
small,
label,
.empty-state,
.profile-mode-card p,
.area-dashboard-card p,
.course-row p,
.history-meta,
.finance-subcard small,
.money-box small,
.course-period-filter label,
.filter-grid label,
.stat-card span,
.area-mini span,
.money-box span {
    color: var(--dipa-readable-muted) !important;
}

.profile-hero,
.profile-hero *:not(.hero-btn),
.gcc-hero,
.gcc-hero *:not(a):not(button),
.course-hero,
.course-hero *:not(a):not(button),
.gc-hero,
.gc-hero *:not(a):not(button),
.stat-card.full,
.stat-card.full * {
    color: #fff !important;
}
.profile-hero p,
.gcc-hero p,
.course-hero p,
.gc-hero p {
    color: rgba(255,255,255,.92) !important;
}

/* Frecce/back: una sola lingua visiva, niente emoji sparse */
.apple-back-btn,
.btn-back {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 auto !important;
    font-size: 18px !important;
    line-height: 1 !important;
    text-decoration: none !important;
}
.sheet-header .btn-back {
    width: 38px !important;
    height: 38px !important;
    border-radius: 14px !important;
    background: #f8fafc !important;
    color: #334155 !important;
    border: 1px solid #cbd5e1 !important;
    box-shadow: none !important;
    font-size: 18px !important;
    margin-right: 4px;
}
.sheet-header .btn-back:hover { background:#eef2ff !important; color:#3730a3 !important; }
.sheet-header h2 { color:#0f172a !important; }

/* Profilo cliente: subito chiaro cosa resta da incassare */
.finance-strip-focus {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    align-items: stretch;
}
.money-box {
    min-height: 96px;
}
.money-box-due {
    background: linear-gradient(180deg, #fff7ed, #fff) !important;
    border: 2px solid #fed7aa !important;
    box-shadow: 0 16px 36px rgba(234,88,12,.12) !important;
}
.money-box-due span { color:#9a3412 !important; }
.money-box-due strong { color:#9a3412 !important; font-size: clamp(24px, 2.4vw, 32px) !important; }

.finance-action-strip {
    margin: 0 16px 16px;
    padding: 14px;
    border: 1px solid #fed7aa;
    border-radius: 22px;
    background: linear-gradient(135deg, #fff7ed, #ffffff 58%);
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 12px;
    align-items: center;
}
.finance-action-main span {
    display:block;
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #9a3412 !important;
    margin-bottom: 4px;
}
.finance-action-main strong {
    display:block;
    font-size: clamp(18px, 2vw, 24px);
    font-weight: 950;
    letter-spacing: -.035em;
    color:#0f172a !important;
}
.finance-action-main small {
    display:block;
    margin-top: 5px;
    font-size: 12px;
    font-weight: 850;
    color:#475569 !important;
}
.finance-action-buttons {
    display:flex;
    gap:8px;
    flex-wrap:wrap;
    justify-content:flex-end;
}
.finance-action-buttons button,
.finance-action-buttons a,
.finance-link-btn {
    border-radius: 999px !important;
    padding: 11px 14px !important;
    font-size: 13px !important;
    font-weight: 950 !important;
    text-decoration: none !important;
    border: 1px solid #cbd5e1 !important;
    background: #fff !important;
    color:#334155 !important;
    cursor:pointer;
}
.finance-action-buttons .btn-paid-primary {
    background: linear-gradient(135deg, #16a34a, #15803d) !important;
    color: #fff !important;
    border-color: transparent !important;
    box-shadow: 0 10px 24px rgba(22,163,74,.22) !important;
}
.finance-action-buttons .btn-unpaid-all {
    background: #fff1f2 !important;
    color:#991b1b !important;
    border-color:#fecaca !important;
}

/* Prima vista meno caotica: blocchi secondari più leggeri */
.finance-subgrid {
    padding-top: 0 !important;
}
.finance-subcard {
    box-shadow: none !important;
    background: #f8fafc !important;
}
.course-invoice-box {
    margin: 0 16px 18px !important;
}
.finance-block-title,
.course-month-header {
    padding: 16px !important;
}
.course-month-header .course-tools,
.profile-mode-actions,
.area-card-actions {
    gap: 8px !important;
}

@media (max-width: 900px) {
    .finance-strip-focus,
    .finance-action-strip {
        grid-template-columns: 1fr !important;
    }
    .finance-action-buttons {
        justify-content: stretch;
    }
    .finance-action-buttons button,
    .finance-action-buttons a {
        width: 100%;
        text-align: center;
    }
}

/* Step24X — fix contrasto e leggibilità dopo test reale */
.stat-card.full {
    background: linear-gradient(135deg, var(--dipa-primary), var(--dipa-primary-2)) !important;
    color: #ffffff !important;
    border-color: transparent !important;
}
.stat-card.full .stat-label,
.stat-card.full .stat-value,
.stat-card.full h2,
.stat-card.full span {
    color: #ffffff !important;
    opacity: 1 !important;
}
.area-switch a.active,
.profile-mode-card .active,
.context-tabs a.active,
.context-tabs button.active {
    background: linear-gradient(135deg, var(--dipa-primary), var(--dipa-primary-2)) !important;
    color: #ffffff !important;
    border-color: transparent !important;
}
.area-switch a.active span,
.area-switch a.active strong,
.area-switch a.active small,
.profile-mode-card .active span,
.profile-mode-card .active strong,
.profile-mode-card .active small,
.context-tabs a.active span,
.context-tabs a.active strong,
.context-tabs a.active small {
    color: #ffffff !important;
    opacity: 1 !important;
}
.finance-action-strip,
.payment-actions,
.course-invoice-box,
.finance-invoice-box {
    color: var(--dipa-text) !important;
}
.finance-action-strip small,
.finance-action-main small,
.course-invoice-box small,
.finance-invoice-box small {
    color: var(--dipa-muted) !important;
    opacity: 1 !important;
}
.money-box strong,
.finance-subcard strong,
.area-mini strong {
    color: var(--dipa-text) !important;
}
.money-box.good strong { color: #065f46 !important; }
.money-box.bad strong,
.money-box-due strong { color: #9a3412 !important; }
.btn-paid-primary {
    background: #15803d !important;
    color: #ffffff !important;
    border-color: #15803d !important;
}
.btn-unpaid-all {
    background: #fff1f2 !important;
    color: #991b1b !important;
    border: 1px solid #fecdd3 !important;
}


/* Step24AA — Design unificato amministratori e condomini */
.crm-condomini-page {
    background:
        radial-gradient(circle at top left, rgba(59,130,246,.08), transparent 32rem),
        radial-gradient(circle at top right, rgba(16,185,129,.08), transparent 28rem),
        #f6f8fb;
    color: var(--text-main, #0f172a);
}
.crm-condomini-page .app-header {
    backdrop-filter: blur(16px);
    border-bottom: 1px solid rgba(226,232,240,.88);
}
.crm-condomini-page .profile-header {
    max-width: 1120px;
    margin: 18px auto 16px !important;
    border-radius: 28px !important;
    padding: 30px 22px !important;
    text-align: left !important;
    box-shadow: 0 22px 60px rgba(15,23,42,.16) !important;
    position: relative;
    overflow: hidden;
}
.crm-condomini-page .profile-header::after {
    content: "";
    position: absolute;
    inset: auto -60px -80px auto;
    width: 260px;
    height: 260px;
    background: rgba(255,255,255,.16);
    border-radius: 999px;
}
.crm-condomini-page .profile-header h1,
.crm-condomini-page .profile-header p,
.crm-condomini-page .profile-header a,
.crm-condomini-page .profile-header button { position: relative; z-index: 1; }
.crm-condomini-page .profile-header h1 { font-size: clamp(24px, 4vw, 36px) !important; letter-spacing: -.04em; }
.crm-condomini-page .profile-header p { color: rgba(255,255,255,.92) !important; }
.crm-condomini-page .container { max-width: 1120px; }
.crm-context-container { padding-bottom: 0 !important; }
.crm-context-card {
    background: rgba(255,255,255,.92);
    border: 1px solid rgba(226,232,240,.95);
    border-radius: 22px;
    padding: 18px;
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    box-shadow: 0 14px 36px rgba(15,23,42,.07);
}
.crm-context-card strong { display:block; font-size: 18px; line-height: 1.15; color:#0f172a; letter-spacing:-.02em; }
.crm-context-card p { margin:6px 0 0; font-size: 13px; line-height:1.45; color:#475569; max-width: 720px; }
.crm-kicker { display:block; margin-bottom: 6px; font-size: 11px; font-weight: 900; letter-spacing:.08em; text-transform: uppercase; color:#2563eb; }
.crm-context-actions { display:flex; flex-wrap: wrap; gap: 8px; justify-content:flex-end; }
.crm-action-primary,
.crm-action-secondary {
    border: 0;
    border-radius: 13px;
    padding: 11px 14px;
    font-size: 13px;
    font-weight: 900;
    cursor: pointer;
    text-decoration:none;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    white-space: nowrap;
}
.crm-action-primary { background: #2563eb; color: #fff; box-shadow: 0 10px 20px rgba(37,99,235,.2); }
.crm-action-secondary { background: #f1f5f9; color: #0f172a; border:1px solid #e2e8f0; }
.crm-condomini-page .stats-grid-4 { gap: 12px !important; }
.crm-condomini-page .stat-card {
    border-radius: 20px !important;
    padding: 18px 14px !important;
    box-shadow: 0 12px 30px rgba(15,23,42,.06) !important;
    min-height: 108px;
}
.crm-condomini-page .stat-card span { color:#334155 !important; letter-spacing:.04em; }
.crm-condomini-page .stat-card strong { font-size: 20px !important; letter-spacing:-.03em; }
.crm-condomini-page .stat-card small { color:#475569 !important; }
.crm-condomini-page .section-card {
    border-radius: 24px !important;
    border: 1px solid rgba(226,232,240,.95) !important;
    box-shadow: 0 16px 38px rgba(15,23,42,.07) !important;
    overflow: hidden;
}
.crm-condomini-page .section-card h2 {
    letter-spacing: .02em;
}
.crm-condomini-page .directory-list,
.crm-condomini-page .condo-list { gap: 10px !important; max-height: none !important; }
.crm-condomini-page .directory-item,
.crm-condomini-page .condo-card,
.crm-condomini-page .assemblea-row {
    background: #fff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 18px !important;
    padding: 14px !important;
    box-shadow: 0 8px 22px rgba(15,23,42,.045) !important;
}
.crm-condomini-page .directory-item:hover,
.crm-condomini-page .condo-card:hover,
.crm-condomini-page .assemblea-row:hover {
    transform: translateY(-1px);
    border-color: #bfdbfe !important;
    box-shadow: 0 16px 34px rgba(15,23,42,.075) !important;
}
.crm-condomini-page .assemblea-row { margin-bottom: 10px; border-bottom: 1px solid #e2e8f0 !important; }
.crm-condomini-page .filter-pills { padding: 4px 0 12px !important; margin-bottom: 10px !important; }
.crm-condomini-page .filter-pill {
    border-radius: 999px !important;
    padding: 8px 12px !important;
    background: #fff !important;
    color: #334155 !important;
    border: 1px solid #cbd5e1 !important;
}
.crm-condomini-page .filter-pill.active {
    background: #0f172a !important;
    color: #fff !important;
    border-color: #0f172a !important;
}
.crm-condomini-page .crm-tabs {
    background: #eaf0f7 !important;
    border-radius: 18px !important;
    padding: 5px !important;
    margin-bottom: 14px !important;
}
.crm-condomini-page .crm-tabs button {
    border-radius: 14px !important;
    color: #475569 !important;
}
.crm-condomini-page .crm-tabs button.active {
    background: #0f172a !important;
    color: #fff !important;
}
.crm-condomini-page .form-control,
.crm-condomini-page input,
.crm-condomini-page select {
    border-radius: 14px !important;
    border-color: #cbd5e1 !important;
    color: #0f172a !important;
    background: #fff !important;
}
.crm-condomini-page .btn-contact {
    border-radius: 13px !important;
    background: rgba(255,255,255,.18) !important;
    color:#fff !important;
    border: 1px solid rgba(255,255,255,.35) !important;
}
.crm-condomini-page .btn-small,
.crm-condomini-page .btn-save {
    border-radius: 12px !important;
    font-weight: 900 !important;
}
.crm-condomini-page .bottom-sheet {
    border-radius: 28px 28px 0 0 !important;
}
.crm-directory-intro { margin-bottom: 16px; }
@media (max-width: 760px) {
    .crm-condomini-page .profile-header { margin: 12px 12px 14px !important; text-align:center !important; }
    .crm-context-card { flex-direction: column; align-items: stretch; }
    .crm-context-actions { justify-content: stretch; }
    .crm-action-primary,
    .crm-action-secondary { flex: 1; }
    .crm-condomini-page .stats-grid-4 { grid-template-columns: 1fr 1fr !important; }
    .crm-condomini-page .condo-card,
    .crm-condomini-page .directory-item { align-items:flex-start !important; gap: 10px; }
}

/* Step24AC — Design system strutturale DIPA Events
   Compatibility layer: unifica pagine senza cambiare logiche PHP/SQL. */
:root {
    --dipa-page-max: 1180px;
    --dipa-page-pad: clamp(14px, 2.5vw, 24px);
    --dipa-gap: 14px;
    --dipa-gap-lg: 18px;
    --dipa-focus: 0 0 0 4px rgba(79,70,229,.12);
}
body.dipa-design-system {
    background:
        radial-gradient(circle at 12% -8%, rgba(79,70,229,.10), transparent 30%),
        radial-gradient(circle at 94% -4%, rgba(249,115,22,.08), transparent 24%),
        var(--dipa-bg) !important;
}
.dipa-page,
.dipa-page-shell,
.gcc-wrap,
.dettaglio-gruppo-container {
    max-width: var(--dipa-page-max);
    margin: 0 auto;
    padding: var(--dipa-page-pad);
}
.dipa-page.compact,
.dipa-page-shell.compact { padding-top: 14px; }
.app-header {
    gap: 12px;
}
.app-header-content {
    min-width: 0;
}
.app-header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}
.dipa-page-title,
.fatture-page-title,
.crm-page-title {
    background: rgba(255,255,255,.96);
    border: 1px solid var(--dipa-border);
    border-radius: var(--dipa-radius-lg);
    box-shadow: var(--dipa-shadow-md);
    padding: clamp(16px, 2.4vw, 22px);
    margin: 0 0 16px;
}
.dipa-kicker,
.fatture-page-title [style*="uppercase"],
.glass-panel [style*="uppercase"] {
    display: block;
    font-size: 11px !important;
    font-weight: 950 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    color: var(--dipa-primary) !important;
}
.dipa-page-title h1,
.fatture-page-title h1,
.crm-page-title h1 {
    margin: 4px 0 4px !important;
    font-size: clamp(22px, 3vw, 30px) !important;
    line-height: 1.08;
    letter-spacing: -.04em;
    color: var(--dipa-text) !important;
    font-weight: 950 !important;
}
.dipa-page-title p,
.crm-page-title p,
.dipa-muted {
    margin: 0;
    color: var(--dipa-muted) !important;
    font-weight: 750;
    line-height: 1.5;
}
.dipa-section,
.glass-panel,
.ranking-section,
.gcc-card,
.month-card,
.table-container,
.finance-grid,
.crm-tabs,
.crm-card,
.dettaglio-gruppo-container .card,
.dettaglio-gruppo-container .section-card {
    background: rgba(255,255,255,.96) !important;
    border: 1px solid var(--dipa-border) !important;
    border-radius: var(--dipa-radius-lg) !important;
    box-shadow: var(--dipa-shadow-md) !important;
}
.dipa-section { padding: clamp(16px, 2.2vw, 22px); margin-bottom: 16px; }
.dipa-section-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
.dipa-section-head h2,
.ranking-title,
.gcc-card h2,
.section-card h2 {
    margin: 0 0 5px !important;
    color: var(--dipa-text) !important;
    font-weight: 950 !important;
    letter-spacing: -.025em;
}
.dipa-action-bar,
.dipa-toolbar,
.payment-actions,
.gcc-actions,
.crm-context-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}
.dipa-action,
.dipa-action-secondary,
.btn-filter,
.crm-action-primary,
.crm-action-secondary,
.gcc-action,
.gcc-btn,
.btn-action-row,
.btn-phase,
.year-btn {
    min-height: 40px;
    border-radius: 999px !important;
    font-weight: 950 !important;
    text-decoration: none !important;
}
.dipa-action,
.crm-action-primary,
.gcc-btn:not(.light):not(.red):not(.green) {
    background: linear-gradient(135deg, var(--dipa-primary), var(--dipa-primary-2)) !important;
    color: #fff !important;
    border: 1px solid transparent !important;
    box-shadow: 0 10px 24px rgba(79,70,229,.20) !important;
}
.dipa-action-secondary,
.crm-action-secondary,
.btn-filter,
.gcc-action {
    background: #fff !important;
    color: var(--dipa-text) !important;
    border: 1px solid var(--dipa-border) !important;
    box-shadow: var(--dipa-shadow-sm) !important;
}
.dipa-kpi-grid,
.stats-grid,
.stats-grid-4,
.gcc-kpis,
.money-strip {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(155px, 1fr));
    gap: 12px;
}
.dipa-kpi,
.gcc-kpi,
.money-box,
.stat-card {
    background: var(--dipa-surface-soft) !important;
    border: 1px solid var(--dipa-border) !important;
    border-radius: 20px !important;
    padding: 15px !important;
    box-shadow: none !important;
}
.dipa-kpi span,
.gcc-kpi span,
.money-box span,
.stat-card span,
.stat-label {
    display: block;
    font-size: 10px !important;
    line-height: 1.25;
    font-weight: 950 !important;
    letter-spacing: .06em !important;
    text-transform: uppercase !important;
    color: #475569 !important;
    margin-bottom: 6px;
}
.dipa-kpi strong,
.gcc-kpi strong,
.money-box strong,
.stat-card strong,
.stat-value {
    display: block;
    color: var(--dipa-text) !important;
    font-weight: 950 !important;
    letter-spacing: -.035em;
}
.dipa-tabs,
.context-tabs,
.gcc-tabs,
.crm-tabs,
.pill-container,
.pill-grid {
    background: #eaf0f7 !important;
    border: 1px solid var(--dipa-border) !important;
    border-radius: 22px !important;
    padding: 6px !important;
    gap: 6px !important;
}
.dipa-tabs a,
.dipa-tabs button,
.context-tabs a,
.context-tabs button,
.gcc-tab,
.crm-tabs button,
.pill-btn,
.filter-pill {
    border-radius: 999px !important;
    border: 1px solid transparent !important;
    background: transparent !important;
    color: #475569 !important;
    font-size: 13px !important;
    font-weight: 950 !important;
    padding: 10px 14px !important;
}
.dipa-tabs .active,
.context-tabs a.active,
.context-tabs button.active,
.gcc-tab.active,
.crm-tabs button.active,
.pill-btn.active,
.filter-pill.active {
    background: var(--dipa-text) !important;
    color: #fff !important;
    border-color: var(--dipa-text) !important;
    box-shadow: 0 8px 18px rgba(15,23,42,.12) !important;
}
.dipa-alert,
.dipa-notice,
.dipa-empty-state,
.gcc-card[style*="border-color:#fecaca"],
.gcc-card[style*="border-color:#bbf7d0"] {
    border-radius: 18px !important;
    border: 1px solid var(--dipa-border) !important;
    padding: 14px 16px !important;
    font-weight: 850 !important;
    line-height: 1.45;
}
.dipa-alert.error,
.gcc-card[style*="border-color:#fecaca"] {
    background: var(--dipa-danger-soft) !important;
    border-color: #fecaca !important;
    color: #991b1b !important;
}
.dipa-alert.ok,
.gcc-card[style*="border-color:#bbf7d0"] {
    background: var(--dipa-success-soft) !important;
    border-color: #bbf7d0 !important;
    color: #166534 !important;
}
.dipa-empty-state {
    background: #fff !important;
    text-align: center;
    color: var(--dipa-muted) !important;
}
.status-pill.todo,
.invoice-status.pending,
.inv-status.pending {
    background: var(--dipa-warning-soft) !important;
    color: #854d0e !important;
}
.status-pill.invoice,
.invoice-status.open,
.inv-status.open {
    background: var(--dipa-primary-soft) !important;
    color: #3730a3 !important;
}
.profile-hero,
.profile-header,
.gcc-hero {
    max-width: var(--dipa-page-max);
    margin: 16px auto 18px !important;
    border-radius: 30px !important;
    box-shadow: var(--dipa-shadow-lg) !important;
    overflow: hidden;
}
.gcc-hero {
    background: radial-gradient(circle at 0% 0%, rgba(255,255,255,.18), transparent 30%), linear-gradient(135deg, #0f172a, #3730a3) !important;
}
.profile-hero {
    background: radial-gradient(circle at 0% 0%, rgba(255,255,255,.22), transparent 30%), linear-gradient(135deg, #047857, #064e3b) !important;
}
.profile-header {
    background: radial-gradient(circle at 0% 0%, rgba(255,255,255,.18), transparent 30%), linear-gradient(135deg, #4f46e5, #3730a3) !important;
}
.history-row,
.course-row,
.gcc-date-card,
.gcc-month,
.crm-card,
.ranking-row,
.directory-item,
.condo-card,
.assemblea-row,
.invoice-card,
.inv-card {
    border-radius: 18px !important;
    border: 1px solid var(--dipa-border) !important;
    transition: transform .14s ease, border-color .14s ease, box-shadow .14s ease, background .14s ease;
}
.history-row:hover,
.course-row:hover,
.gcc-date-card:hover,
.gcc-month:hover,
.crm-card:hover,
.directory-item:hover,
.condo-card:hover,
.assemblea-row:hover,
.invoice-card:hover,
.inv-card:hover {
    transform: translateY(-1px);
    border-color: #bfdbfe !important;
    box-shadow: 0 14px 30px rgba(15,23,42,.08) !important;
}
.dipa-danger-zone {
    border: 1px solid #fecaca !important;
    background: #fff5f5 !important;
    border-radius: var(--dipa-radius-lg) !important;
    padding: 16px;
}
.js-dipa-inline-error {
    margin-top: 10px;
    border-radius: 16px;
    padding: 12px 14px;
    background: var(--dipa-danger-soft);
    border: 1px solid #fecaca;
    color: #991b1b;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.45;
}
@media (max-width: 760px) {
    .dipa-page,
    .dipa-page-shell,
    .gcc-wrap,
    .dettaglio-gruppo-container { padding: 12px; }
    .app-header-actions { display: none; }
    .dipa-section-head { flex-direction: column; }
    .dipa-action-bar,
    .dipa-toolbar,
    .payment-actions { align-items: stretch; }
    .dipa-action,
    .dipa-action-secondary,
    .btn-filter,
    .crm-action-primary,
    .crm-action-secondary,
    .gcc-action,
    .gcc-btn { justify-content: center; width: 100%; }
    .dipa-kpi-grid,
    .stats-grid,
    .stats-grid-4,
    .money-strip { grid-template-columns: 1fr 1fr !important; }
    .crm-tabs,
    .context-tabs,
    .gcc-tabs { overflow-x: auto; flex-wrap: nowrap !important; }
}

/* Step24AC — messaggi applicativi coerenti */
.dipa-toast-stack {
    position: fixed;
    left: 50%;
    bottom: 22px;
    transform: translateX(-50%);
    z-index: 2000;
    display: grid;
    gap: 10px;
    width: min(520px, calc(100vw - 24px));
    pointer-events: none;
}
.dipa-toast {
    pointer-events: auto;
    background: rgba(255,255,255,.98);
    border: 1px solid var(--dipa-border);
    border-left: 6px solid var(--dipa-primary);
    border-radius: 18px;
    box-shadow: var(--dipa-shadow-lg);
    padding: 14px 42px 14px 16px;
    color: var(--dipa-text);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.45;
    position: relative;
}
.dipa-toast.error { border-left-color: var(--dipa-danger); background: #fffafa; }
.dipa-toast.ok { border-left-color: var(--dipa-success); background: #fbfffc; }
.dipa-toast button {
    position: absolute;
    top: 9px;
    right: 9px;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 999px;
    background: #f1f5f9;
    color: var(--dipa-muted);
    cursor: pointer;
    font-weight: 950;
}

/* Step24AE — coerenza pagine dedicate corso/festa */
.dipa-page-gestione_corso,
.dipa-page-gestione_corso_cliente,
.dipa-page-dettaglio_gruppo {
    background: linear-gradient(180deg, #f8fafc 0%, #eef2f7 100%);
}
.dipa-page-shell.dipa-course-tech-shell,
.dipa-page-shell.dipa-course-client-shell,
.dipa-page-shell.dipa-event-detail-shell {
    max-width: var(--dipa-page-max);
    margin: 0 auto;
    display: grid;
    gap: 18px;
}
.dipa-entity-hero {
    position: relative;
    color: #fff;
    padding: 26px 22px !important;
    border: 1px solid rgba(255,255,255,.18);
}
.dipa-entity-hero-course {
    background: radial-gradient(circle at 0% 0%, rgba(255,255,255,.20), transparent 32%), linear-gradient(135deg, #172554, #4f46e5) !important;
}
.dipa-entity-hero-event {
    background: radial-gradient(circle at 0% 0%, rgba(255,255,255,.22), transparent 32%), linear-gradient(135deg, #064e3b, #047857) !important;
}
.dipa-hero-icon {
    font-size: 36px;
    line-height: 1;
    margin-bottom: 10px;
}
.dipa-hero-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255,255,255,.16);
    border: 1px solid rgba(255,255,255,.26);
    color: #fff;
    padding: 6px 12px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 950;
    text-transform: uppercase;
    letter-spacing: .055em;
    margin: 8px 0 14px;
}
.dipa-hero-actions,
.gcc-actions.dipa-hero-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center;
    gap: 8px !important;
}
.gcc-hero .dipa-hero-actions { justify-content: flex-end; }
.dipa-hero-action,
.gcc-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.30) !important;
    background: rgba(255,255,255,.12) !important;
    color: #fff !important;
    padding: 9px 13px !important;
    font-size: 12px !important;
    font-weight: 950 !important;
    text-decoration: none !important;
    line-height: 1.2;
    box-shadow: none !important;
}
.dipa-hero-action-primary {
    background: #fff !important;
    color: #3730a3 !important;
    border-color: #fff !important;
}
.dipa-operational-note {
    border-radius: 20px;
    padding: 15px 16px;
    font-size: 13px;
    font-weight: 820;
    line-height: 1.48;
}
.dipa-operational-note-course {
    background: #eff6ff;
    border: 1px solid #bfdbfe;
    color: #1e3a8a;
}
.dipa-operational-note-event {
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    color: #065f46;
}
.dipa-panel,
.dipa-page-gestione_corso .dipa-panel,
.dipa-page-dettaglio_gruppo .dipa-panel,
.dipa-page-gestione_corso_cliente .dipa-panel,
.dipa-page-gestione_corso .container > div[style*="background:#fff"],
.dipa-page-dettaglio_gruppo .section-card {
    background: #fff !important;
    border: 1px solid var(--dipa-border) !important;
    border-radius: var(--dipa-radius-lg) !important;
    padding: 18px !important;
    box-shadow: var(--dipa-shadow) !important;
    margin: 0 !important;
}
.dipa-section-title,
.dipa-subsection-title,
.dipa-page-gestione_corso h2,
.dipa-page-dettaglio_gruppo .form-section-title,
.dipa-page-gestione_corso_cliente .gcc-card h2 {
    color: var(--dipa-text) !important;
    font-size: 16px !important;
    font-weight: 950 !important;
    letter-spacing: -.02em !important;
    text-transform: none !important;
    margin: 0 0 12px !important;
}
.dipa-section-head {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    align-items: center;
    margin: 0;
}
.dipa-kpi-grid,
.dipa-page-gestione_corso .stats-grid-4,
.dipa-page-gestione_corso_cliente .gcc-kpis {
    gap: 12px !important;
}
.dipa-kpi-card,
.dipa-page-gestione_corso .stat-card,
.gcc-kpi,
.finance-item {
    border-radius: 18px !important;
    border: 1px solid var(--dipa-border) !important;
    box-shadow: none !important;
}
.dipa-kpi-primary { background: var(--dipa-primary-soft) !important; border-color: #bfdbfe !important; }
.dipa-kpi-success { background: var(--dipa-success-soft) !important; border-color: #bbf7d0 !important; }
.dipa-kpi-danger { background: var(--dipa-danger-soft) !important; border-color: #fecaca !important; }
.dipa-detail-economy .finance-grid,
.dipa-page-dettaglio_gruppo .finance-grid {
    border-radius: 18px !important;
    border: 1px solid var(--dipa-border) !important;
    background: #f8fafc !important;
    padding: 14px !important;
}
.dipa-process-card {
    background: #eef2ff;
    border: 1px solid #c7d2fe;
    border-radius: 20px;
    padding: 14px;
    margin-bottom: 14px;
}
.dipa-table-card,
.table-container.dipa-table-card {
    border-radius: 20px !important;
    border: 1px solid var(--dipa-border) !important;
    box-shadow: var(--dipa-shadow) !important;
    overflow: hidden;
}
.dipa-page-gestione_corso .data-table th,
.dipa-page-gestione_corso_cliente .gcc-date-card label,
.dipa-page-dettaglio_gruppo .finance-item span {
    color: var(--dipa-muted) !important;
    font-weight: 950 !important;
}
.dipa-action,
.dipa-action-secondary,
.dipa-page-gestione_corso .dipa-action-secondary,
.btn-action-row,
.gcc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 38px;
    border-radius: 999px !important;
    padding: 9px 14px !important;
    border: 1px solid transparent !important;
    font-size: 12px !important;
    font-weight: 950 !important;
    text-decoration: none !important;
    cursor: pointer;
}
.dipa-action,
.gcc-btn {
    background: var(--dipa-text) !important;
    color: #fff !important;
}
.dipa-action-secondary,
.btn-action-row {
    background: #f1f5f9 !important;
    color: var(--dipa-text) !important;
    border-color: var(--dipa-border) !important;
}
.dipa-page-dettaglio_gruppo .btn-phase {
    border-radius: 18px !important;
    min-height: 48px;
    font-weight: 950 !important;
}
.dipa-page-gestione_corso .month-card,
.dipa-page-gestione_corso_cliente .gcc-month,
.dipa-page-gestione_corso_cliente .gcc-date-card,
.dipa-page-gestione_corso_cliente .gcc-move {
    border-radius: 20px !important;
    border: 1px solid var(--dipa-border) !important;
    box-shadow: none !important;
}
.dipa-two-column-grid {
    align-items: start;
}
@media (max-width: 760px) {
    .dipa-entity-hero { padding: 22px 16px !important; border-radius: 24px !important; }
    .gcc-hero .dipa-hero-actions { justify-content: stretch; }
    .dipa-hero-action,
    .gcc-action { width: 100%; }
    .dipa-section-head { align-items: stretch; flex-direction: column; }
    .dipa-page-shell.dipa-course-tech-shell,
    .dipa-page-shell.dipa-course-client-shell,
    .dipa-page-shell.dipa-event-detail-shell { gap: 14px; }
}

/* Step24AF — fix leggibilità corso dedicato + CRM/report coerenti */
/* Fix critico: i KPI dentro hero corso devono restare leggibili. La regola globale hero bianca
   non deve sbiancare card chiare o KPI interni. */
.dipa-entity-hero .gcc-kpi,
.dipa-entity-hero .gcc-kpi * {
    color: #ffffff !important;
}
.dipa-entity-hero .gcc-kpi {
    background: rgba(255,255,255,.14) !important;
    border-color: rgba(255,255,255,.26) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.12) !important;
}
.dipa-entity-hero .gcc-kpi span {
    color: rgba(255,255,255,.78) !important;
    opacity: 1 !important;
}
.dipa-entity-hero .gcc-kpi strong {
    color: #ffffff !important;
    text-shadow: 0 1px 0 rgba(15,23,42,.18);
}
.dipa-page-gestione_corso_cliente .gcc-card .gcc-kpi,
.dipa-page-gestione_corso_cliente .gcc-card .gcc-kpi * {
    color: var(--dipa-text) !important;
}
.dipa-page-gestione_corso_cliente .gcc-card .gcc-kpi span {
    color: var(--dipa-muted) !important;
}

/* Report fatture: stessa struttura visiva delle altre pagine operative */
.dipa-page-report_fatture .report-page,
.dipa-page-crm .dipa-page,
.crm-condomini-page .container {
    max-width: var(--dipa-page-max);
    margin-left: auto !important;
    margin-right: auto !important;
}
.dipa-page-report_fatture .fatture-page-title,
.dipa-page-report_fatture .glass-panel,
.dipa-page-report_fatture .kpi-card,
.dipa-page-crm .crm-tabs,
.dipa-page-crm .search-container,
.dipa-page-crm .crm-card,
.crm-condomini-page .section-card,
.crm-condomini-page .directory-item,
.crm-condomini-page .condo-card,
.crm-condomini-page .assemblea-row {
    border-radius: var(--dipa-radius-lg) !important;
    border: 1px solid var(--dipa-border) !important;
    box-shadow: var(--dipa-shadow) !important;
}
.dipa-page-report_fatture .fatture-page-title,
.dipa-page-report_fatture .glass-panel,
.dipa-page-report_fatture .kpi-card,
.dipa-page-crm .search-container,
.dipa-page-crm .crm-card,
.crm-condomini-page .section-card {
    background: #ffffff !important;
}
.dipa-page-report_fatture .kpi-grid {
    gap: 12px !important;
}
.dipa-page-report_fatture .kpi-card {
    padding: 16px !important;
    overflow: hidden;
}
.dipa-page-report_fatture .kpi-label,
.dipa-page-report_fatture label,
.dipa-page-crm label,
.crm-condomini-page label {
    color: var(--dipa-muted) !important;
    font-weight: 950 !important;
    letter-spacing: .045em !important;
}
.dipa-page-report_fatture .kpi-val,
.dipa-page-report_fatture .fatture-page-title h1,
.dipa-page-crm .crm-card-title,
.crm-condomini-page h1,
.crm-condomini-page h2,
.crm-condomini-page .section-card h2 {
    color: var(--dipa-text) !important;
}
.dipa-page-report_fatture input,
.dipa-page-report_fatture select,
.dipa-page-report_fatture textarea,
.dipa-page-crm input,
.crm-condomini-page input,
.crm-condomini-page select,
.crm-condomini-page textarea {
    border-radius: 14px !important;
    border-color: #cbd5e1 !important;
    background: #ffffff !important;
}
.dipa-page-report_fatture .invoice-action-btn,
.dipa-page-crm .btn-save,
.crm-condomini-page .btn-save,
.crm-condomini-page .btn-small {
    border-radius: 999px !important;
    font-weight: 950 !important;
}

/* CRM privati: blocco pagina più chiaro e coerente */
.dipa-page-crm .crm-tabs {
    background: #eef2ff !important;
    padding: 6px !important;
    margin: 0 0 16px !important;
}
.dipa-page-crm .crm-tabs button {
    border-radius: 999px !important;
}
.dipa-page-crm .crm-tabs button.active {
    background: var(--dipa-primary) !important;
    color: #fff !important;
}
.dipa-page-crm .btn-save {
    background: var(--dipa-primary) !important;
    box-shadow: 0 10px 24px rgba(79,70,229,.18) !important;
}
.dipa-page-crm .crm-card {
    margin-bottom: 10px !important;
}
.dipa-page-crm .crm-card-badge {
    border-radius: 999px !important;
    color: #334155 !important;
}

@media (max-width: 720px) {
    .dipa-page-report_fatture .report-page,
    .dipa-page-crm .dipa-page,
    .crm-condomini-page .container {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }
    .dipa-entity-hero .gcc-kpi strong { font-size: 20px !important; }
}


/* Step24AG — ottimizzazione desktop + mobile finale
   Obiettivo: desktop più denso dove serve lavoro operativo, mobile più lineare e leggibile.
   Nessuna logica business: solo layout, spaziature, contrasto e comportamento responsive. */
:root {
    --dipa-desktop-max: 1280px;
    --dipa-work-max: 1360px;
    --dipa-mobile-pad: 12px;
}
html, body { max-width: 100%; overflow-x: hidden; }
.app-header {
    position: sticky;
    top: 0;
    z-index: 80;
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
}
.app-header-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}
.app-header-actions a,
.app-header-actions button {
    min-height: 38px;
    border-radius: 999px !important;
    white-space: nowrap;
}
.dipa-page,
.dipa-page-shell,
.report-page,
.profile-page,
.container.crm-context-container,
.crm-condomini-page .container,
.dipa-page-dashboard .container {
    width: min(100%, var(--dipa-desktop-max));
    margin-left: auto !important;
    margin-right: auto !important;
}
.dipa-page-report_fatture .report-page,
.dipa-page-crm .dipa-page,
.dipa-page-crm_amministratori .container,
.dipa-page-profilo_condominio .container {
    width: min(100%, var(--dipa-work-max));
}

/* Desktop operativo: fatture/CRM devono usare meglio lo spazio del computer. */
@media (min-width: 1024px) {
    .dipa-page-report_fatture .report-page { padding-left: 22px !important; padding-right: 22px !important; }
    .dipa-page-report_fatture .fatture-page-title,
    .dipa-page-report_fatture .glass-panel {
        padding: 18px 20px !important;
    }
    .dipa-page-report_fatture .kpi-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        align-items: stretch;
    }
    .dipa-page-report_fatture .kpi-grid + .kpi-grid {
        margin-top: -8px !important;
    }
    .dipa-page-report_fatture .kpi-card {
        min-height: 108px;
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
    .dipa-page-report_fatture .search-box {
        display: grid !important;
        grid-template-columns: minmax(260px, 1.4fr) minmax(180px, .8fr) minmax(180px, .8fr);
        gap: 12px;
        align-items: end;
    }
    .dipa-page-report_fatture .pill-container {
        display: flex !important;
        gap: 8px;
        flex-wrap: wrap;
    }
    .dipa-page-report_fatture .pill-btn {
        min-height: 36px;
        padding: 8px 13px !important;
    }
    .dipa-page-report_fatture .invoice-card,
    .dipa-page-report_fatture .inv-card,
    .dipa-page-report_fatture .fattura-card {
        display: grid;
        grid-template-columns: minmax(260px, 1.3fr) minmax(170px, .8fr) minmax(190px, .9fr) auto;
        gap: 14px;
        align-items: center;
    }
    .dipa-page-report_fatture .invoice-action-btn {
        min-height: 36px;
        padding: 8px 12px !important;
    }
    .dipa-page-crm .container,
    .dipa-page-crm_amministratori .container,
    .dipa-page-profilo_condominio .container {
        padding-left: 22px !important;
        padding-right: 22px !important;
    }
    .dipa-page-crm .crm-card {
        min-height: 78px;
    }
    .dipa-page-crm_amministratori .stats-grid-4,
    .crm-condomini-page .stats-grid-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }
    .dipa-page-crm_amministratori .condo-list {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
    .dipa-page-crm_amministratori .condo-card,
    .crm-condomini-page .assemblea-row {
        margin: 0 !important;
    }
    .dipa-page-dashboard .stats-grid {
        grid-template-columns: 1.25fr .85fr .85fr !important;
    }
    .dipa-page-dashboard .stat-card.full {
        grid-column: span 1 !important;
    }
}

/* Tablet / desktop piccolo: evitare pagine troppo larghe e mantenere azioni vicine al contenuto. */
@media (min-width: 761px) and (max-width: 1180px) {
    .dipa-page,
    .dipa-page-shell,
    .report-page,
    .profile-page,
    .crm-condomini-page .container {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }
    .dipa-entity-hero {
        margin-left: auto !important;
        margin-right: auto !important;
    }
    .dipa-page-report_fatture .kpi-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* Mobile: layout a una colonna, azioni grandi e contenuto tecnico meno compresso. */
@media (max-width: 760px) {
    body {
        background: var(--dipa-bg) !important;
        -webkit-text-size-adjust: 100%;
    }
    .app-header {
        min-height: 64px;
        padding: 10px var(--dipa-mobile-pad) !important;
        align-items: center;
    }
    .app-header h1,
    .app-header-content h1 {
        font-size: 18px !important;
        line-height: 1.08 !important;
    }
    .app-header p,
    .app-header-content p {
        font-size: 12px !important;
        line-height: 1.2 !important;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        max-width: 72vw;
    }
    .apple-back-btn,
    .btn-back {
        width: 40px !important;
        height: 40px !important;
        min-width: 40px !important;
    }
    .app-header-actions {
        width: 100%;
        justify-content: stretch;
        padding-top: 8px;
    }
    .app-header-actions > * {
        flex: 1 1 auto;
        justify-content: center;
    }
    .container,
    .dipa-page,
    .dipa-page-shell,
    .report-page,
    .profile-page,
    .crm-condomini-page .container,
    .dipa-page-crm .dipa-page {
        padding-left: var(--dipa-mobile-pad) !important;
        padding-right: var(--dipa-mobile-pad) !important;
        width: 100% !important;
    }
    .card,
    .section-card,
    .premium-section,
    .history-container,
    .stats-toolbar,
    .stat-card,
    .profile-mode-card,
    .course-invoice-box,
    .finance-subcard,
    .area-dashboard-card,
    .invoice-card,
    .inv-card,
    .client-card,
    .settings-card,
    .dashboard-card,
    .glass-panel,
    .kpi-card,
    .crm-card,
    .condo-card,
    .assemblea-row {
        border-radius: 18px !important;
        box-shadow: 0 8px 22px rgba(15,23,42,.06) !important;
    }
    .dipa-entity-hero {
        margin-top: 12px !important;
        margin-bottom: 14px !important;
        padding: 18px 14px !important;
        border-radius: 22px !important;
    }
    .dipa-entity-hero h1,
    .gcc-hero h1,
    .profile-header h1 {
        font-size: 26px !important;
        line-height: 1.05 !important;
    }
    .dipa-kpi-grid,
    .gcc-kpis,
    .kpi-grid,
    .stats-grid,
    .stats-grid-4,
    .area-dashboard-grid,
    .finance-grid,
    .dipa-two-column-grid {
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    .dipa-tabs,
    .context-tabs,
    .crm-tabs,
    .course-period-filter,
    .filter-pills,
    .pill-container {
        overflow-x: auto;
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        padding-bottom: 4px;
    }
    .dipa-tabs::-webkit-scrollbar,
    .context-tabs::-webkit-scrollbar,
    .crm-tabs::-webkit-scrollbar,
    .course-period-filter::-webkit-scrollbar,
    .filter-pills::-webkit-scrollbar,
    .pill-container::-webkit-scrollbar { display: none; }
    .dipa-tabs a,
    .dipa-tabs button,
    .context-tabs a,
    .context-tabs button,
    .crm-tabs button,
    .course-period-filter a,
    .filter-pill,
    .pill-btn {
        flex: 0 0 auto;
        min-height: 40px;
        white-space: nowrap;
    }
    .btn-save,
    .invoice-action-btn,
    .dipa-action,
    .dipa-action-secondary,
    .btn-small,
    .gcc-btn,
    .hero-btn,
    .btn-contact,
    .crm-action-primary,
    .crm-action-secondary {
        min-height: 44px !important;
        width: 100%;
        justify-content: center;
    }
    .input-group,
    .form-grid,
    .dipa-form-grid,
    .search-box,
    .crm-context-actions,
    .area-card-actions,
    .dipa-hero-actions,
    .profile-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    input,
    select,
    textarea,
    .form-control {
        font-size: 16px !important;
        min-height: 46px !important;
    }
    .bottom-sheet {
        border-radius: 24px 24px 0 0 !important;
        max-height: 88vh;
        overflow-y: auto;
    }
    .sheet-header {
        position: sticky;
        top: 0;
        z-index: 2;
        background: #fff;
    }
    .dipa-page-report_fatture .invoice-card,
    .dipa-page-report_fatture .inv-card,
    .dipa-page-report_fatture .fattura-card,
    .dipa-page-crm .crm-card,
    .dipa-page-crm_amministratori .condo-card,
    .crm-condomini-page .assemblea-row {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        align-items: stretch !important;
    }
    .dipa-page-report_fatture .fatture-page-title {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }
    .dipa-page-report_fatture .year-btn {
        min-height: 38px;
    }
    .dipa-page-dashboard .dashboard-toolbar {
        padding-left: 0 !important;
        padding-right: 0 !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
    }
    .dipa-page-dashboard .btn-filter { width: 100%; justify-content: center; min-height: 44px; }
}

/* Computer grande: meno spazio vuoto nei moduli usati al banco/ufficio. */
@media (min-width: 1360px) {
    .dipa-page-report_fatture .report-page,
    .dipa-page-crm .dipa-page,
    .dipa-page-crm_amministratori .container,
    .dipa-page-profilo_condominio .container {
        max-width: 1360px !important;
    }
    .dipa-page-profilo_cliente .profile-page,
    .dipa-page-gestione_corso .dipa-page-shell,
    .dipa-page-dettaglio_gruppo .dipa-page-shell {
        max-width: 1240px !important;
    }
}

/* Step24AH — Audit progetto completo: ottimizzazione pagine desktop + mobile
   Solo UI/layout. Non cambia logiche PHP, database, incassi o fatture. */
:root {
    --dipa-office-max: 1440px;
    --dipa-content-max: 1240px;
    --dipa-card-pad: clamp(14px, 1.7vw, 20px);
}

/* Larghezze per uso reale: ufficio ampio dove serve, contenuto più stretto dove serve concentrazione. */
@media (min-width: 1180px) {
    .dipa-page-report_fatture .report-page,
    .dipa-page-crm .dipa-page,
    .dipa-page-crm_amministratori .container,
    .dipa-page-dashboard .dipa-page {
        max-width: var(--dipa-office-max) !important;
    }
    .dipa-page-profilo_cliente .profile-page,
    .dipa-page-gestione_corso .dipa-page-shell,
    .dipa-page-gestione_corso_cliente .dipa-page-shell,
    .dipa-page-dettaglio_gruppo .dipa-page-shell,
    .dipa-page-profilo_condominio .container {
        max-width: var(--dipa-content-max) !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }
}

/* Header: meno alto su desktop, più leggibile su mobile. */
.app-header {
    position: sticky;
    top: 0;
    z-index: 50;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    background: rgba(255,255,255,.92) !important;
}
.app-header-content h1 { letter-spacing: -.035em; }
.app-header-actions a,
.app-header-actions button {
    min-height: 38px;
}

/* Sezioni: riduce effetto "card dentro card" e aumenta gerarchia visiva. */
.premium-section,
.dipa-section,
.glass-panel,
.ranking-section,
.gcc-card,
.table-container,
.month-card {
    padding: var(--dipa-card-pad) !important;
}
.premium-section-head,
.dipa-section-head {
    margin: calc(var(--dipa-card-pad) * -1) calc(var(--dipa-card-pad) * -1) var(--dipa-card-pad) !important;
    padding: 16px var(--dipa-card-pad) !important;
    border-bottom: 1px solid #e8edf5 !important;
}
.premium-section-head + *,
.dipa-section-head + * { margin-top: 0 !important; }

/* KPI: dimensione più compatta e prevedibile. */
.kpi-card,
.dipa-kpi,
.gcc-kpi,
.money-box,
.finance-subcard,
.stat-card,
.area-mini-card {
    min-height: auto !important;
}
.kpi-val,
.stat-value,
.finance-subcard strong,
.money-box strong,
.gcc-kpi strong {
    font-size: clamp(20px, 2.1vw, 28px) !important;
    line-height: 1.05 !important;
}
.kpi-sub,
.invoice-small,
.finance-subcard small { line-height: 1.35 !important; }

/* Corso/festa dedicati: hero più operativo, meno manifesto. */
.dipa-entity-hero,
.gcc-hero,
.dettaglio-hero {
    max-width: var(--dipa-content-max) !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
.dipa-page-gestione_corso .gcc-hero,
.dipa-page-gestione_corso_cliente .gcc-hero {
    padding: clamp(20px, 3vw, 30px) !important;
}
.dipa-page-gestione_corso .gcc-kpis,
.dipa-page-gestione_corso_cliente .gcc-kpis {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
}
.dipa-page-gestione_corso .gcc-kpi,
.dipa-page-gestione_corso_cliente .gcc-kpi {
    background: rgba(255,255,255,.96) !important;
}

/* Report fatture: pagina da computer, layout più denso e scan rapido. */
.dipa-page-report_fatture .fatture-page-title > div,
.dipa-page-report_fatture .glass-panel > div:first-child {
    align-items: center !important;
}
.dipa-page-report_fatture .kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
}
.dipa-page-report_fatture .glass-panel {
    margin-bottom: 16px !important;
}
.dipa-page-report_fatture #box-nuova-fattura-libera[style*="display: flex"],
.dipa-page-report_fatture #box-nuova-fattura-libera[style*="display:flex"] {
    display: grid !important;
    gap: 12px !important;
}
.dipa-page-report_fatture .month-section {
    margin-bottom: 18px !important;
}
.dipa-page-report_fatture .month-header {
    position: sticky;
    top: 76px;
    z-index: 10;
    background: rgba(248,250,252,.94);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    padding: 10px 8px !important;
    border-radius: 14px;
}
.dipa-page-report_fatture .invoice-row {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    gap: 14px !important;
    align-items: start !important;
    padding: 14px 16px 14px 18px !important;
}
.dipa-page-report_fatture .invoice-actions {
    gap: 8px !important;
}
.dipa-page-report_fatture .invoice-action-row {
    gap: 7px !important;
}
.dipa-page-report_fatture .invoice-side {
    min-width: 210px !important;
    margin-top: 0 !important;
    align-self: stretch !important;
    justify-content: flex-start !important;
    flex-direction: column !important;
    align-items: flex-end !important;
    gap: 8px !important;
}
.dipa-page-report_fatture .invoice-status {
    width: auto !important;
    white-space: nowrap !important;
}

/* CRM privati: su computer deve sembrare rubrica operativa, non lista mobile allargata. */
@media (min-width: 1020px) {
    .dipa-page-crm #tab-privati {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
    .dipa-page-crm .crm-card {
        margin-bottom: 0 !important;
        min-height: 88px;
    }
    .dipa-page-crm .btn-save[onclick*="nuovoClienteSheet"] {
        width: auto !important;
        min-width: 220px;
    }
}
@media (min-width: 1380px) {
    .dipa-page-crm #tab-privati {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}
.dipa-page-crm .search-container,
.dipa-page-crm .search-box {
    max-width: none !important;
}
.dipa-page-crm .crm-card-subtitle {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* CRM amministratori/condomini: directory più ordinata su monitor. */
@media (min-width: 1180px) {
    .dipa-page-crm_amministratori .directory-grid,
    .crm-condomini-page .directory-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .dipa-page-crm_amministratori .condo-list,
    .crm-condomini-page .condo-list {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

/* Dashboard: su desktop le liste stanno affiancate; su mobile restano semplici. */
@media (min-width: 980px) {
    .dipa-page-dashboard .container {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 16px;
        align-items: start;
    }
    .dipa-page-dashboard .stats-grid {
        grid-column: 1 / -1;
    }
    .dipa-page-dashboard .ranking-section {
        margin-bottom: 0 !important;
    }
}

/* Profilo cliente: più leggibile quando ci sono tante sezioni. */
.dipa-page-profilo_cliente .context-tabs,
.dipa-page-profilo_cliente .area-dashboard,
.dipa-page-profilo_cliente .premium-section {
    margin-left: 0 !important;
    margin-right: 0 !important;
}
@media (min-width: 1180px) {
    .dipa-page-profilo_cliente .finance-subgrid,
    .dipa-page-profilo_cliente .finance-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
    .dipa-page-profilo_cliente .area-dashboard {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}
.dipa-page-profilo_cliente .premium-section-head h2,
.dipa-page-profilo_cliente .premium-section-head p {
    max-width: 820px;
}

/* Form: stesso feeling ovunque, ma senza sovrascrivere valori business. */
.form-control,
input[type="text"],
input[type="number"],
input[type="date"],
input[type="time"],
input[type="email"],
input[type="tel"],
select,
textarea {
    border-radius: 14px !important;
    border-color: #cbd5e1 !important;
}
.form-control:focus,
input:focus,
select:focus,
textarea:focus {
    border-color: var(--dipa-primary) !important;
    box-shadow: var(--dipa-focus) !important;
    outline: none !important;
}
label {
    letter-spacing: .035em;
}

/* Toast: più professionale e meno invadente. */
.dipa-toast-stack {
    left: auto !important;
    right: 18px !important;
    bottom: 18px !important;
    top: auto !important;
    max-width: min(420px, calc(100vw - 28px));
}
.dipa-toast {
    border-radius: 18px !important;
    box-shadow: 0 18px 50px rgba(15,23,42,.18) !important;
    border: 1px solid rgba(255,255,255,.35) !important;
}

/* Mobile: ottimizzazione reale, non solo compressione. */
@media (max-width: 760px) {
    :root { --dipa-mobile-pad: 12px; }
    .app-header {
        position: sticky;
        top: 0;
    }
    .app-header-actions {
        display: none;
    }
    .dipa-page,
    .dipa-page-shell,
    .profile-page,
    .report-page,
    .gcc-wrap,
    .dettaglio-gruppo-container {
        padding-top: 10px !important;
        padding-bottom: 24px !important;
    }
    .premium-section,
    .dipa-section,
    .glass-panel,
    .ranking-section,
    .gcc-card,
    .table-container,
    .month-card {
        padding: 14px !important;
        border-radius: 20px !important;
        margin-bottom: 12px !important;
    }
    .premium-section-head,
    .dipa-section-head {
        margin: -14px -14px 14px !important;
        padding: 14px !important;
        display: block !important;
    }
    .premium-section-head h2,
    .dipa-section-head h2 {
        font-size: 18px !important;
    }
    .dipa-page-title,
    .fatture-page-title,
    .crm-page-title {
        padding: 14px !important;
        border-radius: 20px !important;
    }
    .dipa-page-title h1,
    .fatture-page-title h1,
    .crm-page-title h1 {
        font-size: 22px !important;
    }
    .dipa-page-report_fatture .kpi-grid,
    .dipa-page-profilo_cliente .finance-subgrid,
    .dipa-page-profilo_cliente .finance-grid {
        grid-template-columns: 1fr 1fr !important;
    }
    .dipa-page-report_fatture .invoice-row {
        grid-template-columns: 1fr !important;
    }
    .dipa-page-report_fatture .invoice-side {
        min-width: 0 !important;
        align-items: flex-start !important;
        flex-direction: row !important;
        justify-content: space-between !important;
    }
    .dipa-page-report_fatture .month-header {
        top: 64px;
    }
    .invoice-action-row,
    .payment-actions,
    .area-card-actions {
        display: grid !important;
        grid-template-columns: 1fr !important;
        width: 100%;
    }
    .invoice-action-row input[type="text"],
    .invoice-action-btn,
    .invoice-file-label,
    .invoice-pdf-link {
        width: 100% !important;
        justify-content: center !important;
        text-align: center !important;
    }
    .dipa-page-crm #tab-privati,
    .dipa-page-dashboard .container {
        display: block !important;
    }
    .crm-card-body {
        margin-right: 8px !important;
    }
    .crm-card-badge {
        align-self: flex-start;
        white-space: nowrap;
    }
    .dipa-toast-stack {
        left: 12px !important;
        right: 12px !important;
        bottom: 12px !important;
        max-width: none !important;
    }
}

@media (max-width: 420px) {
    .dipa-page-report_fatture .kpi-grid,
    .dipa-page-profilo_cliente .finance-subgrid,
    .dipa-page-profilo_cliente .finance-grid {
        grid-template-columns: 1fr !important;
    }
    .kpi-val,
    .stat-value,
    .finance-subcard strong,
    .money-box strong,
    .gcc-kpi strong {
        font-size: 21px !important;
    }
}

/* Step24AI - client selection and event workflow clarity */
.client-mode-toggle {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin: 0 0 10px;
  padding: 6px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  border-radius: 16px;
}
.client-mode-btn {
  border: 1px solid transparent;
  background: transparent;
  color: #475569;
  border-radius: 12px;
  padding: 10px 12px;
  font-size: 13px;
  font-weight: 950;
  cursor: pointer;
}
.client-mode-btn.active {
  background: #fff;
  color: #4338ca;
  border-color: #c7d2fe;
  box-shadow: 0 8px 20px rgba(67,56,202,.09);
}
.client-mode-help {
  margin-top: 7px;
  font-size: 11px;
  line-height: 1.35;
  color: #64748b;
  font-weight: 800;
}
.dipa-event-title-strip {
  margin: 0 0 14px;
  border: 1px solid #e2e8f0;
  background: linear-gradient(135deg,#f8fafc,#fff);
  border-radius: 20px;
  padding: 14px 16px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}
.dipa-event-title-strip h2 { margin:0; color:#0f172a; font-size:20px; font-weight:950; }
.dipa-event-title-strip p { margin:4px 0 0; color:#64748b; font-size:13px; font-weight:800; }
.btn-whatsapp-primary {
  border: 0;
  border-radius: 999px;
  padding: 12px 16px;
  background: #22c55e;
  color: #fff !important;
  font-size: 14px;
  font-weight: 950;
  cursor: pointer;
  box-shadow: 0 12px 26px rgba(34,197,94,.24);
}
.dipa-inline-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.dipa-inline-actions a, .dipa-inline-actions button { text-decoration:none; }
@media (max-width: 640px) {
  .client-mode-toggle { grid-template-columns: 1fr; }
  .dipa-event-title-strip { align-items: stretch; }
  .dipa-inline-actions { flex-direction: column; align-items: stretch; }
  .dipa-inline-actions a, .dipa-inline-actions button { width: 100%; text-align:center; justify-content:center; }
}


/* Step24AJ - conferme applicative, niente popup browser per azioni operative */
.dipa-confirm-overlay{
    position:fixed;
    inset:0;
    z-index:99999;
    background:rgba(15,23,42,.46);
    backdrop-filter:blur(8px);
    display:flex;
    align-items:center;
    justify-content:center;
    padding:18px;
}
.dipa-confirm-box{
    width:min(460px,100%);
    background:#ffffff;
    color:#0f172a;
    border:1px solid rgba(148,163,184,.35);
    border-radius:24px;
    box-shadow:0 28px 90px rgba(15,23,42,.28);
    padding:22px;
}
.dipa-confirm-title{
    font-size:18px;
    line-height:1.2;
    font-weight:950;
    margin-bottom:8px;
}
.dipa-confirm-body{
    font-size:14px;
    line-height:1.45;
    color:#475569;
    font-weight:750;
    white-space:pre-line;
}
.dipa-confirm-actions{
    margin-top:20px;
    display:flex;
    justify-content:flex-end;
    gap:10px;
    flex-wrap:wrap;
}
.dipa-confirm-btn{
    border:0;
    border-radius:999px;
    padding:12px 18px;
    font-weight:950;
    cursor:pointer;
}
.dipa-confirm-btn.secondary{
    background:#f1f5f9;
    color:#334155;
}
.dipa-confirm-btn.primary{
    background:linear-gradient(135deg,#4f46e5,#7c3aed);
    color:#fff;
    box-shadow:0 12px 28px rgba(79,70,229,.26);
}
.dipa-confirm-btn:focus-visible{
    outline:3px solid rgba(79,70,229,.28);
    outline-offset:3px;
}
@media (max-width:640px){
    .dipa-confirm-overlay{align-items:flex-end;padding:12px;}
    .dipa-confirm-box{border-radius:22px;padding:18px;}
    .dipa-confirm-actions{display:grid;grid-template-columns:1fr;}
    .dipa-confirm-btn{width:100%;}
    .dipa-confirm-btn.primary{order:-1;}
}

/* Step24AM — corso: leggibilità KPI hero e prezzi per sala */
.dipa-page-gestione_corso_cliente .gcc-hero .gcc-kpi,
.dipa-page-gestione_corso .gcc-hero .gcc-kpi,
.dipa-page-gestione_corso_cliente .gcc-hero .gcc-kpi *,
.dipa-page-gestione_corso .gcc-hero .gcc-kpi * {
  color: #0f172a !important;
  text-shadow: none !important;
}
.dipa-page-gestione_corso_cliente .gcc-hero .gcc-kpi span,
.dipa-page-gestione_corso .gcc-hero .gcc-kpi span {
  color: #475569 !important;
  opacity: 1 !important;
}
.dipa-page-gestione_corso_cliente .gcc-hero .gcc-kpi,
.dipa-page-gestione_corso .gcc-hero .gcc-kpi {
  background: rgba(255,255,255,.96) !important;
  border-color: rgba(255,255,255,.78) !important;
}
.gcc-room-price-box {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  padding: 12px;
}
.gcc-room-price-box small {
  display: block;
  margin-top: 6px;
  color: #64748b;
  font-weight: 800;
}

/* Step24AN — corsi: prezzo gestito per sala, non per singola data */
.dipa-page-gestione_corso_cliente .gcc-room-price-section {
  border-color: rgba(79,70,229,.22) !important;
}
.dipa-page-gestione_corso_cliente .gcc-room-price-grid {
  display: grid !important;
  gap: 12px !important;
}
.dipa-page-gestione_corso_cliente .gcc-room-price-card {
  display: grid !important;
  grid-template-columns: minmax(240px,1fr) minmax(240px,340px) !important;
  gap: 14px !important;
  align-items: end !important;
  background: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  border-radius: 18px !important;
  padding: 14px !important;
}
.dipa-page-gestione_corso_cliente .gcc-room-price-card strong {
  display: block !important;
  font-size: 18px !important;
  font-weight: 1000 !important;
  color: #0f172a !important;
}
.dipa-page-gestione_corso_cliente .gcc-room-price-card small {
  display: block !important;
  margin-top: 6px !important;
  color: #64748b !important;
  font-weight: 800 !important;
}
.dipa-page-gestione_corso_cliente .gcc-room-price-card label {
  display: block !important;
  font-size: 11px !important;
  text-transform: uppercase !important;
  color: #64748b !important;
  font-weight: 950 !important;
  margin-bottom: 5px !important;
}
.dipa-page-gestione_corso_cliente .gcc-room-price-card input,
.dipa-page-gestione_corso_cliente .gcc-readonly-price {
  width: 100% !important;
  border: 1px solid #cbd5e1 !important;
  border-radius: 14px !important;
  padding: 12px !important;
  font-weight: 1000 !important;
  background: #fff !important;
  color: #0f172a !important;
}
.dipa-page-gestione_corso_cliente .gcc-date-card .gcc-readonly-price {
  background: #f8fafc !important;
}
@media(max-width:900px){
  .dipa-page-gestione_corso_cliente .gcc-room-price-card {
    grid-template-columns: 1fr !important;
  }
}

/* Step25C — ordine pagine esistenti: profilo corso e dettaglio assemblea */
.dipa-page-gestione_corso_cliente .gcc-wrap,
.dipa-page-gestione_corso .gcc-wrap {
  max-width: 1240px !important;
  gap: 14px !important;
}
.dipa-page-gestione_corso_cliente .gcc-hero,
.dipa-page-gestione_corso .gcc-hero {
  padding: 22px !important;
  border-radius: 24px !important;
}
.dipa-page-gestione_corso_cliente .gcc-title,
.dipa-page-gestione_corso .gcc-title {
  max-width: 760px;
  font-size: clamp(25px, 3vw, 36px) !important;
  line-height: 1.02 !important;
  overflow-wrap: anywhere;
}
.dipa-page-gestione_corso_cliente .gcc-sub,
.dipa-page-gestione_corso .gcc-sub {
  max-width: 780px;
  line-height: 1.45 !important;
}
.dipa-page-gestione_corso_cliente .gcc-kpis,
.dipa-page-gestione_corso .gcc-kpis {
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)) !important;
  gap: 10px !important;
  margin-top: 16px !important;
}
.dipa-page-gestione_corso_cliente .gcc-kpi,
.dipa-page-gestione_corso .gcc-kpi {
  min-width: 0 !important;
  padding: 13px !important;
}
.dipa-page-gestione_corso_cliente .gcc-kpi strong,
.dipa-page-gestione_corso .gcc-kpi strong {
  overflow-wrap: anywhere;
}
.dipa-page-gestione_corso_cliente .gcc-tabs,
.dipa-page-gestione_corso .gcc-tabs {
  position: sticky !important;
  top: 78px !important;
  z-index: 30 !important;
  margin: 0 !important;
  overflow-x: auto;
  flex-wrap: nowrap !important;
  scrollbar-width: none;
}
.dipa-page-gestione_corso_cliente .gcc-tabs::-webkit-scrollbar,
.dipa-page-gestione_corso .gcc-tabs::-webkit-scrollbar {
  display: none;
}
.dipa-page-gestione_corso_cliente .gcc-tab,
.dipa-page-gestione_corso .gcc-tab {
  white-space: nowrap;
}
.dipa-page-gestione_corso_cliente .gcc-card,
.dipa-page-gestione_corso .gcc-card {
  border-radius: 20px !important;
  padding: 18px !important;
}
.dipa-page-gestione_corso_cliente .gcc-card h2,
.dipa-page-gestione_corso .gcc-card h2 {
  font-size: 19px !important;
  line-height: 1.15 !important;
}
.dipa-page-gestione_corso_cliente .gcc-card > .gcc-note,
.dipa-page-gestione_corso .gcc-card > .gcc-note {
  max-width: 780px;
}
.dipa-page-gestione_corso_cliente .gcc-section-grid,
.dipa-page-gestione_corso .gcc-section-grid {
  grid-template-columns: minmax(280px, .85fr) minmax(420px, 1.15fr) !important;
  gap: 14px !important;
}
.dipa-page-gestione_corso_cliente .gcc-grid,
.dipa-page-gestione_corso .gcc-grid {
  gap: 10px !important;
}
.dipa-page-gestione_corso_cliente .gcc-date-card {
  grid-template-columns: minmax(130px, .8fr) minmax(170px, 1fr) minmax(150px, .9fr) minmax(150px, .85fr) auto auto !important;
  gap: 9px !important;
  align-items: end !important;
  padding: 12px !important;
}
.dipa-page-gestione_corso_cliente .gcc-date-card form[method="post"] {
  align-self: stretch;
}
.dipa-page-gestione_corso_cliente .gcc-date-card .gcc-btn {
  width: 100%;
  min-width: 76px;
}
.dipa-page-gestione_corso_cliente .gcc-readonly-price {
  min-height: 42px;
  display: flex;
  align-items: center;
}
.dipa-page-gestione_corso_cliente .gcc-months {
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)) !important;
}
.dipa-page-gestione_corso_cliente .gcc-month {
  gap: 10px !important;
}
.dipa-page-gestione_corso_cliente .gcc-move-head {
  align-items: flex-start;
}
.dipa-page-gestione_corso_cliente .gcc-move-head span:first-child {
  overflow-wrap: anywhere;
}

.dipa-page-dettaglio_gruppo .dipa-event-title-strip {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center !important;
  gap: 14px !important;
}
.dipa-page-dettaglio_gruppo .dipa-event-title-strip h2 {
  overflow-wrap: anywhere;
  line-height: 1.1;
}
.dipa-page-dettaglio_gruppo .dipa-event-title-strip p {
  line-height: 1.4;
}
.dipa-page-dettaglio_gruppo .dipa-inline-actions {
  justify-content: flex-end;
}
.dipa-page-dettaglio_gruppo .assembly-info-grid {
  grid-template-columns: minmax(0, 1.25fr) minmax(280px, .75fr) !important;
  gap: 14px !important;
  align-items: start;
}
.dipa-page-dettaglio_gruppo .assembly-info-main,
.dipa-page-dettaglio_gruppo .assembly-info-side {
  min-width: 0;
  border-radius: 20px !important;
}
.dipa-page-dettaglio_gruppo .assembly-info-main > strong,
.dipa-page-dettaglio_gruppo .assembly-piva-box strong,
.dipa-page-dettaglio_gruppo .assembly-side-item strong {
  overflow-wrap: anywhere;
}
.dipa-page-dettaglio_gruppo .assembly-info-side {
  grid-template-columns: 1fr !important;
}
.dipa-page-dettaglio_gruppo .assembly-side-item {
  padding: 13px !important;
}
.dipa-page-dettaglio_gruppo .assembly-piva-box select {
  min-width: 0 !important;
  width: min(100%, 360px);
}
.dipa-page-dettaglio_gruppo .finance-grid {
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)) !important;
}
.dipa-page-dettaglio_gruppo .sub-event {
  gap: 12px;
}
.dipa-page-dettaglio_gruppo .sub-event-info {
  min-width: 0;
}
.dipa-page-dettaglio_gruppo .sub-event-info strong,
.dipa-page-dettaglio_gruppo .sub-event-info span {
  overflow-wrap: anywhere;
}

@media (max-width: 980px) {
  .dipa-page-gestione_corso_cliente .gcc-section-grid,
  .dipa-page-gestione_corso .gcc-section-grid,
  .dipa-page-dettaglio_gruppo .assembly-info-grid,
  .dipa-page-dettaglio_gruppo .dipa-event-title-strip {
    grid-template-columns: 1fr !important;
  }
  .dipa-page-dettaglio_gruppo .dipa-inline-actions {
    justify-content: flex-start;
  }
  .dipa-page-gestione_corso_cliente .gcc-date-card {
    grid-template-columns: 1fr 1fr !important;
  }
}
@media (max-width: 640px) {
  .dipa-page-gestione_corso_cliente .gcc-date-card {
    grid-template-columns: 1fr !important;
  }
  .dipa-page-gestione_corso_cliente .gcc-tabs,
  .dipa-page-gestione_corso .gcc-tabs {
    top: 66px !important;
  }
  .dipa-page-dettaglio_gruppo .sub-event {
    align-items: stretch;
    flex-direction: column;
  }
}

/* Step25D — azioni prioritarie profili corso, assemblea, amministratore, condominio */
.dipa-page-gestione_corso_cliente .gcc-action-primary,
.dipa-page-gestione_corso .gcc-action-primary {
  background:#fff !important;
  color:#1d4ed8 !important;
  border-color:rgba(255,255,255,.9) !important;
}
.dipa-page-gestione_corso_cliente .gcc-action-muted,
.dipa-page-gestione_corso .gcc-action-muted {
  opacity:.82;
}
.gcc-priority-strip,
.assembly-action-hub,
.admin-priority-strip,
.condominio-priority-strip {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:20px;
  padding:10px;
  box-shadow:0 12px 30px rgba(15,23,42,.06);
}
.gcc-priority-strip a,
.gcc-priority-strip span,
.assembly-action-hub a,
.assembly-action-hub button,
.admin-priority-strip a,
.admin-priority-strip button,
.condominio-priority-strip a,
.condominio-priority-strip button {
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #dbe3ef;
  background:#f8fafc;
  color:#334155;
  border-radius:14px;
  padding:9px 13px;
  text-decoration:none;
  font-size:13px;
  font-weight:1000;
  line-height:1.15;
  cursor:pointer;
  box-sizing:border-box;
}
.gcc-priority-strip .primary,
.assembly-action-hub .primary,
.admin-priority-strip .primary,
.condominio-priority-strip .primary {
  background:#111827;
  border-color:#111827;
  color:#fff;
  box-shadow:0 10px 22px rgba(17,24,39,.14);
}
.gcc-priority-strip span {
  margin-left:auto;
  cursor:default;
  color:#64748b;
  background:#fff;
}
.admin-priority-strip {
  margin:0 14px 14px;
}
.condominio-priority-container {
  margin-top:-10px;
  margin-bottom:14px;
}
.dipa-page-profilo_condominio .crm-context-card p,
.dipa-page-crm_amministratori .premium-section-head p,
.dipa-page-crm_amministratori .admin-area-card p {
  line-height:1.4;
}
.dipa-page-profilo_condominio .section-card,
.dipa-page-profilo_condominio .crm-context-card,
.dipa-page-crm_amministratori .premium-section {
  border-radius:20px !important;
}
.dipa-page-profilo_condominio .filter-pill,
.dipa-page-crm_amministratori .filter-pill {
  line-height:1.15;
}
@media (max-width: 720px) {
  .gcc-priority-strip a,
  .gcc-priority-strip span,
  .assembly-action-hub a,
  .assembly-action-hub button,
  .admin-priority-strip a,
  .admin-priority-strip button,
  .condominio-priority-strip a,
  .condominio-priority-strip button {
    flex:1 1 150px;
  }
  .gcc-priority-strip span {
    margin-left:0;
    flex-basis:100%;
  }
  .condominio-priority-container {
    margin-top:0;
  }
}

/* Step25E — semplificazione radicale: vista lavoro prima, dettagli dopo */
.gcc-workdesk,
.assembly-workdesk,
.client-workdesk {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.client-workdesk {
  margin:0 14px 16px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:20px;
  padding:10px;
  box-shadow:0 12px 30px rgba(15,23,42,.06);
}
.client-workdesk a,
.client-workdesk button,
.client-workdesk span {
  min-height:40px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid #dbe3ef;
  background:#f8fafc;
  color:#334155;
  border-radius:14px;
  padding:9px 13px;
  text-decoration:none;
  font-size:13px;
  font-weight:1000;
  line-height:1.15;
  cursor:pointer;
  box-sizing:border-box;
}
.client-workdesk .primary,
.client-workdesk a.primary {
  background:#111827;
  border-color:#111827;
  color:#fff;
}
.client-workdesk span {
  margin-left:auto;
  cursor:default;
  color:#64748b;
  background:#fff;
}
.gcc-work-card,
.assembly-work-card {
  min-width:0;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:20px;
  padding:16px;
  box-shadow:0 12px 30px rgba(15,23,42,.06);
}
.gcc-work-card.primary,
.assembly-work-card.ok {
  border-color:#bbf7d0;
  background:#f0fdf4;
}
.assembly-work-card.warn {
  border-color:#fed7aa;
  background:#fff7ed;
}
.gcc-work-card span,
.assembly-work-card span {
  display:block;
  font-size:10px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.05em;
  color:#64748b;
}
.gcc-work-card strong,
.assembly-work-card strong {
  display:block;
  margin-top:7px;
  color:#0f172a;
  font-size:20px;
  line-height:1.15;
  font-weight:1000;
  overflow-wrap:anywhere;
}
.gcc-work-card small,
.assembly-work-card small {
  display:block;
  margin-top:5px;
  color:#64748b;
  font-size:12px;
  line-height:1.3;
  font-weight:850;
}
.gcc-work-card a {
  width:max-content;
  max-width:100%;
  display:inline-flex;
  margin-top:12px;
  border-radius:999px;
  background:#111827;
  color:#fff;
  text-decoration:none;
  padding:9px 12px;
  font-size:12px;
  font-weight:1000;
}
.dipa-simple-details,
.profile-data-details {
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.dipa-simple-details > summary,
.profile-data-details > summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:48px;
  padding:14px 16px;
  color:#0f172a;
  font-weight:1000;
}
.dipa-simple-details > summary::-webkit-details-marker,
.profile-data-details > summary::-webkit-details-marker {
  display:none;
}
.dipa-simple-details > summary:after,
.profile-data-details > summary:after {
  content:"+";
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border-radius:999px;
  background:#f1f5f9;
  color:#334155;
  font-weight:1000;
}
.dipa-simple-details[open] > summary:after,
.profile-data-details[open] > summary:after {
  content:"-";
}
.dipa-simple-details > summary span,
.dipa-simple-details > summary small {
  display:block;
}
.dipa-simple-details > summary small {
  margin-top:3px;
  color:#64748b;
  font-size:12px;
  line-height:1.3;
  font-weight:800;
}
.dipa-simple-details > :not(summary),
.profile-data-details > :not(summary) {
  margin-left:16px;
  margin-right:16px;
}
.dipa-simple-details > :last-child,
.profile-data-details > :last-child {
  margin-bottom:16px;
}
.profile-data-details {
  width:min(100%, 860px);
  margin:18px auto 0;
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.26);
  box-shadow:none;
}
.profile-data-details > summary {
  color:#fff;
}
.profile-data-details > summary:after {
  background:rgba(255,255,255,.2);
  color:#fff;
}
.profile-data-details-light {
  width:100%;
  margin:0;
  background:#fff;
  border-color:#e2e8f0;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
}
.profile-data-details-light > summary {
  color:#0f172a;
}
.profile-data-details-light > summary:after {
  background:#f1f5f9;
  color:#334155;
}
.assembly-secondary-details {
  margin-top:12px;
}
.assembly-secondary-details .assembly-info-grid {
  margin-top:0;
}
.dipa-page-crm_amministratori .admin-profile-hero p,
.dipa-page-profilo_condominio .profile-header > p {
  max-width:720px;
  margin-left:auto !important;
  margin-right:auto !important;
}
.dipa-page-profilo_cliente .profile-mode-card,
.dipa-page-profilo_cliente .premium-section,
.dipa-page-profilo_cliente .history-container {
  border-radius:20px !important;
}
.dipa-page-profilo_cliente .profile-mode-card p,
.dipa-page-profilo_cliente .premium-section-head p,
.dipa-page-profilo_cliente .history-head p {
  max-width:680px;
  line-height:1.4;
}
@media (max-width: 820px) {
  .gcc-workdesk,
  .assembly-workdesk {
    grid-template-columns:1fr;
  }
  .client-workdesk a,
  .client-workdesk button,
  .client-workdesk span {
    flex:1 1 145px;
  }
  .client-workdesk span {
    margin-left:0;
    flex-basis:100%;
  }
}

/* Step25F — profili come workflow, non come archivio aperto */
.client-flow-panel,
.course-flow-panel,
.assembly-flow-panel,
.admin-flow-panel,
.condominio-flow-panel {
  width:min(100% - 28px, 1240px);
  margin:0 auto 14px;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:24px;
  padding:16px;
  box-shadow:0 14px 36px rgba(15,23,42,.07);
}
.flow-panel-head {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
  margin-bottom:12px;
}
.flow-panel-head span {
  color:#64748b;
  font-size:11px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.flow-panel-head strong {
  color:#0f172a;
  font-size:22px;
  line-height:1.1;
  font-weight:1000;
  letter-spacing:-.02em;
  text-align:right;
}
.flow-choice-grid {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.flow-choice {
  min-width:0;
  min-height:104px;
  display:grid;
  grid-template-columns:auto 1fr;
  grid-template-rows:auto auto;
  column-gap:12px;
  row-gap:4px;
  align-items:start;
  border:1px solid #dbe3ef;
  background:#f8fafc;
  color:#0f172a;
  border-radius:18px;
  padding:14px;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
  box-sizing:border-box;
}
.flow-choice > span {
  grid-row:1 / span 2;
  width:30px;
  height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:#e2e8f0;
  color:#334155;
  font-size:12px;
  font-weight:1000;
}
.flow-choice strong {
  display:block;
  color:#0f172a;
  font-size:15px;
  line-height:1.18;
  font-weight:1000;
  overflow-wrap:anywhere;
}
.flow-choice small {
  display:block;
  color:#64748b;
  font-size:12px;
  line-height:1.3;
  font-weight:800;
}
.flow-choice.primary {
  background:#111827;
  border-color:#111827;
  color:#fff;
}
.flow-choice.primary > span {
  background:rgba(255,255,255,.16);
  color:#fff;
}
.flow-choice.primary strong,
.flow-choice.primary small {
  color:#fff;
}
.progressive-section {
  display:block;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.05);
  margin-bottom:16px;
  overflow:hidden;
}
.progressive-section > summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  min-height:50px;
  padding:14px 16px;
  color:#0f172a;
  font-weight:1000;
  background:#f8fafc;
}
.progressive-section > summary::-webkit-details-marker {
  display:none;
}
.progressive-section > summary:after {
  content:"+";
  width:28px;
  height:28px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  border-radius:999px;
  background:#e2e8f0;
  color:#334155;
}
.progressive-section[open] > summary:after {
  content:"-";
}
.progressive-section > summary span,
.progressive-section > summary small {
  display:block;
}
.progressive-section > summary small {
  margin-top:3px;
  color:#64748b;
  font-size:12px;
  line-height:1.3;
  font-weight:800;
}
.progressive-section:not([open]) {
  box-shadow:0 6px 16px rgba(15,23,42,.035) !important;
}
.progressive-section:not([open]) > summary {
  border-bottom:0;
}
.progressive-section[open] > summary {
  border-bottom:1px solid #eef2f7;
}
.section-card.progressive-section > summary {
  margin:-18px -18px 16px;
}
.stats-panel.progressive-section {
  margin:0 14px 18px;
  border:1px solid #e2e8f0;
  border-radius:20px;
  overflow:hidden;
  background:#fff;
}
.stats-panel.progressive-section > .stats-toolbar,
.stats-panel.progressive-section > .stats-grid {
  margin-left:16px;
  margin-right:16px;
}
.stats-panel.progressive-section > .stats-grid {
  margin-bottom:16px;
}
.dipa-page-crm_amministratori #riepilogo-admin .premium-section-head {
  border-top:1px solid #eef2f7;
}
.dipa-page-profilo_condominio .progressive-section .stats-grid-4 {
  margin:16px;
}
.dipa-page-profilo_condominio #storico-assemblee > h2,
.dipa-page-crm_amministratori #riepilogo-admin > .premium-section-head {
  margin-top:0;
}
.dipa-page-profilo_cliente .client-workdesk,
.dipa-page-crm_amministratori .admin-priority-strip {
  width:min(100% - 28px,1240px);
  margin:0 auto 12px;
  box-shadow:none;
  background:#fbfdff;
}
.dipa-page-profilo_cliente .profile-mode-card {
  box-shadow:none;
  background:#f8fafc;
}
.dipa-page-profilo_cliente .profile-mode-card p,
.dipa-page-profilo_cliente .area-switch small,
.dipa-page-crm_amministratori #riepilogo-admin .premium-section-head p,
.dipa-page-profilo_condominio .crm-context-card p {
  display:none;
}
.dipa-page-profilo_cliente .premium-section,
.dipa-page-profilo_cliente .history-container,
.dipa-page-crm_amministratori .premium-section,
.dipa-page-profilo_condominio .section-card {
  box-shadow:0 8px 22px rgba(15,23,42,.04) !important;
}
.dipa-page-profilo_cliente .flow-open,
.dipa-page-profilo_cliente .area-dashboard.flow-open,
.dipa-page-profilo_cliente .area-switch.flow-open,
.dipa-page-gestione_corso_cliente .flow-open,
.dipa-page-dettaglio_gruppo .flow-open,
.dipa-page-crm_amministratori .flow-open,
.dipa-page-profilo_condominio .flow-open {
  display:block !important;
}
.dipa-page-profilo_cliente .area-dashboard.flow-open,
.dipa-page-profilo_cliente .area-switch.flow-open {
  display:grid !important;
}
.flow-choice.is-active {
  border-color:#111827;
  box-shadow:0 0 0 4px rgba(17,24,39,.08);
}

/* Step25K — quality pass profili: riassunto, tipografia, gerarchia */
.ux-profile-summary {
  width:min(100% - 28px, 1240px);
  margin:0 auto 16px;
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(420px,.9fr);
  gap:12px;
  align-items:stretch;
}
.ux-summary-main,
.ux-summary-metrics > div {
  min-width:0;
  background:#ffffff;
  border:1px solid #e2e8f0;
  border-radius:20px;
  box-shadow:0 12px 30px rgba(15,23,42,.055);
}
.ux-summary-main {
  padding:17px 18px;
  border-left:5px solid #2563eb;
}
.ux-summary-main span,
.ux-summary-metrics span {
  display:block;
  color:#64748b;
  font-size:10px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.ux-summary-main strong {
  display:block;
  margin-top:7px;
  color:#0f172a;
  font-size:24px;
  line-height:1.12;
  font-weight:1000;
  overflow-wrap:anywhere;
}
.ux-summary-main small {
  display:block;
  margin-top:6px;
  color:#475569;
  font-size:13px;
  line-height:1.35;
  font-weight:800;
}
.ux-summary-metrics {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.ux-summary-metrics > div {
  padding:15px 14px;
}
.ux-summary-metrics strong {
  display:block;
  margin-top:7px;
  color:#111827;
  font-size:20px;
  line-height:1.12;
  font-weight:1000;
  overflow-wrap:anywhere;
}
.client-flow-panel,
.course-flow-panel,
.assembly-flow-panel,
.admin-flow-panel,
.condominio-flow-panel {
  border-color:#dbe4f0;
  box-shadow:0 16px 42px rgba(15,23,42,.075);
}
.flow-panel-head strong {
  font-size:clamp(20px,2vw,26px);
}
.flow-choice {
  background:#ffffff;
  border-color:#dbe4f0;
  box-shadow:0 8px 18px rgba(15,23,42,.035);
  transition:transform .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.flow-choice:hover {
  transform:translateY(-1px);
  border-color:#94a3b8;
  box-shadow:0 14px 28px rgba(15,23,42,.075);
}
.flow-choice.primary {
  background:linear-gradient(135deg,#111827,#1d4ed8);
  border-color:#1d4ed8;
}
.progressive-section,
.dipa-simple-details,
.profile-data-details-light {
  border-color:#e2e8f0;
  box-shadow:0 10px 24px rgba(15,23,42,.045);
}
.progressive-section > summary,
.dipa-simple-details > summary,
.profile-data-details-light > summary {
  background:#fbfdff;
}
.progressive-section > summary span,
.dipa-simple-details > summary span,
.profile-data-details-light > summary {
  color:#0f172a;
}
.progressive-section > summary small,
.dipa-simple-details > summary small {
  color:#64748b;
}
.premium-section-head h2,
.history-head h2,
.gcc-card h2,
.dipa-section-title {
  color:#0f172a !important;
  letter-spacing:0 !important;
}
.premium-section-head p,
.history-head p,
.gcc-note,
.admin-history-meta,
.invoice-like-meta {
  color:#64748b !important;
}
.status-pill,
.gcc-badge,
.invoice-badge {
  letter-spacing:0 !important;
}
@media (max-width: 900px) {
  .ux-profile-summary {
    grid-template-columns:1fr;
  }
  .ux-summary-metrics {
    grid-template-columns:1fr;
  }
}
@media (max-width: 860px) {
  .flow-choice-grid {
    grid-template-columns:1fr;
  }
  .flow-panel-head {
    align-items:flex-start;
    flex-direction:column;
  }
  .flow-panel-head strong {
    text-align:left;
  }
}

/* Step25L — profili più professionali: meno doppioni, più respiro operativo */
.dipa-page-profilo_cliente .client-workdesk,
.dipa-page-profilo_cliente .profile-mode-card,
.dipa-page-crm_amministratori .admin-context-tabs,
.dipa-page-crm_amministratori .admin-priority-strip,
.dipa-page-gestione_corso_cliente .gcc-priority-strip,
.dipa-page-gestione_corso_cliente .gcc-workdesk,
.dipa-page-dettaglio_gruppo .assembly-workdesk,
.dipa-page-profilo_condominio .condominio-priority-strip {
  display:none !important;
}

.dipa-page-profilo_cliente .profile-page,
.dipa-page-crm_amministratori .admin-profile-page,
.dipa-page-profilo_condominio .condominio-page,
.dipa-page-gestione_corso_cliente .gcc-page {
  background:#f6f8fb;
}

.dipa-page-profilo_cliente .profile-hero,
.dipa-page-crm_amministratori .admin-profile-hero,
.dipa-page-profilo_condominio .profile-header,
.dipa-page-gestione_corso_cliente .gcc-hero {
  width:min(100% - 28px,1240px) !important;
  margin:14px auto 14px !important;
  border-radius:24px !important;
  box-shadow:0 16px 38px rgba(15,23,42,.13) !important;
}

.dipa-page-profilo_cliente .profile-hero-inner,
.dipa-page-crm_amministratori .admin-profile-hero-inner,
.dipa-page-profilo_condominio .profile-header-inner,
.dipa-page-gestione_corso_cliente .gcc-hero-inner {
  min-height:0 !important;
  padding:22px !important;
  text-align:left !important;
  display:block !important;
}

.dipa-page-profilo_cliente .profile-avatar,
.dipa-page-crm_amministratori .admin-profile-avatar,
.dipa-page-profilo_condominio .profile-avatar,
.dipa-page-gestione_corso_cliente .gcc-avatar {
  width:54px !important;
  height:54px !important;
  margin:0 0 12px !important;
  border-radius:18px !important;
  font-size:24px !important;
}

.dipa-page-profilo_cliente .profile-hero h1,
.dipa-page-crm_amministratori .admin-profile-hero h1,
.dipa-page-profilo_condominio .profile-header h1,
.dipa-page-gestione_corso_cliente .gcc-hero h1 {
  color:#ffffff !important;
  font-size:clamp(28px,3vw,42px) !important;
  line-height:1.04 !important;
  letter-spacing:0 !important;
  text-align:left !important;
  max-width:840px;
}

.dipa-page-profilo_cliente .profile-hero p,
.dipa-page-crm_amministratori .admin-profile-hero p,
.dipa-page-profilo_condominio .profile-header p,
.dipa-page-gestione_corso_cliente .gcc-hero p {
  color:rgba(255,255,255,.84) !important;
  max-width:780px;
  text-align:left !important;
  font-size:14px !important;
}

.dipa-page-profilo_cliente .hero-actions,
.dipa-page-crm_amministratori .admin-hero-actions,
.dipa-page-profilo_condominio .condominio-actions-main,
.dipa-page-gestione_corso_cliente .gcc-hero-actions {
  justify-content:flex-start !important;
  gap:8px !important;
  margin-top:15px !important;
}

.dipa-page-profilo_cliente .hero-btn,
.dipa-page-crm_amministratori .admin-hero-btn,
.dipa-page-profilo_condominio .condominio-hero-btn,
.dipa-page-gestione_corso_cliente .gcc-hero-btn {
  min-height:38px !important;
  padding:9px 13px !important;
  border-radius:999px !important;
  font-size:12px !important;
  font-weight:900 !important;
  letter-spacing:0 !important;
}

.client-flow-panel,
.course-flow-panel,
.assembly-flow-panel,
.admin-flow-panel,
.condominio-flow-panel {
  width:min(100% - 28px,1240px) !important;
  margin:0 auto 14px !important;
  padding:16px !important;
  border-radius:22px !important;
  background:#ffffff !important;
}

.flow-panel-head {
  align-items:center;
  margin-bottom:12px !important;
}

.flow-panel-head span {
  color:#64748b !important;
  letter-spacing:.04em !important;
}

.flow-panel-head strong {
  color:#0f172a !important;
  letter-spacing:0 !important;
}

.flow-choice-grid {
  gap:10px !important;
}

.flow-choice {
  min-height:96px !important;
  padding:16px !important;
  border-radius:18px !important;
}

.flow-choice strong {
  font-size:17px !important;
  line-height:1.15 !important;
  letter-spacing:0 !important;
}

.flow-choice small {
  margin-top:7px !important;
  color:#475569 !important;
  font-size:13px !important;
  line-height:1.35 !important;
}

.flow-choice.primary {
  background:linear-gradient(135deg,#111827,#2444c7) !important;
}

.flow-choice.primary strong,
.flow-choice.primary small {
  color:#ffffff !important;
}

.flow-choice.primary small {
  opacity:.82;
}

.ux-profile-summary {
  gap:10px !important;
  margin-bottom:14px !important;
}

.ux-summary-main,
.ux-summary-metrics > div {
  border-radius:18px !important;
  box-shadow:0 10px 22px rgba(15,23,42,.05) !important;
}

.ux-summary-main {
  padding:15px 16px !important;
}

.ux-summary-metrics > div {
  padding:14px !important;
}

.ux-summary-main strong {
  font-size:clamp(22px,2vw,30px) !important;
}

.ux-summary-metrics strong {
  font-size:clamp(20px,1.8vw,26px) !important;
}

.progressive-section,
.dipa-simple-details,
.profile-data-details-light {
  width:min(100% - 28px,1240px);
  margin-left:auto !important;
  margin-right:auto !important;
  border-radius:20px !important;
}

.progressive-section > summary,
.dipa-simple-details > summary,
.profile-data-details-light > summary {
  min-height:60px;
  padding:16px 18px !important;
}

.progressive-section > summary span,
.dipa-simple-details > summary span,
.profile-data-details-light > summary {
  font-size:18px;
  letter-spacing:0;
}

@media (max-width: 760px) {
  .dipa-page-profilo_cliente .profile-hero,
  .dipa-page-crm_amministratori .admin-profile-hero,
  .dipa-page-profilo_condominio .profile-header,
  .dipa-page-gestione_corso_cliente .gcc-hero,
  .client-flow-panel,
  .course-flow-panel,
  .assembly-flow-panel,
  .admin-flow-panel,
  .condominio-flow-panel,
  .ux-profile-summary,
  .progressive-section,
  .dipa-simple-details,
  .profile-data-details-light {
    width:min(100% - 18px,1240px) !important;
  }

  .dipa-page-profilo_cliente .profile-hero-inner,
  .dipa-page-crm_amministratori .admin-profile-hero-inner,
  .dipa-page-profilo_condominio .profile-header-inner,
  .dipa-page-gestione_corso_cliente .gcc-hero-inner {
    padding:18px !important;
  }

  .dipa-page-profilo_cliente .hero-actions,
  .dipa-page-crm_amministratori .admin-hero-actions,
  .dipa-page-profilo_condominio .condominio-actions-main,
  .dipa-page-gestione_corso_cliente .gcc-hero-actions {
    overflow-x:auto;
    flex-wrap:nowrap !important;
    padding-bottom:2px;
  }

  .dipa-page-profilo_cliente .hero-btn,
  .dipa-page-crm_amministratori .admin-hero-btn,
  .dipa-page-profilo_condominio .condominio-hero-btn,
  .dipa-page-gestione_corso_cliente .gcc-hero-btn {
    flex:0 0 auto;
  }
}

/* Step25M — redesign radicale profili: workspace operativo, niente wizard doppio */
.dipa-page-profilo_cliente,
.dipa-page-crm_amministratori,
.dipa-page-profilo_condominio,
.dipa-page-gestione_corso_cliente,
.dipa-page-dettaglio_gruppo {
  background:#f4f6f9 !important;
  color:#111827;
}

.dipa-page-profilo_cliente .app-header,
.dipa-page-crm_amministratori .app-header,
.dipa-page-profilo_condominio .app-header,
.dipa-page-gestione_corso_cliente .app-header,
.dipa-page-dettaglio_gruppo .app-header {
  max-width:1240px;
  margin:0 auto;
  background:#f4f6f9 !important;
  border-bottom:0 !important;
  box-shadow:none !important;
  padding:14px 18px 10px !important;
}

.dipa-page-profilo_cliente .app-header h1,
.dipa-page-crm_amministratori .app-header h1,
.dipa-page-profilo_condominio .app-header h1,
.dipa-page-gestione_corso_cliente .app-header h1,
.dipa-page-dettaglio_gruppo .app-header h1 {
  color:#0f172a !important;
  font-size:22px !important;
  line-height:1.1 !important;
  letter-spacing:0 !important;
}

.dipa-page-profilo_cliente .app-header p,
.dipa-page-crm_amministratori .app-header p,
.dipa-page-profilo_condominio .app-header p,
.dipa-page-gestione_corso_cliente .app-header p,
.dipa-page-dettaglio_gruppo .app-header p {
  color:#64748b !important;
}

.dipa-page-profilo_cliente .client-flow-panel,
.dipa-page-crm_amministratori .admin-flow-panel,
.dipa-page-profilo_condominio .condominio-flow-panel,
.dipa-page-gestione_corso_cliente .course-flow-panel,
.dipa-page-dettaglio_gruppo .assembly-flow-panel {
  display:none !important;
}

.dipa-page-profilo_cliente .profile-hero,
.dipa-page-crm_amministratori .admin-profile-hero,
.dipa-page-profilo_condominio .profile-header,
.dipa-page-gestione_corso_cliente .gcc-hero {
  background:#ffffff !important;
  color:#111827 !important;
  border:1px solid #dfe6ee !important;
  border-radius:18px !important;
  box-shadow:0 12px 28px rgba(15,23,42,.055) !important;
}

.dipa-page-profilo_cliente .profile-hero:before,
.dipa-page-crm_amministratori .admin-profile-hero:before,
.dipa-page-profilo_condominio .profile-header:before,
.dipa-page-gestione_corso_cliente .gcc-hero:before {
  display:none !important;
}

.dipa-page-profilo_cliente .profile-hero-inner > div,
.dipa-page-crm_amministratori .admin-profile-hero-inner > div,
.dipa-page-profilo_condominio .profile-header,
.dipa-page-gestione_corso_cliente .gcc-hero {
  text-align:left !important;
}

.dipa-page-profilo_cliente .profile-hero-inner > div,
.dipa-page-crm_amministratori .admin-profile-hero-inner > div {
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:
    "avatar title"
    "avatar meta"
    "details details"
    "actions actions";
  column-gap:14px;
  align-items:center;
}

.dipa-page-profilo_condominio .profile-header {
  display:grid !important;
  grid-template-columns:auto minmax(0,1fr);
  grid-template-areas:
    "avatar title"
    "avatar meta"
    "details details"
    "actions actions";
  column-gap:14px;
  align-items:center;
  padding:22px !important;
}

.dipa-page-profilo_cliente .profile-avatar,
.dipa-page-crm_amministratori .admin-profile-avatar,
.dipa-page-profilo_condominio .profile-header > div:first-child {
  grid-area:avatar;
  width:48px !important;
  height:48px !important;
  margin:0 !important;
  border-radius:14px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  background:#eef2f7 !important;
  border:1px solid #dbe3ed !important;
  color:#334155 !important;
  font-size:22px !important;
  box-shadow:none !important;
}

.dipa-page-profilo_cliente .profile-hero h1,
.dipa-page-crm_amministratori .admin-profile-hero h1,
.dipa-page-profilo_condominio .profile-header h1,
.dipa-page-gestione_corso_cliente .gcc-hero h1 {
  grid-area:title;
  color:#0f172a !important;
  font-size:clamp(24px,2.4vw,34px) !important;
  line-height:1.08 !important;
  margin:0 !important;
  text-shadow:none !important;
}

.dipa-page-profilo_cliente .profile-hero p,
.dipa-page-crm_amministratori .admin-profile-hero p,
.dipa-page-profilo_condominio .profile-header p,
.dipa-page-gestione_corso_cliente .gcc-hero p {
  grid-area:meta;
  color:#64748b !important;
  margin:5px 0 0 !important;
  font-size:13px !important;
  line-height:1.35 !important;
  font-weight:750 !important;
  text-align:left !important;
}

.dipa-page-crm_amministratori .profile-data-details,
.dipa-page-profilo_condominio .profile-data-details {
  grid-area:details;
  margin:14px 0 0 !important;
  background:#f8fafc !important;
  border:1px solid #e2e8f0 !important;
  color:#0f172a !important;
  border-radius:14px !important;
  box-shadow:none !important;
}

.dipa-page-crm_amministratori .profile-data-details summary,
.dipa-page-profilo_condominio .profile-data-details summary {
  color:#0f172a !important;
  min-height:42px !important;
  padding:11px 13px !important;
}

.dipa-page-profilo_cliente .hero-actions,
.dipa-page-crm_amministratori .admin-hero-actions,
.dipa-page-profilo_condominio .condominio-actions-main,
.dipa-page-gestione_corso_cliente .gcc-hero-actions,
.dipa-page-gestione_corso_cliente .gcc-actions {
  grid-area:actions;
  display:flex !important;
  justify-content:flex-start !important;
  flex-wrap:wrap !important;
  gap:8px !important;
  margin-top:16px !important;
  padding-top:14px;
  border-top:1px solid #edf1f6;
}

.dipa-page-profilo_cliente .hero-btn,
.dipa-page-crm_amministratori .admin-hero-btn,
.dipa-page-profilo_condominio .condominio-hero-btn,
.dipa-page-gestione_corso_cliente .gcc-action,
.dipa-page-gestione_corso_cliente .gcc-hero-btn {
  background:#ffffff !important;
  color:#1f2937 !important;
  border:1px solid #cfd8e3 !important;
  box-shadow:none !important;
  min-height:36px !important;
  padding:8px 12px !important;
}

.dipa-page-profilo_cliente .hero-btn:hover,
.dipa-page-crm_amministratori .admin-hero-btn:hover,
.dipa-page-profilo_condominio .condominio-hero-btn:hover,
.dipa-page-gestione_corso_cliente .gcc-action:hover {
  border-color:#94a3b8 !important;
  background:#f8fafc !important;
}

.dipa-page-profilo_cliente .hero-actions .hero-btn[href*="tel"],
.dipa-page-profilo_cliente .hero-actions .hero-btn[href*="open=corso"],
.dipa-page-crm_amministratori .admin-hero-actions .admin-hero-btn[href*="tel"],
.dipa-page-profilo_condominio .condominio-actions-main a[href*="tipo=assemblea"],
.dipa-page-gestione_corso_cliente .gcc-action-primary {
  background:#111827 !important;
  color:#ffffff !important;
  border-color:#111827 !important;
}

.dipa-page-profilo_cliente .ux-profile-summary,
.dipa-page-crm_amministratori .ux-profile-summary,
.dipa-page-profilo_condominio .ux-profile-summary,
.dipa-page-gestione_corso_cliente .ux-profile-summary,
.dipa-page-dettaglio_gruppo .ux-profile-summary {
  width:min(100% - 28px,1240px) !important;
  grid-template-columns:minmax(0,1.4fr) minmax(360px,.6fr) !important;
  gap:12px !important;
}

.dipa-page-profilo_cliente .ux-summary-main,
.dipa-page-crm_amministratori .ux-summary-main,
.dipa-page-profilo_condominio .ux-summary-main,
.dipa-page-gestione_corso_cliente .ux-summary-main,
.dipa-page-dettaglio_gruppo .ux-summary-main,
.dipa-page-profilo_cliente .ux-summary-metrics > div,
.dipa-page-crm_amministratori .ux-summary-metrics > div,
.dipa-page-profilo_condominio .ux-summary-metrics > div,
.dipa-page-gestione_corso_cliente .ux-summary-metrics > div,
.dipa-page-dettaglio_gruppo .ux-summary-metrics > div {
  border-radius:16px !important;
  background:#ffffff !important;
  border:1px solid #dfe6ee !important;
  box-shadow:none !important;
}

.dipa-page-profilo_cliente .ux-summary-main,
.dipa-page-crm_amministratori .ux-summary-main,
.dipa-page-profilo_condominio .ux-summary-main,
.dipa-page-gestione_corso_cliente .ux-summary-main,
.dipa-page-dettaglio_gruppo .ux-summary-main {
  border-left:0 !important;
  padding:18px !important;
  position:relative;
}

.dipa-page-profilo_cliente .ux-summary-main:before,
.dipa-page-crm_amministratori .ux-summary-main:before,
.dipa-page-profilo_condominio .ux-summary-main:before,
.dipa-page-gestione_corso_cliente .ux-summary-main:before,
.dipa-page-dettaglio_gruppo .ux-summary-main:before {
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  top:0;
  height:3px;
  border-radius:0 0 999px 999px;
  background:#111827;
}

.dipa-page-profilo_cliente .ux-summary-metrics,
.dipa-page-crm_amministratori .ux-summary-metrics,
.dipa-page-profilo_condominio .ux-summary-metrics,
.dipa-page-gestione_corso_cliente .ux-summary-metrics,
.dipa-page-dettaglio_gruppo .ux-summary-metrics {
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}

.dipa-page-profilo_cliente .ux-summary-main span,
.dipa-page-crm_amministratori .ux-summary-main span,
.dipa-page-profilo_condominio .ux-summary-main span,
.dipa-page-gestione_corso_cliente .ux-summary-main span,
.dipa-page-dettaglio_gruppo .ux-summary-main span,
.dipa-page-profilo_cliente .ux-summary-metrics span,
.dipa-page-crm_amministratori .ux-summary-metrics span,
.dipa-page-profilo_condominio .ux-summary-metrics span,
.dipa-page-gestione_corso_cliente .ux-summary-metrics span,
.dipa-page-dettaglio_gruppo .ux-summary-metrics span {
  color:#6b7280 !important;
}

.dipa-page-profilo_cliente .ux-summary-main strong,
.dipa-page-crm_amministratori .ux-summary-main strong,
.dipa-page-profilo_condominio .ux-summary-main strong,
.dipa-page-gestione_corso_cliente .ux-summary-main strong,
.dipa-page-dettaglio_gruppo .ux-summary-main strong,
.dipa-page-profilo_cliente .ux-summary-metrics strong,
.dipa-page-crm_amministratori .ux-summary-metrics strong,
.dipa-page-profilo_condominio .ux-summary-metrics strong,
.dipa-page-gestione_corso_cliente .ux-summary-metrics strong,
.dipa-page-dettaglio_gruppo .ux-summary-metrics strong {
  color:#0f172a !important;
  letter-spacing:0 !important;
}

.dipa-page-profilo_cliente .progressive-section,
.dipa-page-crm_amministratori .progressive-section,
.dipa-page-profilo_condominio .progressive-section,
.dipa-page-dettaglio_gruppo .progressive-section,
.dipa-page-gestione_corso_cliente .dipa-simple-details {
  background:#ffffff !important;
  border:1px solid #dfe6ee !important;
  border-radius:16px !important;
  box-shadow:none !important;
  overflow:hidden;
}

.dipa-page-profilo_cliente .progressive-section > summary,
.dipa-page-crm_amministratori .progressive-section > summary,
.dipa-page-profilo_condominio .progressive-section > summary,
.dipa-page-dettaglio_gruppo .progressive-section > summary,
.dipa-page-gestione_corso_cliente .dipa-simple-details > summary {
  background:#ffffff !important;
  min-height:58px !important;
  border-bottom:1px solid transparent;
}

.dipa-page-profilo_cliente .progressive-section[open] > summary,
.dipa-page-crm_amministratori .progressive-section[open] > summary,
.dipa-page-profilo_condominio .progressive-section[open] > summary,
.dipa-page-dettaglio_gruppo .progressive-section[open] > summary,
.dipa-page-gestione_corso_cliente .dipa-simple-details[open] > summary {
  background:#f8fafc !important;
  border-bottom-color:#e5eaf0;
}

.dipa-page-profilo_cliente .progressive-section > summary:after,
.dipa-page-crm_amministratori .progressive-section > summary:after,
.dipa-page-profilo_condominio .progressive-section > summary:after,
.dipa-page-dettaglio_gruppo .progressive-section > summary:after,
.dipa-page-gestione_corso_cliente .dipa-simple-details > summary:after {
  background:#eef2f7 !important;
  color:#334155 !important;
  font-weight:1000;
}

.dipa-page-profilo_cliente .premium-section-head,
.dipa-page-crm_amministratori .premium-section-head,
.dipa-page-profilo_condominio .premium-section-head,
.dipa-page-dettaglio_gruppo .premium-section-head {
  background:#ffffff !important;
}

.dipa-page-profilo_cliente .premium-section-head h2,
.dipa-page-crm_amministratori .premium-section-head h2,
.dipa-page-profilo_condominio .premium-section-head h2,
.dipa-page-dettaglio_gruppo .premium-section-head h2 {
  font-size:20px !important;
  letter-spacing:0 !important;
}

.dipa-page-gestione_corso_cliente .gcc-tabs {
  width:min(100% - 28px,1240px);
  margin:0 auto 14px !important;
  background:#ffffff !important;
  border:1px solid #dfe6ee !important;
  border-radius:16px !important;
  box-shadow:none !important;
}

.dipa-page-gestione_corso_cliente .gcc-tab.active {
  background:#111827 !important;
  color:#ffffff !important;
}

.dipa-page-profilo_condominio .profile-header p a {
  color:#111827 !important;
  text-decoration:none !important;
  font-weight:900 !important;
}

.dipa-page-profilo_condominio .profile-header p button {
  background:#ffffff !important;
  color:#1f2937 !important;
  border:1px solid #cfd8e3 !important;
  border-radius:999px !important;
  padding:7px 10px !important;
  font-size:11px !important;
}

.dipa-page-profilo_condominio .condominio-fattura-warning {
  background:#fff7ed !important;
  color:#9a3412 !important;
  border-color:#fed7aa !important;
}

.dipa-page-profilo_cliente .hero-actions button.hero-btn[style],
.dipa-page-crm_amministratori .admin-hero-actions button.danger {
  color:#991b1b !important;
  background:#fff1f2 !important;
  border-color:#fecdd3 !important;
}

@media (max-width: 920px) {
  .dipa-page-profilo_cliente .ux-profile-summary,
  .dipa-page-crm_amministratori .ux-profile-summary,
  .dipa-page-profilo_condominio .ux-profile-summary,
  .dipa-page-gestione_corso_cliente .ux-profile-summary,
  .dipa-page-dettaglio_gruppo .ux-profile-summary {
    grid-template-columns:1fr !important;
  }

  .dipa-page-profilo_cliente .ux-summary-metrics,
  .dipa-page-crm_amministratori .ux-summary-metrics,
  .dipa-page-profilo_condominio .ux-summary-metrics,
  .dipa-page-gestione_corso_cliente .ux-summary-metrics,
  .dipa-page-dettaglio_gruppo .ux-summary-metrics {
    grid-template-columns:1fr !important;
  }
}

@media (max-width: 640px) {
  .dipa-page-profilo_cliente .profile-hero-inner > div,
  .dipa-page-crm_amministratori .admin-profile-hero-inner > div,
  .dipa-page-profilo_condominio .profile-header {
    grid-template-columns:1fr;
    grid-template-areas:
      "avatar"
      "title"
      "meta"
      "details"
      "actions";
  }

  .dipa-page-profilo_cliente .profile-avatar,
  .dipa-page-crm_amministratori .admin-profile-avatar,
  .dipa-page-profilo_condominio .profile-header > div:first-child {
    margin-bottom:12px !important;
  }
}

/* Step25N — fix screenshot: numeri leggibili, dati anagrafici visibili, meno duplicati */
.dipa-page-gestione_corso_cliente .ux-profile-summary {
  display:none !important;
}

.dipa-page-profilo_cliente .ux-profile-summary,
.dipa-page-crm_amministratori .ux-profile-summary,
.dipa-page-profilo_condominio .ux-profile-summary,
.dipa-page-dettaglio_gruppo .ux-profile-summary {
  grid-template-columns:1fr !important;
}

.dipa-page-profilo_cliente .ux-summary-main:before,
.dipa-page-crm_amministratori .ux-summary-main:before,
.dipa-page-profilo_condominio .ux-summary-main:before,
.dipa-page-dettaglio_gruppo .ux-summary-main:before {
  display:none !important;
}

.dipa-page-profilo_cliente .ux-summary-main,
.dipa-page-crm_amministratori .ux-summary-main,
.dipa-page-profilo_condominio .ux-summary-main,
.dipa-page-dettaglio_gruppo .ux-summary-main {
  border-left:4px solid #111827 !important;
  min-height:0 !important;
}

.dipa-page-profilo_cliente .ux-summary-metrics,
.dipa-page-crm_amministratori .ux-summary-metrics,
.dipa-page-profilo_condominio .ux-summary-metrics,
.dipa-page-dettaglio_gruppo .ux-summary-metrics {
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr)) !important;
}

.dipa-page-profilo_cliente .ux-summary-metrics > div,
.dipa-page-crm_amministratori .ux-summary-metrics > div,
.dipa-page-profilo_condominio .ux-summary-metrics > div,
.dipa-page-dettaglio_gruppo .ux-summary-metrics > div {
  min-height:82px !important;
  padding:16px 18px !important;
}

.dipa-page-profilo_cliente .ux-summary-metrics strong,
.dipa-page-crm_amministratori .ux-summary-metrics strong,
.dipa-page-profilo_condominio .ux-summary-metrics strong,
.dipa-page-dettaglio_gruppo .ux-summary-metrics strong,
.dipa-page-gestione_corso_cliente .gcc-kpi strong {
  white-space:nowrap !important;
  word-break:normal !important;
  overflow-wrap:normal !important;
  font-variant-numeric:tabular-nums;
}

.dipa-page-profilo_cliente .ux-summary-metrics strong,
.dipa-page-crm_amministratori .ux-summary-metrics strong,
.dipa-page-profilo_condominio .ux-summary-metrics strong,
.dipa-page-dettaglio_gruppo .ux-summary-metrics strong {
  font-size:clamp(22px,2vw,30px) !important;
}

.dipa-page-crm_amministratori .admin-anagrafica-grid,
.dipa-page-profilo_condominio .condominio-info-grid {
  margin-top:12px !important;
  max-width:none !important;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr)) !important;
}

.dipa-page-crm_amministratori .admin-anagrafica-item,
.dipa-page-profilo_condominio .condominio-info-item {
  background:#ffffff !important;
  border:1px solid #dfe6ee !important;
  border-radius:14px !important;
  box-shadow:none !important;
}

.dipa-page-crm_amministratori .admin-anagrafica-item span,
.dipa-page-profilo_condominio .condominio-info-item span {
  color:#64748b !important;
  opacity:1 !important;
}

.dipa-page-crm_amministratori .admin-anagrafica-item strong,
.dipa-page-profilo_condominio .condominio-info-item strong {
  color:#0f172a !important;
}

.dipa-page-crm_amministratori .admin-anagrafica-item.piva,
.dipa-page-profilo_condominio .condominio-info-item.piva {
  background:#eef2ff !important;
  border-color:#c7d2fe !important;
}

.dipa-page-crm_amministratori .profile-data-details[open],
.dipa-page-profilo_condominio .profile-data-details[open] {
  padding-bottom:12px !important;
}

.dipa-page-gestione_corso_cliente .gcc-hero .gcc-kpis {
  grid-template-columns:repeat(auto-fit,minmax(170px,1fr)) !important;
}

.dipa-page-gestione_corso_cliente .gcc-hero .gcc-kpi {
  min-width:0 !important;
  padding:12px 14px !important;
}

.dipa-page-gestione_corso_cliente .gcc-hero .gcc-kpi strong {
  font-size:clamp(22px,2vw,30px) !important;
}

/* Step25O — coerenza header, profilo condominio ordinato, sezioni persistenti */
.dipa-design-system .app-header {
  width:min(100% - 28px,1240px) !important;
  max-width:1240px !important;
  margin:0 auto 16px !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
  padding:14px 0 10px !important;
}

.dipa-design-system .app-header-content > div:first-child {
  width:100%;
  box-sizing:border-box;
  justify-content:flex-start;
}

.dipa-page-crm .dipa-page.compact,
.dipa-page-crm .container,
.dipa-page-crm_amministratori .container,
.crm-condomini-page .container,
.dipa-page-profilo_condominio .container {
  width:min(100% - 28px,1240px) !important;
  max-width:1240px !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

.dipa-page-crm .crm-tabs,
.dipa-page-crm_amministratori .crm-tabs {
  width:min(100% - 28px,1240px) !important;
  max-width:1240px !important;
  margin:0 auto 14px !important;
  border:1px solid #dfe6ee !important;
  border-radius:16px !important;
  background:#eef2f7 !important;
  box-shadow:none !important;
}

.dipa-page-crm .crm-tabs button.active,
.dipa-page-crm_amministratori .crm-tabs button.active {
  background:#111827 !important;
  color:#ffffff !important;
  box-shadow:none !important;
}

.dipa-page-crm .btn-save[onclick*="nuovoClienteSheet"],
.dipa-page-crm_amministratori .crm-action-primary {
  background:#111827 !important;
  color:#ffffff !important;
  box-shadow:none !important;
}

.dipa-page-profilo_condominio .profile-header {
  grid-template-columns:auto minmax(0,1fr) auto !important;
  grid-template-areas:
    "avatar title actions"
    "avatar meta actions"
    "details details details" !important;
  align-items:center !important;
  gap:8px 16px !important;
  padding:18px !important;
  margin-bottom:12px !important;
}

.dipa-page-profilo_condominio .profile-header > div:first-child {
  align-self:start !important;
}

.dipa-page-profilo_condominio .profile-header h1 {
  font-size:clamp(28px,3vw,42px) !important;
}

.dipa-page-profilo_condominio .profile-header p {
  display:flex !important;
  justify-content:flex-start !important;
  align-items:center !important;
  gap:8px !important;
  margin-top:4px !important;
}

.dipa-page-profilo_condominio .profile-header p button {
  display:none !important;
}

.dipa-page-profilo_condominio .condominio-actions-main {
  grid-area:actions !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  justify-content:flex-end !important;
  align-self:center !important;
  min-width:max-content;
}

.dipa-page-profilo_condominio .profile-data-details {
  margin-top:16px !important;
}

.dipa-page-profilo_condominio .profile-data-details > summary {
  font-size:18px !important;
}

.dipa-page-profilo_condominio .condominio-info-grid {
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}

.dipa-page-profilo_condominio .condominio-fattura-warning {
  max-width:none !important;
}

.dipa-page-profilo_condominio .ux-profile-summary {
  grid-template-columns:minmax(0,1.15fr) minmax(520px,.85fr) !important;
  align-items:stretch !important;
  margin-top:0 !important;
}

.dipa-page-profilo_condominio .ux-summary-metrics {
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
}

.dipa-page-profilo_condominio .crm-context-container {
  display:none !important;
}

.dipa-page-profilo_condominio .progressive-section,
.dipa-page-profilo_condominio .section-card.progressive-section {
  width:min(100% - 28px,1240px) !important;
  margin-top:12px !important;
  margin-bottom:12px !important;
}

.dipa-page-profilo_condominio .stats-grid-4 {
  padding:16px !important;
  margin:0 !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}

.dipa-page-profilo_condominio .stat-card {
  text-align:left !important;
  min-height:86px;
  box-shadow:none !important;
}

.dipa-page-profilo_condominio .stat-card strong {
  white-space:nowrap;
  font-variant-numeric:tabular-nums;
}

.dipa-page-gestione_corso_cliente .dipa-simple-details,
.dipa-page-profilo_cliente .progressive-section,
.dipa-page-crm_amministratori .progressive-section,
.dipa-page-profilo_condominio .progressive-section {
  scroll-margin-top:96px;
}

@media (max-width: 980px) {
  .dipa-page-profilo_condominio .profile-header {
    grid-template-columns:auto minmax(0,1fr) !important;
    grid-template-areas:
      "avatar title"
      "avatar meta"
      "actions actions"
      "details details" !important;
  }

  .dipa-page-profilo_condominio .condominio-actions-main {
    justify-content:flex-start !important;
    min-width:0;
    padding-top:12px !important;
    border-top:1px solid #edf1f6 !important;
  }

  .dipa-page-profilo_condominio .ux-profile-summary {
    grid-template-columns:1fr !important;
  }

  .dipa-page-profilo_condominio .ux-summary-metrics,
  .dipa-page-profilo_condominio .stats-grid-4,
  .dipa-page-profilo_condominio .condominio-info-grid {
    grid-template-columns:1fr !important;
  }
}

/* Step25P — filtro mese negli storici assemblee */
.history-period-bar{
  margin:12px 16px 0;
  padding:12px;
  border:1px solid #dfe6ee;
  border-radius:16px;
  background:#f8fafc;
  display:flex;
  flex-wrap:wrap;
  align-items:end;
  gap:8px;
}
.history-period-bar label{
  flex:1 1 100%;
  color:#64748b;
  font-size:10px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.history-period-bar select,
.history-period-bar input{
  height:38px;
  border:1px solid #cbd5e1;
  border-radius:12px;
  background:#fff;
  color:#0f172a;
  padding:0 10px;
  font-size:13px;
  font-weight:900;
}
.history-period-bar select{min-width:150px;}
.history-period-bar input{width:96px;}
.history-period-btn{
  min-height:38px;
  border:1px solid #d7dee8;
  border-radius:999px;
  background:#fff;
  color:#334155;
  padding:8px 12px;
  font-size:12px;
  font-weight:950;
  cursor:pointer;
}
.history-period-btn.active{
  background:#111827;
  color:#fff;
  border-color:#111827;
}
@media(max-width:720px){
  .history-period-bar select,
  .history-period-bar input,
  .history-period-btn{flex:1 1 130px;}
}

/* Step24BB — Impostazioni centro controllo */
.dipa-page-impostazioni {
  background:#f5f7fb;
}
.dipa-settings-page {
  width:min(1180px, calc(100% - 28px));
  margin:22px auto 54px;
}
.dipa-settings-hero {
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  background:linear-gradient(135deg,#111827,#4338ca 58%,#7c3aed);
  color:#fff;
  border-radius:28px;
  padding:24px;
  box-shadow:0 24px 70px rgba(17,24,39,.22);
  margin-bottom:16px;
}
.dipa-settings-hero h2 {
  margin:6px 0 8px;
  font-size:clamp(26px,3vw,42px);
  line-height:1.03;
  letter-spacing:-.04em;
  font-weight:1000;
}
.dipa-settings-hero p {
  margin:0;
  color:rgba(255,255,255,.78);
  font-weight:750;
  max-width:760px;
}
.dipa-eyebrow {
  display:inline-flex;
  color:rgba(255,255,255,.76);
  font-size:12px;
  font-weight:1000;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.dipa-settings-hero-kpis {
  display:grid;
  grid-template-columns:repeat(3, minmax(92px,1fr));
  gap:10px;
}
.dipa-settings-hero-kpis div {
  background:rgba(255,255,255,.13);
  border:1px solid rgba(255,255,255,.18);
  border-radius:20px;
  padding:14px 16px;
  min-width:96px;
}
.dipa-settings-hero-kpis strong {
  display:block;
  font-size:28px;
  line-height:1;
  font-weight:1000;
}
.dipa-settings-hero-kpis span {
  display:block;
  margin-top:7px;
  color:rgba(255,255,255,.76);
  font-size:12px;
  font-weight:900;
}
.dipa-settings-tabs {
  display:flex;
  gap:8px;
  overflow:auto;
  padding:8px;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:22px;
  box-shadow:0 14px 36px rgba(15,23,42,.06);
  margin-bottom:16px;
}
.dipa-settings-tabs button {
  border:0;
  background:transparent;
  color:#475569;
  padding:11px 15px;
  border-radius:999px;
  font-weight:1000;
  cursor:pointer;
  white-space:nowrap;
}
.dipa-settings-tabs button.active {
  background:#111827;
  color:#fff;
  box-shadow:0 10px 24px rgba(17,24,39,.18);
}
.dipa-settings-tab { display:none; }
.dipa-settings-tab.active { display:block; }
.dipa-settings-grid.two {
  display:grid;
  grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);
  gap:16px;
}
.dipa-settings-card {
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:26px;
  padding:18px;
  box-shadow:0 16px 44px rgba(15,23,42,.07);
}
.dipa-settings-card-head {
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
}
.dipa-settings-card-head h3 {
  margin:0;
  color:#0f172a;
  font-size:20px;
  font-weight:1000;
  letter-spacing:-.02em;
}
.dipa-settings-card-head p {
  margin:5px 0 0;
  color:#64748b;
  font-weight:750;
  font-size:13px;
}
.dipa-btn {
  border:0;
  border-radius:999px;
  padding:10px 14px;
  font-weight:1000;
  cursor:pointer;
  white-space:nowrap;
}
.dipa-btn.primary {
  background:linear-gradient(135deg,#4f46e5,#7c3aed);
  color:#fff;
  box-shadow:0 12px 28px rgba(79,70,229,.22);
}
.dipa-btn.ghost {
  background:#eef2ff;
  color:#4338ca;
}
.dipa-form-grid.compact {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.dipa-form-grid.compact label {
  display:block;
  color:#475569;
  font-size:12px;
  font-weight:1000;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.dipa-form-grid.compact label.wide { grid-column:1/-1; }
.dipa-form-grid.compact input,
.dipa-form-grid.compact select,
.dipa-form-grid.compact textarea {
  width:100%;
  margin-top:6px;
  border:1px solid #cbd5e1;
  border-radius:16px;
  background:#fff;
  color:#0f172a;
  padding:12px;
  font-size:15px;
  font-weight:850;
  box-sizing:border-box;
}
.dipa-form-grid.compact textarea {
  resize:vertical;
  min-height:86px;
  line-height:1.35;
}
.dipa-rules-list {
  display:grid;
  gap:10px;
}
.dipa-rules-list div {
  padding:13px;
  border-radius:18px;
  background:#f8fafc;
  border:1px solid #e2e8f0;
}
.dipa-rules-list strong,
.dipa-rules-list span {
  display:block;
}
.dipa-rules-list strong {
  color:#0f172a;
  font-weight:1000;
}
.dipa-rules-list span {
  margin-top:4px;
  color:#64748b;
  font-weight:760;
  font-size:13px;
}
.dipa-settings-list {
  display:grid;
  gap:10px;
}
.dipa-settings-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  padding:14px;
  border:1px solid #e2e8f0;
  border-radius:20px;
  background:#fff;
}
.dipa-settings-row.is-muted {
  background:#f8fafc;
  opacity:.76;
}
.dipa-row-main {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.dipa-row-main strong {
  display:block;
  color:#0f172a;
  font-size:16px;
  font-weight:1000;
}
.dipa-row-main small {
  display:block;
  color:#64748b;
  font-weight:800;
  margin-top:4px;
  line-height:1.35;
}
.dipa-color-dot {
  width:18px;
  height:18px;
  border-radius:999px;
  flex:0 0 auto;
  box-shadow:inset 0 0 0 2px rgba(255,255,255,.7),0 4px 12px rgba(15,23,42,.16);
}
.dipa-settings-sheet {
  max-width:760px;
}
.dipa-check-result {
  display:grid;
  gap:9px;
}
.dipa-check-row {
  display:flex;
  gap:10px;
  align-items:center;
  padding:12px 13px;
  border-radius:16px;
  border:1px solid #e2e8f0;
  background:#f8fafc;
}
.dipa-check-row strong {
  min-width:88px;
  font-size:12px;
  font-weight:1000;
  text-transform:uppercase;
}
.dipa-check-row.ok strong { color:#047857; }
.dipa-check-row.warn strong { color:#b45309; }
.dipa-check-row span {
  color:#334155;
  font-weight:850;
}
.dipa-empty-lite {
  padding:16px;
  border-radius:18px;
  background:#f8fafc;
  border:1px dashed #cbd5e1;
  color:#64748b;
  font-weight:850;
}
@media(max-width:900px){
  .dipa-settings-page { width:min(100% - 18px,1180px); margin-top:12px; }
  .dipa-settings-hero { grid-template-columns:1fr; padding:19px; border-radius:24px; }
  .dipa-settings-hero-kpis { grid-template-columns:repeat(3,1fr); }
  .dipa-settings-grid.two { grid-template-columns:1fr; }
  .dipa-settings-card-head { flex-direction:column; align-items:stretch; }
  .dipa-btn { width:100%; text-align:center; }
  .dipa-form-grid.compact { grid-template-columns:1fr; }
  .dipa-settings-row { align-items:flex-start; flex-direction:column; }
  .dipa-settings-row .dipa-btn { width:auto; }
}
@media(max-width:520px){
  .dipa-settings-hero-kpis { grid-template-columns:1fr; }
}

/* Step26A — Design refresh globale
   Interfaccia piu' sobria e operativa per dashboard, CRM, profili, fatture e modali. */
:root {
  --dipa-bg: #f4f6f8;
  --dipa-surface: #ffffff;
  --dipa-surface-soft: #f8fafc;
  --dipa-surface-raised: #ffffff;
  --dipa-border: #d8e0ea;
  --dipa-border-strong: #b9c5d4;
  --dipa-text: #142033;
  --dipa-muted: #5b677a;
  --dipa-muted-2: #8390a3;
  --dipa-primary: #1d4ed8;
  --dipa-primary-2: #0f766e;
  --dipa-primary-soft: #eaf2ff;
  --dipa-success: #11845b;
  --dipa-success-soft: #e8f7ef;
  --dipa-danger: #c03245;
  --dipa-danger-soft: #fff0f2;
  --dipa-warning: #a56500;
  --dipa-warning-soft: #fff5df;
  --dipa-orange: #c96b17;
  --dipa-orange-soft: #fff2e5;
  --dipa-radius-sm: 6px;
  --dipa-radius-md: 8px;
  --dipa-radius-lg: 8px;
  --dipa-radius-xl: 8px;
  --dipa-shadow-sm: 0 1px 2px rgba(20, 32, 51, .06);
  --dipa-shadow-md: 0 10px 28px rgba(20, 32, 51, .07);
  --dipa-shadow-lg: 0 18px 42px rgba(20, 32, 51, .11);
  --bg-main: var(--dipa-bg);
  --glass-bg: rgba(255,255,255,.94);
  --glass-border: var(--dipa-border);
  --text-main: var(--dipa-text);
  --text-muted: var(--dipa-muted);
  --accent-purple: var(--dipa-primary);
  --accent-purple-hover: #1e40af;
  --accent-orange: var(--dipa-orange);
  --success: var(--dipa-success);
  --danger: var(--dipa-danger);
  --shadow-soft: var(--dipa-shadow-md);
  --shadow-md: var(--dipa-shadow-md);
}

html {
  background: var(--dipa-bg) !important;
}

body,
body.dipa-design-system,
.crm-condomini-page {
  background: var(--dipa-bg) !important;
  color: var(--dipa-text) !important;
  letter-spacing: 0 !important;
}

body {
  font-size: 14px;
  line-height: 1.45;
}

::selection {
  background: #cfe1ff;
  color: var(--dipa-text);
}

a {
  text-underline-offset: 3px;
}

.app-header {
  min-height: 68px !important;
  gap: 12px !important;
  align-items: center !important;
  flex-wrap: wrap !important;
  padding: 12px clamp(14px, 2.4vw, 28px) !important;
  background: rgba(255,255,255,.96) !important;
  border-bottom: 1px solid var(--dipa-border) !important;
  box-shadow: 0 1px 0 rgba(20,32,51,.04) !important;
  backdrop-filter: saturate(1.1) blur(14px) !important;
  -webkit-backdrop-filter: saturate(1.1) blur(14px) !important;
}

.app-header-content {
  flex: 1 1 auto !important;
  min-width: 0 !important;
}

.app-header-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 5px;
}

.app-brand-mark {
  width: 22px;
  height: 22px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: var(--dipa-text);
  color: #fff;
  font-size: 12px;
  font-weight: 950;
  line-height: 1;
}

.app-events-badge,
.events-badge {
  display: inline-flex;
  align-items: center;
  border: 1px solid #f3c46b !important;
  background: #fff7e6 !important;
  color: #8a5200 !important;
  border-radius: 999px !important;
  padding: 3px 8px !important;
  font-size: 10px !important;
  font-weight: 950 !important;
  letter-spacing: .05em !important;
}

.app-header h1,
.app-header-content h1 {
  color: var(--dipa-text) !important;
  font-size: clamp(17px, 1.7vw, 21px) !important;
  line-height: 1.12 !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
}

.app-header p,
.app-header-content p {
  margin-top: 3px !important;
  color: var(--dipa-muted) !important;
  font-size: 12px !important;
  line-height: 1.35 !important;
  font-weight: 700 !important;
}

.app-header-actions {
  gap: 8px !important;
}

.app-logout-link,
.apple-back-btn,
.btn-back {
  min-width: 38px !important;
  height: 38px !important;
  border-radius: 8px !important;
  background: var(--dipa-surface-soft) !important;
  color: var(--dipa-text) !important;
  border: 1px solid var(--dipa-border) !important;
  box-shadow: none !important;
}

.app-logout-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0 12px;
  font-size: 12px;
  font-weight: 850;
  text-decoration: none;
  white-space: nowrap;
}

.app-logout-link:hover,
.apple-back-btn:hover,
.btn-back:hover {
  background: var(--dipa-primary-soft) !important;
  border-color: #aac4ef !important;
  color: #1746a2 !important;
}

.container,
.profile-page,
.report-page,
.crm-page,
.dashboard-page,
.dashboard-shell,
.dipa-page,
.dipa-page-shell,
.gcc-wrap,
.dettaglio-gruppo-container {
  max-width: 1200px !important;
}

.container,
.dipa-page,
.dipa-page-shell,
.gcc-wrap,
.dettaglio-gruppo-container {
  padding: clamp(14px, 2.2vw, 24px) !important;
}

.card,
.section-card,
.premium-section,
.history-container,
.stats-toolbar,
.stat-card,
.profile-mode-card,
.course-invoice-box,
.finance-subcard,
.area-dashboard-card,
.invoice-card,
.inv-card,
.client-card,
.settings-card,
.dashboard-card,
.dashboard-filterbar,
.dashboard-kpi,
.dashboard-panel,
.crm-context-card,
.crm-condomini-page .section-card,
.crm-condomini-page .directory-item,
.crm-condomini-page .condo-card,
.crm-condomini-page .assemblea-row,
.dipa-settings-card,
.dipa-settings-row,
.dipa-page-title,
.fatture-page-title,
.crm-page-title,
.dipa-section,
.glass-panel,
.ranking-section,
.gcc-card,
.course-card,
.date-card,
.month-card,
.log-card,
.sheet-card,
.table-container,
.finance-grid,
.crm-tabs,
.crm-card,
#calendar,
.event-card,
.feed-command-panel,
.calendar-command-panel {
  background: var(--dipa-surface-raised) !important;
  border: 1px solid var(--dipa-border) !important;
  border-radius: 8px !important;
  box-shadow: var(--dipa-shadow-md) !important;
}

.card,
.section-card,
.dashboard-panel,
.dipa-settings-card,
.dipa-section,
.glass-panel,
.ranking-section,
.gcc-card,
.course-card,
.date-card,
.log-card,
.sheet-card {
  padding: clamp(16px, 2vw, 22px) !important;
}

.premium-section,
.history-container,
.dashboard-panel,
.crm-context-card,
.dipa-settings-card {
  overflow: hidden;
}

.premium-section-head,
.history-head,
.finance-block-title,
.dashboard-panel-header,
.dipa-settings-card-head {
  background: var(--dipa-surface-soft) !important;
  border-bottom: 1px solid var(--dipa-border) !important;
}

.premium-section-head,
.history-head,
.finance-block-title {
  padding: 15px 16px !important;
}

h1,
h2,
h3,
.dashboard-hero h1,
.profile-hero h1,
.dipa-settings-hero h1,
.dashboard-panel h2,
.premium-section-head h2,
.history-head h2,
.finance-block-title h2,
.stats-toolbar h2,
.dipa-settings-card-head h3 {
  color: var(--dipa-text) !important;
  letter-spacing: 0 !important;
  font-weight: 900 !important;
}

p,
small,
.muted,
.empty-state,
.dashboard-panel p,
.dashboard-kpi .sub,
.profile-mode-card p,
.area-dashboard-card p,
.course-row p,
.history-meta,
.finance-subcard small,
.money-box small,
.dipa-settings-card-head p,
.dipa-rules-list span,
.dipa-row-main small {
  color: var(--dipa-muted) !important;
}

.form-control,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="date"],
input[type="time"],
input[type="search"],
input[type="password"],
input[type="color"],
select,
textarea {
  min-height: 42px !important;
  border: 1px solid var(--dipa-border-strong) !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: var(--dipa-text) !important;
  box-shadow: none !important;
  font-weight: 700 !important;
}

.form-control:focus,
input:focus,
select:focus,
textarea:focus {
  border-color: var(--dipa-primary) !important;
  box-shadow: 0 0 0 3px rgba(29,78,216,.13) !important;
}

label,
.input-box label,
.form-section-title,
.dashboard-filterbar label,
.dipa-form-grid.compact label {
  color: var(--dipa-muted) !important;
  font-size: 11px !important;
  font-weight: 850 !important;
  letter-spacing: .04em !important;
}

button,
.btn-save,
.dashboard-btn,
.dashboard-preset,
.dipa-btn,
.crm-action-primary,
.crm-action-secondary,
.dipa-action,
.dipa-action-secondary,
.btn-filter,
.gcc-action,
.gcc-btn,
.btn-action-row,
.invoice-action-btn,
.course-open,
.btn-small,
.desktop-btn-add,
.area-card-actions a,
.context-tabs a,
.context-tabs button,
.course-period-filter a,
.btn-paid-all,
.btn-unpaid-all,
.hero-btn,
.dipa-hero-action {
  border-radius: 8px !important;
  font-weight: 850 !important;
  letter-spacing: 0 !important;
  box-shadow: none !important;
}

.btn-save,
.desktop-btn-add,
.invoice-action-primary,
.area-card-actions a.primary,
.context-tabs a.active,
.context-tabs button.active,
.dashboard-btn.primary,
.dipa-btn.primary,
.crm-action-primary,
.dipa-action,
.gcc-action.primary,
.gcc-btn.primary,
.btn-action-row.action,
.btn-paid-primary {
  background: var(--dipa-primary) !important;
  color: #fff !important;
  border-color: var(--dipa-primary) !important;
}

.btn-save:hover,
.desktop-btn-add:hover,
.invoice-action-primary:hover,
.dashboard-btn.primary:hover,
.dipa-btn.primary:hover,
.crm-action-primary:hover,
.dipa-action:hover,
.btn-paid-primary:hover {
  background: #1746a2 !important;
  border-color: #1746a2 !important;
}

.pill-btn,
.dashboard-preset,
.context-tabs a,
.context-tabs button,
.course-period-filter a,
.hero-btn,
.invoice-action-btn,
.course-open,
.filter-pill,
.active-filter-chip,
.status-pill,
.course-badge,
.badge-type,
.invoice-status,
.inv-status,
.type-pill,
.info-pill {
  border-radius: 999px !important;
}

.pill-btn,
.dashboard-preset,
.crm-action-secondary,
.dipa-action-secondary,
.invoice-action-btn,
.course-open,
.btn-filter,
.dipa-btn.ghost,
.dashboard-btn.secondary {
  background: var(--dipa-surface-soft) !important;
  color: var(--dipa-text) !important;
  border: 1px solid var(--dipa-border) !important;
}

.pill-btn.active,
.filter-pill.active,
.area-switch a.active,
.profile-mode-card .active,
.crm-condomini-page .crm-tabs button.active,
.dipa-settings-tabs button.active {
  background: var(--dipa-text) !important;
  color: #fff !important;
  border-color: var(--dipa-text) !important;
}

.status-pill,
.course-badge,
.badge-type,
.invoice-status,
.inv-status,
.type-pill {
  font-size: 10px !important;
  font-weight: 900 !important;
  letter-spacing: .04em !important;
}

.status-pill.ok,
.status-pill.paid,
.inv-status.ok,
.invoice-status.status-pagata,
.type-pill.corso {
  background: var(--dipa-success-soft) !important;
  color: #0a6545 !important;
}

.status-pill.due,
.inv-status.due,
.invoice-status.status-emessa_da_pagare {
  background: var(--dipa-danger-soft) !important;
  color: #9f1d2b !important;
}

.status-pill.todo,
.inv-status.todo,
.invoice-status.status-da_emettere {
  background: var(--dipa-warning-soft) !important;
  color: #815000 !important;
}

.dashboard-hero,
.profile-hero,
.gcc-hero,
.course-hero,
.gc-hero,
.dipa-settings-hero,
.admin-profile-hero,
.crm-condomini-page .profile-header,
.profile-header.dipa-entity-hero {
  background: #142033 !important;
  color: #fff !important;
  border-radius: 8px !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  box-shadow: var(--dipa-shadow-lg) !important;
}

.dashboard-hero *,
.profile-hero *,
.gcc-hero *,
.course-hero *,
.gc-hero *,
.dipa-settings-hero *,
.admin-profile-hero *,
.crm-condomini-page .profile-header *,
.profile-header.dipa-entity-hero * {
  color: inherit !important;
}

.dashboard-hero p,
.profile-hero p,
.gcc-hero p,
.course-hero p,
.gc-hero p,
.dipa-settings-hero p,
.admin-profile-hero p,
.crm-condomini-page .profile-header p {
  color: rgba(255,255,255,.82) !important;
}

.dashboard-hero .dashboard-btn.primary,
.profile-hero .hero-btn,
.gcc-hero .gcc-action,
.course-hero .course-open,
.gc-hero .gc-action,
.dipa-settings-hero .dipa-btn.primary {
  background: #ffffff !important;
  color: var(--dipa-text) !important;
  border-color: #ffffff !important;
}

.dashboard-hero .dashboard-btn.secondary,
.profile-hero .hero-btn:not(:hover),
.gcc-hero .gcc-action:not(:hover),
.course-hero .course-open:not(:hover),
.gc-hero .gc-action:not(:hover) {
  background: rgba(255,255,255,.12) !important;
  color: #ffffff !important;
  border-color: rgba(255,255,255,.26) !important;
}

.dashboard-kpi.main,
.stat-card.full {
  background: var(--dipa-primary) !important;
  color: #fff !important;
  border-color: var(--dipa-primary) !important;
}

.dashboard-kpi .value,
.stat-card strong,
.money-box strong,
.area-mini strong,
.finance-subcard strong,
.dipa-row-main strong {
  color: var(--dipa-text) !important;
  letter-spacing: 0 !important;
}

.dashboard-kpi.main .value,
.dashboard-kpi.main .label,
.dashboard-kpi.main .sub,
.stat-card.full *,
.dashboard-kpi.main * {
  color: #fff !important;
}

.money-box.good,
.finance-subcard.good {
  border-color: #b7e4cb !important;
  background: #f2fbf6 !important;
}

.money-box.bad,
.money-box-due,
.finance-subcard.bad {
  border-color: #f3c9a4 !important;
  background: #fff7ed !important;
}

.money-box.good strong {
  color: #0a6545 !important;
}

.money-box.bad strong,
.money-box-due strong {
  color: #9b4f0f !important;
}

table,
.dashboard-table {
  border-collapse: separate !important;
  border-spacing: 0 !important;
}

th,
.dashboard-table th {
  color: var(--dipa-muted) !important;
  font-weight: 850 !important;
  letter-spacing: .04em !important;
}

td,
.dashboard-table td {
  color: var(--dipa-text) !important;
  border-bottom: 1px solid var(--dipa-border) !important;
}

.dashboard-table td {
  background: #fff !important;
  border-top: 0 !important;
}

.dashboard-table tr:hover td,
.directory-item:hover,
.condo-card:hover,
.assemblea-row:hover,
.event-card:hover,
.invoice-card:hover,
.inv-card:hover {
  background: #fbfdff !important;
  border-color: #bed1ec !important;
}

.bottom-sheet {
  border-radius: 8px 8px 0 0 !important;
  border: 1px solid var(--dipa-border) !important;
  box-shadow: 0 -18px 44px rgba(20,32,51,.16) !important;
}

.sheet-header {
  border-bottom: 1px solid var(--dipa-border);
  padding-bottom: 12px;
}

.sheet-header h2 {
  color: var(--dipa-text) !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
}

.sheet-overlay {
  background: rgba(20,32,51,.52) !important;
  backdrop-filter: blur(6px) !important;
}

.btn-close-sheet {
  border-radius: 8px !important;
  background: var(--dipa-surface-soft) !important;
  color: var(--dipa-text) !important;
  border: 1px solid var(--dipa-border) !important;
}

.fab {
  background: var(--dipa-primary) !important;
  border-radius: 999px !important;
  box-shadow: 0 12px 26px rgba(29,78,216,.24) !important;
}

.feed-command-panel,
.calendar-command-panel,
.dashboard-filterbar,
.stats-toolbar,
.crm-context-card,
.dipa-settings-tabs,
.context-tabs,
.area-switch,
.gcc-tabs,
.course-tabs,
.gc-tabs,
.crm-tabs {
  background: #fff !important;
  border-color: var(--dipa-border) !important;
}

.fc .fc-button-primary {
  background: #fff !important;
  border-color: var(--dipa-border-strong) !important;
  color: var(--dipa-text) !important;
}

.fc .fc-button-primary:not(:disabled).fc-button-active,
.fc .fc-button-primary:not(:disabled):active {
  background: var(--dipa-primary) !important;
  border-color: var(--dipa-primary) !important;
  color: #fff !important;
}

.fc .fc-daygrid-day.fc-day-today,
.fc .fc-timegrid-col.fc-day-today {
  background: #eef5ff !important;
}

.dipa-login-page {
  background:
    linear-gradient(180deg, #ffffff 0%, var(--dipa-bg) 100%) !important;
}

@media (max-width: 820px) {
  body {
    padding-bottom: 82px;
  }

  .app-header {
    min-height: 62px !important;
    align-items: flex-start !important;
  }

  .app-header-actions {
    width: 100%;
    justify-content: flex-start !important;
    margin-top: 6px;
  }

  .app-logout-link {
    height: 34px !important;
  }

  .card,
  .section-card,
  .premium-section,
  .history-container,
  .dashboard-panel,
  .dashboard-kpi,
  .crm-context-card,
  .dipa-settings-card {
    box-shadow: var(--dipa-shadow-sm) !important;
  }

  .profile-hero,
  .premium-section,
  .history-container,
  .stats-panel,
  .profile-mode-card,
  .area-switch,
  .context-tabs,
  .area-dashboard {
    margin-left: 10px !important;
    margin-right: 10px !important;
  }

  .input-group,
  .dashboard-hero,
  .dashboard-panel-header,
  .crm-context-card,
  .dipa-settings-card-head {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .dashboard-btn,
  .crm-action-primary,
  .crm-action-secondary,
  .btn-save {
    width: 100%;
  }
}
/* Step25Q — fix design reale da screenshot: contrasto, pagine profilo e riepilogo festa */
.dipa-design-system {
  --dipa-bg: #f4f7fb;
  --dipa-surface: #ffffff;
  --dipa-ink: #101827;
  --dipa-ink-soft: #425066;
  --dipa-line: #d9e2ec;
  --dipa-soft: #f7f9fc;
}

.dipa-design-system body,
.dipa-design-system .dipa-page-profilo_cliente,
.dipa-design-system .dipa-page-profilo_condominio,
.dipa-design-system .dipa-page-dettaglio_gruppo {
  background: var(--dipa-bg) !important;
}

.dipa-design-system h1,
.dipa-design-system h2,
.dipa-design-system h3,
.dipa-design-system strong {
  letter-spacing: 0 !important;
}

.dipa-design-system button,
.dipa-design-system a[class*="btn"],
.dipa-design-system .condominio-hero-btn,
.dipa-design-system .dipa-hero-action,
.dipa-design-system .btn-action-row,
.dipa-design-system .btn-whatsapp-primary {
  min-height: 42px;
  border-radius: 12px !important;
  font-weight: 900 !important;
  letter-spacing: 0 !important;
}

.dipa-page-profilo_condominio .profile-header {
  background: var(--dipa-surface) !important;
  color: var(--dipa-ink) !important;
  border: 1px solid var(--dipa-line) !important;
  box-shadow: 0 18px 45px rgba(16,24,39,.08) !important;
  overflow: visible !important;
}

.dipa-page-profilo_condominio .profile-header::after {
  display: none !important;
}

.dipa-page-profilo_condominio .profile-header,
.dipa-page-profilo_condominio .profile-header h1,
.dipa-page-profilo_condominio .profile-header p,
.dipa-page-profilo_condominio .profile-header a,
.dipa-page-profilo_condominio .profile-header button,
.dipa-page-profilo_condominio .profile-header summary,
.dipa-page-profilo_condominio .profile-header span,
.dipa-page-profilo_condominio .profile-header strong,
.dipa-page-profilo_condominio .profile-header small {
  color: var(--dipa-ink) !important;
  opacity: 1 !important;
  text-shadow: none !important;
}

.dipa-page-profilo_condominio .profile-header p,
.dipa-page-profilo_condominio .profile-header p a {
  color: var(--dipa-ink-soft) !important;
}

.dipa-page-profilo_condominio .profile-header p a {
  color: #1d4ed8 !important;
}

.dipa-page-profilo_condominio .entity-mark {
  width: 54px;
  height: 54px;
  border-radius: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #111827;
  color: #ffffff !important;
  font-size: 22px;
  font-weight: 950;
  line-height: 1;
}

.dipa-page-profilo_condominio .profile-data-details {
  background: var(--dipa-soft) !important;
  border: 1px solid var(--dipa-line) !important;
  border-radius: 16px !important;
  padding: 0 !important;
}

.dipa-page-profilo_condominio .profile-data-details > summary {
  background: transparent !important;
  color: var(--dipa-ink) !important;
  min-height: 52px !important;
  padding: 14px 16px !important;
}

.dipa-page-profilo_condominio .profile-data-details > summary:after {
  background: #e8edf4 !important;
  color: var(--dipa-ink) !important;
}

.dipa-page-profilo_condominio .condominio-info-item,
.dipa-page-profilo_condominio .condominio-info-item.piva {
  background: #ffffff !important;
  border: 1px solid var(--dipa-line) !important;
}

.dipa-page-profilo_condominio .condominio-info-item span {
  color: #69758a !important;
}

.dipa-page-profilo_condominio .condominio-info-item strong {
  color: var(--dipa-ink) !important;
}

.dipa-page-profilo_condominio .condominio-info-item.piva {
  background: #eef3ff !important;
  border-color: #bdcdfb !important;
}

.dipa-page-profilo_condominio .condominio-fattura-warning {
  background: #fff7ed !important;
  color: #8a3b12 !important;
  border-color: #f5c885 !important;
}

.dipa-page-profilo_condominio .condominio-hero-btn {
  background: #ffffff !important;
  color: var(--dipa-ink) !important;
  border: 1px solid var(--dipa-line) !important;
}

.dipa-page-profilo_condominio .condominio-hero-btn[href],
.dipa-page-profilo_condominio .condominio-actions-main a.condominio-hero-btn {
  background: #111827 !important;
  color: #ffffff !important;
  border-color: #111827 !important;
}

.dipa-page-profilo_condominio .ux-profile-summary,
.dipa-page-profilo_cliente .ux-profile-summary,
.dipa-page-dettaglio_gruppo .ux-profile-summary,
.event-work-summary {
  width: min(100% - 28px, 1240px) !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.event-work-summary {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(520px, .85fr);
  gap: 12px;
  align-items: stretch;
}

.event-work-main,
.event-work-metrics > div {
  background: #ffffff;
  border: 1px solid var(--dipa-line);
  border-radius: 16px;
  box-shadow: none;
}

.event-work-main {
  padding: 18px;
  border-left: 4px solid #111827;
}

.event-work-main span,
.event-work-metrics span {
  display: block;
  color: #69758a !important;
  font-size: 12px;
  font-weight: 950;
  text-transform: uppercase;
  margin-bottom: 8px;
}

.event-work-main strong {
  display: block;
  color: var(--dipa-ink) !important;
  font-size: clamp(24px, 3vw, 36px);
  line-height: 1.08;
  margin-bottom: 8px;
}

.event-work-main small {
  display: block;
  color: var(--dipa-ink-soft) !important;
  font-size: 14px;
  font-weight: 800;
}

.event-work-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.event-work-metrics > div {
  min-height: 96px;
  padding: 16px 18px;
}

.event-work-metrics strong {
  color: var(--dipa-ink) !important;
  font-size: clamp(22px, 2vw, 30px);
  line-height: 1.05;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

.event-work-metrics .attention {
  background: #fff7ed;
  border-color: #f5c885;
}

.event-work-metrics .attention span,
.event-work-metrics .attention strong {
  color: #9a3412 !important;
}

.event-work-metrics .ok {
  background: #ecfdf5;
  border-color: #a7f3d0;
}

.event-work-metrics .ok span,
.event-work-metrics .ok strong {
  color: #047857 !important;
}

.dipa-page-dettaglio_gruppo .dipa-event-title-strip {
  background: #ffffff !important;
  border: 1px solid var(--dipa-line) !important;
  border-radius: 16px !important;
  box-shadow: none !important;
  padding: 16px 18px !important;
}

.dipa-page-dettaglio_gruppo .dipa-event-title-strip h2,
.dipa-page-dettaglio_gruppo .dipa-event-title-strip p {
  color: var(--dipa-ink) !important;
}

.dipa-page-dettaglio_gruppo .dipa-event-title-strip p {
  color: var(--dipa-ink-soft) !important;
}

.dipa-page-dettaglio_gruppo .btn-whatsapp-primary {
  background: #16a34a !important;
  color: #ffffff !important;
  border: 1px solid #16a34a !important;
  box-shadow: none !important;
}

.dipa-page-dettaglio_gruppo .btn-action-row {
  background: #f3f6fa !important;
  color: var(--dipa-ink) !important;
  border: 1px solid var(--dipa-line) !important;
  box-shadow: none !important;
}

.dipa-page-dettaglio_gruppo .btn-action-row.delete,
.dipa-page-dettaglio_gruppo button[onclick*="cancellaInteroEvento"] {
  background: #fff5f5 !important;
  color: #b91c1c !important;
  border-color: #fecaca !important;
}

.dipa-page-dettaglio_gruppo .progressive-section,
.dipa-page-profilo_condominio .progressive-section,
.dipa-page-profilo_cliente .progressive-section {
  border-radius: 16px !important;
  border: 1px solid var(--dipa-line) !important;
  box-shadow: none !important;
}

.dipa-page-dettaglio_gruppo .progressive-section > summary,
.dipa-page-profilo_condominio .progressive-section > summary,
.dipa-page-profilo_cliente .progressive-section > summary {
  color: var(--dipa-ink) !important;
}

.dipa-page-dettaglio_gruppo .progressive-section > summary small,
.dipa-page-profilo_condominio .progressive-section > summary small,
.dipa-page-profilo_cliente .progressive-section > summary small {
  color: var(--dipa-ink-soft) !important;
}

@media (max-width: 980px) {
  .event-work-summary,
  .dipa-page-profilo_condominio .ux-profile-summary {
    grid-template-columns: 1fr !important;
  }

  .event-work-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .event-work-metrics {
    grid-template-columns: 1fr;
  }

  .event-work-metrics strong,
  .dipa-page-profilo_condominio .ux-summary-metrics strong,
  .dipa-page-profilo_cliente .ux-summary-metrics strong {
    font-size: 24px !important;
  }

  .dipa-page-profilo_condominio .profile-header {
    padding: 14px !important;
  }
}

/* Step25R final override — questo blocco deve restare in fondo al file */
.dipa-design-system {
  --dipa-layout-max: 1240px;
  --dipa-page-gutter: 28px;
}

.dipa-design-system .app-header,
.dipa-page-profilo_cliente .profile-hero,
.dipa-page-profilo_cliente .client-workdesk,
.dipa-page-profilo_cliente .client-flow-panel,
.dipa-page-profilo_cliente .ux-profile-summary,
.dipa-page-profilo_cliente .profile-mode-card,
.dipa-page-profilo_cliente .area-switch,
.dipa-page-profilo_cliente .area-dashboard,
.dipa-page-profilo_cliente .premium-section,
.dipa-page-profilo_cliente .history-container,
.dipa-page-profilo_cliente .stats-panel,
.dipa-page-profilo_cliente .context-tabs,
.dipa-page-profilo_cliente .integrity-alert,
.dipa-page-profilo_condominio .profile-header,
.dipa-page-profilo_condominio .condominio-priority-container,
.dipa-page-profilo_condominio .condominio-flow-panel,
.dipa-page-profilo_condominio .ux-profile-summary,
.dipa-page-profilo_condominio .progressive-section,
.dipa-page-profilo_condominio .section-card.progressive-section,
.dipa-page-dettaglio_gruppo .dipa-event-detail-shell,
.dipa-page-dettaglio_gruppo .event-work-summary,
.dipa-page-dettaglio_gruppo .progressive-section {
  width: min(calc(100% - var(--dipa-page-gutter)), var(--dipa-layout-max)) !important;
  max-width: var(--dipa-layout-max) !important;
  margin-left: auto !important;
  margin-right: auto !important;
  box-sizing: border-box !important;
}

.dipa-page-profilo_cliente .profile-page,
.dipa-page-profilo_condominio .container,
.dipa-page-dettaglio_gruppo .dettaglio-gruppo-container {
  max-width: none !important;
  width: 100% !important;
}

.dipa-page-profilo_cliente .profile-hero {
  background: #ffffff !important;
  color: var(--dipa-ink) !important;
  border: 1px solid var(--dipa-line) !important;
  border-radius: 16px !important;
  box-shadow: 0 14px 36px rgba(16,24,39,.06) !important;
  overflow: hidden !important;
}

.dipa-page-profilo_cliente .profile-hero *,
.dipa-page-profilo_cliente .profile-hero h1,
.dipa-page-profilo_cliente .profile-hero p {
  color: var(--dipa-ink) !important;
  text-shadow: none !important;
}

.dipa-page-profilo_cliente .profile-hero p {
  color: var(--dipa-ink-soft) !important;
}

.dipa-page-profilo_cliente .profile-hero-inner {
  padding: 28px 28px 22px !important;
  text-align: left !important;
}

.dipa-page-profilo_cliente .profile-hero-inner > div {
  display: grid !important;
  grid-template-columns: 72px minmax(0, 1fr) !important;
  grid-template-areas:
    "avatar title"
    "avatar meta"
    "actions actions" !important;
  gap: 0 18px !important;
  align-items: center !important;
}

.dipa-page-profilo_cliente .profile-avatar {
  grid-area: avatar !important;
  width: 58px !important;
  height: 58px !important;
  margin: 0 !important;
  border-radius: 14px !important;
  background: #eef3f8 !important;
  color: #334155 !important;
  border: 1px solid #d8e2ed !important;
  font-size: 15px !important;
  font-weight: 950 !important;
}

.dipa-page-profilo_cliente .profile-hero h1 {
  grid-area: title !important;
  margin: 0 !important;
  font-size: clamp(30px, 3vw, 42px) !important;
  line-height: 1.06 !important;
}

.dipa-page-profilo_cliente .profile-hero p {
  grid-area: meta !important;
  margin: 4px 0 0 !important;
  font-size: 15px !important;
  font-weight: 800 !important;
}

.dipa-page-profilo_cliente .hero-actions {
  grid-area: actions !important;
  margin-top: 22px !important;
  padding-top: 18px !important;
  border-top: 1px solid #e8edf4 !important;
  display: flex !important;
  justify-content: flex-start !important;
  align-items: center !important;
  gap: 10px !important;
}

.dipa-page-profilo_cliente .profile-hero .hero-btn {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: auto !important;
  min-width: 118px !important;
  min-height: 42px !important;
  padding: 0 16px !important;
  background: #f3f6fa !important;
  color: var(--dipa-ink) !important;
  border: 1px solid var(--dipa-line) !important;
  border-radius: 12px !important;
  font-size: 14px !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  overflow: visible !important;
  text-indent: 0 !important;
}

.dipa-page-profilo_cliente .profile-hero .hero-btn[href^="tel"],
.dipa-page-profilo_cliente .profile-hero .hero-btn[href*="open=festa"],
.dipa-page-profilo_cliente .profile-hero .hero-btn[onclick*="apriCorsoClienteSheet"] {
  background: #111827 !important;
  color: #ffffff !important;
  border-color: #111827 !important;
}

.dipa-page-profilo_cliente .profile-hero .hero-btn.danger {
  background: #fff5f5 !important;
  color: #b91c1c !important;
  border-color: #fecaca !important;
}

.dipa-page-profilo_condominio .filter-pills {
  display: flex !important;
  gap: 8px !important;
  align-items: center !important;
  margin: 0 0 14px !important;
  padding: 0 !important;
}

.dipa-page-profilo_condominio .filter-pill {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  min-height: 38px !important;
  padding: 0 14px !important;
  background: #ffffff !important;
  color: var(--dipa-ink-soft) !important;
  border: 1px solid var(--dipa-line) !important;
  border-radius: 999px !important;
  box-shadow: none !important;
}

.dipa-page-profilo_condominio .filter-pill.active {
  background: #111827 !important;
  color: #ffffff !important;
  border-color: #111827 !important;
}

.status-dot {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  display: inline-block;
  flex: 0 0 auto;
  background: #94a3b8;
}

.status-dot.paid { background: #16a34a; }
.status-dot.due { background: #dc2626; }
.status-dot.todo { background: #94a3b8; }

.dipa-page-profilo_condominio .history-period-bar {
  margin: 12px 0 12px !important;
  padding: 14px !important;
  display: grid !important;
  grid-template-columns: 1.1fr .7fr auto auto !important;
  gap: 10px !important;
  align-items: end !important;
  background: #f7f9fc !important;
  border: 1px solid var(--dipa-line) !important;
  border-radius: 16px !important;
}

.dipa-page-profilo_condominio .history-period-bar label {
  grid-column: 1 / -1;
  margin: 0 !important;
  color: #69758a !important;
}

.dipa-page-profilo_condominio .history-period-bar select,
.dipa-page-profilo_condominio .history-period-bar input,
.dipa-page-profilo_condominio .assembly-search-row .form-control {
  height: 44px !important;
  min-height: 44px !important;
}

.dipa-page-profilo_condominio .assembly-search-row {
  display: grid !important;
  grid-template-columns: minmax(240px, 1fr) minmax(220px, .65fr) auto !important;
  gap: 10px !important;
  margin: 0 0 14px !important;
}

.dipa-page-profilo_condominio .assembly-search-row .form-control {
  max-width: none !important;
}

.dipa-page-profilo_condominio .invoice-like-row {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(180px, auto) !important;
  align-items: stretch !important;
  padding: 16px 18px !important;
  border-radius: 14px !important;
  box-shadow: none !important;
}

.dipa-page-profilo_condominio .invoice-like-main h3 {
  font-size: 17px !important;
}

.dipa-page-profilo_condominio .invoice-like-status {
  align-items: center !important;
}

.dipa-page-profilo_condominio .invoice-badge {
  min-height: 26px !important;
  padding: 0 10px !important;
  border-radius: 999px !important;
}

.dipa-page-profilo_condominio .invoice-like-side {
  justify-content: center !important;
  min-width: 180px !important;
}

@media (max-width: 980px) {
  .dipa-page-profilo_condominio .history-period-bar,
  .dipa-page-profilo_condominio .assembly-search-row,
  .dipa-page-profilo_condominio .invoice-like-row {
    grid-template-columns: 1fr !important;
  }

  .dipa-page-profilo_cliente .profile-hero-inner > div {
    grid-template-columns: 1fr !important;
    grid-template-areas:
      "avatar"
      "title"
      "meta"
      "actions" !important;
  }

  .dipa-page-profilo_cliente .profile-avatar {
    margin-bottom: 12px !important;
  }

  .dipa-page-profilo_cliente .hero-actions {
    align-items: stretch !important;
  }

  .dipa-page-profilo_cliente .profile-hero .hero-btn {
    flex: 1 1 170px !important;
  }
}

@media (max-width: 640px) {
  .dipa-design-system {
    --dipa-page-gutter: 20px;
  }

  .dipa-page-profilo_cliente .profile-hero-inner {
    padding: 20px !important;
  }

  .dipa-page-profilo_cliente .profile-hero .hero-btn {
    width: 100% !important;
    flex-basis: 100% !important;
  }
}
