/* ================================================
   Gestionale Parrocchiale — CSS
   Tema: Bordeaux + Sfondo Bianco, Mobile-First
   Colore brand estratto dal logo: #8c2e22
   ================================================ */

/* ── Token di colore ─────────────────────────── */
:root {
    /* Brand bordeaux (dal logo Parrocchia San Martino d'Albaro) */
    --gest-brand:        #8c2e22;   /* navbar, card header, page-header, footer */
    --gest-brand-dark:   #6a2019;   /* hover / bordi scuri */
    --gest-brand-light:  #b34033;   /* accento / stato attivo */
    --gest-brand-pale:   #f5e8e6;   /* sfondo hover riga / tint leggero */

    /* Superfici — tema chiaro */
    --gest-bg:           #f4eeec;   /* sfondo body */
    --gest-surface:      #ffffff;   /* card body, modal */
    --gest-surface-2:    #fdf5f4;   /* riga pari DataTable, input, hover */

    /* Bordi */
    --gest-border:       #e2d0cc;

    /* Testo */
    --gest-text:         #1c1210;
    --gest-muted:        #7a5a55;

    /* Semantic */
    --gest-success:      #16a34a;
    --gest-warning:      #d97706;
    --gest-danger:       #dc2626;
    --gest-info:         #0284c7;

    font-size: 15px;
}

/* ── Reset / base ────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }

body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    background-color: var(--gest-bg);
    color: var(--gest-text);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    -webkit-font-smoothing: antialiased;
}

a { color: var(--gest-brand-light); }
a:hover { color: var(--gest-brand); text-decoration: underline; }

/* ── NAVBAR ─────────────────────────────────── */
.gest-navbar {
    background-color: var(--gest-brand) !important;
    box-shadow: 0 2px 6px rgba(0,0,0,.28);
    padding: .45rem 1rem;
}
.gest-navbar .navbar-brand img { max-height: 42px; width: auto; }
.gest-navbar .navbar-toggler {
    border-color: rgba(255,255,255,.35);
    padding: .3rem .55rem;
}
.gest-navbar .navbar-toggler-icon { filter: invert(1); }

.gest-navbar .navbar-collapse {
    background-color: var(--gest-brand);
    padding: .25rem .5rem .5rem;
}
@media (min-width: 992px) {
    .gest-navbar .navbar-collapse { background: none; padding: 0; }
}

.gest-navbar .nav-link {
    color: rgba(255,255,255,.85) !important;
    font-weight: 500;
    font-size: .88rem;
    padding: .4rem .8rem;
    border-radius: .35rem;
    transition: background .15s;
}
.gest-navbar .nav-link:hover,
.gest-navbar .nav-link.active {
    background-color: rgba(255,255,255,.18);
    color: #fff !important;
}
.gest-navbar .nav-link i { width: 1.1em; text-align: center; }

/* Voce logout */
.gest-navbar .nav-link.text-warning       { color: #fde68a !important; }
.gest-navbar .nav-link.text-warning:hover { color: #fff !important; background-color: rgba(220,38,38,.3); }

/* ── PAGE HEADER STRIP ───────────────────────── */
.gest-page-header {
    background-color: var(--gest-brand);
    color: #fff;
    padding: .65rem 1rem;
    border-radius: .5rem;
    margin-bottom: 1.25rem;
    box-shadow: 0 2px 6px rgba(140,46,34,.22);
}
.gest-page-header h1,
.gest-page-header h4,
.gest-page-header h5 { margin: 0; font-size: 1rem; font-weight: 600; }

/* ── MODALI ──────────────────────────────────── */
.modal-content {
    background-color: var(--gest-surface);
    border: 1px solid var(--gest-border);
    color: var(--gest-text);
    box-shadow: 0 8px 32px rgba(0,0,0,.18);
}
.modal-header.gest-modal-header,
.modal-header {
    background-color: var(--gest-brand);
    color: #fff;
    border-bottom: 1px solid var(--gest-brand-dark);
}
.modal-title   { color: #fff; }
.modal-footer  {
    background-color: #faf6f5;
    border-top: 1px solid var(--gest-border);
}
.modal-body    { color: var(--gest-text); }
.btn-close     { filter: none; }  /* chiaro su sfondo bordeaux: usa la X nera/bianca standard */
.modal-header .btn-close { filter: invert(1) brightness(2); }

/* ── CARD ────────────────────────────────────── */
.gest-card {
    background-color: var(--gest-surface);
    border: 1px solid var(--gest-border);
    border-radius: .75rem;
    box-shadow: 0 2px 10px rgba(0,0,0,.07);
    color: var(--gest-text);
}
.gest-card .card-header {
    background-color: var(--gest-brand);
    color: #fff;
    border-bottom: 1px solid var(--gest-brand-dark);
    border-radius: .75rem .75rem 0 0 !important;
    font-weight: 600;
    font-size: .9rem;
    padding: .7rem 1rem;
}
.gest-card .card-header i { width: 1.3em; text-align: center; }
.gest-card .card-footer {
    background-color: #faf5f4;
    border-top: 1px solid var(--gest-border);
    border-radius: 0 0 .75rem .75rem;
}
.gest-card .text-muted { color: var(--gest-muted) !important; }

/* ── HOME: tile dashboard ────────────────────── */
.gest-tile {
    background-color: var(--gest-surface);
    border: 1px solid var(--gest-border);
    border-radius: .85rem;
    padding: 1.5rem 1.25rem 1.25rem;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .6rem;
    transition: transform .18s, box-shadow .18s, border-color .18s;
    text-decoration: none;
    color: var(--gest-text);
    height: 100%;
    box-shadow: 0 2px 8px rgba(0,0,0,.07);
}
.gest-tile:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 28px rgba(140,46,34,.18);
    border-color: var(--gest-brand-light);
    color: var(--gest-text);
    text-decoration: none;
}
.gest-tile .tile-icon {
    width: 56px; height: 56px;
    border-radius: 50%;
    background-color: var(--gest-brand);
    display: flex; align-items: center; justify-content: center;
    font-size: 1.35rem;
    color: #fff;
    flex-shrink: 0;
}
.gest-tile .tile-title {
    font-weight: 700;
    font-size: .95rem;
    color: var(--gest-brand);
    line-height: 1.2;
}
.gest-tile .tile-desc {
    font-size: .78rem;
    color: var(--gest-muted);
    line-height: 1.4;
    flex-grow: 1;
}
.gest-tile .tile-btn {
    margin-top: .5rem;
    font-size: .82rem;
    padding: .35rem .9rem;
    border-radius: .375rem;
    font-weight: 600;
    background-color: var(--gest-brand);
    border: 1px solid var(--gest-brand-dark);
    color: #fff;
    width: 100%;
    transition: background .15s;
}
.gest-tile:hover .tile-btn { background-color: var(--gest-brand-light); }

/* HOME: search card */
.gest-search-card {
    background-color: var(--gest-surface);
    border: 1px solid var(--gest-border);
    border-radius: .85rem;
    padding: 1.25rem;
    box-shadow: 0 2px 10px rgba(0,0,0,.07);
}
.gest-search-card .card-title {
    color: var(--gest-brand);
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: .5rem;
}

/* ── FORM CONTROLS ───────────────────────────── */
.form-control, .form-select, .input-group-text {
    background-color: #fff;
    border-color: var(--gest-border);
    color: var(--gest-text);
}
.form-control:focus, .form-select:focus {
    background-color: #fff;
    border-color: var(--gest-brand-light);
    color: var(--gest-text);
    box-shadow: 0 0 0 .2rem rgba(140,46,34,.18);
}
.form-control::placeholder { color: #aaa; }
.input-group-text { color: var(--gest-muted); background-color: #f7f2f1; }
.form-label { color: var(--gest-muted); font-size: .85rem; margin-bottom: .3rem; }
.form-select-sm { font-size: .85rem; }

/* ── FIELDSET / LEGEND ───────────────────────── */
fieldset {
    border: 1px solid var(--gest-border) !important;
    border-radius: .5rem;
    background-color: #fdfafa;
    padding: 1rem !important;
    margin-top: .75rem;
    margin-bottom: .5rem;
}
legend {
    font-size: .78rem; font-weight: 600;
    letter-spacing: .04em; text-transform: uppercase;
    margin-bottom: .5rem; width: auto; float: none;
    padding: .25rem .7rem; border-radius: .35rem;
    background-color: var(--gest-brand);
    color: #fff; display: inline-block;
}

/* ── BOTTONI ─────────────────────────────────── */
.btn-primary   { background-color: var(--gest-brand); border-color: var(--gest-brand-dark); }
.btn-primary:hover { background-color: var(--gest-brand-dark); border-color: var(--gest-brand-dark); }
.btn-outline-primary   { color: var(--gest-brand); border-color: var(--gest-brand); }
.btn-outline-primary:hover   { background: var(--gest-brand); border-color: var(--gest-brand); color: #fff; }
.btn-outline-secondary { color: #555; border-color: #ccc; }
.btn-outline-secondary:hover { background: #f0ebe9; color: var(--gest-text); }
.btn-outline-info  { color: #0284c7; border-color: #0284c7; }
.btn-outline-info:hover  { background: #0284c7; color: #fff; }
.btn-outline-warning { color: #b45309; border-color: #d97706; }
.btn-outline-warning:hover { background: #d97706; color: #fff; }
.btn-outline-danger  { color: #dc2626; border-color: #dc2626; }
.btn-outline-danger:hover  { background: #dc2626; color: #fff; }
.btn-outline-success { color: #16a34a; border-color: #16a34a; }
.btn-outline-success:hover { background: #16a34a; color: #fff; }
.btn { min-height: 34px; }
.btn-sm { min-height: 28px; }

/* ── TABELLE GENERICHE ───────────────────────── */
.table { color: var(--gest-text); border-color: var(--gest-border); }
.table > thead > tr > th { background-color: var(--gest-brand); color: #fff; border-color: var(--gest-brand-dark); }
.table-striped > tbody > tr:nth-of-type(odd)  > * { background-color: #fff;              color: var(--gest-text); }
.table-striped > tbody > tr:nth-of-type(even) > * { background-color: var(--gest-surface-2); color: var(--gest-text); }
.table-hover > tbody > tr:hover > * { background-color: var(--gest-brand-pale) !important; color: var(--gest-text); }
.table > :not(caption) > * > * { border-bottom-color: var(--gest-border); }

/* ── DATATABLES ──────────────────────────────── */
.dataTables_wrapper { color: var(--gest-text); }

/* Header colonne */
table.dataTable thead th,
table.dataTable thead td {
    background-color: var(--gest-brand) !important;
    color: #fff !important;
    font-size: .77rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    border-bottom: 2px solid var(--gest-brand-dark) !important;
    padding: .55rem .65rem;
}
table.dataTable thead th:first-child { border-radius: .35rem 0 0 0; }
table.dataTable thead th:last-child  { border-radius: 0 .35rem 0 0; }

/* Icone sorting */
table.dataTable thead .sorting:after,
table.dataTable thead .sorting_asc:after,
table.dataTable thead .sorting_desc:after { color: rgba(255,255,255,.65) !important; }
table.dataTable thead .sorting_asc:after  { color: #fde68a !important; }
table.dataTable thead .sorting_desc:after { color: #fde68a !important; }

/* Righe alternate */
table.dataTable tbody tr:nth-child(odd)  > td { background-color: #fff; }
table.dataTable tbody tr:nth-child(even) > td { background-color: var(--gest-surface-2); }
table.dataTable tbody tr:hover > td { background-color: var(--gest-brand-pale) !important; }

/* Testo e bordi corpo */
table.dataTable tbody td { color: var(--gest-text); border-color: var(--gest-border); font-size: .875rem; }
table.dataTable { border-collapse: collapse !important; }

/* Controlli wrapper */
.dataTables_wrapper .dataTables_filter label,
.dataTables_wrapper .dataTables_length label,
.dataTables_wrapper .dataTables_info {
    color: var(--gest-muted);
    font-size: .85rem;
}
.dataTables_wrapper .dataTables_filter input,
.dataTables_wrapper .dataTables_length select {
    background-color: #fff;
    border: 1px solid var(--gest-border);
    border-radius: .35rem;
    color: var(--gest-text);
    padding: .3rem .6rem;
    box-shadow: inset 0 1px 3px rgba(0,0,0,.06);
}
.dataTables_wrapper .dataTables_filter input:focus,
.dataTables_wrapper .dataTables_length select:focus {
    border-color: var(--gest-brand-light);
    outline: none;
    box-shadow: 0 0 0 .15rem rgba(140,46,34,.15);
}

/* Paginazione */
.dataTables_wrapper .dataTables_paginate .paginate_button {
    color: var(--gest-muted) !important;
    border-radius: .35rem !important;
    border: 1px solid transparent !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
    background: var(--gest-brand-pale) !important;
    border-color: var(--gest-border) !important;
    color: var(--gest-brand) !important;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: var(--gest-brand) !important;
    border-color: var(--gest-brand) !important;
    color: #fff !important;
}

/* Bottoni export DataTables */
.dt-buttons { display: flex; flex-wrap: wrap; gap: .3rem; }
.dt-buttons .btn,
.dt-button {
    font-size: .8rem !important;
    padding: .28rem .7rem !important;
    min-height: 28px !important;
    border-radius: .35rem !important;
    font-weight: 500 !important;
}
.dt-button.buttons-excel  { background-color: #166534 !important; color: #fff !important; border-color: #166534 !important; }
.dt-button.buttons-excel:hover  { background-color: #14532d !important; }
.dt-button.buttons-pdf    { background-color: #991b1b !important; color: #fff !important; border-color: #991b1b !important; }
.dt-button.buttons-pdf:hover    { background-color: #7f1d1d !important; }
.dt-button.buttons-csv    { background-color: #1e3a5f !important; color: #fff !important; border-color: #1e3a5f !important; }
.dt-button.buttons-csv:hover    { background-color: #162d4a !important; }
.dt-button.buttons-print  { background-color: #4b5563 !important; color: #fff !important; border-color: #374151 !important; }
.dt-button.buttons-print:hover  { background-color: #374151 !important; }

/* ── ALERT ───────────────────────────────────── */
.alert-success { background-color: #f0fdf4; border-color: #bbf7d0; color: #166534; }
.alert-danger  { background-color: #fef2f2; border-color: #fecaca; color: #991b1b; }
.alert-warning { background-color: #fffbeb; border-color: #fde68a; color: #92400e; }
.alert-info    { background-color: #f0f9ff; border-color: #bae6fd; color: #0c4a6e; }

/* ── LIST GROUP ──────────────────────────────── */
.list-group-item { background-color: var(--gest-surface); border-color: var(--gest-border); color: var(--gest-text); }
.list-group-item-action:hover { background-color: var(--gest-brand-pale); color: var(--gest-brand); }

/* ── BADGE ───────────────────────────────────── */
.badge.bg-primary   { background-color: var(--gest-brand) !important; }
.badge.bg-secondary { background-color: #6b7280 !important; }

/* ── BREADCRUMB ──────────────────────────────── */
.breadcrumb { background: transparent; }
.breadcrumb-item + .breadcrumb-item::before { color: var(--gest-muted); }
.breadcrumb-item a { color: var(--gest-brand-light); }
.breadcrumb-item.active { color: var(--gest-muted); }

/* ── CODE ────────────────────────────────────── */
code { color: var(--gest-brand); background-color: rgba(140,46,34,.08); padding: .1em .35em; border-radius: .25rem; font-size: .88em; }

/* ── DL ──────────────────────────────────────── */
dt { color: var(--gest-muted); }
dd { color: var(--gest-text); }

/* ── SELECT2 ─────────────────────────────────── */
.select2-container--bootstrap-5 .select2-selection {
    background-color: #fff; border-color: var(--gest-border); color: var(--gest-text);
}
.select2-container--bootstrap-5 .select2-dropdown {
    background-color: #fff; border-color: var(--gest-border); color: var(--gest-text);
    box-shadow: 0 4px 12px rgba(0,0,0,.12);
}
.select2-container--bootstrap-5 .select2-results__option--highlighted {
    background-color: var(--gest-brand) !important; color: #fff !important;
}

/* ── FOOTER ──────────────────────────────────── */
.gest-footer {
    background-color: var(--gest-brand);
    border-top: 1px solid var(--gest-brand-dark);
    color: rgba(255,255,255,.7);
    padding: .75rem 1rem;
    text-align: center;
    margin-top: auto;
}
.gest-footer a { color: rgba(255,255,255,.8); text-decoration: none; }
.gest-footer a:hover { color: #fff; }

/* ── AUTOCOMPLETE BOX ────────────────────────── */
#suggesstion-box {
    background: #fff;
    border: 1px solid var(--gest-border);
    border-radius: .5rem;
    box-shadow: 0 8px 24px rgba(0,0,0,.12);
    max-height: 280px; overflow-y: auto; color: var(--gest-text);
}
#suggesstion-box div {
    padding: .5rem 1rem; cursor: pointer;
    border-bottom: 1px solid var(--gest-border); font-size: .9rem;
}
#suggesstion-box div:last-child { border-bottom: none; }
#suggesstion-box div:hover { background-color: var(--gest-brand-pale); color: var(--gest-brand); font-weight: 500; }

/* ── PERSONA RESULT (autocomplete) ──────────── */
.gest-persona-result {
    background-color: #fff !important; border-color: var(--gest-border) !important;
    color: var(--gest-text) !important;
}
.gest-persona-result:hover {
    background-color: var(--gest-brand-pale) !important; color: var(--gest-brand) !important;
}

/* ── SPINNER ─────────────────────────────────── */
.spinner-border { color: var(--gest-brand); }

/* ── MISCELLANEA ─────────────────────────────── */
#stato_pratica, #esito_lettura_pratica, #esito_lettura_pratica_2 { min-height: 1rem; }
.text-muted { color: var(--gest-muted) !important; }
.border      { border-color: var(--gest-border) !important; }
.bg-light    { background-color: #f7f2f1 !important; }

/* ── MOBILE-FIRST base (<768px) ──────────────── */
.container, .container-fluid { padding-left: .85rem; padding-right: .85rem; }
main { padding-top: 1rem !important; padding-bottom: 1.5rem !important; }
.gest-page-header h4, .gest-page-header h5 { font-size: .92rem; }
table.dataTable thead th { font-size: .71rem; padding: .4rem .35rem; }
.dt-buttons .btn, .dt-button { font-size: .72rem !important; padding: .2rem .4rem !important; }
legend { font-size: .73rem; }
.dataTables_wrapper .dataTables_filter,
.dataTables_wrapper .dataTables_length { text-align: left !important; }

/* ── Tablet (≥768px) ─────────────────────────── */
@media (min-width: 768px) {
    main { padding-top: 1.5rem !important; }
    table.dataTable thead th { font-size: .77rem; }
    .gest-tile .tile-icon { width: 60px; height: 60px; font-size: 1.5rem; }
    .gest-tile .tile-title { font-size: 1rem; }
}

/* ── Desktop (≥992px) ────────────────────────── */
@media (min-width: 992px) {
    main { padding-top: 1.75rem !important; }
}
