/* ═══════════════════════════════════════════════════════
   H2A Cinofilia — Stile unificato frontend + admin
═══════════════════════════════════════════════════════ */

:root {
    --h2a-primary:   #2563eb;
    --h2a-primary-h: #1d4ed8;
    --h2a-success:   #16a34a;
    --h2a-danger:    #dc2626;
    --h2a-warn:      #d97706;
    --h2a-bg:        #f8fafc;
    --h2a-border:    #e2e8f0;
    --h2a-radius:    8px;
    --h2a-shadow:    0 1px 4px rgba(0,0,0,.08);
}

/* ── Contenitore ── */
.h2a-wrap { font-family: -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; max-width: 1100px; }
.h2a-wrap h1, .h2a-wrap h2 { color: #1e293b; }

/* ── Grid ── */
.h2a-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media(max-width:600px){ .h2a-grid-2 { grid-template-columns:1fr; } }
.h2a-field-full { grid-column: 1 / -1; }

/* ── Campi ── */
.h2a-field { display:flex; flex-direction:column; gap:4px; margin-bottom:8px; }
.h2a-field label { font-size:.85rem; font-weight:600; color:#475569; }
.h2a-field input, .h2a-field select, .h2a-field textarea {
    padding:8px 12px; border:1px solid var(--h2a-border); border-radius:6px;
    font-size:.95rem; transition:border-color .2s;
}
.h2a-field input:focus, .h2a-field select:focus { border-color:var(--h2a-primary); outline:none; box-shadow:0 0 0 3px rgba(37,99,235,.12); }
.req { color: var(--h2a-danger); }

/* ── Fieldset ── */
fieldset { border:1px solid var(--h2a-border); border-radius:var(--h2a-radius); padding:20px 24px; margin-bottom:20px; }
fieldset legend { font-weight:700; color:var(--h2a-primary); padding:0 8px; font-size:1rem; }

/* ── Checkbox group ── */
.h2a-checkbox-group { display:flex; flex-wrap:wrap; gap:10px; padding:8px 0; }
.h2a-check-label { display:flex; align-items:center; gap:6px; font-size:.9rem; cursor:pointer;
    background:#fff; border:1px solid var(--h2a-border); padding:5px 12px; border-radius:20px; }
.h2a-check-label:hover { border-color:var(--h2a-primary); }
.h2a-check-label input { cursor:pointer; }

/* ── Privacy ── */
.h2a-privacy { background:#fffbeb; border:1px solid #fde68a; border-radius:var(--h2a-radius);
    padding:14px 18px; margin:16px 0; font-size:.9rem; }
.h2a-privacy label { display:flex; gap:10px; align-items:flex-start; cursor:pointer; }

/* ── Bottoni ── */
.h2a-btn { display:inline-flex; align-items:center; gap:6px; padding:9px 18px;
    border-radius:6px; font-weight:600; cursor:pointer; border:none; font-size:.9rem;
    text-decoration:none; transition:background .2s,transform .1s; }
.h2a-btn:active { transform:scale(.97); }
.h2a-btn-primary { background:var(--h2a-primary); color:#fff; }
.h2a-btn-primary:hover { background:var(--h2a-primary-h); color:#fff; }
.h2a-btn { background:#f1f5f9; color:#334155; }
.h2a-btn:hover { background:#e2e8f0; }
.h2a-btn-sm { padding:5px 10px; font-size:.8rem; }
.h2a-actions { margin-top:20px; }

/* ── Messaggi ── */
.h2a-msg { padding:12px 18px; border-radius:var(--h2a-radius); margin-bottom:16px; font-weight:500; }
.h2a-msg-ok  { background:#dcfce7; color:#166534; border:1px solid #bbf7d0; }
.h2a-msg-err { background:#fee2e2; color:#991b1b; border:1px solid #fecaca; }
.h2a-save-msg { margin-left:12px; font-size:.9rem; color:var(--h2a-success); }

/* ── Badge stato ── */
.h2a-badge { display:inline-block; padding:2px 10px; border-radius:12px; font-size:.78rem; font-weight:700; }
.badge-ok  { background:#dcfce7; color:#166534; }
.badge-no  { background:#fee2e2; color:#991b1b; }
.badge-nop { background:#fef3c7; color:#92400e; }

/* ── Tabella ── */
.h2a-table-wrap { overflow-x:auto; }
.h2a-table { width:100%; border-collapse:collapse; font-size:.9rem; }
.h2a-table th { background:#f1f5f9; color:#475569; text-align:left; padding:10px 12px;
    border-bottom:2px solid var(--h2a-border); font-size:.82rem; text-transform:uppercase; letter-spacing:.04em; }
.h2a-table td { padding:10px 12px; border-bottom:1px solid var(--h2a-border); vertical-align:middle; }
.h2a-table tr:hover td { background:#f8fafc; }

/* ── Filtri ── */
.h2a-filtri { display:flex; gap:10px; align-items:center; flex-wrap:wrap; margin:16px 0; }
.h2a-filtri input, .h2a-filtri select { padding:7px 12px; border:1px solid var(--h2a-border); border-radius:6px; }
.h2a-count { color:#64748b; font-size:.9rem; margin-bottom:8px; }

/* ── Paginazione ── */
.h2a-paginazione { margin-top:16px; display:flex; gap:6px; flex-wrap:wrap; }

/* ── Dashboard cards ── */
.h2a-cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:16px; margin:20px 0; }
.h2a-card { background:#fff; border:1px solid var(--h2a-border); border-radius:var(--h2a-radius);
    padding:20px 24px; box-shadow:var(--h2a-shadow); }
.h2a-card-num { font-size:2.2rem; font-weight:800; color:var(--h2a-primary); }
.h2a-card-lbl { font-size:.85rem; color:#64748b; margin-top:4px; }

/* ── Card ingresso ── */
.h2a-card-ingresso { background:#fff; border:1px solid var(--h2a-border); border-radius:var(--h2a-radius);
    padding:20px; margin-bottom:20px; box-shadow:var(--h2a-shadow); }
.h2a-saldo-box { background:var(--h2a-primary); color:#fff; border-radius:var(--h2a-radius);
    padding:14px 20px; font-size:1.1rem; margin-bottom:20px; }

/* ── Tabs ── */
.h2a-tabs { display:flex; gap:4px; border-bottom:2px solid var(--h2a-border); margin-bottom:20px; flex-wrap:wrap; }
.h2a-tab { padding:9px 20px; background:none; border:none; border-bottom:3px solid transparent;
    cursor:pointer; font-weight:600; color:#64748b; font-size:.95rem; margin-bottom:-2px; }
.h2a-tab.active { color:var(--h2a-primary); border-bottom-color:var(--h2a-primary); }
.h2a-tab-content { display:none; }
.h2a-tab-content.active { display:block; }

/* ── Section box ── */
.h2a-section-box { background:#fff; border:1px solid var(--h2a-border); border-radius:var(--h2a-radius); padding:24px 28px; box-shadow:var(--h2a-shadow); }
.h2a-section-box h2 { margin-top:0; color:#1e293b; }

/* ── Cane row ── */
.h2a-cane-row { display:flex; justify-content:space-between; align-items:center;
    padding:10px 14px; border:1px solid var(--h2a-border); border-radius:6px; margin-bottom:8px; }
.h2a-add-cane { background:var(--h2a-bg); border:1px dashed var(--h2a-border); border-radius:var(--h2a-radius); padding:16px; margin-top:16px; }
.h2a-add-cane h4 { margin-top:0; }
