:root {
    --aa-primary:      #0a4d68;
    --aa-primary-mid:  #077a88; /* Darkened for WCAG AA contrast (4.65:1 with white) */
    --aa-white:        #ffffff;
    --aa-text-dark:    #1a2e35;
    --aa-text-mid:     #4a6670;
    --aa-alert-red:    #b91c1c;
    --aa-alert-bg:     #fef2f2;
    --aa-alert-border: #fca5a5;
    --aa-note-text:    #00587A;
    --aa-radius:       8px;
    --aa-shadow:       0 2px 12px rgba(10,77,104,.10);
}

.aa-widget-container { max-width: 900px; margin: 0 auto; padding: 10px 0; font-family: inherit; }
.aa-header { margin-bottom: 24px; }
.aa-title  { font-size: 1.5rem; font-weight: 700; color: var(--aa-primary); margin: 0 0 8px; }
.aa-description { color: var(--aa-text-mid); margin: 0; font-size: .95rem; }
.aa-comune-label { margin: 0 0 16px; font-size: 1rem; color: var(--aa-text-dark); }

/* Form */
.aa-filter-form {
    background: var(--aa-white); border: 1px solid #d1d5db;
    border-radius: var(--aa-radius); padding: 20px; margin-bottom: 24px;
    box-shadow: var(--aa-shadow);
}
.aa-filter-row  { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-end; }
.aa-filter-group { display: flex; flex-direction: column; flex: 1; min-width: 180px; }
.aa-filter-group label { font-weight: 600; font-size: .875rem; color: var(--aa-text-dark); margin-bottom: 6px; }
.aa-filter-group--btn  { flex: 0 0 auto; min-width: unset; }

.aa-select {
    padding: 9px 36px 9px 12px; border: 1px solid #d1d5db; border-radius: 6px;
    font-size: .95rem; color: var(--aa-text-dark); background: var(--aa-white);
    width: 100%; appearance: none; cursor: pointer; transition: border-color .2s;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%234a6670' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 10px center;
}
.aa-select:focus { outline: 2px solid var(--aa-primary); outline-offset: 1px; border-color: var(--aa-primary); }

/* Button — high specificity to override theme/Elementor defaults */
.aa-widget-container .aa-btn { padding: 9px 24px; border: none; border-radius: 6px; font-size: .95rem; font-weight: 600; cursor: pointer; transition: background .2s, opacity .2s; white-space: nowrap; }
.aa-widget-container .aa-btn-primary { background: var(--aa-primary, #0a4d68); color: var(--aa-white, #ffffff); }
.aa-widget-container .aa-btn-primary:hover { background: var(--aa-primary-mid, #077a88); }
.aa-widget-container .aa-btn-primary:focus { outline: 2px solid var(--aa-primary, #0a4d68); outline-offset: 2px; }
.aa-widget-container .aa-btn-primary:disabled,
.aa-widget-container .aa-btn-primary[aria-disabled="true"] { opacity: .6; cursor: not-allowed; }

/* Screen-reader-only utility (standard WordPress pattern) */
.aa-sr-only {
    position: absolute; width: 1px; height: 1px;
    padding: 0; margin: -1px; overflow: hidden;
    clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* Results */
.aa-results  { min-height: 20px; }
.aa-loading  { color: var(--aa-text-mid); font-style: italic; padding: 16px 0; }
.aa-error    { background: var(--aa-alert-bg); border: 1px solid var(--aa-alert-border); border-radius: var(--aa-radius); padding: 14px 18px; color: var(--aa-alert-red); }
.aa-no-data  { color: var(--aa-text-mid); padding: 16px 0; }

/* Nota sui parametri fuori limite: solo testo, nessuno sfondo né icona */
.aa-alert-note {
    margin: 0 0 12px;
    font-size: .875rem; font-weight: 700; color: var(--aa-note-text);
}

/* Table */
.aa-table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.aa-results-table {
    width: 100%; border-collapse: collapse; font-size: .9rem;
    background: var(--aa-white); border: 1px solid #e5e7eb;
    border-radius: var(--aa-radius); overflow: hidden; box-shadow: var(--aa-shadow);
}
/* Intestazioni di colonna (thead > th) */
.aa-results-table thead th {
    background: var(--aa-primary); color: var(--aa-white);
    padding: 12px 14px; text-align: left; font-weight: 600;
    font-size: .85rem; letter-spacing: .02em;
    position: sticky; top: 0; z-index: 1;
}
/* Intestazioni di riga (tbody > th scope="row") */
.aa-results-table tbody th[scope="row"] {
    padding: 10px 14px; border-bottom: 1px solid #f3f4f6;
    font-weight: 600; font-size: .9rem; color: var(--aa-text-dark);
    background: #f8fbfc; text-align: left; vertical-align: middle;
    white-space: nowrap;
}
.aa-results-table td { padding: 10px 14px; border-bottom: 1px solid #f3f4f6; color: var(--aa-text-dark); vertical-align: middle; }
.aa-results-table tbody tr:last-child td,
.aa-results-table tbody tr:last-child th { border-bottom: none; }
.aa-results-table tbody tr:hover td,
.aa-results-table tbody tr:hover th[scope="row"] { background: #f0f7fa; }

/* Parametri fuori limite: solo testo in grassetto, nessuna evidenziazione cromatica */
.aa-results-table .aa-row-alert td,
.aa-results-table .aa-row-alert th[scope="row"] { color: var(--aa-text-dark); font-weight: 700; }

@media (max-width: 600px) {
    .aa-filter-row { flex-direction: column; }
    .aa-filter-group { min-width: 100%; }
    .aa-btn { width: 100%; text-align: center; }
    .aa-results-table th, .aa-results-table td { padding: 8px 10px; font-size: .82rem; }
}
