/* Foglio di stile condiviso pagine ESPOSITORE (Proloco-visite).
   Stesso rifattorizzo già fatto lato segreteria con segreteria-style.css:
   punto unico per le regole oggi duplicate/divergenti in ogni file
   dashboard.php / partecipazione.php / profilo.php / espositore.php /
   scheda-evento.php / pass.php / scia.php / ticket.php / faq.php, ognuno
   col proprio <style> inline. Qui restano SOLO le regole (nessuna nuova
   regola inline nei file PHP): contenitore/wrapper, card, righe
   etichetta-valore, pulsanti, badge, accordion, tab, avvisi — poi, sotto,
   una sezione per pagina con quanto resta di specifico (form, griglie,
   componenti a uso singolo).

   Divergenze risolte in fase di migrazione (2026-08-12) — pagine che
   cambiano leggermente aspetto per effetto della scelta, vedi report di
   sessione per il dettaglio completo:
   - pulsanti: geometria presa da .pd-btn (dashboard/partecipazione, già
     "registro condiviso" per commento interno pre-esistente) — le pagine
     con testo più grande/grassetto (scheda-evento, pass, SCIA, richieste)
     ora usano la stessa taglia.
   - box "messaggio"/header banner: piccola differenza di padding tra le
     pagine, unificata sulla versione più diffusa.
   - riga etichetta-valore della candidatura (.pr-row, espositore.php) NON
     aveva ancora il fix "testo lungo sfonda il riquadro" applicato alla
     vista profilo (commit 3be4750): condividendo la stessa regola lo
     eredita ora anche lei.
*/

:root{
    --plg:#009444;                    /* verde — conferma/avanzamento */
    --plr:#E02B20;                    /* rosso — SOLO distruttivo/errori */
    --plgl:rgba(0,148,68,0.08);
    --plgm:rgba(0,148,68,0.18);
    --pa:#f97316;                     /* arancione — attenzione/novità, mai rosso */
}

/* Contenitori pagina — ognuno mantiene il proprio max-width (pensato per
   la leggibilità del contenuto di QUELLA pagina, es. 600px per un form,
   1280px per una dashboard a card: non uniformato a un solo valore, vedi
   sezioni per pagina sotto), ma condividono box-sizing e font di base. */
[id^="proloco-"]{font-family:inherit;font-size:15px;box-sizing:border-box;}
[id^="proloco-"] *{box-sizing:border-box;}

/* ============================================================
   PULSANTI — famiglia condivisa da tutte le pagine espositore.
   Prima di questo commit ogni pagina aveva la propria classe/geometria
   (.pse-btn 12px 28px/700, .ppass-btn e .psc-btn 13px 22px/15px/700,
   .pe-btn 11px 20px/13px/700, oltre a .pd-btn/.pp-btn/.pr-btn già
   uguali tra loro): stessa funzione, pesi visivi diversi senza motivo.
   Consolidate su un'unica geometria — quella di .pd-btn (dashboard/
   partecipazione, già "registro condiviso" per commento interno
   preesistente). Pagine che cambiano aspetto per effetto della scelta:
   scheda-evento, pass, SCIA, richieste (pulsante leggermente più
   piccolo, 600 invece di 700 di peso) — vedi report di sessione.
   ============================================================ */
.pd-btn, .pp-btn, .pse-btn, .ppass-btn, .psc-btn, .pe-btn, .pr-btn{
    display:inline-block;min-height:44px;line-height:24px;
    padding:10px 20px;background:var(--plg);color:#fff;
    border:none;border-radius:6px;font-size:14px;font-weight:600;
    text-decoration:none;cursor:pointer;transition:opacity .15s;
    box-sizing:border-box;
}
.pd-btn:hover, .pp-btn:hover, .pse-btn:hover, .ppass-btn:hover, .psc-btn:hover, .pe-btn:hover, .pr-btn:hover{
    opacity:.88;color:#fff;
}
.pd-btn:disabled, .pse-btn:disabled, .ppass-btn:disabled, .psc-btn:disabled{
    opacity:.45;cursor:not-allowed;
}

/* Ritorno/navigazione — grigio pieno, mai link testuale/bordato (regola
   fissata 2026-08-11 e riconfermata qui): .pr-btn (candidatura) è SEMPRE
   questa variante, non ha una versione verde. */
.pd-btn-secondary, .pp-btn-secondary, .pse-btn-secondary, .ppass-btn-secondary,
.psc-btn-secondary, .pe-btn-secondary, .pr-btn{
    background:#666;color:#fff;
}
.pd-btn-secondary:hover, .pp-btn-secondary:hover, .pse-btn-secondary:hover,
.ppass-btn-secondary:hover, .psc-btn-secondary:hover, .pe-btn-secondary:hover, .pr-btn:hover{
    opacity:.88;color:#fff;
}

/* Outline verde — azione secondaria non distruttiva (es. "Leggi il contratto") */
.pd-btn-outline{
    background:transparent;border:1px solid var(--plg);color:var(--plg);
}
.pd-btn-outline:hover{background:var(--plgl);opacity:1;}

/* Ghost tratteggiato — azione terziaria (es. "Problema risolto, chiudi") */
.pe-btn-ghost, .ppass-btn-ghost{
    background:none;border:1px dashed var(--plg);color:var(--plg);
}
.pe-btn-ghost:hover, .ppass-btn-ghost:hover{background:var(--plgl);opacity:1;}

/* Distruttivo — SOLO Cancella account (regola verificata su tutte e nove
   le pagine: nessun altro pulsante pieno rosso nel percorso espositore) */
.pd-btn-danger, .pp-btn-danger{background:var(--plr);color:#fff;}
.pd-btn-danger:hover, .pp-btn-danger:hover{opacity:.88;}
.pd-btn-danger:disabled, .pp-btn-danger:disabled{background:#ccc;cursor:not-allowed;opacity:1;}
.pd-btn-outline-danger{background:transparent;border:1px solid var(--plr);color:var(--plr);}
.pd-btn-outline-danger:hover{background:#fef2f2;opacity:1;}

/* ============================================================
   AVVISI / MESSAGGI — box ambra condiviso.
   ============================================================ */
.pd-alert{
    background:#fff8e1;border:1px solid #ffe082;border-radius:8px;
    padding:12px 16px;font-size:13px;color:#795548;margin-bottom:20px;
}
.pd-alert a{color:var(--plg);font-weight:700;}

/* Variante "box messaggio" più grande — usata come contenuto principale
   (nessun risultato) o avviso di apertura pagina: prima di questa
   migrazione era ridefinita quasi byte-identica in richieste/scheda-
   evento/pass/SCIA, qui un'unica regola. */
.ps-msg, .pse-msg, .ppass-msg, .psc-msg{
    background:#fff8e1;border:1px solid #ffe082;border-radius:8px;
    padding:16px 20px;font-size:14px;color:#795548;margin:0 0 16px;
}
.ps-msg a, .pse-msg a, .ppass-msg a, .psc-msg a{color:var(--plg);font-weight:700;}

/* Stato vuoto */
.pd-empty, .pe-vuoto{text-align:center;padding:30px 20px;color:#aaa;font-size:14px;}
.pd-empty-icon{font-size:32px;margin-bottom:8px;}

/* ============================================================
   ISTRUZIONI INTRODUTTIVE — testo che spiega come completare un
   blocco/sezione (non un titolo, non un avviso di stato): prima era
   affidato a un <p> con stile inline 12-13px grigio chiaro, passava
   inosservato pur essendo necessario (es. "Seleziona uno o più eventi..."
   in candidatura, "Compila la scheda una sola volta..." in scheda-evento —
   quest'ultima un avviso IRREVERSIBILE, ancora più grave che passasse
   inosservato). Corpo maggiore, peso e contrasto più alti, spaziatura
   sopra/sotto: si legge come un passaggio del flusso, non come una nota
   a margine. Applicata anche alle istruzioni equivalenti già esistenti
   in pass (.ppass-contesto) e SCIA (.psc-scadenza), stesso pattern.
   ============================================================ */
.pd-istruzioni, .esp-istruzioni, .ppass-contesto, .psc-scadenza{
    font-size:14px;font-weight:600;color:#3d4f45;line-height:1.5;
    background:#f3f8f5;border-left:3px solid var(--plg);border-radius:6px;
    padding:12px 16px;margin:16px 0;
}
.pd-istruzioni strong, .esp-istruzioni strong, .ppass-contesto strong, .psc-scadenza strong{color:var(--plg);}

/* ============================================================
   RIGHE ETICHETTA-VALORE — vista profilo, riepilogo candidatura, scheda
   di partecipazione (dentro l'accordion). Fix "testo lungo sfonda il
   riquadro" (flex-basis fisso + word-break, vista profilo, commit
   3be4750) esteso qui a TUTTE le varianti: la stessa fragilità, mai
   emersa altrove solo perché mai provata con un valore lungo.
   ============================================================ */
.pr-row, .pd-scheda-riga{
    font-size:14px;padding:8px 0;border-bottom:1px solid #f8f8f8;
    display:flex;gap:12px;flex-wrap:wrap;
}
.pr-row:last-child, .pd-scheda-riga:last-child{border-bottom:none;}
.pr-row-label, .pd-scheda-riga>span:first-child{
    color:#888;flex:0 0 160px;word-break:break-word;overflow-wrap:anywhere;
}
.pr-row-val, .pd-scheda-riga>span:last-child{
    font-weight:600;color:#333;flex:1 1 160px;min-width:0;
    word-break:break-word;overflow-wrap:anywhere;
}
@media(max-width:520px){
    .pr-row-label, .pd-scheda-riga>span:first-child{flex-basis:100%;}
}

.pr-section{background:#fff;border:1px solid #eee;border-radius:10px;padding:20px 24px;margin-bottom:16px;}
.pr-section-title{
    font-size:13px;font-weight:700;color:#333;text-transform:uppercase;
    letter-spacing:.5px;margin-bottom:14px;padding-bottom:8px;
    border-bottom:1px solid #f0f0f0;
}

/* Box "contenuto principale" — scheda evento / pass / SCIA / richieste:
   byte-quasi-identico su tutte e quattro prima della migrazione. */
.pse-box, .ppass-box, .psc-box, .tkf-box{
    background:#fff;border:1px solid #eee;border-radius:10px;padding:24px 28px;
}

/* Header banner verde — stesso pattern (titolo + sottotitolo su sfondo
   pieno) in richieste/scheda-evento/pass/SCIA/candidatura. */
.pse-header, .ppass-header, .psc-header, .ps-header, .pr-header{
    background:var(--plg);border-radius:10px;padding:24px 28px;margin-bottom:20px;
}
.pse-header h2, .ppass-header h2, .psc-header h2, .ps-header h2, .pr-header h2{
    font-size:20px;font-weight:700;color:#fff;margin:0 0 4px;
}
.pse-header p, .ppass-header p, .psc-header p, .ps-header p, .pr-header p{
    font-size:13px;color:rgba(255,255,255,.85);margin:0;
}

/* ============================================================
   PAGINA: DASHBOARD — dashboard.php (#proloco-dash)
   ============================================================ */
#proloco-dash{max-width:1280px;margin:0 auto;padding:0 20px 3rem;}

.pd-saluto{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:24px;}
.pd-saluto-nome{font-size:21px;font-weight:700;color:#333;}
.pd-logout{font-size:13px;font-weight:600;color:#888;text-decoration:none;display:inline-flex;align-items:center;min-height:44px;padding:4px 8px;}
.pd-logout:hover{color:var(--plr);text-decoration:underline;}

.pd-comunicazioni-riga{display:flex;align-items:center;min-height:44px;font-size:14px;color:#333;text-decoration:none;padding:6px 0;border-bottom:1px solid #f5f5f5;}
.pd-comunicazioni-riga:last-child{border-bottom:none;}
.pd-comunicazioni-riga:hover{color:var(--plg);}

.pd-evento-card{margin-bottom:20px;}
.pd-evento-azione-testo{font-size:14px;color:#555;margin:14px 0;line-height:1.5;}
.pd-evento-ok{font-size:14px;color:#1a6b40;background:#f0fdf4;border:1px solid var(--plg);border-radius:8px;padding:12px 16px;margin:14px 0;}

.pd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-bottom:28px;}
.pd-card{background:#fff;border:1px solid #eee;border-radius:10px;padding:20px;cursor:pointer;transition:all .2s;text-decoration:none;display:block;min-height:44px;}
.pd-card:hover{border-color:var(--plg);box-shadow:0 4px 12px rgba(0,148,68,0.12);transform:translateY(-2px);}
.pd-card-icon{font-size:28px;margin-bottom:10px;}
.pd-card-title{font-size:15px;font-weight:600;color:#333;margin-bottom:4px;}
.pd-card-desc{font-size:13px;color:#888;}
.pd-card.highlight{border-color:var(--plg);background:var(--plgl);}
.pd-card.highlight .pd-card-title{color:var(--plg);}
.pd-card-badge{display:inline-block;background:var(--pa);color:#fff;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.3px;border-radius:10px;padding:2px 8px;margin-left:6px;vertical-align:middle;}

.pd-section{background:#fff;border:1px solid #eee;border-radius:10px;padding:20px 24px;margin-bottom:20px;}
.pd-section-title{font-size:14px;font-weight:700;color:#333;text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px;display:flex;align-items:center;gap:8px;}

.pd-profilo-incompleto{background:#fff3e0;border:2px solid #f59e0b;border-radius:12px;padding:24px 28px;margin-bottom:28px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;}
.pd-profilo-incompleto-icon{font-size:40px;line-height:1;}
.pd-profilo-incompleto-testo{flex:1;min-width:220px;}
.pd-profilo-incompleto-testo h2{font-size:18px;font-weight:700;color:#92400e;margin:0 0 6px;}
.pd-profilo-incompleto-testo p{font-size:14px;color:#795548;margin:0;}
.pd-profilo-incompleto-btn{background:#f59e0b;white-space:nowrap;min-height:44px;line-height:24px;}
.pd-profilo-incompleto-btn:hover{opacity:.9;color:#fff;}

@media(max-width:520px){
    .pd-grid{grid-template-columns:1fr;}
    .pd-saluto{flex-direction:row;}
    .pd-profilo-incompleto{flex-direction:column;text-align:center;}
}

/* ============================================================
   PAGINA: PARTECIPAZIONE — partecipazione.php (#proloco-partecipazione)
   FIX PRIORITARIO: i blocchi qui sotto (pd-conferma-*, pd-cont-*,
   pd-bon-*, pd-firma-*, pd-doc-*, pd-ricevuta-upload) vivevano nel
   <style> di dashboard.php PRIMA della riorganizzazione (commit
   283f9a5) che ha spostato qui il markup senza portare con sé il CSS:
   la pagina usava classi mai più definite da nessuna parte — da qui
   "senza contenitore, senza card, testo attaccato al bordo" (in realtà
   il wrapper #proloco-partecipazione a 1280px c'era già; a mancare
   erano le card/spaziature INTERNE ai blocchi). Recuperate da git
   (283f9a5^) e riportate qui, invariate.
   ============================================================ */
#proloco-partecipazione{max-width:1280px;margin:0 auto;padding:0 20px 3rem;}
#proloco-partecipazione h1{font-size:22px;font-weight:700;color:#333;margin:0 0 20px;}
.pp2-back{margin-bottom:16px;}

/* Selettore evento — tab (≤3 eventi) o dropdown (oltre) */
.pp2-tabs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;border-bottom:1px solid #eee;}
.pp2-tab{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;font-size:14px;font-weight:600;color:#666;text-decoration:none;border-bottom:2px solid transparent;}
.pp2-tab:hover{color:var(--plg);}
.pp2-tab-attivo{color:var(--plg);border-bottom-color:var(--plg);}
.pp2-select-wrap{margin-bottom:24px;}
.pp2-select{width:100%;max-width:420px;min-height:44px;padding:10px 12px;font-size:16px;color:#333;border:1px solid #ddd;border-radius:6px;background:#fff;}

/* Accordion di stato */
.pp2-acc{background:#fff;border:1px solid #eee;border-radius:10px;margin-bottom:14px;overflow:hidden;}
.pp2-acc-summary{display:flex;align-items:center;gap:10px;min-height:44px;padding:14px 18px;font-size:15px;cursor:pointer;list-style:none;}
.pp2-acc-summary::-webkit-details-marker{display:none;}
.pp2-acc-summary:hover{background:#fafafa;}
.pp2-dot{width:10px;height:10px;border-radius:50%;flex:0 0 auto;}
.pp2-dot-verde{background:var(--plg);}
.pp2-dot-giallo{background:#f59e0b;}
.pp2-dot-rosso{background:var(--plr);}
.pp2-acc-title{font-weight:600;color:#333;flex:1;}
.pp2-acc-stato{font-size:13px;color:#888;}
.pp2-acc-body{padding:4px 18px 20px;border-top:1px solid #f5f5f5;}

/* Box conferma partecipazione (recuperato) */
.pd-conferma-box{background:#fffbeb;border:1px solid #f59e0b;border-radius:10px;padding:20px 24px;margin-bottom:20px;}
.pd-conferma-title{font-size:16px;font-weight:700;color:#333;margin-bottom:6px;}
.pd-conferma-box p{font-size:14px;color:#666;margin:0 0 14px;}
.pd-consensi-info{font-size:12px;color:#888;margin-bottom:16px;padding:10px 14px;background:#fff;border:1px solid #f0e0b0;border-radius:8px;line-height:1.5;}
.pd-consensi-info a{color:var(--plg);font-weight:600;}
.pd-conferma-actions{display:flex;gap:10px;flex-wrap:wrap;}
.pd-rifiuta-form{margin-top:14px;display:flex;flex-direction:column;gap:10px;max-width:420px;}
.pd-rifiuta-form select,.pd-rifiuta-form textarea{padding:9px 12px;border:1px solid #ddd;border-radius:6px;font-size:13px;font-family:inherit;}
.pd-rifiuta-form textarea{resize:vertical;min-height:70px;}
.pd-conferma-esito{margin-top:12px;font-size:13px;color:#333;background:#fff;border:1px solid #eee;border-radius:8px;padding:12px 16px;}
.pd-conferma-esito a{color:var(--plg);font-weight:600;}
.pd-conferma-docs{background:#fff;border:1px solid #f0e0b0;border-radius:8px;padding:12px 16px;margin-bottom:14px;}
.pd-conferma-docs-title{font-size:13px;font-weight:600;color:#333;margin-bottom:8px;}
.pd-conferma-docs ul{margin:0;padding-left:20px;}
.pd-conferma-docs li{font-size:13px;margin:4px 0;}
.pd-conferma-docs a{color:var(--plg);font-weight:600;}

/* Stato scheda (recuperato) */
.pd-scheda-stato{display:inline-block;margin-top:10px;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;background:#fffbeb;color:#f59e0b;}
.pd-scheda-stato-ok{background:#f0fdf4;color:#009444;}
.pd-scheda-stato-preventivo{background:#fff7ed;color:var(--pa);}

/* Contratto: riepilogo + firma OTP (recuperato) */
.pd-cont-ok{background:#f0fdf4;border:1px solid var(--plg);border-radius:8px;padding:14px 18px;font-size:14px;color:#1a6b40;}
.pd-cont-riep{background:#fafafa;border:1px solid #eee;border-radius:8px;padding:16px 20px;margin-bottom:14px;}
.pd-cont-riep p{font-size:14px;color:#333;margin:0 0 10px;}
.pd-cont-riep ul{margin:0 0 10px;padding-left:20px;}
.pd-cont-riep li{font-size:13px;color:#444;margin:4px 0;}
.pd-cont-firmato{background:#f0fdf4;border:1px solid var(--plg);border-radius:8px;padding:12px 16px;font-size:14px;color:#1a6b40;font-weight:600;margin-bottom:12px;}
/* Coordinate bonifico — devono saltare all'occhio (troppo piccole in
   passato): testo >=16px, causale evidenziata a parte. */
.pd-bonifico-box{background:#fffbeb;border:2px solid #f59e0b;border-radius:10px;padding:18px 22px;margin-bottom:14px;}
.pd-bonifico-box p{font-size:16px;color:#333;margin:0 0 12px;}
.pd-bon-riga{font-size:16px;color:#333;margin:8px 0;}
.pd-bon-riga strong{font-weight:800;}
.pd-bon-causale{background:#fff3cd;border:1px dashed #f59e0b;border-radius:6px;padding:10px 14px;margin-top:12px;font-weight:700;}
.pd-non-firmato{display:flex;flex-direction:column;gap:12px;}
.pd-firma-box{margin-top:14px;padding:16px 18px;background:#fafafa;border:1px solid #eee;border-radius:8px;display:flex;flex-direction:column;gap:10px;max-width:360px;}
.pd-firma-otp{padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:16px;letter-spacing:2px;text-align:center;}
.pd-firma-errore{font-size:13px;color:var(--plr);}
.pd-firma-azioni{display:flex;gap:10px;flex-wrap:wrap;}
.pd-ricevuta-upload{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:10px;}
.pd-ricevuta-upload input[type=file]{font-size:13px;}
.pd-doc-riga{padding:8px 0;border-bottom:1px solid #f5f5f5;}
.pd-doc-riga:last-of-type{border-bottom:none;}
.pd-doc-rifiutato-riga{background:#fef2f2;border:1px solid var(--plr);border-radius:8px;padding:12px 16px;margin-bottom:10px;}
.pd-doc-rifiutato-riga input[type=file]{font-size:13px;margin-right:10px;}

@media(max-width:520px){
    .pp2-acc-summary{flex-wrap:wrap;}
    .pp2-acc-stato{width:100%;padding-left:20px;}
}

/* ============================================================
   PAGINA: PROFILO — profilo.php (#proloco-profilo)
   Due modalità mutualmente esclusive (mai in pagina insieme): modifica
   (wizard a step, pulsanti .pp-btn a larghezza piena) e vista (sola
   lettura, pulsanti .pp-btn inline — stessa geometria di .pd-btn, già
   confluita nella famiglia condivisa sopra). Le due definizioni di
   .pp-btn qui sotto restano entrambe (contesti diversi, mai insieme
   in pagina): quella dello step-wizard vince dentro #pp-s1/#pp-s2/ecc.
   ============================================================ */
#proloco-profilo{max-width:600px;margin:40px auto;}
#proloco-profilo *{margin:0;padding:0;}
#proloco-profilo h2{font-size:22px;font-weight:600;color:#333;margin-bottom:6px;}
#proloco-profilo .pp-sub{font-size:14px;color:#888;margin-bottom:30px;}

/* --- Modifica (wizard a step) --- */
#proloco-profilo .pp-step{display:none;}
#proloco-profilo .pp-step.active{display:block;animation:ppfi .25s ease;}
@keyframes ppfi{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
#proloco-profilo .tipo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;}
#proloco-profilo .tipo-card{border:2px solid #ddd;border-radius:10px;padding:24px 20px;text-align:center;cursor:pointer;transition:all .2s;}
#proloco-profilo .tipo-card:hover{border-color:var(--plg);background:var(--plgl);}
#proloco-profilo .tipo-card.sel{border-color:var(--plg);background:var(--plgl);}
#proloco-profilo .tipo-card .tc-icon{font-size:36px;margin-bottom:10px;}
#proloco-profilo .tipo-card .tc-title{font-size:15px;font-weight:600;color:#333;}
#proloco-profilo .tipo-card .tc-desc{font-size:12px;color:#888;margin-top:4px;}
#proloco-profilo .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
#proloco-profilo .full{grid-column:1/-1;}
#proloco-profilo .fl{display:flex;flex-direction:column;gap:5px;}
#proloco-profilo .fl label{font-size:12px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.4px;}
#proloco-profilo .req{color:var(--plr);}
#proloco-profilo .fl input,#proloco-profilo .fl select{padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;color:#333;background:#fff;outline:none;transition:border-color .2s;width:100%;}
#proloco-profilo .fl input:focus,#proloco-profilo .fl select:focus{border-color:var(--plg);}
#proloco-profilo .fl input[readonly]{background:#f2f2f2;color:#888;cursor:not-allowed;}
#proloco-profilo .fl-note{font-size:11px;font-weight:400;color:#aaa;text-transform:none;letter-spacing:0;}
#proloco-profilo .fl-instruzione{font-size:12px;font-weight:600;color:#666;background:#f5f5f5;border-radius:6px;padding:8px 12px;margin:-4px 0 2px;}
#proloco-profilo .fl input.err,#proloco-profilo .fl select.err{border-color:var(--plr);}
#proloco-profilo .errmsg{font-size:11px;color:var(--plr);display:none;margin-top:3px;}
#proloco-profilo .errmsg.on{display:block;}
#proloco-profilo .valid-msg{font-size:11px;color:var(--plg);display:none;margin-top:3px;}
#proloco-profilo .valid-msg.on{display:block;}
#proloco-profilo .section-title{font-size:13px;font-weight:700;color:var(--plg);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--plg);padding-bottom:6px;margin-bottom:14px;margin-top:20px;}
#proloco-profilo .attivita-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px;}
#proloco-profilo .att-card{border:2px solid #ddd;border-radius:10px;padding:20px;text-align:center;cursor:pointer;transition:all .2s;}
#proloco-profilo .att-card:hover{border-color:var(--plg);background:var(--plgl);}
#proloco-profilo .att-card.sel{border-color:var(--plg);background:var(--plgl);}
#proloco-profilo .att-card .ac-icon{font-size:32px;margin-bottom:8px;}
#proloco-profilo .att-card .ac-title{font-size:14px;font-weight:600;color:#333;}
#proloco-profilo .att-card .ac-desc{font-size:12px;color:#888;margin-top:4px;}
#proloco-profilo .pp-step .pp-btn{width:100%;padding:12px;background:var(--plg);color:#fff;border:none;border-radius:6px;font-size:15px;font-weight:600;cursor:pointer;margin-top:10px;transition:opacity .15s;min-height:44px;}
#proloco-profilo .pp-step .pp-btn:hover{opacity:.88;}
#proloco-profilo .pp-back{background:#666;border:none;color:#fff;margin-top:8px;min-height:44px;}
#proloco-profilo .pp-back:hover{opacity:.88;background:#666;}
#proloco-profilo .succ{text-align:center;padding:40px 20px;}
#proloco-profilo .succ-icon{font-size:48px;margin-bottom:16px;}
#proloco-profilo .succ h3{font-size:20px;font-weight:600;color:var(--plg);margin-bottom:8px;}
#proloco-profilo .succ p{font-size:14px;color:#888;}
#proloco-profilo .pp-error-banner{display:none;position:sticky;top:10px;z-index:50;background:#fef2f2;border:1px solid var(--plr);border-radius:8px;padding:14px 18px;margin-bottom:18px;color:#7a1913;box-shadow:0 2px 8px rgba(0,0,0,.08);}
#proloco-profilo .pp-error-banner.on{display:block;}
#proloco-profilo .pp-error-banner strong{display:block;margin-bottom:6px;font-size:13px;}
#proloco-profilo .pp-error-banner ul{margin:0;padding-left:18px;font-size:12px;}
#proloco-profilo .pp-error-banner li{margin-bottom:2px;}

/* --- Vista (sola lettura) --- */
#proloco-profilo .pr-actions{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px;}
#proloco-profilo .pp-danger-section{margin-top:24px;padding-top:24px;border-top:1px solid #eee;}
#proloco-profilo .pp-danger-title{font-size:15px;font-weight:700;color:var(--plr);margin-bottom:10px;}
#proloco-profilo .pp-danger-testo{font-size:14px;color:#666;line-height:1.5;margin-bottom:16px;}
#proloco-profilo .pp-btn-danger{width:auto;}
#proloco-profilo .pp-danger-box{margin-top:16px;padding:16px;background:#fef2f2;border:1px solid var(--plr);border-radius:8px;}
#proloco-profilo .pp-danger-input{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:16px;margin-bottom:12px;}

@media(max-width:520px){
    #proloco-profilo .tipo-grid,#proloco-profilo .attivita-grid,#proloco-profilo .fgrid{grid-template-columns:1fr;}
}

/* ============================================================
   PAGINA: PRE-ISCRIZIONE — espositore.php, proloco_espositore_render()
   (#proloco-esp)
   ============================================================ */
#proloco-esp{max-width:680px;margin:0 auto;padding:0 0 3rem;}
#proloco-esp h2{font-size:22px;font-weight:700;color:#333;margin-bottom:6px;}
#proloco-esp .esp-sub{font-size:14px;color:#666;margin-bottom:24px;line-height:1.6;}
#proloco-esp .esp-notice{background:#fff8e1;border:1px solid #ffe082;border-radius:8px;padding:14px 16px;font-size:13px;color:#795548;margin-bottom:24px;line-height:1.6;}
#proloco-esp .section-title{font-size:13px;font-weight:700;color:var(--plg);text-transform:uppercase;letter-spacing:.5px;border-bottom:2px solid var(--plg);padding-bottom:6px;margin:24px 0 16px;}
#proloco-esp .fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
#proloco-esp .full{grid-column:1/-1;}
#proloco-esp .fl{display:flex;flex-direction:column;gap:5px;}
#proloco-esp .fl label{font-size:12px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.4px;}
#proloco-esp .req{color:var(--plr);}
#proloco-esp .fl input,#proloco-esp .fl textarea{padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;color:#333;background:#fff;outline:none;transition:border-color .2s;width:100%;}
#proloco-esp .fl input:focus,#proloco-esp .fl textarea:focus{border-color:var(--plg);}
#proloco-esp .fl textarea{resize:vertical;min-height:120px;}
#proloco-esp .errmsg{font-size:11px;color:var(--plr);display:none;margin-top:3px;}
#proloco-esp .errmsg.on{display:block;}
#proloco-esp .esp-istruzioni{margin-bottom:12px;}
#proloco-esp .foto-desc{font-size:13px;color:#666;line-height:1.6;margin-bottom:12px;}
#proloco-esp .foto-desc ul{margin:6px 0 8px 18px;padding:0;}
#proloco-esp .foto-desc-small{font-size:11px;color:#aaa;display:block;}
#proloco-esp .foto-error-box{display:none;align-items:flex-start;gap:10px;background:#fef2f2;border:1px solid var(--plr);border-radius:8px;padding:14px 16px;margin-top:12px;color:#7a1913;font-size:13px;font-weight:600;line-height:1.5;}
#proloco-esp .foto-error-box.on{display:flex;}
#proloco-esp .foto-error-box .fe-icon{font-size:18px;flex-shrink:0;}
#proloco-esp .conta{font-size:11px;color:#aaa;text-align:right;margin-top:3px;}
#proloco-esp .eventi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px;align-items:start;}
#proloco-esp .evento-card{border:2px solid #ddd;border-radius:10px;overflow:hidden;transition:border-color .2s,background .2s;}
#proloco-esp .evento-card.sel{border-color:var(--plg);background:var(--plgl);}
#proloco-esp .ev-toggle{padding:16px 12px;text-align:center;cursor:pointer;position:relative;}
#proloco-esp .ev-toggle:hover{background:var(--plgl);}
#proloco-esp .ev-toggle input[type=checkbox]{position:absolute;opacity:0;width:0;height:0;}
#proloco-esp .evento-card .ev-icon{font-size:28px;margin-bottom:8px;}
#proloco-esp .evento-card .ev-title{font-size:13px;font-weight:700;color:#333;}
#proloco-esp .evento-card.sel .ev-title{color:var(--plg);}
#proloco-esp .ev-cat-block{padding:14px 12px 16px;border-top:2px solid var(--plg);background:#fff;cursor:default;text-align:left;}
#proloco-esp .ev-cat-label{font-size:11px;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px;line-height:1.4;}
#proloco-esp .ev-cat-block select{width:100%;padding:9px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;color:#333;background:#fff;margin-bottom:8px;}
#proloco-esp .ev-cat-sub-wrap{margin-top:4px;}
#proloco-esp .ev-cat-sub-label{font-size:11px;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:.3px;margin:8px 0 6px;}
#proloco-esp .ev-cat-sub-grid{display:flex;flex-direction:column;gap:4px;}
#proloco-esp .ev-cat-sub-item{display:flex;align-items:center;gap:7px;font-size:13px;color:#333;cursor:pointer;padding:2px 0;}
#proloco-esp .ev-cat-sub-item input{margin:0;flex-shrink:0;}
#proloco-esp .ev-cat-sub-item.disattiva{color:#bbb;cursor:not-allowed;}
#proloco-esp .ev-cat-limite-msg{display:none;font-size:11.5px;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:6px 10px;margin-top:6px;}
#proloco-esp .ev-cat-limite-msg.on{display:block;}
#proloco-esp .upload-area{border:2px dashed #ddd;border-radius:10px;padding:24px;text-align:center;cursor:pointer;transition:border-color .2s;background:#fafafa;}
#proloco-esp .upload-area:hover{border-color:var(--plg);}
#proloco-esp .upload-area input[type=file]{display:none;}
#proloco-esp .upload-icon{font-size:32px;margin-bottom:8px;}
#proloco-esp .upload-text{font-size:14px;color:#666;}
#proloco-esp .upload-hint{font-size:12px;color:#aaa;margin-top:4px;}
#proloco-esp .preview-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin-top:12px;}
#proloco-esp .preview-item{position:relative;border-radius:8px;overflow:hidden;aspect-ratio:1;}
#proloco-esp .preview-item img{width:100%;height:100%;object-fit:cover;}
#proloco-esp .preview-noanteprima{width:100%;height:100%;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px;box-sizing:border-box;background:#f3f4f6;color:#555;font-size:11px;word-break:break-all;}
#proloco-esp .preview-remove{position:absolute;top:4px;right:4px;background:rgba(0,0,0,0.6);color:#fff;border:none;border-radius:50%;width:22px;height:22px;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;}
#proloco-esp .privacy-check{display:flex;align-items:flex-start;gap:10px;font-size:13px;color:#555;margin-bottom:12px;}
#proloco-esp .privacy-check input{width:auto;margin-top:3px;flex-shrink:0;}
#proloco-esp .privacy-check a{color:var(--plg);}
#proloco-esp .esp-btn{width:100%;padding:14px;background:var(--plg);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;margin-top:16px;transition:opacity .15s;min-height:44px;}
#proloco-esp .esp-btn:hover{opacity:.88;}
#proloco-esp .esp-btn:disabled{opacity:.5;cursor:not-allowed;}
#proloco-esp-success{display:none;text-align:center;padding:60px 20px;}
#proloco-esp-success .succ-icon{font-size:56px;margin-bottom:16px;}
#proloco-esp-success h3{font-size:22px;font-weight:700;color:var(--plg);margin-bottom:10px;}
#proloco-esp-success p{font-size:15px;color:#666;line-height:1.6;}
@media(max-width:580px){
    #proloco-esp .fgrid,#proloco-esp .eventi-grid{grid-template-columns:1fr;}
}

/* ============================================================
   PAGINA: CANDIDATURA — espositore.php, proloco_espositore_riepilogo()
   (#proloco-riepilogo). .pr-section/.pr-section-title/.pr-row* condivisi
   sopra con la vista profilo.
   ============================================================ */
#proloco-riepilogo{max-width:680px;margin:0 auto;padding:0 0 3rem;}
.pr-stato{border-radius:10px;padding:20px 24px;margin-bottom:20px;display:flex;align-items:center;gap:16px;border:1px solid;}
.pr-stato-icon{font-size:36px;}
.pr-stato-label{font-size:17px;font-weight:700;}
.pr-stato-data{font-size:12px;opacity:.8;margin-top:4px;}
.pr-evento-ass{font-size:14px;font-weight:600;margin-top:8px;padding:6px 12px;background:rgba(0,148,68,0.15);border-radius:6px;display:inline-block;}
.pr-desc{font-size:14px;color:#444;line-height:1.7;white-space:pre-wrap;}
.pr-foto-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;margin-top:12px;}
.pr-foto-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;border:1px solid #eee;}
@media(max-width:520px){.pr-stato{flex-direction:column;text-align:center;}}

/* --- sblocco modifica candidatura: griglia "aggiungi eventi" nel riepilogo.
   Stesse classi/regole della griglia di candidatura (#proloco-esp, sopra),
   qui scoped su #proloco-riepilogo — stesso approccio già usato per la
   copia scoped su #proloco-segc in segreteria-candidatura.php. --- */
.pr-sblocco-avviso{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:14px 18px;font-size:13.5px;color:#92400e;line-height:1.6;margin-bottom:16px;}
.pr-sbe-ok{background:#f0fdf4;border:1px solid #86efac;border-radius:8px;padding:14px 18px;font-size:13.5px;color:#166534;line-height:1.6;margin-bottom:16px;}
#proloco-riepilogo .errmsg{font-size:11px;color:var(--plr);display:none;margin-top:3px;}
#proloco-riepilogo .errmsg.on{display:block;}
#proloco-riepilogo .eventi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:14px;align-items:start;}
#proloco-riepilogo .evento-card{border:2px solid #ddd;border-radius:10px;overflow:hidden;transition:border-color .2s,background .2s;}
#proloco-riepilogo .evento-card.sel{border-color:var(--plg);background:var(--plgl);}
#proloco-riepilogo .ev-toggle{padding:16px 12px;text-align:center;cursor:pointer;position:relative;}
#proloco-riepilogo .ev-toggle:hover{background:var(--plgl);}
#proloco-riepilogo .ev-toggle input[type=checkbox]{position:absolute;opacity:0;width:0;height:0;}
#proloco-riepilogo .evento-card .ev-icon{font-size:28px;margin-bottom:8px;}
#proloco-riepilogo .evento-card .ev-title{font-size:13px;font-weight:700;color:#333;}
#proloco-riepilogo .evento-card.sel .ev-title{color:var(--plg);}
#proloco-riepilogo .ev-cat-block{padding:14px 12px 16px;border-top:2px solid var(--plg);background:#fff;cursor:default;text-align:left;}
#proloco-riepilogo .ev-cat-label{font-size:11px;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:.3px;margin-bottom:8px;line-height:1.4;}
#proloco-riepilogo .ev-cat-block select{width:100%;padding:9px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;color:#333;background:#fff;margin-bottom:8px;}
#proloco-riepilogo .ev-cat-sub-wrap{margin-top:4px;}
#proloco-riepilogo .ev-cat-sub-label{font-size:11px;font-weight:700;color:#666;text-transform:uppercase;letter-spacing:.3px;margin:8px 0 6px;}
#proloco-riepilogo .ev-cat-sub-grid{display:flex;flex-direction:column;gap:4px;}
#proloco-riepilogo .ev-cat-sub-item{display:flex;align-items:center;gap:7px;font-size:13px;color:#333;cursor:pointer;padding:2px 0;min-height:28px;}
#proloco-riepilogo .ev-cat-sub-item input{margin:0;flex-shrink:0;}
#proloco-riepilogo .ev-cat-sub-item.disattiva{color:#bbb;cursor:not-allowed;}
#proloco-riepilogo .ev-cat-limite-msg{display:none;font-size:11.5px;color:#b45309;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:6px 10px;margin-top:6px;}
#proloco-riepilogo .ev-cat-limite-msg.on{display:block;}
/* evento già in candidatura: visibile ma non toccabile, con spiegazione */
#proloco-riepilogo .evento-card.sbe-bloccato .ev-toggle{cursor:default;}
#proloco-riepilogo .evento-card.sbe-bloccato .ev-toggle:hover{background:transparent;}
#proloco-riepilogo .sbe-gia-cat{font-size:13px;font-weight:600;color:#333;margin-bottom:6px;}
#proloco-riepilogo .sbe-gia-nota{font-size:11.5px;color:#888;line-height:1.4;}
#proloco-riepilogo .sbe-descrizione{width:100%;padding:11px 12px;border:1px solid #ddd;border-radius:8px;font-size:14px;min-height:120px;resize:vertical;margin-top:8px;}
#proloco-riepilogo .sbe-foto-item{position:relative;}
#proloco-riepilogo .sbe-foto-item.rimossa img{opacity:.35;filter:grayscale(1);}
#proloco-riepilogo .sbe-foto-x{position:absolute;top:6px;right:6px;width:28px;height:28px;border:none;border-radius:50%;background:rgba(0,0,0,.6);color:#fff;font-size:14px;line-height:1;cursor:pointer;}
#proloco-riepilogo .sbe-foto-x:hover{background:var(--plr);}
#proloco-riepilogo #sbe-foto-nuove{width:100%;font-size:13px;}
#proloco-riepilogo .sbe-btn{width:100%;padding:14px;background:var(--plg);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:700;cursor:pointer;margin-top:16px;transition:opacity .15s;min-height:44px;}
#proloco-riepilogo .sbe-btn:hover{opacity:.88;}
#proloco-riepilogo .sbe-btn:disabled{opacity:.5;cursor:not-allowed;}
#proloco-riepilogo .sbe-tutti-scelti{font-size:13px;color:#888;margin-top:8px;}
@media(max-width:520px){#proloco-riepilogo .eventi-grid{grid-template-columns:1fr;}}

/* ============================================================
   PAGINA: SCHEDA DI PARTECIPAZIONE — scheda-evento.php (#proloco-scheda)
   ============================================================ */
#proloco-scheda{max-width:720px;margin:0 auto;padding:0 0 3rem;}
.pse-sez{background:#fff;border:1px solid #eee;border-radius:10px;padding:18px 22px;margin-bottom:16px;}
.pse-sez-title{font-size:14px;font-weight:700;color:#333;margin-bottom:4px;}
.pse-sez-sub{font-size:12px;color:#999;margin-bottom:12px;line-height:1.5;}
.pse-opt{display:flex;align-items:flex-start;gap:8px;padding:8px 0;font-size:14px;color:#333;cursor:pointer;}
.pse-opt input{margin-top:3px;}
.pse-opt-meta{font-size:12px;color:#999;margin-left:4px;}
select.pse-input, input.pse-input, textarea.pse-input{width:100%;padding:9px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:inherit;}
textarea.pse-input{resize:vertical;min-height:80px;}
.pse-inline-num{width:100px;padding:8px 10px;border:1px solid #ddd;border-radius:6px;font-size:13px;margin-left:8px;}
.pse-energia-box{margin-top:12px;padding:12px 14px;background:#fafafa;border-radius:8px;font-size:13px;color:#555;}
.pse-riepilogo{background:var(--plgl);border:1px solid var(--plg);border-radius:10px;padding:16px 20px;margin-bottom:16px;font-size:14px;}
.pse-riepilogo-riga{display:flex;justify-content:space-between;padding:4px 0;}
.pse-riepilogo-tot{font-weight:700;font-size:16px;color:var(--plg);border-top:1px solid rgba(0,148,68,.3);margin-top:6px;padding-top:8px;}
.pse-errore{color:var(--plr);font-size:13px;margin-top:6px;white-space:pre-line;}
.pse-doc-errore:empty{display:none;}
.pse-mancanti{background:#fef2f2;border:1px solid var(--plr);border-radius:8px;padding:12px 16px;margin-bottom:12px;font-size:13px;color:#7a1913;}
.pse-mancanti ul{margin:8px 0 0 18px;padding:0;}
.pse-mancanti li{margin:3px 0;}
.pse-check{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#555;margin-top:8px;}
.req{color:var(--plr);}
.pse-doc-richiesto{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid #f0f0f0;}
.pse-doc-richiesto:last-of-type{border-bottom:none;margin-bottom:0;padding-bottom:0;}
.pse-doc-nome{font-size:14px;font-weight:600;color:#333;margin-bottom:4px;}
.pse-doc-richiesto-file{margin-top:8px;}

/* ============================================================
   PAGINA: PASS — pass.php (#proloco-pass-esp)
   ============================================================ */
#proloco-pass-esp{max-width:720px;margin:0 auto;padding:0 0 3rem;}
.ppass-sez{background:#fff;border:1px solid #eee;border-radius:10px;padding:18px 22px;margin-bottom:16px;}
.ppass-sez-title{font-size:14px;font-weight:700;color:#333;margin-bottom:10px;}
.ppass-riga{border:1px solid #e5e5e5;border-radius:10px;padding:16px 18px;margin-bottom:14px;background:#fcfcfc;}
.ppass-riga-tit{font-size:13px;font-weight:700;color:var(--plg);margin-bottom:10px;text-transform:uppercase;letter-spacing:.4px;}
.ppass-riga input[type=text]{width:100%;padding:11px 12px;border:1px solid #ddd;border-radius:6px;font-size:16px;margin-bottom:10px;}
.ppass-nomi{display:flex;gap:10px;}
.ppass-nomi input[type=text]{flex:1;min-width:0;}
.ppass-giorni{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0;}
.ppass-giorni label{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #ddd;border-radius:16px;padding:11px 16px;min-height:44px;font-size:14px;cursor:pointer;}
.ppass-giorni label.sel{background:var(--plgl);border-color:var(--plg);color:var(--plg);font-weight:600;}
.ppass-giorni input[type=checkbox]{width:20px;height:20px;}
.ppass-prezzo-riga{font-size:13px;color:#555;margin-top:6px;}
.ppass-rimuovi{background:none;border:1px solid var(--plr);color:var(--plr);border-radius:6px;padding:11px 16px;min-height:44px;font-size:13px;cursor:pointer;margin-top:8px;}
.ppass-errore{color:var(--plr);font-size:13px;margin-top:8px;}
/* avviso condizioni pass personalizzate (deroga segreteria, pass.php) — tono neutro, nessun dettaglio interno */
.ppass-deroga-avviso{background:#fffbeb;border-color:#d97706;color:#78350f;}
.ppass-deroga-avviso strong{color:#92400e;}
.ppass-foto-istruzioni{background:var(--plgl);border:1px solid var(--plg);border-radius:8px;padding:10px 14px;font-size:13px;color:#1e5e34;margin-bottom:10px;line-height:1.4;}
.ppass-foto-input{display:block;margin-bottom:10px;max-width:100%;font-size:14px;}
.ppass-foto-input::file-selector-button,.ppass-foto-input::-webkit-file-upload-button{padding:11px 16px;min-height:44px;border-radius:6px;border:1px solid #ddd;background:#fff;font-size:14px;font-weight:600;cursor:pointer;margin-right:10px;}
.ppass-crop{margin-bottom:10px;}
.ppass-crop-istruzioni{font-size:13px;color:#555;margin-bottom:8px;}
.ppass-foto-formati{font-size:12px;color:#777;margin:6px 0 10px;line-height:1.4;}
.ppass-crop-canvas{border:1px solid #ddd;border-radius:6px;touch-action:none;cursor:move;max-width:100%;height:auto;display:block;}
.ppass-crop-azioni{margin-top:10px;display:flex;gap:10px;flex-wrap:wrap;}
/* color esplicito: senza, il bottone "Annulla" eredita il color:#fff che
   GeneratePress applica di default a OGNI <button> del tema — con lo
   sfondo bianco sotto diventava testo bianco su bianco, illeggibile
   (trovato dal vivo, computed style). */
.ppass-crop-azioni button{padding:12px 18px;min-height:44px;border-radius:6px;font-size:14px;font-weight:600;cursor:pointer;border:1px solid #ddd;background:#fff;color:#333;}
.ppass-crop-azioni button.conferma{background:var(--plg);color:#fff;border:none;}
.ppass-anteprima{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap;}
.ppass-anteprima img{width:75px;height:100px;object-fit:cover;border-radius:6px;border:1px solid #ddd;}
.ppass-anteprima button{padding:11px 16px;min-height:44px;border-radius:6px;font-size:13px;font-weight:600;border:1px solid #ddd;background:#fff;color:#333;cursor:pointer;}
.ppass-motivo-box{background:#fef2f2;border:1px solid var(--plr);border-radius:8px;padding:10px 14px;font-size:13px;color:#7a1913;margin-bottom:12px;}
.ppass-mio-card{border:1px solid #e5e5e5;border-radius:10px;padding:16px 18px;margin-bottom:14px;background:#fcfcfc;display:flex;gap:16px;}
.ppass-mio-foto{width:90px;height:120px;object-fit:cover;border-radius:6px;border:1px solid #ddd;flex-shrink:0;background:#eee;}
.ppass-mio-corpo{flex:1;min-width:0;}
.ppass-mio-nome{font-size:15px;font-weight:700;color:#333;}
.ppass-mio-meta{font-size:12px;color:#888;margin-top:2px;}
.ppass-mio-giorni{font-size:12px;color:#555;margin-top:6px;}
.ppass-mio-motivo{background:#fef2f2;border:1px solid var(--plr);border-radius:8px;padding:8px 12px;font-size:12px;color:#7a1913;margin-top:8px;}
.ppass-badge{display:inline-block;padding:3px 12px;border-radius:12px;font-size:11px;font-weight:700;white-space:nowrap;}
.ppass-badge-attesa{background:#fffbeb;color:#b45309;}
.ppass-badge-approvato{background:#f0fdf4;color:var(--plg);}
.ppass-badge-rifiutato{background:#fef2f2;color:var(--plr);}
.ppass-sblocca-btn{margin-top:10px;padding:8px 14px;min-height:0;font-size:12px;}
@media (max-width:480px){
    .ppass-box,.ppass-sez,.ppass-header{padding-left:14px;padding-right:14px;}
    .ppass-riga{padding:14px;}
    .ppass-nomi{flex-direction:column;gap:0;}
}

/* ============================================================
   PAGINA: SCIA — scia.php (#proloco-scia-esp)
   ============================================================ */
#proloco-scia-esp{max-width:640px;margin:0 auto;padding:0 0 3rem;}
.psc-box{margin-bottom:16px;}
.psc-ok{background:#f0fdf4;border:1px solid var(--plg);border-radius:8px;padding:12px 16px;font-size:13px;color:#1e5e34;margin-bottom:14px;}
.psc-ok a{color:var(--plg);font-weight:700;}
.psc-warn{background:#fef2f2;border:1px solid var(--plr);border-radius:8px;padding:12px 16px;font-size:13px;color:#7a1913;margin-bottom:14px;}
.psc-pending{background:#fffbeb;border:1px solid #f59e0b;border-radius:8px;padding:12px 16px;font-size:13px;color:#92400e;margin-bottom:14px;}
.psc-pending a{color:#92400e;font-weight:700;}
.psc-file-input{display:block;margin-bottom:12px;max-width:100%;font-size:14px;}
.psc-file-input::file-selector-button,.psc-file-input::-webkit-file-upload-button{padding:11px 16px;min-height:44px;border-radius:6px;border:1px solid #ddd;background:#fff;font-size:14px;font-weight:600;cursor:pointer;margin-right:10px;}
.psc-errore{display:none;background:#fef2f2;border:1px solid var(--plr);border-radius:8px;padding:12px 16px;font-size:13px;color:#7a1913;font-weight:600;margin-top:10px;white-space:pre-line;}
.psc-errore:not(:empty){display:block;}
@media (max-width:480px){ .psc-box,.psc-header{padding-left:14px;padding-right:14px;} }

/* ============================================================
   PAGINA: RICHIESTE (ticket) — ticket.php (#proloco-tkport)
   ============================================================ */
#proloco-tkport{max-width:900px;margin:0 auto;padding:0 16px 3rem;}
.tkp-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap;}
.tkp-lista{display:flex;flex-direction:column;gap:10px;}
.tkp-card{display:block;background:#fff;border:1px solid #eee;border-radius:10px;padding:16px 20px;text-decoration:none;color:inherit;}
.tkp-card:hover{border-color:var(--plg);background:var(--plgl);}
.tkp-card.tkp-novita{border-color:var(--pa);background:#fff7ed;}
.tkp-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;}
.tkp-oggetto{font-size:15px;font-weight:700;color:#333;}
.tkp-puntino{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--pa);margin-right:2px;}
.tkp-sub{font-size:12px;color:#888;margin-top:4px;}
.tkp-badge{display:inline-flex;align-items:center;gap:4px;border-radius:12px;padding:3px 10px;font-size:11px;font-weight:700;white-space:nowrap;}

.tkf-campo{margin-bottom:16px;}
.tkf-campo label{display:block;font-size:13px;font-weight:700;color:#333;margin-bottom:6px;}
.tkf-campo input[type=text],.tkf-campo select,.tkf-campo textarea{width:100%;padding:11px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;min-height:44px;}
.tkf-campo textarea{min-height:120px;resize:vertical;}
.tkf-campo input[type=file]{width:100%;font-size:13px;}
.tkf-errore{color:var(--plr);font-size:13px;margin:10px 0;white-space:pre-line;}
.tkf-contatore{font-size:12px;color:#999;text-align:right;margin-top:4px;}
.tkf-contatore.over{color:var(--plr);font-weight:700;}

.tkd-back{margin-bottom:14px;}
.tkd-oggetto{font-size:18px;font-weight:800;color:#333;margin:0 0 4px;}
.tkd-meta{font-size:12px;color:#888;margin-bottom:16px;}
.tkd-allegati{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px;}
.tkd-allegato{display:inline-flex;align-items:center;gap:6px;background:#f8f8f8;border:1px solid #eee;border-radius:8px;padding:6px 12px;font-size:12px;color:#333;text-decoration:none;}
.tkd-thread{display:flex;flex-direction:column;gap:12px;margin-bottom:20px;}
.tkd-msg{border-radius:10px;padding:14px 18px;max-width:85%;}
.tkd-msg.mio{background:var(--plgl);align-self:flex-end;}
.tkd-msg.segreteria{background:#f8f8f8;align-self:flex-start;}
.tkd-msg-meta{font-size:11px;color:#999;margin-bottom:6px;}
.tkd-msg-testo{font-size:14px;color:#333;white-space:pre-wrap;line-height:1.5;}
.tkd-msg-allegati{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;}
.tkd-msg-allegati .tkd-allegato{background:#fff;}
.tkd-risposta-box textarea{width:100%;padding:10px 12px;border:1px solid #ddd;border-radius:6px;font-size:14px;min-height:90px;resize:vertical;margin-bottom:10px;}
.tkd-risposta-file{margin:8px 0 4px;}
.tkd-risposta-file label{display:block;font-size:12px;color:#666;margin-bottom:4px;}
.tkd-risposta-file input[type=file]{width:100%;font-size:13px;}
.tkd-risposta-azioni{display:flex;flex-wrap:wrap;gap:10px;}
.tkd-chiuso-avviso{background:#f0fdf4;border:1px solid var(--plg);border-radius:8px;padding:12px 16px;font-size:13px;color:#1a6b40;}
@media(max-width:640px){ .tkd-msg{max-width:100%;} }

/* ============================================================
   PAGINA: COMUNICAZIONI — comunicazioni.php (#proloco-comunicazioni)
   Elenco di sola lettura, nessun thread — stesso linguaggio visivo di
   .tkp-* sopra (card, non letto = arancione var(--pa), mai rosso) ma
   prefisso diverso (.pce-) per non confondersi con .pcm-* del modal di
   composizione lato segreteria (segreteria-style.css): stessi due fogli
   di stile caricati insieme su ogni pagina, prefissi devono restare
   distinti.
   ============================================================ */
#proloco-comunicazioni{max-width:900px;margin:0 auto;padding:0 16px 3rem;}
.pce-lista{display:flex;flex-direction:column;gap:10px;}
.pce-card{background:#fff;border:1px solid #eee;border-radius:10px;padding:16px 20px;}
.pce-card.pce-novita{border-color:var(--pa);background:#fff7ed;}
.pce-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;}
.pce-oggetto{font-size:15px;font-weight:700;color:#333;}
.pce-puntino{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--pa);margin-right:2px;}
.pce-sub{font-size:12px;color:#888;margin-top:4px;}
.pce-corpo{font-size:14px;color:#333;line-height:1.5;white-space:pre-wrap;margin-top:10px;}
.pce-rispondi{display:inline-block;margin-top:12px;}

/* ============================================================
   PAGINA: FAQ — faq.php (#proloco-faq)
   ============================================================ */
#proloco-faq{max-width:820px;width:100%;margin:0 auto;padding:0 20px 3rem;}
.pf-header{background:var(--plg);border-radius:10px;padding:24px 28px;margin-bottom:20px;}
.pf-header h2{font-size:20px;font-weight:700;color:#fff;margin:0 0 4px;}
.pf-header p{font-size:13px;color:rgba(255,255,255,0.85);margin:0;}
.pf-guida-ricerca{font-size:12px;color:#888;line-height:1.5;margin:0 0 10px;}
.pf-search-wrap{position:relative;margin-bottom:20px;}
#pf-search{width:100%;padding:14px 16px 14px 44px;border:1px solid #ddd;border-radius:8px;font-size:15px;}
#pf-search:focus{outline:none;border-color:var(--plg);box-shadow:0 0 0 3px var(--plgl);}
.pf-search-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-size:16px;color:#999;pointer-events:none;}

.pf-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:16px;font-size:13px;}
.pf-crumb button{background:none;border:none;color:var(--plg);font-weight:600;cursor:pointer;padding:4px 2px;font-size:13px;}
.pf-crumb button:hover{text-decoration:underline;}
.pf-crumb span{color:#333;font-weight:600;}
.pf-crumb .pf-crumb-sep{color:#bbb;font-weight:400;}

.pf-chips{display:flex;flex-direction:column;gap:10px;}
.pf-chip{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#fff;border:1px solid #eee;border-radius:8px;padding:16px 18px;cursor:pointer;text-align:left;font-size:14px;font-weight:600;color:#333;transition:all .15s;}
.pf-chip:hover{border-color:var(--plg);color:var(--plg);background:var(--plgl);}
.pf-chip .pf-chip-arrow{color:#bbb;flex-shrink:0;}

.pf-item{background:#fff;border:1px solid #eee;border-radius:8px;margin-bottom:10px;overflow:hidden;}
.pf-domanda{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;background:none;border:none;text-align:left;padding:16px 18px;font-size:14px;font-weight:600;color:#333;cursor:pointer;}
.pf-domanda:hover{color:var(--plg);}
.pf-item-percorso{font-size:11px;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.3px;padding:10px 18px 0;}
.pf-arrow{flex-shrink:0;color:#999;transition:transform .15s;}
.pf-item.pf-aperta .pf-arrow{transform:rotate(180deg);}
.pf-risposta{display:none;padding:0 18px 18px;font-size:14px;color:#444;line-height:1.6;border-top:1px solid #f5f5f5;padding-top:14px;}
.pf-item.pf-aperta .pf-risposta{display:block;}
.pf-risposta p{margin:0 0 10px;}
.pf-risposta p:last-child{margin-bottom:0;}

.pf-vuoto,.pf-no-risultati{text-align:center;padding:30px 20px;color:#888;font-size:14px;}
.pf-cta-registrazione{text-align:center;padding:0 20px 20px;margin-top:-16px;font-size:13px;color:#666;}
.pf-cta-registrazione a{color:var(--plg);font-weight:700;text-decoration:underline;}

.pf-ticket-box{text-align:center;padding:22px 20px;margin-top:20px;background:#fff;border:1px dashed #ddd;border-radius:10px;}
.pf-ticket-box p{margin:0 0 12px;font-size:13px;color:#777;}
.pf-ticket-btn{display:inline-block;padding:11px 22px;border-radius:6px;background:var(--plg);color:#fff;font-weight:700;font-size:14px;text-decoration:none;}
.pf-ticket-btn:hover{opacity:.88;}

/* ---- avanzamento.php — barra di avanzamento candidatura/partecipazione,
   riusata sia in dashboard.php sia in segreteria-candidatura.php (unica
   regola CSS rimasta inline nel percorso espositore prima di questa
   migrazione, 2026-08-14). pav-rosso riservato a esiti negativi/definitivi
   (candidatura bloccata/non accettata, interesse rifiutato dall'espositore
   — niente più da fare, non un'azione in sospeso); pav-arancio per gli
   step che richiedono un'azione (dell'espositore o della segreteria),
   stessa convenzione già in uso altrove in questo file. ---- */
.pav-bar{display:flex;align-items:flex-start;gap:0;overflow-x:auto;padding:8px 2px;}
.pav-step{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:92px;text-align:center;}
.pav-circle{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;font-weight:700;color:#fff;margin:0 auto;}
.pav-circle.pav-verde{background:#009444;}
.pav-circle.pav-giallo{background:#f59e0b;}
.pav-circle.pav-arancio{background:#f97316;}
.pav-circle.pav-blu{background:#2563eb;}
.pav-circle.pav-rosso{background:#E02B20;}
.pav-circle.pav-grigio{background:#cbd5e1;color:#94a3b8;}
.pav-label{font-size:11px;font-weight:700;color:#333;margin-top:6px;line-height:1.3;}
.pav-sub{display:block;font-size:10px;font-weight:600;color:#999;margin-top:1px;}
.pav-line{flex:1;height:2px;background:#e5e5e5;margin-top:17px;min-width:14px;}
.pav-step.pav-clic{cursor:pointer;}
.pav-step.pav-clic:hover .pav-circle{box-shadow:0 0 0 3px rgba(0,148,68,0.25);}
.pav-step.pav-clic:hover .pav-label{text-decoration:underline;color:#009444;}
@media(max-width:600px){
    .pav-bar{flex-direction:column;align-items:flex-start;gap:10px;overflow-x:visible;}
    .pav-step{flex-direction:row;width:auto;text-align:left;gap:10px;}
    .pav-label{margin-top:0;}
    .pav-line{display:none;}
}

/* ---- ProlocoHeic (heic-convert.js): indicatore durante la conversione HEIC→JPEG /
   riduzione nel browser, e riga informativa discreta a lavoro finito ---- */
.pheic-stato{display:inline-block;margin:8px 0;padding:8px 12px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;color:#1e3a8a;font-size:13px;line-height:1.4;}
.pheic-info{display:block;margin:4px 0 6px;color:#555;font-size:12px;line-height:1.4;}

/* ---- ProlocoInvio (espositore-invio.js): avviso inline sotto i form lunghi
   al posto dell'alert() — nonce scaduto, utente disconnesso, rete. Il link
   di accesso è un touch target pieno (44px). ---- */
.pi-avviso{background:#fff7ed;border:1px solid #fdba74;border-left:4px solid #ea580c;border-radius:8px;padding:12px 14px;margin:0 0 14px;font-size:14px;line-height:1.5;color:#7c2d12;}
.pi-avviso p{margin:0;}
.pi-avviso .pi-avviso-link{display:inline-block;margin-top:8px;min-height:44px;line-height:44px;padding:0 16px;background:#ea580c;color:#fff;border-radius:6px;font-weight:600;text-decoration:none;}
.pi-avviso .pi-avviso-link:hover{background:#c2410c;color:#fff;}
/* Candidatura: bozza locale ripristinata dopo un ricaricamento */
#proloco-esp .esp-bozza-avviso{background:#eff6ff;border:1px solid #bfdbfe;border-left:4px solid #2563eb;border-radius:8px;padding:10px 14px;margin:0 0 16px;font-size:13px;line-height:1.5;color:#1e3a8a;}
