/* ==========================================================================
   STILI CALCOLATORE EMBED (style_embed.css)
   Ottimizzati per Iframe e Spazi Ristretti
   ========================================================================== */

#medmal-calculator-wrapper {
    width: 100%;
    color: var(--navy);
    font-size: 15px; /* Leggermente ridotto per iframe */
}

/* --- FORM ELEMENTS --- */
#medmal-calculator-wrapper label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
    color: var(--navy);
    font-size: 0.9em;
    margin-top: 12px;
}

#medmal-calculator-wrapper *:not(legend) > label:first-of-type {
    margin-top: 0;
}

#medmal-calculator-wrapper input[type="text"],
#medmal-calculator-wrapper input[type="number"],
#medmal-calculator-wrapper input[type="date"],
#medmal-calculator-wrapper input[type="email"],
#medmal-calculator-wrapper input[type="tel"],
#medmal-calculator-wrapper select,
#medmal-calculator-wrapper textarea {
    width: 100%;
    background: var(--card);
    padding: 10px 14px;
    height: 44px; /* Altezza ridotta per compattezza */
    font-size: 15px;
    font-weight: 500;
    border-radius: 8px;
    color: var(--navy);
    border: 1px solid var(--border);
    transition: all 0.2s;
    font-family: inherit;
    box-sizing: border-box;
}

#medmal-calculator-wrapper textarea {
    height: auto;
    min-height: 80px;
    resize: vertical;
}

#medmal-calculator-wrapper input:focus,
#medmal-calculator-wrapper select:focus,
#medmal-calculator-wrapper textarea:focus {
    border-color: var(--red);
    box-shadow: 0 0 0 3px rgba(230, 57, 70, 0.15);
    outline: none;
}

/* --- BOTTONI (Centratura e layout) --- */
.buttons-container { 
    display: flex; 
    justify-content: center; 
    width: 100%; 
    margin-top: 15px; 
}

#medmal-calculator-wrapper button[type="submit"] {
    width: 100%;
    max-width: 400px; /* Limita la larghezza per non farlo enorme su desktop */
    background: var(--red);
    color: #ffffff;
    height: 48px;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 700;
    font-size: 1.05em;
    border: none;
    transition: all 0.2s;
}

#medmal-calculator-wrapper button[type="submit"]:hover:not(:disabled) {    
    background: #d62828;
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(230, 57, 70, 0.25);
}

#medmal-calculator-wrapper button[type="submit"]:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

/* --- STRUTTURA A GRIGLIA --- */
#medmal-calculator-wrapper fieldset {
    border: 1px solid var(--border);
    padding: 20px;
    margin-bottom: 20px;
    border-radius: 12px;
    background: var(--card);
    box-shadow: var(--sh-sm);
}

#medmal-calculator-wrapper legend {
    font-family: 'Playfair Display', serif;
    font-weight: 900;
    font-size: 1.1rem;
    color: #fff;
    background-color: var(--navy);
    padding: 6px 16px;
    border-radius: 6px;
    box-shadow: var(--sh-sm);
}

#medmal-calculator-wrapper .row { display: flex; flex-wrap: wrap; margin-left: -8px; margin-right: -8px; }
#medmal-calculator-wrapper .col-half, 
#medmal-calculator-wrapper .col-third, 
#medmal-calculator-wrapper .col-quarter, 
#medmal-calculator-wrapper .col-full { 
    padding: 0 8px; box-sizing: border-box; margin-bottom: 10px; 
}
#medmal-calculator-wrapper .col-full { flex: 1 1 100%; max-width: 100%; }
#medmal-calculator-wrapper .col-half { flex: 1 1 50%; max-width: 50%; }
#medmal-calculator-wrapper .col-third { flex: 1 1 33.333%; max-width: 33.333%; }
#medmal-calculator-wrapper .col-quarter { flex: 1 1 25%; max-width: 25%; }

/* --- CHECKBOX E RADIO --- */
#medmal-calculator-wrapper input[type="checkbox"],
#medmal-calculator-wrapper input[type="radio"] {
    width: 16px;
    height: 16px;
    margin-right: 8px;
    accent-color: var(--red);
    flex-shrink: 0;
}

#medmal-calculator-wrapper label.inline-label {
    display: flex;
    align-items: center;
    font-weight: 500;
    cursor: pointer;
    font-size: 0.9em;
    margin-top: 0;
    line-height: 1.4;
}

.radio-group-row { display: flex; flex-wrap: wrap; gap: 15px; margin-top: 5px; }

/* --- TOOLTIP IFRAME-SAFE --- */
.label-with-tooltip { display: flex; align-items: center; gap: 6px; }
.tooltip-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 16px; height: 16px; border-radius: 50%;
    background-color: var(--bg-soft); color: var(--muted);
    border: 1px solid var(--border); font-weight: 700; font-size: 11px;
    cursor: help; position: relative; flex-shrink: 0;
}
.tooltip-icon::before {
    content: attr(data-tooltip);
    position: absolute; bottom: 130%; left: 50%; transform: translateX(-50%);
    background-color: var(--navy); color: #fff;
    padding: 8px 12px; border-radius: 6px; font-size: 12px;
    font-weight: 500; line-height: 1.4; width: 220px; text-align: left;
    opacity: 0; visibility: hidden; transition: all 0.2s;
    z-index: 100; box-shadow: var(--sh-md); pointer-events: none;
}
.tooltip-icon:hover::before { opacity: 1; visibility: visible; }

/* --- BOTTONI SCELTA STIMA (FASE 3) --- */
.choice-buttons-container { display: flex; flex-wrap: wrap; gap: 15px; margin: 15px 0; }
.choice-button {
    flex: 1; min-width: 180px; padding: 12px; 
    border-radius: 8px; border: 1px solid var(--border);
    background-color: var(--bg-soft); cursor: pointer;
    text-align: center; transition: all 0.2s; box-shadow: var(--sh-sm);
}
.choice-button:hover { border-color: var(--navy-light); transform: translateY(-2px); }
.choice-button.active {
    border-color: var(--navy); background-color: var(--navy); 
    box-shadow: 0 4px 8px rgba(29, 53, 87, 0.2); transform: none;
}
.choice-button .choice-title { display: block; font-size: 1em; font-weight: 700; color: var(--navy); }
.choice-button .choice-subtitle { display: block; font-size: 0.8em; color: var(--muted); margin-top: 3px; }
.choice-button.active .choice-title { color: #ffffff; }
.choice-button.active .choice-subtitle { color: rgba(255, 255, 255, 0.7); }

.stima-risultato-parziale {
    background-color: var(--bg-soft); border-radius: 8px;
    padding: 10px; text-align: center; border: 1px solid var(--border);
}
#risultato-punti-stimati { font-size: 1.3em; font-weight: 700; color: var(--navy); }

/* --- ACCORDION LESIONI --- */
.accordion-category { border: 1px solid var(--border); border-radius: 8px; margin-bottom: 10px; overflow: hidden; }
.accordion-header {
    background-color: var(--bg-soft); padding: 12px 15px; cursor: pointer;
    display: flex; justify-content: space-between; align-items: center;
    font-size: 0.95em; font-weight: 700; color: var(--navy);
}
.accordion-header::after { content: '+'; font-size: 1.2em; color: var(--red); transition: transform 0.2s; }
.accordion-header.active::after { transform: rotate(45deg); }
.accordion-content { display: none; padding: 5px 15px 15px; background-color: var(--card); }
.accordion-lesione { margin-top: 10px; }
.show-all-btn { background: none; border: none; color: var(--red); font-weight: 700; cursor: pointer; margin-top: 10px; padding: 5px 0; font-size: 0.85em; }

/* --- TACHIMETRO --- */
.tachimetro-wrapper { margin: 20px auto; max-width: 260px; text-align: center; }
.tachimetro-container {
    width: 240px; height: 120px; position: relative; overflow: hidden;
    margin: 0 auto; background-color: var(--bg-soft);
    border-radius: 120px 120px 0 0; border: 1px solid var(--border);
}
.tachimetro-gauge {
    width: 100%; height: 100%; position: absolute; top: 0; left: 0;
    background: conic-gradient(from -90deg at 50% 100%, #10b981, #f59e0b 50%, var(--red));
}
.tachimetro-overlay {
    width: 200px; height: 100px; background: var(--card);
    border-radius: 100px 100px 0 0; position: absolute; top: 10px; left: 20px;
}
.tachimetro-needle {
    width: 4px; height: 85px; background: var(--navy);
    position: absolute; bottom: 0; left: 50%; margin-left: -2px;
    transform-origin: bottom center; transition: transform 0.8s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    border-radius: 2px;
}
.tachimetro-pivot {
    width: 12px; height: 12px; background: var(--navy); border-radius: 50%;
    position: absolute; bottom: 0; left: 50%; transform: translate(-50%, 50%);
    border: 2px solid var(--card);
}
.tachimetro-label { 
    margin-top: 10px; 
    font-size: 1.05em; 
    font-weight: bold; 
    color: var(--navy); 
    text-align: center; /* Centratura forzata */
    display: block;
    width: 100%;
}

/* --- RISULTATI E DETTAGLI --- */
#output-finale { text-align: center; margin: 20px 0; }
#output-finale .importo-finale { font-size: 2rem; font-weight: 900; color: var(--navy); background: var(--bg-soft); padding: 15px; border-radius: 8px; border: 1px solid var(--border); margin: 10px 0; }
.risarcimento-dettaglio {
    display: grid; grid-template-columns: 1fr auto; gap: 8px 15px;
    align-items: center; background-color: var(--bg-soft); padding: 15px;
    border-radius: 8px; border: 1px solid var(--border); margin-top: 15px;
}
.risarcimento-dettaglio .label { font-weight: 600; font-size: 0.9em; }
.risarcimento-dettaglio .valore { font-weight: 700; text-align: right; }
.risarcimento-dettaglio .sub-label { font-size: 0.8em; color: var(--muted); margin-top: -5px; }

/* --- NOTE SPECIALI --- */
.nota-teaser {
    padding: 12px 15px; border-radius: 8px; border-left: 4px solid var(--red);
    background-color: var(--bg-soft); margin-bottom: 12px; font-size: 0.9em;
}
.nota-teaser h5 { margin: 0 0 5px 0; font-size: 1em; color: var(--navy); }
.nota-teaser p { margin: 0; color: var(--muted); }

/* --- MESSAGGI DI ERRORE --- */
.error-message {
    padding: 12px; border: 1px solid #e57373; color: #d32f2f;
    background-color: #ffcdd2; border-radius: 8px; margin-bottom: 15px;
    font-size: 0.9em; font-weight: 600;
}

/* --- MODALE PRIVACY (Sfondo solido) --- */
.modal-overlay {
    position: fixed; top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(29, 53, 87, 0.85); backdrop-filter: blur(3px);
    display: flex; align-items: center; justify-content: center;
    z-index: 99999; opacity: 0; visibility: hidden; transition: all 0.3s;
    padding: 15px;
}
.modal-overlay.active { opacity: 1; visibility: visible; }
.modal-content { 
    transform: translateY(20px); 
    transition: transform 0.3s; 
    width: 100%; 
    background-color: var(--card); /* Aggiunto sfondo bianco solido */
    border-radius: 16px;
    box-shadow: var(--sh-lg);
}
.modal-overlay.active .modal-content { transform: translateY(0); }

/* --- RESPONSIVE MOBILE BILANCIATO (NATURALE + ESPANSO) --- */
/* --- RESPONSIVE MOBILE BILANCIATO (NATURALE + FIX DATE) --- */
@media (max-width: 500px) {
    /* Lo spazio esterno è gestito dal padding del body nell'index */
    #medmal-calculator-wrapper {
        padding: 0; 
    }

    /* Colonne a larghezza piena: usiamo box-sizing per evitare che escano dai bordi */
    #medmal-calculator-wrapper .col-half,
    #medmal-calculator-wrapper .col-third,
    #medmal-calculator-wrapper .col-quarter,
    #medmal-calculator-wrapper .col-full { 
        flex-basis: 100%; 
        max-width: 100%; 
        padding: 0; 
        box-sizing: border-box;
    }

    /* Fieldset: respiro interno per non far toccare i bordi ai campi */
    #medmal-calculator-wrapper fieldset {
        padding: 20px 20px; 
        margin-bottom: 15px;
        border-radius: 10px;
        box-sizing: border-box;
    }

    /* FIX SPECIFICO: Uniformare input, select e soprattutto i campi DATA */
    #medmal-calculator-wrapper input:not([type="checkbox"]):not([type="radio"]), 
    #medmal-calculator-wrapper select, 
    #medmal-calculator-wrapper textarea {
        font-size: 16px; /* Fondamentale per evitare lo zoom forzato su iOS */
        height: 46px; 
        width: 100% !important; /* Forza la larghezza totale */
        max-width: 100%;
        box-sizing: border-box; /* Include padding e bordi nel calcolo della larghezza */
        display: block;
        -webkit-appearance: none; /* Rimuove stili nativi che sballano le date su iOS */
        -moz-appearance: none;
        appearance: none;
    }

    /* Specifica per i campi data per evitare che l'icona del calendario li allarghi */
    #medmal-calculator-wrapper input[type="date"] {
        position: relative;
        padding-right: 10px; /* Riduce lo spazio per l'icona nativa se presente */
    }

    /* Bottoni Scelta: più alti per il tocco */
    .choice-button { 
        min-width: 100%; 
        margin-bottom: 8px;
        padding: 14px;
        box-sizing: border-box;
    }

    /* Risultati e Dettagli */
    #output-finale .importo-finale { 
        font-size: 1.5rem; 
        padding: 12px;
        box-sizing: border-box;
        width: 100%;
    }

    .risarcimento-dettaglio {
        padding: 12px;
        font-size: 0.9em;
        grid-template-columns: 1fr auto; /* Mantiene l'allineamento corretto */
    }
    
    /* FIX TOOLTIP MOBILE: Allineamento al contenitore per evitare overflow */
    .label-with-tooltip {
        position: relative; /* Diventa il nuovo punto di ancoraggio */
    }
    
    .tooltip-icon {
        position: static; /* Togliamo l'ancoraggio dalla singola icona */
    }
    
    .tooltip-icon::before {
        left: 0;
        transform: none; 
        width: 100%; 
        bottom: 100%;
        margin-bottom: 5px; 
        box-sizing: border-box;
        font-size: 15px; /* <-- Testo ingrandito */
        padding: 12px;   /* <-- Più respiro interno al fumetto (opzionale) */
    }
}
/* ==========================================================================
   STILI MODALE PRIVACY STUDIO COMPLETO
   ========================================================================== */
.modal-policy-wrap { font-family: 'Lato', sans-serif; color: var(--navy); line-height: 1.65; }
.policy-header { border-bottom: 3px solid var(--navy); padding-bottom: 1.5rem; margin-bottom: 2rem; }
.policy-header-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
.policy-studio-name { font-family: 'Playfair Display', serif; font-size: 1.2rem; font-weight: 900; color: var(--navy); line-height: 1.2; }
.policy-badges { display: flex; flex-wrap: wrap; gap: .4rem; align-items: flex-start; }
.policy-badge { font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: .22rem .6rem; border-radius: 20px; white-space: nowrap; }
.pb-gdpr   { background: rgba(29,53,87,.08);  color: var(--navy); border: 1px solid rgba(29,53,87,.15); }
.pb-cdf    { background: rgba(230,57,70,.1);  color: var(--red);  border: 1px solid rgba(230,57,70,.2); }
.pb-art9   { background: rgba(255,193,7,.12); color: #8a5e00;     border: 1px solid rgba(255,193,7,.2); }
.policy-header-sub { font-size: .84rem; color: var(--muted); line-height: 1.65; margin:0; }
.policy-meta { display: flex; flex-wrap: wrap; gap: 1.25rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--border); }
.policy-meta-item { font-size: .78rem; color: var(--muted); display: flex; align-items: center; gap: .4rem; }
.policy-meta-item i { color: var(--red); font-size: .7rem; }
.policy-meta-item strong { color: var(--navy); }
.policy-body { display: flex; flex-direction: column; gap: 2.25rem; }
.policy-section-head { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; padding-bottom: .8rem; border-bottom: 2px solid var(--border); }
.policy-section-num { width: 30px; height: 30px; border-radius: 8px; background: var(--navy); color: #fff; display: flex; align-items: center; justify-content: center; font-size: .7rem; font-weight: 900; flex-shrink: 0; }
.policy-section-title { font-family: 'Playfair Display', serif; font-size: 1.05rem; font-weight: 900; color: var(--navy); }
.policy-prose { font-size: .9rem; color: var(--muted); line-height: 1.78; margin-bottom: .9rem; margin-top:0; }
.policy-norm-box { background: rgba(29,53,87,.04); border-left: 3px solid var(--navy); border-radius: 0 10px 10px 0; padding: .85rem 1.1rem; margin: .9rem 0; font-size: .85rem; color: var(--navy); }
.policy-ok-box { background: rgba(16,185,129,.07); border-left: 3px solid #10b981; border-radius: 0 10px 10px 0; padding: .85rem 1.1rem; margin: .9rem 0; font-size: .85rem; color: #065f46; }
.titolare-card { background: var(--bg-soft); border: 1px solid var(--border); border-radius: 14px; padding: 1.25rem; margin: .9rem 0; }
.titolare-row { display: flex; align-items: flex-start; gap: .7rem; padding: .55rem 0; border-bottom: 1px solid var(--border); font-size: .88rem; }
.titolare-row:last-child { border-bottom: none; padding-bottom: 0; }
.titolare-row i { color: var(--muted); font-size: .8rem; flex-shrink: 0; margin-top: 3px; width: 14px; text-align: center; }
.titolare-label { font-size: .65rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: .1rem; }
.titolare-value { color: var(--navy); font-size: .88rem; font-weight:700; word-break: break-word; }
.rights-grid { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin: .9rem 0; }
.right-card { background: #fff; border: 1px solid var(--border); border-radius: 10px; padding: .9rem 1rem; }
.right-art  { font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin-bottom: .25rem; }
.right-title{ font-size: .85rem; font-weight: 700; color: var(--navy); margin-bottom: .2rem; }
.policy-stamp { display: flex; align-items: center; gap: .75rem; margin-top: 1rem; padding: .85rem 1rem; background: var(--bg-soft); border: 1px solid var(--border); border-radius: 10px; }

@media (max-width: 768px) {
  .rights-grid { grid-template-columns: 1fr; }
}