/* =====================================================================
   Gestionale Ambulatorio Veterinario Sociale ENPA
   Aggiunte specifiche del gestionale. Da linkare DOPO stile.css e admin.css.
   Non modifica i due file di base: qui stanno solo le classi che mancano.
   ===================================================================== */

/* Logo di ripiego (se il file immagine non e ancora stato caricato) */
.rf-logo-testo {
    font-family: var(--rf-display);
    font-weight: 800;
    font-size: 1.3rem;
    color: var(--rf-bianco);
    letter-spacing: 0.02em;
}
.rf-login-scheda .rf-logo-testo {
    display: block;
    color: var(--rf-azzurro);
    font-size: 1.8rem;
    margin-bottom: 18px;
}

/* Il link del logo nel menu non deve ereditare lo stile dei link del menu */
.rf-admin-nav a.rf-logo-link {
    padding: 0;
    margin: 0 0 6px;
    background: none;
    display: inline-flex;
}

/* Pulsante Esci: un modulo (POST) con l aspetto di una voce di menu */
.rf-admin-nav .rf-form-esci { margin: 30px 0 0; }
.rf-admin-nav .rf-esci-btn {
    display: block;
    width: 100%;
    text-align: left;
    padding: 10px 12px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--rf-bianco);
    font-family: var(--rf-display);
    font-weight: 600;
    font-size: 0.92rem;
    cursor: pointer;
    opacity: 0.85;
}
.rf-admin-nav .rf-esci-btn:hover { background: rgba(255,255,255,0.18); opacity: 1; }
@media (max-width: 760px) {
    .rf-admin-nav .rf-form-esci { margin-top: 16px; }
}

/* Ruoli del gestionale (si aggiungono a quelli di admin.css) */
.rf-badge-admin_sede  { background: #DDEFFB; color: #0089C4; }
.rf-badge-veterinario { background: #E7F5EA; color: #1E6B34; }
.rf-badge-segreteria  { background: #FFF3D6; color: #8A5A00; }
.rf-badge-sospesa     { background: #FFF3D6; color: #8A5A00; }

/* Tabella di sola lettura a due colonne (etichetta / valore) */
table.rf-tabella-chiave-valore { min-width: 0; }
table.rf-tabella-chiave-valore th {
    width: 40%;
    text-transform: none;
    font-size: 0.85rem;
}

/* Schede piu larghe della scheda-modulo standard */
.rf-scheda-larga { max-width: 720px; }

/* Il banner cookie rispetta l area sicura dei telefoni */
.rf-cookie-banner { bottom: calc(16px + env(safe-area-inset-bottom, 0px)); }

@media (max-width: 760px) {
    .rf-logo-testo { font-size: 1.1rem; }
}

/* ---------------------------------------------------------------------
   Pagina Sedi e moduli
   --------------------------------------------------------------------- */
/* Con il logo completo nella pagina di accesso serve piu altezza */
.rf-login-scheda .rf-login-logo { height: 96px; }

.rf-barra-strumenti {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-bottom: 4px;
}
.rf-barra-strumenti input[type="text"] {
    flex: 1 1 260px;
    max-width: 420px;
    padding: 10px 12px;
    border: 1px solid var(--rf-bordo);
    border-radius: 8px;
    font-family: var(--rf-sans);
    font-size: 0.95rem;
}

.rf-btn-secondario {
    display: inline-block;
    background: var(--rf-bianco);
    color: var(--rf-azzurro-scuro);
    border: 1px solid var(--rf-azzurro);
    border-radius: 8px;
    padding: 10px 20px;
    font-family: var(--rf-display);
    font-weight: 700;
    font-size: 0.92rem;
    text-decoration: none;
    cursor: pointer;
}
.rf-btn-secondario:hover { background: var(--rf-pastello); }

.rf-azioni { white-space: nowrap; }
.rf-azioni .rf-form-inline { display: inline; margin: 0 0 0 4px; }
.rf-tabella a.rf-azione-btn {
    display: inline-block;
    text-decoration: none;
    font-family: var(--rf-sans);
    font-size: 0.8rem;
    font-weight: 600;
    padding: 5px 12px;
    border-radius: 6px;
    border: 1px solid var(--rf-bordo);
    background: var(--rf-bianco);
    color: var(--rf-inchiostro);
}
.rf-tabella a.rf-azione-btn:hover { border-color: var(--rf-azzurro); color: var(--rf-azzurro-scuro); }

.rf-campo input[readonly] { background: #F3F5EF; color: var(--rf-testo); }
.rf-campo-errore { color: #A32C2C; font-size: 0.82rem; margin: 4px 0 0; }
.rf-form-scheda .rf-btn-secondario { margin-left: 8px; }

/* ---------------------------------------------------------------------
   Registro (consultazione dei log)
   --------------------------------------------------------------------- */
.rf-filtri-registro { margin-bottom: 16px; }
.rf-filtri-registro label { font-size: 0.85rem; color: var(--rf-testo); display: inline-flex; align-items: center; gap: 6px; }
.rf-filtri-registro input[type="date"],
.rf-filtri-registro select,
.rf-filtri-registro input[type="text"] {
    padding: 9px 10px;
    border: 1px solid var(--rf-bordo);
    border-radius: 8px;
    font-family: var(--rf-sans);
    font-size: 0.9rem;
    background: var(--rf-bianco);
}
.rf-filtri-registro input[type="text"] { flex: 0 1 200px; }
.rf-badge-log { background: #E2ECEF; color: #4A4A4A; }
.rf-riga-dettaglio td { padding-top: 0; border-top: 0; }
.rf-riga-dettaglio summary { cursor: pointer; font-size: 0.82rem; color: var(--rf-azzurro-scuro); }
.rf-confronto { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 8px 0; }
.rf-confronto pre {
    margin: 4px 0 0;
    padding: 10px;
    background: #F3F5EF;
    border-radius: 8px;
    font-size: 0.8rem;
    white-space: pre-wrap;
    word-break: break-word;
}
.rf-paginazione { display: flex; align-items: center; gap: 14px; margin: 16px 0 28px; flex-wrap: wrap; }
@media (max-width: 760px) {
    .rf-confronto { grid-template-columns: 1fr; }
}

/* Avviso neutro (nota informativa accanto agli avvisi di successo/errore) */
.rf-avviso-nota {
    background: #FFF3D6;
    color: #8A5A00;
    border-radius: 8px;
    padding: 12px 16px;
    margin: 0 0 12px;
    font-size: 0.92rem;
}

/* Foto dell'animale */
.rf-galleria-foto { margin: 0; }
.rf-galleria-foto figcaption { margin-top: 6px; font-size: 0.85rem; }
.rf-galleria-foto figcaption .rf-form-inline { display: inline-block; margin: 2px 0; }

/* Detentori non soci: i campi nascosti dallo script restano nascosti anche se la classe imposta display */
#terzo-fieldset[hidden], #terzo-campi [hidden] { display: none !important; }

/* Ricerca unica e scansione */
.rf-ricerca-rapida { display: flex; gap: 8px; align-items: center; margin: 0 0 18px; flex-wrap: wrap; }
.rf-ricerca-rapida input[type="text"] { flex: 1 1 220px; min-width: 0; padding: 9px 12px; border: 1px solid var(--rf-bordo); border-radius: 8px; font-family: var(--rf-sans); font-size: 0.95rem; }
.rf-ricerca-grande input[type="text"] { font-size: 1.05rem; }
.rf-scan { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.78); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 16px; }
.rf-scan-scheda { background: #fff; border-radius: 12px; padding: 14px; width: min(520px, 100%); text-align: center; }
.rf-scan-video { width: 100%; max-height: 62vh; background: #000; border-radius: 8px; object-fit: cover; }
.rf-scan-stato { margin: 10px 0; font-size: 0.9rem; }
[data-scansiona][hidden] { display: none !important; }

/* Informative privacy */
.rf-testo-informativa { max-width: 46rem; line-height: 1.6; }
.rf-testo-informativa h2 { font-size: 1.15rem; margin: 1.4em 0 .4em; }
.rf-testo-informativa ul { margin: .4em 0 .8em 1.2em; padding: 0; }
.rf-informativa-breve { background: #f3f5ef; border-radius: 6px; padding: .6rem 1rem; margin: 1rem 0; font-size: .95rem; }
.rf-contesta { margin-top: 1.4rem; }
.rf-contesta summary { cursor: pointer; font-weight: 600; }

/* Sola lettura del Superadmin (base di conoscenza 4.2.2): niente pulsanti di modifica nelle pagine consultate */
fieldset.rf-sl { border: 0; margin: 0; padding: 0; min-width: 0; }
fieldset.rf-sl[disabled] button, fieldset.rf-sl[disabled] .rf-barra-strumenti, fieldset.rf-sl[disabled] .rf-form-scheda { display: none !important; }
.rf-sola-lettura-banner { margin-bottom: 12px; }

/* Cartella clinica: campi affiancati */
.rf-campo-riga { display: flex; flex-wrap: wrap; gap: 1rem; }
.rf-campo-riga .rf-campo { flex: 1 1 12rem; }

/* Un modulo che contiene una tabella (listino, nuova ricevuta, ...) usa tutta la larghezza: i 480 px del modulo semplice la stringevano e la facevano scorrere di lato. */
.rf-form-scheda:has(.rf-tabella-wrap) { max-width: 100%; }
.rf-form-scheda .rf-tabella-wrap { margin-bottom: 20px; border: 1px solid var(--rf-bordo); }
.rf-form-scheda table.rf-tabella { min-width: 0; }
.rf-form-scheda table.rf-tabella input[type="text"], .rf-form-scheda table.rf-tabella select { width: auto; max-width: 100%; }

/* ===== Menu per aree, barra in basso e home operativa (06/10/2026) ===== */
.rf-sede-corrente { font-size: 0.82rem; line-height: 1.4; background: rgba(255,255,255,0.16); border-radius: 10px; padding: 9px 12px; margin-bottom: 8px; word-break: break-word; }
.rf-sede-corrente strong { display: block; font-size: 0.92rem; }
.rf-nav-gruppo { font-size: 0.68rem; text-transform: uppercase; letter-spacing: 0.08em; opacity: 0.75; padding: 14px 12px 4px; }
.rf-admin-nav .rf-nav-links a i, .rf-nav-amm summary i { font-style: normal; display: inline-block; width: 24px; }
.rf-nav-amm { margin-top: 6px; }
.rf-nav-amm summary { list-style: none; cursor: pointer; padding: 10px 12px; border-radius: 8px; font-weight: 600; font-size: 0.92rem; display: flex; }
.rf-nav-amm summary::-webkit-details-marker { display: none; }
.rf-nav-amm summary::after { content: "▾"; margin-left: auto; }
.rf-nav-amm[open] summary::after { content: "▴"; }
.rf-nav-amm summary:hover { background: rgba(255,255,255,0.14); }
.rf-nav-amm a { padding-left: 36px !important; font-size: 0.88rem !important; font-weight: 500 !important; }
.rf-nav-fondo { margin-top: auto; padding-top: 14px; border-top: 1px solid rgba(255,255,255,0.3); }
.rf-nav-fondo a { font-weight: 500 !important; font-size: 0.88rem !important; padding: 8px 12px !important; }
.rf-nav-fondo .rf-form-esci { margin-top: 2px; }
@media (min-width: 761px) { .rf-admin-nav .rf-nav-links { display: flex; flex-direction: column; min-height: calc(100vh - 80px); } }
.rf-barra-sede, .rf-barra-basso { display: none; }

/* Home operativa */
.rf-home-azioni { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 10px; margin-bottom: 8px; }
.rf-home-azioni a { background: #fff; border: 1px solid var(--rf-bordo, #D8DEE0); border-radius: 14px; padding: 16px; font-weight: 700; display: flex; flex-direction: column; gap: 6px; text-decoration: none; color: inherit; }
.rf-home-azioni a:hover { border-color: var(--rf-azzurro); box-shadow: 0 2px 10px rgba(0,163,220,0.18); }
.rf-home-azioni a.rf-principale { background: var(--rf-azzurro); border-color: var(--rf-azzurro); color: #fff; }
.rf-home-azioni a span { font-size: 1.4rem; }
.rf-home-titolo { font-size: 0.78rem; text-transform: uppercase; letter-spacing: 0.08em; color: #60707A; margin: 24px 0 10px; font-weight: 700; }
.rf-home-riquadri { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 10px; }
.rf-riquadro { background: #fff; border: 1px solid var(--rf-bordo, #D8DEE0); border-radius: 14px; padding: 16px; }
.rf-riquadro .rf-num { font-size: 1.9rem; font-weight: 800; line-height: 1.1; }
.rf-riquadro .rf-et { color: #60707A; font-size: 0.85rem; margin-top: 2px; }
.rf-riquadro a { display: block; margin-top: 10px; font-size: 0.85rem; font-weight: 700; }
.rf-riquadro.rf-attenzione .rf-num { color: #C0392B; }
.rf-home-elenco { background: #fff; border: 1px solid var(--rf-bordo, #D8DEE0); border-radius: 14px; overflow: hidden; }
.rf-home-elenco a { display: flex; gap: 14px; padding: 12px 16px; border-top: 1px solid var(--rf-bordo, #D8DEE0); align-items: center; font-size: 0.92rem; text-decoration: none; color: inherit; }
.rf-home-elenco a:first-child { border-top: 0; }
.rf-home-elenco a:hover { background: #F6F9FA; }
.rf-home-elenco .rf-ora { font-weight: 800; width: 48px; color: var(--rf-azzurro-scuro); }
.rf-home-elenco .rf-badge { margin-left: auto; }

@media (min-width: 761px) {
    .rf-admin-nav { position: sticky; top: 0; align-self: flex-start; max-height: 100vh; overflow-y: auto; }
}

@media (max-width: 760px) {
    .rf-admin-nav { position: sticky; top: 0; z-index: 20; }
    .rf-admin-nav-barra { gap: 10px; }
    .rf-barra-sede { display: block; flex: 1; color: #fff; font-size: 0.78rem; font-weight: 600; line-height: 1.2; text-align: right; opacity: 0.95; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    .rf-admin-nav .rf-nav-links { display: none; min-height: 0; max-height: calc(100vh - 140px); overflow-y: auto; }
    .rf-admin-nav .rf-nav-links.rf-nav-aperto { display: flex; flex-direction: column; }
    .rf-sede-corrente { display: none; }
    .rf-admin-nav .rf-nav-links a { padding: 13px 12px; font-size: 1rem; }
    .rf-barra-basso { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 30; background: var(--rf-azzurro); padding: 6px 6px calc(6px + env(safe-area-inset-bottom)); box-shadow: 0 -2px 10px rgba(0,0,0,0.12); }
    .rf-barra-basso a, .rf-barra-basso button { flex: 1; min-height: 52px; color: #fff; text-decoration: none; text-align: center; font-size: 0.72rem; font-weight: 700; padding: 6px 2px; border-radius: 10px; background: none; border: 0; cursor: pointer; font-family: inherit; }
    .rf-barra-basso a.rf-attivo { background: rgba(255,255,255,0.24); }
    .rf-barra-basso i { display: block; font-style: normal; font-size: 1.3rem; }
    .rf-admin-contenuto { padding-bottom: 96px; }
    .rf-home-azioni { grid-template-columns: 1fr 1fr; }
    .rf-btn-primario, .rf-btn-secondario { min-height: 44px; }
    .rf-cookie-banner { bottom: 70px; }
}
