:root{--navy:#071a35;--blue:#17477f;--paper:#f3f6fa;--line:#dce3ec;--muted:#66758a;--shadow:0 12px 35px rgba(7,26,53,.09)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:#142033;font-family:Inter,system-ui,"Segoe UI",sans-serif}[v-cloak]{display:none}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(130deg,#06162e,#17477f)}.login-card{width:min(440px,92vw);background:#fff;padding:2rem;border-radius:1.5rem;box-shadow:0 30px 80px rgba(0,0,0,.25)}.login-brand,.admin-brand{display:flex;align-items:center;gap:.8rem}.login-brand i{font-size:2rem;color:#b98b26}.login-brand span,.admin-brand span{display:flex;flex-direction:column}.login-brand small,.admin-brand small{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.login-card h1{font-size:1.8rem;margin-top:2rem}.login-card p,.demo-note{color:var(--muted)}.demo-note{display:block;margin-top:1rem}.admin-shell{min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:255px;background:linear-gradient(#071a35,#0d315d);padding:1rem;color:#fff;z-index:100}.admin-brand{color:#fff;text-decoration:none;padding:.6rem;margin-bottom:1.5rem}.admin-brand i{font-size:1.8rem;color:#e0b651}.sidebar nav{display:grid;gap:.25rem}.sidebar nav button{border:0;background:transparent;color:#dce7f5;text-align:left;padding:.85rem;border-radius:.7rem;display:flex;align-items:center;gap:.7rem}.sidebar nav button.active,.sidebar nav button:hover{background:rgba(255,255,255,.12);color:#fff}.sidebar nav .badge{margin-left:auto}.admin-main{margin-left:255px}.admin-header{height:90px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;position:sticky;top:0;z-index:20}.admin-header h1{font-size:1.4rem;margin:0}.user-menu{display:flex;align-items:center;gap:1rem}.user-menu span{display:flex;flex-direction:column;text-align:right}.user-menu small{color:var(--muted)}.admin-content{padding:2rem;max-width:1600px;margin:auto}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.metric-grid article,.panel{background:#fff;border:1px solid var(--line);border-radius:1rem;box-shadow:var(--shadow)}.metric-grid article{padding:1.25rem}.metric-grid i{font-size:1.6rem;color:var(--blue);float:right}.metric-grid span,.metric-grid small{display:block;color:var(--muted)}.metric-grid strong{display:block;font-size:2rem}.panel{padding:1.25rem}.panel h2{font-size:1.1rem}.panel-title,.page-toolbar{display:flex;justify-content:space-between;align-items:center;gap:1rem}.page-toolbar{margin-bottom:1.2rem}.page-toolbar h2{font-size:1.8rem}.service-state{display:grid;text-align:center;padding:1.5rem}.service-state i{font-size:2.5rem;color:#198754}.service-state strong{text-transform:uppercase}.service-state span{color:var(--muted)}.filters{display:grid;grid-template-columns:2fr 1fr;gap:1rem;margin-bottom:1rem}.status{display:inline-block;padding:.25rem .55rem;border-radius:99px;font-size:.75rem;font-weight:800}.status.confirmed,.status.closed{background:#d9f5e6;color:#146c43}.status.pending,.status.open{background:#fff0c7;color:#7a5700}.status.cancelled{background:#fde1e3;color:#a61e2c}.status.in_progress{background:#dceaff;color:#164d91}.card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.card-grid dl{display:grid;grid-template-columns:90px 1fr}.card-grid dd{margin:0}.ticket-layout{display:grid;grid-template-columns:340px 1fr;gap:1rem}.ticket-list{padding:.5rem}.ticket-list button{display:flex;flex-direction:column;width:100%;border:0;border-bottom:1px solid var(--line);background:#fff;text-align:left;padding:1rem}.ticket-list button.active{background:#edf4ff}.ticket-list .status{align-self:flex-start}.ticket-list small{color:var(--muted)}.conversation{min-height:330px;max-height:480px;overflow:auto;padding:1rem 0}.conversation>div{max-width:75%;margin-bottom:1rem}.conversation p{background:#edf1f6;padding:.8rem;border-radius:.8rem}.conversation .staff{margin-left:auto}.conversation .staff p{background:var(--navy);color:#fff}.reply{display:grid;gap:.75rem}.reply button{justify-self:end}.settings{max-width:700px}.settings .form-check{margin:.8rem 0}.app-toast{position:fixed;right:1.5rem;bottom:1.5rem;background:#146c43;color:#fff;padding:1rem;border-radius:.7rem;z-index:9999}@media(max-width:1100px){.metric-grid{grid-template-columns:repeat(2,1fr)}.card-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:991px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:none}.admin-main{margin-left:0}.admin-content{padding:1rem}.ticket-layout{grid-template-columns:1fr}}@media(max-width:600px){.metric-grid,.card-grid,.filters{grid-template-columns:1fr}.admin-header{padding:1rem}.user-menu span{display:none}}
:root{--action:#8a6515;--action-hover:#6f4f0f}
.btn-primary{--bs-btn-color:#fff;--bs-btn-bg:var(--action);--bs-btn-border-color:var(--action);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:var(--action-hover);--bs-btn-hover-border-color:var(--action-hover);--bs-btn-focus-shadow-rgb:212,167,62;--bs-btn-active-color:#fff;--bs-btn-active-bg:#5f430c;--bs-btn-active-border-color:#5f430c}
.btn-outline-primary{--bs-btn-color:#76530f;--bs-btn-border-color:var(--action);--bs-btn-hover-color:#fff;--bs-btn-hover-bg:var(--action);--bs-btn-hover-border-color:var(--action);--bs-btn-focus-shadow-rgb:212,167,62}

/* Form amministrativi */
.event-dialog-form .form-label{font-weight:700;color:#263241}
.event-dialog-form .form-control{min-height:42px}
.event-dialog-form textarea.form-control{min-height:120px;resize:vertical}
.dialog-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.35rem;padding-top:1rem;border-top:1px solid var(--line)}
@media(max-width:600px){.dialog-actions{flex-direction:column-reverse}.dialog-actions .btn{width:100%}}

/* Modale Bootstrap eventi */
.modal-backdrop{z-index:2050}
.admin-modal{z-index:2060}
.admin-modal .modal-content{border:0;border-radius:1.1rem;box-shadow:0 30px 90px rgba(7,26,53,.32)}
.admin-modal .modal-header,.admin-modal .modal-footer{padding:1rem 1.35rem}
.admin-modal .modal-body{padding:1.35rem}
.admin-modal .modal-title{font-weight:800;color:#142033}
@media(max-width:600px){.admin-modal .modal-header,.admin-modal .modal-body,.admin-modal .modal-footer{padding:1rem}.admin-modal .modal-footer{display:grid}.admin-modal .modal-footer .btn{width:100%}}

/* Stato vuoto gestione eventi */
.admin-empty-state{display:grid;place-items:center;gap:.75rem;text-align:center;padding:clamp(2rem,4vw,3rem);min-height:280px}
.admin-empty-state i{font-size:2.75rem;color:var(--action)}
.admin-empty-state h2{margin:0;font-size:1.35rem}
.admin-empty-state p{max-width:560px;margin:0;color:var(--muted)}

/* Stato dei dati: sezioni non caricate e liste vuote */
.admin-load-error{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:1rem}
.admin-data-note{margin:1rem;color:var(--muted);text-align:center}
.service-state.text_only i{color:#7a5700}
.service-state.fallback i{color:#a61e2c}

/* Dettaglio richiesta / ticket */
.ticket-meta{display:flex;flex-wrap:wrap;gap:.5rem 1rem;margin-top:.35rem;color:var(--muted);font-size:.92rem}
.ticket-meta span{display:inline-flex;align-items:center;gap:.4rem}
.ticket-meta i{color:var(--action)}
.ticket-history-title{font-size:1rem;margin:1.25rem 0 0;color:#263241}
.ticket-email-reply{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}
.ticket-reply-heading h3{font-size:1.05rem;margin:0;color:#142033}
.ticket-reply-heading p{margin:.25rem 0 0;color:var(--muted)}
.ticket-email-reply .form-check{margin:.25rem 0}
