/**
 * 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;
}
@media (max-width: 768px), 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; }
.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-condo { display: inline-block; margin-top: 4px; }
.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: 768px), 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 { 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: 768px), 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: 768px), html.cap-native {
  .prenotazioni-hub-page > h1,
  .bacheca-hub-page > h1 { 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: 768px), 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;
  }
}

/* --- Assemblea attesa tabs (stile ticket) --- */
.assemblea-attesa-tabs {
  display: none;
}
.assemblea-attesa-panel {
  display: block;
}
.assemblea-odg-accordion {
  margin-top: 8px;
}
@media (max-width: 768px), 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;
  }
}
