*{box-sizing:border-box}
:root{--primary:#415f91;--primary-container:#d9e2ff;--surface:#fbf8ff;--surface-container:#f0edf4;--outline:#74777f;--text:#1a1b20}
body{margin:0;background:var(--surface);color:var(--text);font-family:Roboto,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,textarea,select{font:inherit}button{cursor:pointer}.hidden{display:none!important}
.top-app-bar{position:sticky;top:0;z-index:2500;min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px 18px;background:rgba(251,248,255,.97);border-bottom:1px solid #ddd9e0;box-shadow:0 2px 8px #00000012;backdrop-filter:blur(8px)}
.app-title-wrap{min-width:230px}.app-title{font-size:1.12rem;font-weight:750}.app-subtitle{font-size:.78rem;color:#686a72;margin-top:2px}.top-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.md-button{border:1px solid #d0cdd4;background:#fff;color:#292a30;border-radius:20px;padding:8px 13px;font-weight:650}.md-button:hover{box-shadow:0 2px 7px #00000016}.md-button-primary{background:var(--primary);color:#fff;border-color:var(--primary)}.md-button-tonal{background:var(--primary-container);border-color:transparent;color:#1f365d}.file-button{position:relative;overflow:hidden;display:inline-flex;align-items:center;cursor:pointer}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}
.layout{display:grid;grid-template-columns:300px 1fr;min-height:calc(100vh - 72px)}.sidebar{background:#fff;border-right:1px solid #ddd;padding:14px;overflow:auto}.sidebar>input{width:100%;padding:11px;border:1px solid #ccd1d7;border-radius:12px;background:#fff}.view-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-top:9px}.tab{padding:8px 4px;border:1px solid #c9cdd3;background:#fff;border-radius:10px}.tab.active{background:var(--primary-container);border-color:transparent;font-weight:700}.count{font-size:.8rem;color:#707983;margin:9px 2px}
.person-item,.family-item{width:100%;text-align:left;border:1px solid transparent;background:transparent;padding:10px;border-radius:10px}.person-item:hover,.family-item:hover{background:#f4f2f7}.person-item.active,.family-item.active{background:#e9eef5;border-color:#c8d4e3}.name,.member-name{font-weight:650}.family-header{display:flex;justify-content:space-between}.family-children{margin-left:12px;border-left:1px solid #e0e3e7;padding-left:5px}.subtitle,.muted,.date{color:#68717c;font-size:.86rem}.family-item .date,.person-item .date{margin-top:2px}
.content{padding:20px;max-width:1250px;width:100%;margin:auto}.welcome,.guide-card,.card,.person-head{background:#fff;border:1px solid #dfe2e6;border-radius:18px;padding:17px;box-shadow:0 2px 8px #0000000d}.welcome{padding:26px}.home-congregation{font-size:1.35rem;font-weight:750;margin-bottom:5px}.welcome h2{margin:0 0 7px}.welcome p{color:#5d6670;line-height:1.5}.guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}.guide-card.full{grid-column:1/-1}.guide-card li{margin:7px 0}.privacy{border-left:4px solid #aeb9c5}
.person-head{display:flex;justify-content:space-between;gap:15px;align-items:flex-start;margin-bottom:15px}.person-head h2{font-size:1.6rem;margin:0 0 6px}.person-actions{display:flex;gap:7px;flex-wrap:wrap}button,.modal-box input,.modal-box select{border:1px solid #c9cdd3;background:#fff;border-radius:10px;padding:9px 13px}button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}button.danger{color:#a12626;border-color:#e0b5b5}.family-badge{display:inline-block;background:#eaf0f6;color:#48647f;border-radius:20px;padding:3px 8px;font-size:.82rem}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.card h3{margin:0 0 8px}.card textarea{width:100%;min-height:130px;resize:vertical;border:1px solid #d2d6dc;border-radius:12px;padding:10px;background:#fff}.date-label{display:flex;gap:10px;align-items:center;margin-top:10px;color:#555;font-size:.9rem}.date-label input{padding:8px;border:1px solid #d2d6dc;border-radius:8px}
.visit-card{margin-bottom:14px}.visit-grid{display:grid;grid-template-columns:repeat(2,minmax(0,220px));gap:12px}.visit-grid label{display:flex;flex-direction:column;gap:5px;color:#555;font-size:.88rem}.visit-grid input{padding:9px;border:1px solid #d2d6dc;border-radius:10px}
.timeline-card{margin-top:14px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.entry{border-top:1px solid #e4e6e9;padding:12px 0}.entry-meta{display:flex;justify-content:space-between;gap:10px;margin-bottom:6px}.entry textarea{min-height:90px}.entry-actions{text-align:right;margin-top:6px}.member-card{display:flex;justify-content:space-between;align-items:center;gap:12px;border:1px solid #e1e4e8;border-radius:12px;padding:11px;margin:7px 0;background:#fff}.member-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.member-date{font-size:.8rem;color:#747d87;margin-top:3px}
.presence-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}.presence-item{display:flex;align-items:center;gap:9px;padding:11px 12px;border:1px solid #d9d6dd;border-radius:12px;background:#fff}.presence-item input{width:18px;height:18px}.presence-meta{font-size:.78rem;color:#70727a}
.modal{position:fixed;inset:0;background:#0008;display:flex;align-items:center;justify-content:center;padding:20px;z-index:3000}.modal-box{background:#fff;border-radius:18px;width:min(520px,100%);padding:20px;box-shadow:0 10px 35px #0003}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal-box label{display:block;margin:12px 0;color:#555}.modal-box label input,.modal-box label select{display:block;width:100%;margin-top:6px}.modal-actions{display:flex;justify-content:flex-end;gap:7px;margin-top:16px}.icon{border:0;background:transparent;font-size:1.6rem;padding:2px 8px}.family-choice-list{display:flex;flex-direction:column;gap:7px;max-height:320px;overflow:auto;margin:12px 0}.family-choice{display:flex;align-items:center;gap:9px;padding:10px;border:1px solid #e0e3e7;border-radius:10px}.family-choice input{width:18px;height:18px}
.app-footer{margin-top:30px;padding:16px 20px;display:flex;justify-content:center;gap:25px;flex-wrap:wrap;border-top:1px solid #dedbe2;color:#6d6e75;font-size:.78rem;background:#f3f0f5}
@media(max-width:900px){.top-app-bar{align-items:flex-start;flex-direction:column}.top-actions{justify-content:flex-start}.layout{display:block}.sidebar{border-right:0;border-bottom:1px solid #ddd;max-height:360px}.content{padding:12px}}
@media(max-width:800px){.grid,.guide-grid{grid-template-columns:1fr}.guide-card.full{grid-column:auto}.person-head{display:block}.person-actions{margin-top:10px}.visit-grid{grid-template-columns:1fr}.member-card{align-items:flex-start;flex-direction:column}}
@media print{.top-app-bar,.sidebar,.app-footer,.person-actions,.family-component-actions,#addEntryBtn,button{display:none!important}.layout{display:block;min-height:0}.content{max-width:none;padding:0}.card,.welcome,.guide-card,.person-head{box-shadow:none!important;border:1px solid #ddd!important;break-inside:avoid}.hidden{display:none!important}body{background:#fff!important}}

.visit-alerts{max-width:1200px;margin:10px auto 0;padding:0 18px}.visit-alert{display:flex;align-items:center;gap:10px;margin:7px 0;padding:10px 13px;border:1px solid #e7b66b;border-radius:12px;background:#fff6e6;color:#5b3a09}.visit-alert button{margin-left:auto}.app-footer{font-size:.78rem}

/* Versione 4.2: scroll indipendente della navigazione e dell'area scheda */
@media(min-width:901px){
 html,body{height:100%;overflow:hidden}
 .layout{height:calc(100vh - 72px);min-height:0;overflow:hidden}
 .sidebar{height:100%;overflow-y:auto;overflow-x:hidden}
 .content{height:100%;overflow-y:auto;overflow-x:hidden;align-self:stretch}
}


/* ==========================================================
   VERSIONE 5.0 — BARRA INFERIORE MATERIAL
   ========================================================== */
:root{
  --v5-bottom-bar-height: 52px;
}

body{
  padding-bottom: var(--v5-bottom-bar-height);
}

/* La barra resta sempre al di sotto dell'interfaccia */
#bottomAppBar.bottom-app-bar{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 5000;

  height: var(--v5-bottom-bar-height);
  box-sizing: border-box;

  display: flex !important;
  align-items: center;
  justify-content: center;
  visibility: visible !important;
  opacity: 1 !important;

  background: #f3edf7;
  color: #49454f;
  border-top: 1px solid #cac4d0;
  box-shadow: 0 -2px 8px rgba(0,0,0,.10);
}

.bottom-app-bar__content{
  width: 100%;
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  flex-wrap: wrap;

  padding: 8px 18px;
  box-sizing: border-box;
  text-align: center;

  font-size: .78rem;
  line-height: 1.25;
}

.bottom-app-bar__separator{
  color: #79747e;
}

/* La v4.2 usa aree a scorrimento indipendente.
   Riduciamo l'altezza disponibile per evitare che la barra le copra. */
.sidebar,
.content,
.main,
.main-content{
  max-height: calc(100vh - 72px - var(--v5-bottom-bar-height));
}

/* Se nella v4.2 sono presenti regole height esplicite, queste le sovrascrivono. */
.sidebar{
  height: calc(100vh - 72px - var(--v5-bottom-bar-height)) !important;
}
.content,
.main,
.main-content{
  height: calc(100vh - 72px - var(--v5-bottom-bar-height)) !important;
}

/* Su mobile manteniamo la barra visibile e lasciamo spazio al fondo. */
@media (max-width: 900px){
  body{
    padding-bottom: calc(var(--v5-bottom-bar-height) + 4px);
  }

  #bottomAppBar.bottom-app-bar{
    min-height: var(--v5-bottom-bar-height);
    height: auto;
  }

  .bottom-app-bar__content{
    gap: 6px;
    padding: 8px 10px;
  }

  .sidebar,
  .content,
  .main,
  .main-content{
    max-height: none !important;
    height: auto !important;
  }
}

/* Nelle stampe non serve la barra applicativa. */
@media print{
  #bottomAppBar.bottom-app-bar{
    display: none !important;
  }
  body{
    padding-bottom: 0 !important;
  }
}

.server-status{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;font-size:.75rem;font-weight:700;background:#e7f4ea;color:#225d2c;border:1px solid #c8e4cd}
.server-status.server-offline{background:#fdecea;color:#8b1e1e;border-color:#f3c8c4}

.login-overlay{position:fixed;inset:0;z-index:9999;background:#f7f5fa;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{width:min(420px,100%);background:#fff;padding:28px;border-radius:24px;box-shadow:0 8px 30px #0002}
.login-card label{display:block;margin:12px 0}.login-card input{width:100%;padding:11px;border:1px solid #ccc;border-radius:10px;margin-top:5px}
.login-error{color:#a12626;margin-top:10px;min-height:1.2em}.group-selector{padding:7px 10px;border-radius:18px}
.admin-card{width:min(900px,95vw)}.admin-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.admin-grid section{background:#f7f5fa;padding:14px;border-radius:14px}
.admin-grid label{display:block;margin:10px 0}.admin-grid input,.admin-grid select{width:100%;padding:9px}.admin-user-row{display:flex;justify-content:space-between;padding:9px 0;border-bottom:1px solid #ddd}
@media(max-width:800px){.admin-grid{grid-template-columns:1fr}}

.password-card{width:min(440px,92vw)}
.password-card label{display:block;margin:12px 0}
.password-card input{width:100%;padding:10px;border:1px solid #ccc;border-radius:8px}

.admin-status{margin-top:10px;min-height:1.2em;font-size:.86rem}
.admin-status-ok{color:#1b5e20}
.admin-status-error{color:#b3261e}
#closeAdminPanel{cursor:pointer;min-width:40px}
#createUserBtn{cursor:pointer}

.build-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#ede7f6;color:#4a3f6f;font-size:.72rem;font-weight:750;border:1px solid #d8cfee}

#adminPanel .modal-box,#passwordPanel .modal-box{pointer-events:auto!important}

.admin-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.admin-actions button{font-size:.78rem;padding:6px 9px}
.role-chip{display:inline-flex;padding:2px 7px;border-radius:999px;background:#eee;font-size:.72rem;font-weight:700}


/* v2.6.1 - una sola barra di scorrimento verticale */
html {
  min-height: 100%;
  overflow-y: auto;
}
body {
  min-height: 100vh;
  overflow-y: auto !important;
  overflow-x: hidden;
}
main, .app-main, #appMain, .content, .page-content, .app-shell, .main-shell, #app {
  overflow-y: visible !important;
  max-height: none !important;
  height: auto !important;
}
main, .app-main, #appMain {
  padding-bottom: 110px !important;
}

/* v2.6.2 - livelli corretti dei modali Amministrazione */
#adminPanel.modal {
  z-index: 9000 !important;
}
#editUserPanel.modal,
#resetUserPasswordPanel.modal {
  z-index: 10000 !important;
}
#editUserPanel .modal-box,
#resetUserPasswordPanel .modal-box {
  position: relative;
  z-index: 10001 !important;
}

/* v2.7 - amministrazione e header ordinato */
#adminUsersList{max-height:46vh;overflow-y:auto;overflow-x:hidden;padding-right:8px}
.server-build-stack{display:inline-flex;flex-direction:column;align-items:center;gap:3px}
.server-build-stack .build-badge{font-size:.68rem;padding:3px 7px}
.settings-extra-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid #e1e4e8}
.settings-extra-actions h4{width:100%;margin:0 0 2px}

/* v2.8 Attività recenti Admin */
.admin-recent-activity{margin:0 0 18px}.activity-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.activity-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.activity-list{margin-top:12px;display:grid;gap:8px;max-height:360px;overflow-y:auto;padding-right:6px}.activity-item{border:1px solid rgba(127,127,127,.25);border-radius:10px;padding:10px 12px}.activity-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.activity-details{font-size:.9em;margin-top:4px;opacity:.82}


/* v2.8.1 - Home Admin pulita a tutta larghezza */
body.admin-home-mode .layout{
  grid-template-columns:1fr;
}
body.admin-home-mode .content{
  max-width:1400px;
  width:100%;
  margin:0 auto;
}
body.admin-home-mode #dashboard{
  width:100%;
}
body.admin-home-mode #adminRecentActivity{
  margin-top:0;
}
\n\n/* ===== v3.0 Attività mensile ===== */\n.monthly-activity-card{margin-top:14px}.admin-monthly-report{margin-top:18px}.monthly-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap}.monthly-head h3{margin-top:0}.monthly-checks{display:grid;gap:10px;margin-top:14px}.monthly-check-row{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid rgba(127,127,127,.25);border-radius:10px;cursor:pointer}.monthly-check-row input{width:20px;height:20px;flex:none}.monthly-save-status{min-height:20px;margin-top:8px}.table-scroll{overflow-x:auto;width:100%}.monthly-table{border-collapse:collapse;width:100%;min-width:620px;margin-top:12px}.monthly-table th,.monthly-table td{padding:10px 12px;border-bottom:1px solid rgba(127,127,127,.2);text-align:left}.monthly-history-box{max-width:860px}.history-toolbar,.report-controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}\n@media(max-width:900px){.layout{grid-template-columns:1fr!important}.sidebar{position:static!important;width:100%!important;max-width:none!important}.content{width:100%!important;max-width:none!important}.top-app-bar,.top-actions,.person-head,.person-actions{flex-wrap:wrap!important}button,select,input{min-height:42px}.card{padding:14px}}\n@media(max-width:640px){body{font-size:15px}.top-app-bar{padding-left:10px!important;padding-right:10px!important}.layout,.content{padding-left:8px!important;padding-right:8px!important}.top-actions{display:grid!important;grid-template-columns:1fr 1fr;width:100%;gap:7px!important}.top-actions>button,.top-actions>select,.top-actions>.file-button{width:100%!important}.server-build-stack{grid-column:1/-1}.sidebar{padding:10px!important}.view-tabs{display:grid!important;grid-template-columns:1fr 1fr;gap:6px}.monthly-head{display:block}.monthly-head>button{width:100%;margin-top:10px}.report-controls{display:grid;grid-template-columns:1fr;width:100%;margin-top:10px}.report-controls>*{width:100%}.monthly-check-row{align-items:flex-start}.monthly-table{min-width:560px}.modal-box{width:calc(100vw - 20px)!important;max-width:calc(100vw - 20px)!important;max-height:88vh!important;overflow-y:auto}textarea,input,select{font-size:16px!important}}\n

/* ===== v3.0.2 spaziatura Home gruppo ===== */
#dashboard > #monthlyActivitySection{margin-top:14px}
#dashboard > #homePrivacyReminder{margin-top:14px}
#dashboard > #homePrivacyReminder.hidden{display:none}

/* ===== v3.0.4 Identità gruppo ===== */
#adminGroupIdentityModal label{display:block;margin:12px 0}
#adminGroupIdentityModal input{width:100%;box-sizing:border-box;margin-top:6px}

.v306-admin-managed-hidden{display:none!important}


/* ===== v3.0.7 Pannello Amministrazione responsive ===== */
#adminPanel{padding:10px;align-items:flex-start;overflow:auto}
#adminPanel .admin-card{
  width:min(960px,calc(100vw - 20px));
  max-height:calc(100vh - 20px);
  margin:auto;
  padding:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-sizing:border-box;
}
#adminPanel .modal-head{
  position:sticky;
  top:0;
  z-index:5;
  flex:0 0 auto;
  padding:16px 18px 12px;
  background:#fff;
  border-bottom:1px solid #e3e3e3;
}
#adminPanel .modal-head h3{margin:0;min-width:0;overflow-wrap:anywhere}
#adminPanel #closeAdminPanel{flex:0 0 auto}
#adminPanel .admin-grid{
  overflow:auto;
  padding:16px 18px 20px;
  min-height:0;
  box-sizing:border-box;
}
#adminPanel .admin-backup-tools{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
#adminPanel .admin-backup-tools button{max-width:100%;white-space:normal}
@media(max-width:640px){
  #adminPanel{padding:6px}
  #adminPanel .admin-card{width:calc(100vw - 12px);max-height:calc(100vh - 12px);border-radius:12px}
  #adminPanel .modal-head{padding:12px}
  #adminPanel .admin-grid{grid-template-columns:1fr;padding:12px}
  #adminPanel .admin-grid section{padding:10px;min-width:0}
  #adminPanel input,#adminPanel select,#adminPanel button{max-width:100%;box-sizing:border-box}
  #adminPanel .admin-backup-tools{flex-direction:column;align-items:stretch}
  #adminPanel .admin-backup-tools button{width:100%}
}
