/* =============================================
   SISTEMA PARROCCHIALE v4 — RESPONSIVE
============================================= */
@import url('https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,600;1,400&family=Nunito:wght@300;400;600;700&display=swap');

:root {
  --primary:#4a3060; --primary-dark:#2e1d3d; --primary-light:#6b4e8a;
  --accent:#c8922a; --accent-light:#e8b84b;
  --bg:#f7f5f0; --surface:#fff; --surface-2:#f0ece5; --border:#ddd8ce;
  --text:#1e1c19; --text-2:#5a5550;
  --success:#2d7a3f; --danger:#c0392b; --warning:#d4770a; --info:#1a6fad;
  --funeral:#3d2b1f; --wedding:#8b1a4a; --baptism:#1a5276; --communion:#7d4e00;
  --radius:8px; --radius-sm:4px;
  --shadow-sm:0 1px 4px rgba(0,0,0,.08); --shadow:0 3px 14px rgba(0,0,0,.1);
  --transition:.18s ease;
  --font-serif:'Lora',Georgia,serif; --font-sans:'Nunito',system-ui,sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{font-size:16px;scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--font-sans);background:var(--bg);color:var(--text);line-height:1.65;min-height:100vh;}

/* HEADER */
.site-header{background:linear-gradient(135deg,var(--primary-dark) 0%,var(--primary) 100%);color:#fff;position:sticky;top:0;z-index:200;box-shadow:var(--shadow);}
.header-top{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;gap:12px;}
.header-brand h1{font-family:var(--font-serif);font-size:clamp(1rem,2.8vw,1.5rem);font-weight:600;letter-spacing:.02em;line-height:1.2;}
.header-brand h2{font-size:clamp(.65rem,1.6vw,.8rem);font-weight:300;opacity:.8;letter-spacing:.07em;text-transform:uppercase;margin-top:2px;}
.header-clock{text-align:right;font-size:.72rem;opacity:.8;flex-shrink:0;white-space:nowrap;}
.header-clock .clock-time{font-size:1rem;font-weight:700;letter-spacing:.05em;font-variant-numeric:tabular-nums;}
.header-nav{background:rgba(0,0,0,.18);overflow-x:auto;scrollbar-width:none;}
.header-nav::-webkit-scrollbar{display:none;}
.header-nav ul{list-style:none;display:flex;gap:2px;padding:5px 14px;white-space:nowrap;}
.header-nav ul li a{display:inline-flex;align-items:center;gap:5px;color:rgba(255,255,255,.78);text-decoration:none;font-size:.76rem;font-weight:600;letter-spacing:.03em;padding:5px 11px;border-radius:20px;transition:all var(--transition);}
.header-nav ul li a:hover,.header-nav ul li a.active{color:#fff;background:rgba(255,255,255,.18);}

/* LAYOUT */
main{padding:20px 16px;max-width:1280px;margin:0 auto;}
.admin-layout{display:flex;min-height:calc(100vh - 108px);}
.admin-sidebar{width:230px;flex-shrink:0;background:var(--primary-dark);color:#fff;padding:12px 0;min-height:100%;}
.admin-sidebar .sidebar-group{padding:10px 16px 3px;font-size:.65rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.35);margin-top:6px;}
.admin-sidebar a{display:flex;align-items:center;gap:9px;padding:8px 16px;color:rgba(255,255,255,.72);text-decoration:none;font-size:.83rem;border-left:3px solid transparent;transition:all var(--transition);}
.admin-sidebar a:hover{background:rgba(255,255,255,.07);color:#fff;border-left-color:var(--accent);}
.admin-sidebar a.active{background:rgba(255,255,255,.11);color:#fff;border-left-color:var(--accent);}
.admin-content{flex:1;padding:24px;min-width:0;overflow-x:auto;}

/* PAGE TITLE */
.page-title{font-family:var(--font-serif);font-size:clamp(1.2rem,3.5vw,1.7rem);font-weight:600;color:var(--primary);margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid var(--accent);display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.page-title .pt-actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap;}
.title-funerali{color:var(--funeral);border-bottom-color:#c0392b;}
.title-matrimoni{color:var(--wedding);border-bottom-color:#c0604a;}
.title-battesimi{color:var(--baptism);border-bottom-color:#2e86c1;}
.title-comunioni{color:var(--communion);border-bottom-color:#b7770d;}

/* CARDS */
.card{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);overflow:hidden;}
.card-header{background:var(--surface-2);padding:11px 16px;border-bottom:1px solid var(--border);font-weight:700;font-size:.88rem;color:var(--primary);display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.card-body{padding:16px;}
.mb-1{margin-bottom:8px;}.mb-2{margin-bottom:16px;}.mb-3{margin-bottom:24px;}
.mt-1{margin-top:8px;}.mt-2{margin-top:16px;}.mt-3{margin-top:24px;}

/* FORMS */
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;}
.form-grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;}
.col-full{grid-column:1/-1;}
.form-group{display:flex;flex-direction:column;gap:4px;}
.form-group label{font-size:.73rem;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;}
.form-group input,.form-group select,.form-group textarea{padding:9px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.9rem;color:var(--text);background:var(--surface);width:100%;transition:border-color var(--transition),box-shadow var(--transition);}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px rgba(74,48,96,.12);}
.form-group textarea{min-height:76px;resize:vertical;}
.form-static{padding:9px 11px;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;color:var(--text-2);font-weight:700;}
.form-check{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:.9rem;}
.form-check input[type=checkbox]{width:16px;height:16px;cursor:pointer;flex-shrink:0;}
.col-full{grid-column:1/-1;}
.form-section-label{grid-column:1/-1;font-size:.75rem;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.06em;padding-bottom:4px;border-bottom:1px solid var(--border);}
.money-wrap{position:relative;}
.money-wrap input{padding-left:26px;}
.money-wrap::before{content:'€';position:absolute;left:9px;top:50%;transform:translateY(-50%);color:var(--text-2);font-weight:700;font-size:.88rem;pointer-events:none;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:none;border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:.83rem;font-weight:700;cursor:pointer;text-decoration:none;transition:all var(--transition);white-space:nowrap;line-height:1.2;}
.btn:active{transform:scale(.97);}
.btn-primary{background:var(--primary);color:#fff;}.btn-primary:hover{background:var(--primary-dark);}
.btn-accent{background:var(--accent);color:#fff;}.btn-accent:hover{background:#a07018;}
.btn-success{background:var(--success);color:#fff;}
.btn-danger{background:var(--danger);color:#fff;}
.btn-warning{background:var(--warning);color:#fff;}
.btn-info{background:var(--info);color:#fff;}
.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border);}.btn-secondary:hover{background:var(--border);}
.btn-funeral{background:var(--funeral);color:#fff;}
.btn-wedding{background:var(--wedding);color:#fff;}
.btn-baptism{background:var(--baptism);color:#fff;}
.btn-communion{background:var(--communion);color:#fff;}
.btn-sm{padding:5px 10px;font-size:.76rem;}
.btn-lg{padding:11px 22px;font-size:.95rem;}
.btn-group{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px;align-items:center;}

/* TABLE */
.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius);border:1px solid var(--border);box-shadow:var(--shadow-sm);}
table{border-collapse:collapse;width:100%;background:var(--surface);font-size:.83rem;}
thead th{background:var(--primary);color:#fff;padding:9px 12px;text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;}
thead th.right{text-align:right;}
thead.funeral-head th{background:var(--funeral);}
thead.wedding-head th{background:var(--wedding);}
thead.baptism-head th{background:var(--baptism);}
thead.communion-head th{background:var(--communion);}
tbody tr{border-bottom:1px solid var(--border);transition:background var(--transition);}
tbody tr:hover{background:var(--surface-2);}
tbody tr:last-child{border-bottom:none;}
td{padding:8px 12px;vertical-align:middle;}
td.right{text-align:right;font-variant-numeric:tabular-nums;}
.tfoot-row td{background:var(--surface-2);font-weight:700;border-top:2px solid var(--primary);}

/* BADGES */
.badge{display:inline-block;padding:3px 8px;border-radius:20px;font-size:.7rem;font-weight:700;letter-spacing:.03em;white-space:nowrap;}
.badge-success{background:#e4f5e8;color:var(--success);}
.badge-danger{background:#fde8e6;color:var(--danger);}
.badge-warning{background:#fef3e2;color:var(--warning);}
.badge-info{background:#e2f0fb;color:var(--info);}
.badge-primary{background:#ede8f4;color:var(--primary);}
.badge-accent{background:#fdf2e2;color:#8a6010;}
.badge-gray{background:#eee;color:#666;}
.blink{animation:blink 1.4s ease-in-out infinite;}
@keyframes blink{0%,100%{opacity:1}50%{opacity:.35}}

/* STATUS */
.status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:20px;font-size:.72rem;font-weight:700;}
.status-pill::before{content:'';width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.sp-attesa{background:#fef3e2;color:var(--warning);}.sp-attesa::before{background:var(--warning);animation:blink 1.4s infinite;}
.sp-in-corso{background:linear-gradient(135deg,#c0392b,#e74c3c);color:#fff;animation:pulse-red 2s infinite;}
@keyframes pulse-red{0%,100%{box-shadow:0 0 0 0 rgba(231,76,60,.4);}50%{box-shadow:0 0 0 6px rgba(231,76,60,0);}}
.sp-celebrato{background:#fde8e6;color:var(--danger);}.sp-celebrato::before{background:var(--danger);}
.sp-futuro{background:#e4f5e8;color:var(--success);}.sp-futuro::before{background:var(--success);animation:blink 1.4s infinite;}
.sp-confermato{background:#e2f0fb;color:var(--info);}.sp-confermato::before{background:var(--info);}
.sp-annullato{background:#eee;color:#888;}.sp-annullato::before{background:#aaa;}

/* ALERTS */
.alert{padding:11px 15px;border-radius:var(--radius-sm);font-size:.87rem;margin-bottom:14px;border-left:4px solid;display:flex;align-items:flex-start;gap:9px;}
.alert-success{background:#e4f5e8;color:var(--success);border-color:var(--success);}
.alert-danger{background:#fde8e6;color:var(--danger);border-color:var(--danger);}
.alert-warning{background:#fef3e2;color:var(--warning);border-color:var(--warning);}
.alert-info{background:#e2f0fb;color:var(--info);border-color:var(--info);}

/* STATS */
.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:18px;}
.stat-card{background:var(--surface);border-radius:var(--radius);padding:14px 16px;border:1px solid var(--border);border-top:4px solid var(--primary);box-shadow:var(--shadow-sm);}
.stat-card .sv{font-size:1.7rem;font-weight:700;color:var(--primary);line-height:1;}
.stat-card .sl{font-size:.72rem;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;margin-top:4px;}
.s-funeral{border-top-color:#c0392b;}.s-funeral .sv{color:#c0392b;}
.s-wedding{border-top-color:var(--wedding);}.s-wedding .sv{color:var(--wedding);}
.s-baptism{border-top-color:var(--baptism);}.s-baptism .sv{color:var(--baptism);}
.s-success{border-top-color:var(--success);}.s-success .sv{color:var(--success);}
.s-accent{border-top-color:var(--accent);}.s-accent .sv{color:var(--accent);}

/* FILTER BAR */
.filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;margin-bottom:16px;box-shadow:var(--shadow-sm);}
.filter-bar form{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;}
.filter-bar .fg{display:flex;flex-direction:column;gap:3px;}
.filter-bar .fg label{font-size:.7rem;font-weight:700;color:var(--text-2);text-transform:uppercase;letter-spacing:.05em;}
.filter-bar .fg input,.filter-bar .fg select{padding:7px 10px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:.86rem;background:var(--surface);}
.filter-bar .fg-grow{flex:1;min-width:140px;}

/* GRIDS */
.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;}
.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;}
.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(175px,1fr));gap:14px;}

/* FUNERAL CARD (public) */
.funeral-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-bottom:8px;box-shadow:var(--shadow-sm);display:grid;grid-template-columns:56px 1fr auto;gap:14px;align-items:center;}
.funeral-card .fc-date{text-align:center;background:var(--funeral);color:#fff;border-radius:var(--radius-sm);padding:6px 4px;}
.funeral-card .fc-date .fcd-day{font-size:1.4rem;font-weight:700;line-height:1;}
.funeral-card .fc-date .fcd-mon{font-size:.6rem;text-transform:uppercase;letter-spacing:.05em;opacity:.85;}
.funeral-card .fc-info .name{font-weight:700;font-size:.95rem;}
.funeral-card .fc-info .sub{font-size:.8rem;color:var(--text-2);margin-top:3px;}

/* PUBLIC HERO */
.public-hero{background:linear-gradient(135deg,var(--primary-dark),var(--primary));color:#fff;padding:36px 24px;text-align:center;margin-bottom:24px;border-radius:0 0 var(--radius-lg) var(--radius-lg);}
.public-hero h1{font-family:var(--font-serif);font-size:clamp(1.4rem,4vw,2.1rem);font-weight:600;}
.public-hero p{opacity:.8;margin-top:8px;font-size:.92rem;max-width:480px;margin-left:auto;margin-right:auto;}
.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:24px;}
.module-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:22px 18px;text-align:center;transition:all var(--transition);text-decoration:none;color:var(--text);box-shadow:var(--shadow-sm);display:block;}
.module-card:hover{transform:translateY(-3px);box-shadow:var(--shadow);}
.module-card .mc-icon{font-size:2rem;margin-bottom:8px;}
.module-card .mc-title{font-weight:700;font-size:.93rem;margin-bottom:3px;}
.module-card .mc-desc{font-size:.76rem;color:var(--text-2);}
.module-card.mc-fun{border-top:4px solid #c0392b;}
.module-card.mc-fog{border-top:4px solid var(--primary);}
.module-card.mc-mat{border-top:4px solid var(--wedding);}
.module-card.mc-bat{border-top:4px solid var(--baptism);}
.module-card.mc-com{border-top:4px solid var(--communion);}

/* FINANCE BOX */
.finance-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;}
.finance-row{display:flex;justify-content:space-between;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border);font-size:.88rem;}
.finance-row:last-child{border-bottom:none;}
.finance-row.total{background:var(--surface-2);font-weight:700;font-size:.95rem;border-top:2px solid var(--primary);}
.finance-row .fl{color:var(--text-2);}
.finance-row .fv{font-weight:700;font-variant-numeric:tabular-nums;}

/* BACKUP */
.backup-item{display:flex;align-items:center;justify-content:space-between;padding:11px 16px;border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px;}
.backup-item:last-child{border-bottom:none;}
.backup-item .bi-name{font-weight:600;font-size:.88rem;}
.backup-item .bi-meta{font-size:.75rem;color:var(--text-2);}

/* UTILS */
.d-flex{display:flex;}.align-center{align-items:center;}.justify-between{justify-content:space-between;}
.flex-wrap{flex-wrap:wrap;}.gap-1{gap:8px;}.gap-2{gap:16px;}
.text-center{text-align:center;}.text-right{text-align:right;}
.text-muted{color:var(--text-2);}.text-success{color:var(--success);}.text-danger{color:var(--danger);}
.text-primary{color:var(--primary);}.text-accent{color:var(--accent);}
.fw-bold{font-weight:700;}.fz-sm{font-size:.8rem;}.w-100{width:100%;}

/* ═══════════════════════════════════════════════
   RESPONSIVE — Desktop / Tablet / Mobile
   Target: qualsiasi dispositivo senza app native
═══════════════════════════════════════════════ */

/* ── Tablet grande (≤1024px) ── */
@media(max-width:1024px){
  .admin-content{padding:18px;}
  main{padding:16px 14px;}
  .stats-row{grid-template-columns:repeat(3,1fr);}
  .form-grid{grid-template-columns:repeat(2,1fr);}
  table{font-size:.82rem;}
  /* Tabelle scrollabili orizzontalmente */
  .card{overflow-x:auto;}
}

/* ── Tablet (≤900px) ── */
@media(max-width:900px){
  /* Admin: sidebar diventa top nav orizzontale */
  .admin-layout{flex-direction:column;}
  .admin-sidebar{
    width:100%;
    display:flex;flex-wrap:wrap;gap:4px;
    padding:8px 10px;min-height:unset;
    position:sticky;top:0;z-index:90;
  }
  .admin-sidebar .sidebar-group{display:none;}
  .admin-sidebar a{
    padding:5px 11px;border-radius:20px;border-left:none;
    background:rgba(255,255,255,.07);font-size:.74rem;
  }
  .admin-sidebar a.active{background:var(--accent);color:#fff;border-left:none;}
  .admin-content{padding:14px;}
  .stats-row{grid-template-columns:repeat(2,1fr);}
  /* Header admin più compatto */
  .header-top{flex-wrap:wrap;gap:8px;}
  /* Griglia form 2 colonne */
  .form-grid{grid-template-columns:repeat(2,1fr);}
  /* Pubblico hero più compatto */
  .public-hero{padding:28px 16px 22px;}
  .public-hero h1{font-size:1.4rem;}
  /* Tabelle: scroll orizzontale */
  .card{overflow-x:auto;}
}

/* ── Mobile (≤768px) ── */
@media(max-width:768px){
  main{padding:10px 10px;}
  .header-clock{display:none;}
  .header-top{padding:8px 12px;}
  .form-grid{grid-template-columns:1fr;}
  .funeral-card{grid-template-columns:52px 1fr;}
  .funeral-card .fc-status{grid-column:2;}
  .btn-group{flex-wrap:wrap;}
  .btn-group .btn{flex:1;min-width:120px;justify-content:center;}
  .page-title{font-size:1rem;flex-direction:column;align-items:flex-start;gap:6px;}
  .page-title .pt-actions{margin-left:0;width:100%;}
  .stats-row{grid-template-columns:repeat(2,1fr);}
  .stat-card .sv{font-size:1.6rem;}
  /* Tabelle responsive: nascondi colonne meno importanti */
  table th:nth-child(n+5),table td:nth-child(n+5){display:none;}
  table th.always-show,table td.always-show{display:table-cell!important;}
  /* Nascondi colonne email e note su mobile */
  .col-hide-sm{display:none!important;}
  /* Card admin più compatte */
  .card-body{padding:12px;}
  .card-header{padding:10px 14px;font-size:.85rem;}
  /* Filtri in colonna */
  .filter-bar{flex-direction:column;}
  .filter-bar .fg-grow{width:100%;}
  /* Bottoni full width su mobile */
  .btn-block-sm{display:block;width:100%;text-align:center;margin-bottom:4px;}
  /* Nav pubblica più spaziosa */
  .pub-nav a{font-size:.72rem;padding:8px 10px;}
  /* Griglia 1 colonna */
  .grid-2{grid-template-columns:1fr!important;}
}

/* ── Smartphone piccolo (≤480px) ── */
@media(max-width:480px){
  main{padding:8px;}
  .header-top{padding:6px 10px;}
  .admin-content{padding:10px;}
  .stats-row{grid-template-columns:1fr 1fr;}
  .stat-card{padding:10px 8px;}
  .stat-card .sv{font-size:1.4rem;}
  .stat-card .sl{font-size:.65rem;}
  /* Testo più piccolo nelle tabelle */
  table{font-size:.75rem;}
  table th,table td{padding:6px 8px;}
  /* Nascondi ancora più colonne */
  table th:nth-child(n+4),table td:nth-child(n+4){display:none;}
  table th.always-show,table td.always-show{display:table-cell!important;}
  /* Login form */
  .login-box{margin:8px;padding:20px 16px;}
  /* Ricevuta mobile ottimizzata */
  .ticket{border-radius:12px;}
  /* Pulsanti stack */
  .btn-group{flex-direction:column;}
  .btn-group .btn{width:100%;}
  /* SVG mappa chiesa: scroll orizzontale */
  .chiesa-box{-webkit-overflow-scrolling:touch;}
  svg#csmap{min-width:380px;}
  /* Hero pubblico */
  .public-hero h1{font-size:1.2rem;}
  .public-hero p{font-size:.8rem;}
  /* Form prenotazione */
  .fgrid{grid-template-columns:1fr!important;}
}

/* ── Touch device optimizations ── */
@media(hover:none){
  /* Rimuovi hover effects su touch */
  .btn:hover{transform:none;}
  .ev-card:hover{transform:none;box-shadow:var(--shadow-sm);}
  /* Area click più grande */
  .pub-nav a{min-height:44px;display:flex;align-items:center;}
  .admin-sidebar a{min-height:40px;}
  .btn{min-height:40px;}
  /* Aumenta dimensione pulsanti chiesa */
  svg#csmap g[id^="s-"]{cursor:pointer;}
}

/* ── Landscape mobile ── */
@media(max-width:768px) and (orientation:landscape){
  .admin-layout{flex-direction:row;}
  .admin-sidebar{width:180px;flex-direction:column;flex-wrap:nowrap;overflow-y:auto;height:100vh;position:sticky;top:0;}
  .admin-sidebar .sidebar-group{display:block;}
  .admin-sidebar a{border-radius:0;border-left:3px solid transparent;}
}

/* PRINT */
@media print{
  .no-print,.site-header,.admin-sidebar,.filter-bar,.btn-group{display:none !important;}
  body{background:#fff;font-size:10pt;}
  main,.admin-content{padding:0;}
  table{font-size:9pt;}
  thead th{background:var(--primary) !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .card{box-shadow:none;border:1px solid #ddd;}
  @page{margin:1.5cm;}
}
