:root{--ph-button-ink:#10211b;--ph-button-lime:#d9ff63;--ph-button-coral:#ff7458;--ph-button-paper:#fbfaf5;--ph-button-shadow:0 10px 24px rgba(16,33,27,.14);--ph-button-shadow-hover:0 15px 32px rgba(16,33,27,.2)}

/* Base condivisa: mantiene leggibili anche i controlli piccoli senza uniformarli tutti. */
:where(button,.primary,.pill,.legal-button,[role="button"]){-webkit-tap-highlight-color:transparent;cursor:pointer;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease,color .18s ease,opacity .18s ease}
:where(button,.primary,.pill,.legal-button,[role="button"]):focus-visible{outline:3px solid rgba(255,116,88,.48);outline-offset:3px}
:where(button,.primary,.pill,.legal-button,[role="button"]):disabled{cursor:not-allowed;opacity:.48;box-shadow:none;transform:none}

/* Azioni primarie dell’area pubblica e gestionale. */
.login-box form button,
.primary,
.panel-form>button,
.edit-card>button,
.new-cycle button,
.question-submit,
.anamnesis-step-actions button:not(.secondary),
.security-card form button,
.support-form>section>button,
.support-admin-body form button,
.settings-view-action button,
.settings-save button,
.settings-account footer button,
.membership-card button,
.schedule-card button,
.test-entry-form>button,
.reference-trainer-form button,
.feedback-filters button,
.floor-feedback-card footer button,
.exercise-feedback-editor button,
.map-placeholder button{
  display:inline-flex;min-height:46px;align-items:center;justify-content:center;gap:18px;
  border:1px solid transparent;border-radius:999px;padding:0 20px;
  color:#fff;background:var(--ph-button-ink);box-shadow:var(--ph-button-shadow);
  font-size:.7rem;font-weight:850;line-height:1.1;letter-spacing:-.01em
}

/* CTA verde: stessa costruzione, gerarchia più evidente. */
.demo-request form>button,
.questionnaire-savebar button,
.floor-feedback-compose button{
  display:inline-flex;min-height:48px;align-items:center;justify-content:space-between;gap:22px;
  border:1px solid rgba(16,33,27,.08);border-radius:999px;padding:0 21px;
  color:var(--ph-button-ink);background:var(--ph-button-lime);box-shadow:0 10px 25px rgba(126,157,37,.2);
  font-weight:900;letter-spacing:-.01em
}

/* Secondarie: superficie leggera invece del vecchio rettangolo vuoto. */
.secondary,
.primary.secondary,
.inline-actions a,
.inline-actions button,
.feedback-filters a,
.map-placeholder a,
.invite-history button{
  display:inline-flex;min-height:40px;align-items:center;justify-content:center;gap:12px;
  border:1px solid rgba(16,33,27,.18);border-radius:999px;padding:0 15px;
  color:var(--ph-button-ink);background:rgba(251,250,245,.78);box-shadow:0 5px 14px rgba(16,33,27,.055);
  font-size:.62rem;font-weight:820
}
.anamnesis-step-actions .secondary{min-height:46px;padding-inline:19px}

/* Operazioni compatte: moderne, ma senza rubare attenzione al contenuto. */
.invite-ready button,
.editor-row button,
.test-history button{
  border-radius:13px;box-shadow:0 6px 15px rgba(16,33,27,.1);font-weight:850
}

/* Azioni distruttive sempre riconoscibili e meno facili da premere per errore. */
.delete,.danger,.danger-button,.permanent-delete-panel form>button{
  border-color:rgba(156,62,48,.24)!important;color:#8f3327!important;background:#fff1ed!important;
  box-shadow:0 6px 16px rgba(143,51,39,.08)!important
}

/* Piccoli affinamenti sulle pagine pubbliche. */
.demo-nav>a:last-child{display:inline-flex;align-items:center;border-color:rgba(16,33,27,.14);background:rgba(255,255,255,.38);box-shadow:0 6px 18px rgba(16,33,27,.06)}
.login-box form button span,.demo-request form>button span{color:var(--ph-button-lime)}
.demo-request form>button span{color:var(--ph-button-ink)}

/* Salvataggio seduta cliente: resta sempre sopra la navigazione mobile. */
.workout-form{padding-bottom:92px}
.workout-save-bar{
  position:fixed;z-index:60;right:0;bottom:0;left:252px;
  display:flex;align-items:center;justify-content:flex-end;gap:18px;
  border-top:1px solid rgba(16,33,27,.14);padding:11px 24px;
  background:rgba(242,239,229,.96);box-shadow:0 -10px 30px rgba(16,33,27,.09);
  backdrop-filter:blur(16px)
}
.workout-save-bar>span{color:#63716a;font-size:.6rem}
.workout-save-bar>button{
  display:inline-flex!important;visibility:visible!important;opacity:1!important;
  min-width:270px;min-height:48px;align-items:center;justify-content:center;
  border:1px solid rgba(16,33,27,.08);border-radius:999px;padding:0 21px;
  color:var(--ph-button-ink);background:var(--ph-button-lime);
  box-shadow:0 10px 25px rgba(126,157,37,.22);font-weight:900
}
.workout-submit-panel{
  position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:24px;
  margin:22px 0 12px;border:1px solid rgba(16,33,27,.16);border-radius:22px;padding:18px 20px;
  color:#fff;background:var(--ph-button-ink);box-shadow:0 16px 38px rgba(16,33,27,.16)
}
.workout-submit-panel>span{display:grid;gap:4px;color:rgba(255,255,255,.68);font-size:.62rem}
.workout-submit-panel>span>b{color:#fff;font-size:.75rem}
.workout-submit-panel>button{
  display:inline-flex!important;visibility:visible!important;opacity:1!important;flex:0 0 auto;
  min-height:50px;align-items:center;justify-content:center;border:1px solid rgba(16,33,27,.08);
  border-radius:999px;padding:0 22px;color:var(--ph-button-ink);background:var(--ph-button-lime);
  box-shadow:0 10px 25px rgba(126,157,37,.22);font-weight:900
}

@media(hover:hover){
  .login-box form button:hover,.primary:hover,.panel-form>button:hover,.edit-card>button:hover,.new-cycle button:hover,.question-submit:hover,.anamnesis-step-actions button:hover,.security-card form button:hover,.support-form>section>button:hover,.support-admin-body form button:hover,.settings-view-action button:hover,.settings-save button:hover,.settings-account footer button:hover,.membership-card button:hover,.schedule-card button:hover,.test-entry-form>button:hover,.reference-trainer-form button:hover,.feedback-filters button:hover,.floor-feedback-card footer button:hover,.exercise-feedback-editor button:hover,.map-placeholder button:hover,.demo-request form>button:hover,.questionnaire-savebar button:hover,.floor-feedback-compose button:hover{
    transform:translateY(-2px);box-shadow:var(--ph-button-shadow-hover)
  }
  .secondary:hover,.primary.secondary:hover,.inline-actions a:hover,.inline-actions button:hover,.feedback-filters a:hover,.map-placeholder a:hover,.invite-history button:hover,.demo-nav>a:last-child:hover{
    border-color:rgba(16,33,27,.42);background:#fff;box-shadow:0 9px 22px rgba(16,33,27,.1);transform:translateY(-2px)
  }
  .delete:hover,.danger:hover,.danger-button:hover,.permanent-delete-panel form>button:hover{border-color:rgba(156,62,48,.46)!important;background:#ffe3da!important;box-shadow:0 10px 22px rgba(143,51,39,.13)!important}
}
:where(.login-box form button,.primary,.panel-form>button,.edit-card>button,.new-cycle button,.question-submit,.anamnesis-step-actions button,.security-card form button,.support-form>section>button,.support-admin-body form button,.settings-view-action button,.settings-save button,.settings-account footer button,.membership-card button,.schedule-card button,.test-entry-form>button,.reference-trainer-form button,.feedback-filters button,.floor-feedback-card footer button,.exercise-feedback-editor button,.map-placeholder button,.demo-request form>button,.questionnaire-savebar button,.floor-feedback-compose button,.secondary,.inline-actions a,.inline-actions button,.feedback-filters a,.map-placeholder a,.invite-history button):active{transform:translateY(0) scale(.985);box-shadow:0 4px 10px rgba(16,33,27,.1)}

@media(max-width:900px){
  .workout-form{padding-bottom:180px}
  .workout-save-bar{right:12px;bottom:88px;left:12px;align-items:stretch;flex-direction:column;gap:7px;border:1px solid rgba(16,33,27,.14);border-radius:18px;padding:11px;text-align:center;box-shadow:0 14px 35px rgba(16,33,27,.2)}
  .workout-save-bar>button{width:100%;min-width:0}
  .workout-submit-panel{align-items:stretch;flex-direction:column;gap:13px;margin-bottom:18px;padding:16px}
  .workout-submit-panel>button{width:100%}
}
@media(max-width:640px){.panel-form>button,.question-submit,.demo-request form>button,.settings-save button{width:100%}.demo-nav>a:last-child{min-height:40px;padding-inline:14px}.workout-save-bar>span{font-size:.56rem}}

/* Stato delle giornate e feedback fine ciclo — 2026-09-04. */
.current-week-note{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-top:30px;border:1px solid rgba(16,33,27,.14);border-radius:18px;padding:15px 18px;background:rgba(255,255,255,.58)}
.current-week-note b{font-size:.78rem}.current-week-note span{color:#64726b;font-size:.64rem;text-align:right}
.workout-day-status{display:inline-flex;min-height:42px;align-items:center;border-radius:999px;padding:10px 16px;color:rgba(255,255,255,.65);background:rgba(255,255,255,.1);font-size:.62rem;font-weight:850}
.workout-day-status.is-done{color:#24352f;background:#d9dedb}
.workout-day.is-completed>header,.workout-day.is-locked>header{background:#30433c}
.workout-day.is-completed>ol,.workout-day.is-locked>ol{opacity:.72}
.date-card strong{font-size:1.05rem;letter-spacing:-.02em}.date-card small{color:#68766f;font-size:.52rem;font-weight:600;letter-spacing:0}
.question[data-question-type="scala"] .choice-row{display:grid;grid-template-columns:repeat(5,minmax(42px,54px));gap:10px}
.question[data-question-type="scala"] .choice-row label span{display:grid;width:48px;height:48px;place-items:center;padding:0;border-radius:50%;font-size:.72rem;font-weight:850;cursor:pointer}
.question.has-error{margin-inline:-12px;border:1px solid #e86249;border-radius:14px;padding-inline:12px;background:#fff2ee}
.question.has-error legend{color:#a93622}.question-field-error{margin:9px 0 0!important;color:#a93622!important;font-size:.6rem!important;font-weight:800}
.questionnaire-error-summary{margin:20px 0;border:1px solid #e86249;border-radius:15px;padding:14px 16px;color:#8d2f1e;background:#ffe0d8;font-size:.68rem;font-weight:800}
@media(max-width:640px){.current-week-note{align-items:flex-start;flex-direction:column;gap:6px}.current-week-note span{text-align:left}.question[data-question-type="scala"] .choice-row{grid-template-columns:repeat(5,1fr);gap:6px}.question[data-question-type="scala"] .choice-row label span{width:100%;height:auto;aspect-ratio:1;max-width:48px}.workout-day-status{padding-inline:12px;font-size:.55rem}}
@media(prefers-reduced-motion:reduce){:where(button,.primary,.pill,.legal-button,[role="button"]){transition:none!important}}

/* Consenso salute: azioni coerenti con il linguaggio visivo dell'app. */
.privacy-action-form{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  margin:0 20px 20px;border:1px solid rgba(16,33,27,.14);border-radius:18px;padding:16px 18px;
  background:#f4f2eb;box-shadow:0 10px 28px rgba(16,33,27,.06)
}
.privacy-action-form p{max-width:780px;margin:0;color:#53635c;font-size:.72rem;line-height:1.55}
.privacy-action-form button{
  flex:0 0 auto;min-height:44px;border:1px solid rgba(16,33,27,.18);border-radius:999px;padding:0 19px;
  color:var(--ph-button-ink);background:#fff;font:inherit;font-size:.64rem;font-weight:850;
  box-shadow:0 7px 18px rgba(16,33,27,.09);cursor:pointer;outline:0
}
.privacy-action-form.is-revoke button{border-color:rgba(143,51,39,.24);color:#8f3327;background:#fff1ed}
.privacy-action-form.is-restore button{color:#fff;background:var(--ph-button-ink)}
.privacy-action-form button:focus-visible{outline:3px solid rgba(207,255,76,.72);outline-offset:3px}
@media(hover:hover){
  .privacy-action-form button:hover{transform:translateY(-2px);border-color:rgba(16,33,27,.38);box-shadow:var(--ph-button-shadow-hover)}
  .privacy-action-form.is-revoke button:hover{border-color:rgba(143,51,39,.5);background:#ffe3da}
}
@media(max-width:720px){.privacy-action-form{align-items:stretch;flex-direction:column;gap:13px;margin-inline:12px}.privacy-action-form button{width:100%}}

/* Contrasto accessibile e coerente per tutte le azioni su fondo verde lime. */
:is(
  .workout-day>header>a,
  .demo-request form>button,
  .questionnaire-savebar button,
  .floor-feedback-compose button,
  .workout-save-bar>button,
  .workout-submit-panel>button,
  .questionnaire-submit-bar .question-submit,
  .restore-button,
  .anamnesis-edit-cta,
  .mobile-platform-switch,
  .landing-final-button,
  .legal-footer-contact
),
:is(
  .workout-day>header>a,
  .demo-request form>button,
  .questionnaire-savebar button,
  .floor-feedback-compose button,
  .workout-save-bar>button,
  .workout-submit-panel>button,
  .questionnaire-submit-bar .question-submit,
  .restore-button,
  .anamnesis-edit-cta,
  .mobile-platform-switch,
  .landing-final-button,
  .legal-footer-contact
) * {
  color:var(--ph-button-ink,#10211b)!important;
  text-shadow:none!important;
}

:is(
  .workout-day>header>a,
  .demo-request form>button,
  .questionnaire-savebar button,
  .floor-feedback-compose button,
  .workout-save-bar>button,
  .workout-submit-panel>button,
  .questionnaire-submit-bar .question-submit,
  .restore-button,
  .anamnesis-edit-cta,
  .mobile-platform-switch,
  .landing-final-button,
  .legal-footer-contact
):is(:hover,:focus-visible) {
  color:var(--ph-button-ink,#10211b)!important;
  filter:saturate(.92) brightness(.98);
}

.choice-row input:checked+span,
.choice-grid input:checked+span,
.confirm input:checked+span {
  color:var(--ph-button-ink,#10211b)!important;
  text-shadow:none!important;
}

/* Audit pulsanti: misure coerenti e nessuna fuoriuscita dai contenitori. */
:where(button,.primary,.secondary,.pill,[role="button"],a[class*="button"],.inline-actions a,.feedback-filters a){
  box-sizing:border-box;
  max-width:100%;
  min-width:0;
  overflow-wrap:anywhere;
}
:where(.inline-actions,.feedback-filters,.management-action-row,.settings-view-action,.questionnaire-savebar,.anamnesis-step-actions){
  min-width:0;
  flex-wrap:wrap;
}
.sheet-bulk-save>button,.sheet-tests-toggle,.sheet-tests-drawer button,.sheet-tests-drawer>footer a,.exercise-drag-handle,.exercise-reorder-controls [data-exercise-move]{
  transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease,border-color .18s ease;
}
.sheet-bulk-save>button:focus-visible,.sheet-tests-toggle:focus-visible,.sheet-tests-drawer button:focus-visible,.sheet-tests-drawer>footer a:focus-visible,.exercise-drag-handle:focus-visible,.exercise-reorder-controls [data-exercise-move]:focus-visible,.exercise-reorder-controls select:focus-visible{
  outline:3px solid rgba(207,255,76,.78);
  outline-offset:3px;
}
@media(hover:hover){
  .sheet-bulk-save>button:hover,.sheet-tests-toggle:hover,.sheet-tests-drawer>footer a:hover{transform:translateY(-2px);box-shadow:var(--ph-button-shadow-hover)}
  .sheet-tests-drawer>header button:hover{border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.1)}
  .exercise-drag-handle:hover,.exercise-reorder-controls [data-exercise-move]:not(:disabled):hover{border-color:rgba(16,33,27,.38);background:#d9ff63;transform:translateY(-1px)}
}
@media(max-width:720px){
  :where(.panel-form>button,.new-cycle>button,.question-submit,.questionnaire-savebar button,.floor-feedback-compose button,.settings-save button,.support-form>section>button){
    width:100%;
    white-space:normal;
  }
  :where(.inline-actions,.feedback-filters,.management-action-row)>*{flex:1 1 145px;text-align:center;justify-content:center}
  :where(.editor-row,.test-history form,.floor-feedback-card footer form,.support-form,.panel-form){min-width:0}
}

/* 2026-10-04: controlli compatti e azioni distruttive esplicite. */
.compact-text-action,.button-visible-fallback{font-weight:900;letter-spacing:.01em;white-space:nowrap}
.tenant-delete-panel{margin:38px 0 0;border:1px solid rgba(154,55,42,.28);border-radius:24px;background:#fff8f5;color:#10211b;overflow:hidden}
.tenant-delete-panel>summary{padding:18px 22px;color:#8d3328;font-weight:900;cursor:pointer}.tenant-delete-panel>div{padding:0 22px 22px}.tenant-delete-panel h2{margin:6px 0 8px}.tenant-delete-panel p{max-width:780px;color:#68766f;line-height:1.55}.tenant-delete-panel form{display:grid;max-width:760px;gap:14px;margin-top:20px}.tenant-delete-panel label{display:grid;gap:7px;font-size:.76rem;font-weight:800}.tenant-delete-panel label.check{display:flex;align-items:flex-start;gap:10px}.tenant-delete-panel input[type="text"],.tenant-delete-panel input:not([type]){box-sizing:border-box;width:100%;min-height:48px;padding:0 14px;border:1px solid #c9d0cb;border-radius:14px;background:#fff;font:inherit}.tenant-delete-panel .danger-action{min-height:48px;border:1px solid #8d3328;border-radius:14px;background:#8d3328;color:#fff;font-weight:900;cursor:pointer}.tenant-delete-panel .danger-action:hover{background:#74271f;color:#fff}
