/**
 * Resident mobile polish (Fase 2) — CSS only / progressive enhancement.
 * Nessuna logica di autorizzazione: i guard restano server-side.
 */

/* --- Shared strip --- */
.res-mobile-strip {
  display: none;
}
/* App nativa + tablet touch (iPad Pro >1024px): strip sempre visibile */
html.cap-native .res-mobile-strip,
html.cap-ios .res-mobile-strip {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0 0 var(--mobile-gap, 12px);
  padding: 12px 14px;
  border-radius: var(--mobile-card-radius, 12px);
  border: 1px solid rgba(148, 163, 184, 0.22);
  background: linear-gradient(180deg, rgba(30, 41, 59, 0.96), rgba(15, 23, 42, 0.96));
}
html.cap-native .res-mobile-strip__title,
html.cap-ios .res-mobile-strip__title {
  font-size: var(--text-lg, 1.125rem);
  font-weight: 700;
  color: var(--text);
}
html.cap-native .res-mobile-strip__meta,
html.cap-ios .res-mobile-strip__meta {
  font-size: var(--text-xs, 0.8125rem);
  color: var(--muted);
}
html.cap-native .bacheca-hub-page > h1,
html.cap-native .bacheca-section-page > h1,
html.cap-native .bacheca-full-page > h1,
html.cap-native .prenotazioni-hub-page > h1,
html.cap-native .bacheca-section-page .bacheca-section-desktop-title,
html.cap-ios .bacheca-hub-page > h1,
html.cap-ios .bacheca-section-page > h1,
html.cap-ios .bacheca-full-page > h1,
html.cap-ios .prenotazioni-hub-page > h1,
html.cap-ios .bacheca-section-page .bacheca-section-desktop-title {
  display: none !important;
}
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse), html.cap-native {
  .res-mobile-strip {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0 0 var(--mobile-gap, 12px);
    padding: 12px 14px;
    border-radius: var(--mobile-card-radius, 12px);
    border: 1px solid rgba(148, 163, 184, 0.22);
    background: linear-gradient(180deg, rgba(30, 41, 59, 0.96), rgba(15, 23, 42, 0.96));
  }
  .res-mobile-strip__title {
    font-size: var(--text-lg, 1.125rem);
    font-weight: 700;
    color: var(--text);
  }
  .res-mobile-strip__meta {
    font-size: var(--text-xs, 0.8125rem);
    color: var(--muted);
  }
  .res-mobile-strip__pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 6px;
    min-height: 28px;
    padding: 4px 10px;
    border-radius: 999px;
    border: 1px solid rgba(148, 163, 184, 0.28);
    font-size: var(--text-xs, 0.8125rem);
    color: var(--muted);
    width: fit-content;
  }
  .res-mobile-strip__pill strong { color: var(--text); }
}

/* --- Scadenze --- */
.scadenza-intro { text-align: justify; }
.scadenza-custom-main:hover td { filter: brightness(1.05); }
.scadenza-custom-detail-row td { border-top: none !important; }

/* Scadenze — utility markup (Fase 5) */
.scadenza-mark-select {
  max-width: 100%;
}
.scadenza-custom-actions {
  display: flex;
  margin-top: 12px;
  justify-content: flex-end;
}
.table-scadenze th,
.table-scadenze td { text-align: center; vertical-align: middle; }
.table-scadenze th.text-left-cell-th,
.table-scadenze td.text-left-cell { text-align: left; }
.scadenza-voce-line {
  display: inline;
  border-bottom: 2px solid transparent;
  padding-bottom: 2px;
}
.scadenza-voce-line--paid { border-bottom-color: #22c55e; }
.scadenza-voce-line--overdue { border-bottom-color: #ef4444; }
.scadenza-stato--paid { color: #22c55e; font-weight: 600; }
.scadenza-stato--overdue { color: #ef4444; font-weight: 600; }
.scadenza-cal-link { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.scadenza-cal-link--icon-only { justify-content: center; min-width: 36px; padding: 0 4px; color: inherit; }
.scadenza-cal-link--icon-only:hover { color: #bfdbfe; }
.scadenza-cal-icon { flex-shrink: 0; vertical-align: middle; }
.scadenza-iban-note { margin: 8px 0 12px 0; text-align: justify; }
.scadenza-iban-note--after { margin-top: 0; }
.scadenza-iban-condo { display: inline-block; margin-top: 4px; }
.scadenze-elenco-card__head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 4px;
}
.scadenze-elenco-card__head .ui-title-flush-top { margin: 0; flex: 1; min-width: 0; }
.scadenze-elenco-card__add { flex-shrink: 0; }
.scadenza-iban-blocks {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 12px auto 16px;
  max-width: 520px;
}
.scadenza-iban-block { text-align: center; }
.scadenza-iban-block__condo {
  display: block;
  font-size: var(--text-xs, 0.75rem);
  color: #94a3b8;
  margin-bottom: 6px;
}
.scadenza-iban-copy {
  display: block;
  width: 100%;
  padding: 12px 16px;
  border: 1px solid rgba(96, 165, 250, 0.45);
  border-radius: 10px;
  background: rgba(30, 58, 138, 0.22);
  color: #e2e8f0;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  font-size: 0.95rem;
  letter-spacing: 0.03em;
  cursor: pointer;
  text-align: center;
  line-height: 1.35;
}
.scadenza-iban-copy:hover { border-color: #60a5fa; }
.scadenza-iban-copy.is-copied { border-color: #22c55e; color: #86efac; }
.scadenza-iban-block__fallback {
  display: inline-block;
  padding: 10px 14px;
  border-radius: 10px;
  border: 1px dashed rgba(148, 163, 184, 0.5);
  color: #94a3b8;
}
.scadenze-save-dates-bar {
  display: flex;
  justify-content: center;
  margin: 4px 0 18px;
}
.scadenze-save-dates-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.scadenza-intro-details {
  margin: 0 0 14px;
  padding: 10px 12px;
  border-radius: var(--mobile-card-radius, 12px);
  border: 1px solid rgba(96, 165, 250, 0.4);
  border-left: 4px solid #60a5fa;
  background: rgba(30, 58, 138, 0.22);
  box-shadow: 0 0 0 1px rgba(96, 165, 250, 0.08);
}
.scadenza-intro-details > summary {
  cursor: pointer;
  font-weight: 600;
  list-style: none;
  min-height: var(--mobile-touch-min, 44px);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  color: #bfdbfe;
}
.scadenza-intro-details > summary::-webkit-details-marker { display: none; }
.scadenza-intro-details__chev {
  flex-shrink: 0;
  color: #93c5fd;
  transition: transform 0.2s ease;
}
.scadenza-intro-details[open] > summary { margin-bottom: 8px; }
.scadenza-intro-details[open] .scadenza-intro-details__chev {
  transform: rotate(180deg);
}
.scadenza-top5-mobile-card {
  display: none;
}
.scadenza-top5-mobile {
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  gap: 8px;
  flex-direction: column;
}
.scadenza-top5-mobile__item {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 12px 14px;
  border-radius: var(--mobile-card-radius, 12px);
  border: 1px solid rgba(148, 163, 184, 0.22);
  background: rgba(15, 23, 42, 0.55);
}
.scadenza-top5-mobile__title { font-weight: 650; color: var(--text); }
.scadenza-top5-mobile__meta { font-size: var(--text-xs, 0.8125rem); color: var(--muted); }

@media (max-width: 640px) {
  .table-scadenze th.text-left-cell-th,
  .table-scadenze td.text-left-cell {
    min-width: 13.5rem;
    max-width: min(78vw, 22rem);
  }
}

@media (max-width: 1024px), html.cap-native {
  /* Su mobile: card default, nascondi toggle tabella (resta accessibile desktop) */
  .scadenze-elenco-root .tickets-list-toolbar {
    display: none;
  }
  .scadenze-elenco-root.tickets-list-root--view-table .tickets-view-panel--table,
  .scadenze-elenco-root .tickets-view-panel--table {
    display: none !important;
  }
  .scadenze-elenco-root .tickets-view-panel--cards {
    display: block !important;
  }
  .scadenze-desktop-top5 { display: none; }
  .scadenza-top5-mobile-card { display: block; }
  .scadenza-top5-mobile { display: flex; }
  .scadenza-page > h1,
  .scadenza-page[data-resident-mobile="fornitore-scadenze"] > h1 { display: none; }
  .guest-mobile-page[data-guest-mobile="privacy"] > h1 { display: none; }
  .scadenza-custom-add-form input,
  .scadenza-custom-add-form select,
  .scadenza-custom-add-form textarea {
    min-height: var(--mobile-touch-min, 44px);
  }
  .scadenza-custom-add-form .ui-form-actions .btn {
    min-height: var(--mobile-touch-min, 44px);
  }
}

/* --- Segnala / Nuova richiesta --- */
.segnala-mobile-page .card.narrow,
.ticket-new-mobile-page .card.narrow {
  max-width: 560px;
}
.segnala-steps,
.ticket-new-steps {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
@media (max-width: 1024px), html.cap-native {
  .segnala-mobile-page > h1,
  .ticket-new-mobile-page > h1 { display: none; }
  .segnala-mobile-page .card.narrow,
  .ticket-new-mobile-page .card.narrow {
    max-width: none;
    margin: 0;
  }
  .segnala-mobile-page input,
  .segnala-mobile-page select,
  .segnala-mobile-page textarea,
  .ticket-new-mobile-page input,
  .ticket-new-mobile-page select,
  .ticket-new-mobile-page textarea {
    min-height: var(--mobile-touch-min, 44px);
    font-size: 16px; /* evita zoom iOS */
  }
  .segnala-mobile-page textarea,
  .ticket-new-mobile-page textarea {
    min-height: 120px;
  }
  .segnala-mobile-page .btn,
  .ticket-new-mobile-page .btn {
    width: 100%;
    min-height: var(--mobile-touch-min, 44px);
  }
}

/* --- Prenotazioni hub / Bacheca hub --- */
@media (max-width: 1024px), (max-width: 1366px) and (hover: none) and (pointer: coarse), html.cap-native {
  .prenotazioni-hub-page > h1,
  .bacheca-hub-page > h1,
  .bacheca-section-page > h1,
  .bacheca-full-page > h1,
  .bacheca-section-page .bacheca-section-desktop-title { display: none; }
  .condominio-hub-card {
    min-height: 96px;
  }
  .condominio-doc-search-row {
    flex-direction: column;
    align-items: stretch;
  }
  /* Evita che flex:1 in colonna allunghi verticalmente l'input ricerca */
  .condominio-doc-search-row .input,
  .condominio-doc-search-row input[type="search"] {
    flex: 0 0 auto;
    width: 100%;
    min-height: var(--mobile-touch-min, 44px);
    height: var(--mobile-touch-min, 44px);
    max-height: 48px;
    box-sizing: border-box;
  }
  .condominio-doc-search-row .btn {
    width: 100%;
    min-height: var(--mobile-touch-min, 44px);
  }
}

/* --- Sondaggi --- */
.survey-back-link-wrap {
  margin: 0 0 14px;
}
.survey-back-link {
  color: #93c5fd;
  font-size: var(--text-sm, 0.875rem);
  font-weight: 600;
}
.survey-progress {
  display: none;
}
@media (max-width: 1024px), html.cap-native {
  .survey-progress {
    display: block;
    margin: 0 0 12px;
  }
  .survey-progress__track {
    height: 6px;
    border-radius: 999px;
    background: rgba(148, 163, 184, 0.2);
    overflow: hidden;
  }
  .survey-progress__fill {
    height: 100%;
    width: var(--survey-progress, 0%);
    background: linear-gradient(90deg, #38bdf8, #60a5fa);
    border-radius: 999px;
  }
  .survey-progress__label {
    margin-top: 6px;
    font-size: var(--text-xs, 0.8125rem);
    color: var(--muted);
  }
  .survey-participate-actions .btn {
    width: 100%;
    min-height: var(--mobile-touch-min, 44px);
  }
  .survey-participate-question {
    scroll-margin-top: 12px;
  }
}

.survey-property-switch-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.survey-property-switch-list > li {
  margin: 0;
  padding: 0;
}
.survey-property-switch-list .button {
  display: block;
  width: 100%;
  box-sizing: border-box;
  text-align: left;
}
.survey-property-switch-card {
  margin-bottom: 12px;
}
.survey-participate-property {
  margin: 4px 0 0;
}

/* --- Assemblea attesa tabs (stile ticket) --- */
.assemblea-attesa-tabs {
  display: none;
}
.assemblea-attesa-panel {
  display: block;
}
.assemblea-odg-accordion {
  margin-top: 8px;
}
@media (max-width: 1024px), html.cap-native {
  .assemblea-attesa-tabs {
    display: flex;
    gap: 6px;
    margin: 12px 0;
    padding: 4px;
    border-radius: 12px;
    border: 1px solid rgba(148, 163, 184, 0.22);
    background: rgba(15, 23, 42, 0.65);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .assemblea-attesa-tab {
    flex: 1 0 auto;
    min-height: var(--mobile-touch-min, 44px);
    padding: 8px 10px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--muted);
    font-size: var(--text-xs, 0.8125rem);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
  }
  .assemblea-attesa-tab.is-active {
    background: rgba(59, 130, 246, 0.25);
    color: #e2e8f0;
  }
  .assemblea-attesa-page .assemblea-attesa-panel {
    display: none !important;
  }
  .assemblea-attesa-page .assemblea-attesa-panel.is-active {
    display: block !important;
  }
  .assemblea-attesa-page .assemblea-attesa-panel .card.ui-card-mt {
    margin-top: 0;
  }
  .assemblea-vote-form--cards .vote-choice-card {
    min-height: 56px;
  }
  .assemblea-vote-form--delegate .btn,
  .assemblea-checkin-form .btn {
    width: 100%;
    min-height: var(--mobile-touch-min, 44px);
  }
  .delegate-vote-row {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  .delegate-vote-row select {
    min-height: var(--mobile-touch-min, 44px);
    width: 100%;
  }
  .assemblea-odg-acc-summary {
    min-height: var(--mobile-touch-min, 44px);
  }
  .assemblea-qr-card--hero .assemblea-qr-layout {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .assemblea-qr-card--hero .assemblea-qr-open-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    width: 100%;
    max-width: 320px;
    padding: 12px;
    border-radius: 16px;
    border: 1px solid rgba(148, 163, 184, 0.25);
    background: rgba(15, 23, 42, 0.55);
  }
  .assemblea-qr-card--hero .assemblea-qr-image {
    width: min(72vw, 280px);
    height: auto;
  }
  .assemblea-qr-card--hero .assemblea-qr-hero-cta {
    display: block;
    font-size: var(--text-xs, 0.8125rem);
  }
  .assemblea-qr-reader--hero {
    max-width: none;
    width: 100%;
    min-height: min(58vh, 420px);
  }
  .assemblea-qr-scan-hero__card {
    margin-bottom: 0;
  }
}

/* --- Guest auth (login / register / forgot) --- */
@media (max-width: 1024px), html.cap-native {
  .guest-mobile-page > h1 { display: none; }
  .guest-mobile-page .card.narrow {
    max-width: none;
    margin: 0;
  }
  .guest-mobile-page input,
  .guest-mobile-page select {
    min-height: var(--mobile-touch-min, 44px);
    font-size: 16px; /* evita zoom iOS */
  }
  .guest-mobile-page .ui-form-actions .btn,
  .guest-mobile-page .biometric-login-btn {
    width: 100%;
  }
  .guest-mobile-page .register-email-row {
    align-items: stretch;
  }
  .guest-mobile-page .register-email-row .btn {
    width: auto;
    flex: 0 0 auto;
    white-space: nowrap;
  }
}
