/**
 * =============================================================================
 * css/OP05_doodle.css - Doodle "TROVA LA DATA" (prefisso OP05D_)
 * Usato da doodle/OP05_landing.php (dentro il guscio del sito, dove il body
 * ha ancora font-size 10px: qui le misure sono esplicite), OP05_data.php e
 * OP05_gestione.php (guscio pubblico delle votazioni, css/AN05_voto.css).
 * Colori del sito: blu #15476c, primario #007bff, arancio #ff9900.
 * Flash giallo: .OP05D_flash (#fff3a0). Mobile first.
 * =============================================================================
 */
@keyframes OP05D_flash { from { background-color: #fff3a0; } to { background-color: transparent; } }
.OP05D_flash { animation: OP05D_flash 1.4s ease-out; }

/* ---------- landing (crea) ---------- */
.OP05D_pagina { font-size: 16px; line-height: 1.5; color: #343a40; text-align: left; max-width: 980px; margin: 0 auto; padding: 24px 16px 48px; font-family: Montserrat, Helvetica, Arial, sans-serif; }
.OP05D_hero { text-align: center; margin-bottom: 24px; }
.OP05D_hero h1 { font-size: 2.2rem; font-weight: 800; color: #15476c; margin: 10px 0 8px; }
.OP05D_hero p { font-size: 1.1rem; color: #5d6b78; max-width: 640px; margin: 0 auto 12px; }
.OP05D_badge { display: inline-block; padding: 4px 12px; border-radius: 999px; background: #fff4e0; color: #b36b00; font-weight: 700; font-size: .85rem; }
.OP05D_punti { list-style: none; padding: 0; margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 8px 18px; font-size: .92rem; color: #15476c; }
.OP05D_punti li::before { content: "\2713  "; color: #28a745; font-weight: 700; }

.OP05D_card { background: #fff; border-radius: 14px; box-shadow: 0 2px 10px rgba(21, 71, 108, .08); padding: 20px; margin-bottom: 20px; }
.OP05D_sez { border: 0; margin: 0 0 22px; padding: 0; min-width: 0; }
.OP05D_sez legend { font-size: 1.15rem; font-weight: 700; color: #15476c; margin-bottom: 10px; width: auto; }
.OP05D_sez legend span { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%;
    background: #007bff; color: #fff; font-size: .85rem; margin-right: 8px; }
.OP05D_campo { display: grid; gap: 4px; font-weight: 600; font-size: .92rem; margin: 0 0 12px; }
.OP05D_campo small { font-weight: 400; color: #6c757d; }
.OP05D_campo .form-control { font-size: 1rem; }
.OP05D_due { display: grid; gap: 0 14px; }
.OP05D_check { display: flex; align-items: center; gap: 8px; font-size: .95rem; margin: 0 0 12px; font-weight: 400; }
.OP05D_aiuto, .OP05D_nota { font-size: .85rem; color: #6c757d; margin: 0 0 10px; }
.OP05D_captcha { margin: 6px 0 14px; }

/* calendario */
.OP05D_cal_box { display: grid; gap: 16px; }
.OP05D_cal { border: 1px solid #e3e8ee; border-radius: 12px; padding: 12px; max-width: 340px; }
.OP05D_cal_testa { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
.OP05D_cal_testa b { text-transform: capitalize; color: #15476c; }
.OP05D_cal_nav { border: 0; background: #f1f5f9; width: 34px; height: 34px; border-radius: 50%; font-size: 1.3rem; line-height: 1; cursor: pointer; }
.OP05D_cal_nav:disabled { opacity: .35; cursor: default; }
.OP05D_cal_griglia { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px; text-align: center; }
.OP05D_cal_gs { font-size: .75rem; color: #6c757d; text-transform: uppercase; padding: 2px 0; }
.OP05D_giorno { border: 1px solid transparent; background: #f8fafc; border-radius: 8px; height: 38px; font-size: .95rem; cursor: pointer; }
.OP05D_giorno:hover:not(:disabled) { border-color: #007bff; }
.OP05D_giorno:disabled { color: #c0c7cf; background: transparent; cursor: default; }
.OP05D_giorno.OP05D_oggi { border-color: #ff9900; }
.OP05D_giorno.OP05D_on { background: #007bff; color: #fff; font-weight: 700; }
.OP05D_scelte ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; }
.OP05D_riga { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; padding: 8px 10px; border: 1px solid #e3e8ee; border-radius: 10px; }
.OP05D_riga b { min-width: 130px; color: #15476c; }
.OP05D_orari { display: flex; gap: 8px; flex-wrap: wrap; }
.OP05D_orari label { display: flex; align-items: center; gap: 4px; margin: 0; font-size: .85rem; color: #6c757d; }
.OP05D_orari input { width: 110px; }
.OP05D_vuoto { color: #6c757d; font-size: .9rem; padding: 8px; }

/* risultato creazione */
.OP05D_fatto h2 { color: #1e7e34; font-size: 1.4rem; font-weight: 700; }
.OP05D_link { margin: 14px 0; }
.OP05D_link > span { display: block; font-size: .9rem; font-weight: 600; margin-bottom: 4px; }
.OP05D_link_segreto > span { color: #b36b00; }
.OP05D_link_riga { display: flex; flex-wrap: wrap; gap: 8px; }
.OP05D_link_riga input { flex: 1 1 260px; min-width: 0; font-size: .85rem; }
.OP05D_registrati { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 10px 12px; background: #f5f9ff; border-radius: 8px; font-size: .92rem; }

/* banner verso la votazione segreta */
.OP05D_banner { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; padding: 14px 16px; border-radius: 12px;
    background: #fff4e0; border: 1px solid #ffd699; font-size: .92rem; margin: 18px 0; }
.OP05D_banner b { color: #8a5a00; }

/* ---------- tabella risposte (partecipa / gestione) ---------- */
.OP05D_tab_box { overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 0; }
.OP05D_tab { border-collapse: separate; border-spacing: 0; width: 100%; min-width: 360px; font-size: .9rem; }
.OP05D_tab th, .OP05D_tab td { padding: 8px 6px; border-bottom: 1px solid #edf1f5; text-align: center; vertical-align: middle; }
.OP05D_tab thead th { background: #f5f8fb; color: #15476c; font-weight: 600; min-width: 84px; }
.OP05D_tab .OP05D_th_nome, .OP05D_tab td.OP05D_nome, .OP05D_tab tfoot th { position: sticky; left: 0; background: #fff; text-align: left; min-width: 130px; z-index: 1; }
.OP05D_tab thead .OP05D_th_nome { background: #f5f8fb; }
.OP05D_th_data, .OP05D_th_ora { display: block; line-height: 1.25; }
.OP05D_th_ora { font-size: .78rem; color: #5d6b78; font-weight: 400; }
.OP05D_tab th.OP05D_migliore, .OP05D_tab tfoot td.OP05D_migliore { background: #e9f7ee; }
.OP05D_tab th.OP05D_migliore .OP05D_th_data::after { content: " \2605"; color: #ff9900; }
.OP05D_tab th.OP05D_scelta { background: #d4edda; box-shadow: inset 0 -3px 0 #28a745; }
.OP05D_badge_scelta { display: inline-block; margin-top: 4px; padding: 1px 8px; border-radius: 999px; background: #28a745; color: #fff; font-size: .72rem; }
.OP05D_scegli { margin-top: 4px; font-size: .72rem; padding: 1px 6px; }
.OP05D_tab tfoot td, .OP05D_tab tfoot th { border-top: 2px solid #dbe3ea; font-size: .85rem; }
.OP05D_tab tfoot small { color: #b36b00; }
.OP05D_ico::before { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; font-weight: 700; }
.OP05D_v2 .OP05D_ico::before { content: "\2713"; background: #d4edda; color: #1e7e34; }
.OP05D_v1 .OP05D_ico::before { content: "?"; background: #fff0d1; color: #b36b00; }
.OP05D_v0 .OP05D_ico::before { content: "\2715"; background: #f8d7da; color: #c82333; }
.OP05D_vn .OP05D_ico::before { content: "\00B7"; background: #f1f3f5; color: #adb5bd; }
.OP05D_cella_btn { border: 0; background: transparent; padding: 2px; cursor: pointer; border-radius: 50%; }
.OP05D_cella_btn:focus-visible { outline: 2px solid #007bff; }
.OP05D_mio td { background: #f5f9ff; }
.OP05D_mio td.OP05D_nome { background: #f5f9ff; }
.OP05D_nome.OP05D_edit { cursor: text; }
.OP05D_nome.OP05D_edit .OP05D_nome_t { border-bottom: 1px dashed #9fb3c8; }
.OP05D_tu { color: #6c757d; }
.OP05D_x { border: 0; background: transparent; color: #c82333; font-size: 1.1rem; margin-left: 6px; cursor: pointer; }
.OP05D_istr { font-size: .92rem; color: #444; }
.OP05D_scelta, .OP05D_chiuso { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px 14px; border-radius: 10px; margin: 0 0 14px; }
.OP05D_scelta { background: #e9f7ee; border: 1px solid #b7e1c3; color: #1e7e34; }
.OP05D_chiuso { background: #f1f3f5; color: #495057; }
.OP05D_piede { text-align: center; font-size: .85rem; color: #6c757d; }

/* ---------- gestione ---------- */
.OP05D_campi { display: grid; gap: 0 14px; }
.OP05D_g_date { list-style: none; padding: 0; margin: 0 0 12px; display: grid; gap: 6px; }
.OP05D_g_date li { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; border: 1px solid #e3e8ee; border-radius: 8px; }
.OP05D_g_nuova { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.OP05D_g_nuova label { display: flex; align-items: center; gap: 4px; margin: 0; font-size: .85rem; color: #6c757d; }
.OP05D_g_nuova input[type="date"] { width: 170px; }
.OP05D_g_nuova input[type="time"] { width: 110px; }
.OP05D_g_azioni { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.OP05D_g_azioni [hidden] { display: none !important; }
.OP05D_pericolo { border: 1px solid #f5c6cb; }

@media (min-width: 720px) {
    .OP05D_due, .OP05D_campi { grid-template-columns: 1fr 1fr; }
    .OP05D_campi .OP05D_check { grid-column: 1 / -1; }
    .OP05D_cal_box { grid-template-columns: 340px 1fr; align-items: start; }
}
@media (max-width: 480px) {
    .OP05D_hero h1 { font-size: 1.7rem; }
    .OP05D_card { padding: 16px; }
}
