/* ============================================================
   at.css - Amministrazione Trasparente
   Estende italia-theme.css (stesse variabili --ita-*): nessun colore scritto a mano,
   tutto segue il tema (bordeaux / blu). Solo i colori semantici di stato sono fissi.
   ============================================================ */

/* i popup DevExpress (TDPopup, TDConfirmationDialog, tendine) sono resi in <dxbl-popup-root> fuori da .ita-theme: le variabili valgono anche lì */
.ita-theme, dxbl-popup-root {
    --at-pub: #008758;
    --at-wip: #0066cc;
    --at-upd: #a66300;
    --at-todo: #9aa3ab;
    --at-na: #c5cbd1;
    --at-shadow: 0 2px 8px rgb(0 0 0 / 8%);
    --at-shadow-hover: 0 8px 24px rgb(0 0 0 / 14%);
}
.ita-theme main { min-height: 50vh; }
.ita-theme a { text-underline-offset: 3px; }
.ita-theme code { background: var(--ita-bg-light); padding: 1px 6px; border-radius: 3px; font-size: .9em; }

.at-skip { position: absolute; left: -999px; top: 0; background: #fff; padding: 8px 12px; z-index: 1000; }
.at-skip:focus { left: 8px; top: 8px; }

/* ---------- ricerca nell'hero ---------- */
.at-search-box { position: relative; max-width: 640px; margin-top: 20px; }
.at-search-box > i { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); color: var(--ita-primary); }
.at-search {
    width: 100%; font: inherit; font-size: 1.125rem; padding: 14px 16px 14px 46px; border: 0; border-radius: var(--ita-radius);
    background: #fff; color: var(--ita-text); box-shadow: 0 4px 16px rgb(0 0 0 / 20%);
}
.at-search:focus { outline: 3px solid #fff; outline-offset: 2px; box-shadow: var(--ita-focus); }

/* ---------- statistiche ---------- */
.at-stats { display: grid; grid-template-columns: 2fr repeat(5, 1fr); gap: 14px; }
.at-stat {
    display: flex; flex-direction: column; justify-content: center; gap: 2px; padding: 16px 18px; text-align: left; font: inherit;
    background: #fff; border: 1px solid var(--ita-border); border-radius: 8px; box-shadow: var(--at-shadow); color: var(--ita-text-muted);
}
button.at-stat { cursor: pointer; transition: transform .15s, box-shadow .15s, border-color .15s; }
button.at-stat:hover { transform: translateY(-2px); box-shadow: var(--at-shadow-hover); border-color: var(--ita-primary); }
button.at-stat:focus-visible { outline: none; box-shadow: var(--ita-focus); }
.at-stat-on { border-color: var(--ita-primary); box-shadow: inset 0 0 0 2px var(--ita-primary), var(--at-shadow); }
.at-stat-num { font-size: 2rem; font-weight: 700; line-height: 1.1; color: var(--ita-text); }
.at-stat-main { flex-direction: row; align-items: center; gap: 18px; }
.at-stat-main strong { color: var(--ita-text); font-size: 1.125rem; }
.at-stat-main p { margin: 2px 0 0; font-size: .9rem; }
.at-c-pub { color: var(--at-pub); } .at-c-wip { color: var(--at-wip); } .at-c-upd { color: var(--at-upd); } .at-c-todo { color: var(--ita-secondary); }
.at-ring {
    --p: 0; flex: none; width: 84px; height: 84px; border-radius: 50%; display: grid; place-items: center;
    background: conic-gradient(var(--ita-primary) calc(var(--p) * 1%), var(--ita-bg-light) 0);
    position: relative;
}
.at-ring::before { content: ""; position: absolute; inset: 9px; background: #fff; border-radius: 50%; }
.at-ring span { position: relative; font-weight: 700; font-size: 1.25rem; color: var(--ita-primary); }

/* ---------- stati ---------- */
.at-dot { display: inline-block; width: 11px; height: 11px; border-radius: 50%; flex: none; background: var(--at-todo); }
.at-dot-pub { background: var(--at-pub); } .at-dot-wip { background: var(--at-wip); } .at-dot-upd { background: var(--at-upd); }
.at-dot-todo { background: transparent; box-shadow: inset 0 0 0 2px var(--at-todo); }
.at-dot-na { background: var(--at-na); }
.at-stato { display: inline-flex; align-items: center; gap: 7px; font-size: .8125rem; font-weight: 600; padding: 3px 11px 3px 9px; border-radius: 99px; white-space: nowrap; background: var(--ita-bg-grey); color: var(--ita-text); }
.at-stato-pub { background: #e2f4ec; color: #00663f; }
.at-stato-wip { background: #e0eefb; color: #004c99; }
.at-stato-upd { background: #fbefd9; color: #7a4900; }
.at-stato-na { background: #eceff1; color: #5c6f82; }

/* ---------- card sezioni ---------- */
.at-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 22px; }
.at-grid-2 { grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); }
.at-sez {
    display: flex; flex-direction: column; gap: 12px; background: #fff; border: 1px solid var(--ita-border); border-top: 4px solid var(--ita-primary);
    border-radius: 6px; padding: 20px; box-shadow: var(--at-shadow); transition: transform .18s, box-shadow .18s;
}
.at-sez:hover { transform: translateY(-3px); box-shadow: var(--at-shadow-hover); }
.at-sez header { display: flex; gap: 14px; align-items: flex-start; }
.at-sez h3 { margin: 2px 0 0; font-size: 1.25rem; line-height: 1.25; }
.at-sez h3 a { color: var(--ita-text); text-decoration: none; }
.at-sez h3 a:hover { color: var(--ita-primary); text-decoration: underline; }
.at-sez .ita-card-read-more { margin-top: auto; padding-top: 6px; }
.at-sez-icon {
    flex: none; width: 46px; height: 46px; display: grid; place-items: center; border-radius: 12px; font-size: 1.25rem;
    background: rgb(var(--ita-primary-rgb) / 10%); color: var(--ita-primary);
}
.at-sez-icon-lg { width: 64px; height: 64px; font-size: 1.75rem; background: rgb(255 255 255 / 16%); color: #fff; }
.at-cod { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .04em; color: var(--ita-primary); background: rgb(var(--ita-primary-rgb) / 9%); padding: 1px 8px; border-radius: 99px; }
.at-cod-light { background: rgb(255 255 255 / 20%); color: #fff; }
.at-progress { height: 8px; background: var(--ita-bg-light); border-radius: 99px; overflow: hidden; }
.at-progress span { display: block; height: 100%; background: var(--at-pub); border-radius: 99px; transition: width .4s; }
.at-progress-label { font-size: .8125rem; color: var(--ita-text-muted); margin-top: -6px; }
.at-sub { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.at-sub li { display: flex; align-items: center; gap: 9px; padding: 5px 0; border-bottom: 1px dashed var(--ita-border); font-size: .95rem; }
.at-sub li:last-child { border-bottom: 0; }
.at-sub a { color: var(--ita-text); text-decoration: none; flex: 1; }
.at-sub a:hover { color: var(--ita-primary); text-decoration: underline; }
.at-na a { color: var(--ita-text-muted); }
.at-docs { font-size: .75rem; color: var(--ita-text-muted); white-space: nowrap; }
.at-legenda { display: flex; flex-wrap: wrap; gap: 8px 22px; margin: 26px 0 0; font-size: .85rem; color: var(--ita-text-muted); }
.at-legenda span { display: inline-flex; align-items: center; gap: 7px; }

/* ---------- risultati / elenchi ---------- */
.at-risultati { list-style: none; margin: 0 0 24px; padding: 0; background: #fff; border: 1px solid var(--ita-border); border-radius: 6px; overflow: hidden; }
.at-risultati li + li { border-top: 1px solid var(--ita-border); }
.at-risultati a { display: flex; align-items: center; gap: 14px; padding: 14px 18px; text-decoration: none; color: var(--ita-text); transition: background .12s; }
.at-risultati a:hover { background: var(--ita-bg-light); }
.at-ris-titolo { flex: 1; font-weight: 600; }
.at-ris-titolo small { display: block; font-weight: 400; color: var(--ita-text-muted); }
.at-filtro-attivo { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 14px; }
.at-link-btn { background: none; border: 0; font: inherit; font-size: .875rem; font-weight: 600; color: var(--ita-primary); cursor: pointer; padding: 4px 6px; border-radius: 4px; }
.at-link-btn:hover { background: rgb(var(--ita-primary-rgb) / 8%); }
.at-link-btn:focus-visible { outline: none; box-shadow: var(--ita-focus); }

/* ---------- testata pagina ---------- */
.at-pagehead { background: var(--ita-primary); color: #fff; }
.at-pagehead .ita-container { display: flex; gap: 20px; align-items: center; padding-top: 32px; padding-bottom: 32px; }
.at-pagehead h1 { color: #fff; margin: 4px 0; font-size: 2.125rem; line-height: 1.15; }
.at-pagehead p { margin: 0; color: rgb(255 255 255 / 88%); }
.at-pagehead-slim .ita-container { padding-top: 22px; padding-bottom: 22px; }
.at-pagehead-slim h1 { font-size: 1.75rem; margin-top: 0; }

/* ---------- dettaglio sezione ---------- */
.at-detail { display: grid; grid-template-columns: 300px minmax(0, 1fr) 260px; gap: 32px; padding-top: 30px; padding-bottom: 56px; align-items: start; }
.at-h2 { font-size: 1.5rem; margin: 30px 0 14px; padding-bottom: 8px; border-bottom: 2px solid rgb(var(--ita-primary-rgb) / 20%); }
.at-detail-main > .at-h2:first-child { margin-top: 0; }
.at-testo { white-space: pre-line; max-width: 75ch; }
.at-box { background: #fff; border: 1px solid var(--ita-border); border-radius: 6px; padding: 18px 20px; margin-bottom: 20px; box-shadow: var(--at-shadow); }
.at-box h3 { font-size: 1.0625rem; margin: 0 0 12px; display: flex; gap: 8px; align-items: center; }
.at-box h3 i { color: var(--ita-primary); }
.at-box dl { margin: 14px 0; }
.at-box dt { font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ita-text-muted); margin-top: 10px; }
.at-box dd { margin: 0; font-weight: 600; }
.at-detail-side .ita-btn { width: 100%; justify-content: center; }
.at-nav-side { list-style: none; margin: 0; padding: 0; }
.at-nav-side li { display: flex; gap: 9px; align-items: center; padding: 7px 8px; border-radius: 4px; font-size: .95rem; }
.at-nav-side li.attiva { background: rgb(var(--ita-primary-rgb) / 9%); font-weight: 700; }
.at-nav-side a { color: var(--ita-text); text-decoration: none; }
.at-nav-side a:hover { color: var(--ita-primary); text-decoration: underline; }
.at-obblighi { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.at-obblighi li { display: flex; gap: 12px; padding: 10px 14px; background: var(--ita-bg-light); border-radius: 6px; border-left: 4px solid var(--ita-primary); }
.at-obblighi i { color: var(--ita-primary); margin-top: 4px; }
.at-doclist { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.at-doclist li { display: flex; gap: 14px; align-items: flex-start; padding: 14px 16px; background: #fff; border: 1px solid var(--ita-border); border-radius: 6px; }
.at-doc-ico { font-size: 1.5rem; color: var(--ita-primary); margin-top: 2px; }
.at-doclist a { font-weight: 600; }
.at-doclist small { display: flex; gap: 10px; align-items: center; color: var(--ita-text-muted); margin-top: 2px; }

/* ---------- redazione ---------- */
.at-redazione { display: grid; grid-template-columns: 380px minmax(0, 1fr); gap: 28px; padding-top: 28px; padding-bottom: 56px; align-items: start; }
.at-tree-panel { position: sticky; top: 12px; background: #fff; border: 1px solid var(--ita-border); border-radius: 6px; box-shadow: var(--at-shadow); max-height: calc(100vh - 24px); display: flex; flex-direction: column; }
.at-tree-tools { padding: 12px; border-bottom: 1px solid var(--ita-border); display: grid; gap: 8px; }
.at-tree-btns { display: flex; flex-wrap: wrap; gap: 2px; }
.at-tree, .at-tree ul { list-style: none; margin: 0; padding: 0; }
.at-tree { overflow: auto; padding: 8px 6px 12px; }
.at-tree ul { padding-left: 18px; border-left: 1px solid var(--ita-border); margin-left: 15px; }
.at-tree-row { display: flex; align-items: center; border-radius: 4px; }
.at-tree-row:hover { background: var(--ita-bg-light); }
.at-tree-row.sel { background: rgb(var(--ita-primary-rgb) / 12%); box-shadow: inset 3px 0 0 var(--ita-primary); }
.at-tree-row.sel .at-tree-titolo { font-weight: 700; }
.at-toggle { width: 26px; height: 30px; flex: none; background: none; border: 0; cursor: pointer; color: var(--ita-text-muted); font-size: .75rem; }
.at-toggle-vuoto { cursor: default; }
.at-tree-link { flex: 1; display: flex; align-items: center; gap: 8px; padding: 6px 8px 6px 0; text-decoration: none; color: var(--ita-text); min-width: 0; }
.at-tree-titolo { font-size: .92rem; line-height: 1.3; }
.at-tree-link:focus-visible, .at-toggle:focus-visible { outline: none; box-shadow: var(--ita-focus); border-radius: 4px; }
.at-tree-row.at-na .at-tree-titolo { color: var(--ita-text-muted); }

.at-editor { background: #fff; border: 1px solid var(--ita-border); border-radius: 6px; box-shadow: var(--at-shadow); padding: 24px 28px 28px; min-height: 420px; }
.at-editor-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 16px; }
.at-editor-head h2 { margin: 6px 0 2px; font-size: 1.5rem; }
.at-editor-head small { color: var(--ita-text-muted); }
.at-empty { text-align: center; padding: 70px 20px; color: var(--ita-text-muted); }
.at-empty i { font-size: 3rem; color: rgb(var(--ita-primary-rgb) / 40%); }
.at-empty h2 { margin: 14px 0 6px; color: var(--ita-text); }

.at-quickstato { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 22px; padding: 12px; background: var(--ita-bg-light); border-radius: 8px; }
.at-qs {
    display: inline-flex; align-items: center; gap: 8px; font: inherit; font-size: .9rem; font-weight: 600; padding: 7px 14px; cursor: pointer;
    background: #fff; border: 2px solid var(--ita-border); border-radius: 99px; color: var(--ita-text); transition: all .12s;
}
.at-qs:hover { border-color: var(--ita-primary); }
.at-qs:focus-visible { outline: none; box-shadow: var(--ita-focus); }
.at-qs.on { color: #fff; border-color: transparent; }
.at-qs-pub.on { background: var(--at-pub); } .at-qs-wip.on { background: var(--at-wip); } .at-qs-upd.on { background: var(--at-upd); }
.at-qs-todo.on { background: var(--ita-secondary); } .at-qs-na.on { background: #77838f; }
.at-qs.on .at-dot { background: #fff; box-shadow: none; }

.at-form { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px 18px; }
.at-field { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.at-w3 { grid-column: 1 / -1; }
.at-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; padding-top: 6px; }
.at-conferma { display: inline-flex; gap: 8px; align-items: center; font-weight: 600; color: var(--ita-danger); flex-wrap: wrap; }

.at-doc-form { margin-top: 20px; padding: 16px 18px; background: var(--ita-bg-light); border-radius: 8px; }
.at-doc-form h4 { margin: 0 0 12px; font-size: 1.0625rem; }
.at-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.at-table th { text-align: left; padding: 9px 10px; font-size: .75rem; text-transform: uppercase; letter-spacing: .05em; color: var(--ita-text-muted); border-bottom: 2px solid var(--ita-border); }
.at-table td { padding: 9px 10px; border-bottom: 1px solid var(--ita-border); vertical-align: top; }
.at-icon-btn { width: 34px; height: 34px; border-radius: 50%; border: 0; background: none; cursor: pointer; color: var(--ita-primary); }
.at-icon-btn:hover { background: rgb(var(--ita-primary-rgb) / 10%); }
.at-icon-btn:focus-visible { outline: none; box-shadow: var(--ita-focus); }
.at-icon-btn.at-danger { color: var(--ita-danger); }

/* ---------- API ---------- */
.at-code { background: #1e2a33; color: #e6edf3; padding: 16px 20px; border-radius: 6px; overflow: auto; font-size: .875rem; line-height: 1.6; }
.at-table-api td:nth-child(2) { font-family: Consolas, monospace; }
.at-metodo { display: inline-block; min-width: 62px; text-align: center; font-size: .75rem; font-weight: 700; padding: 2px 8px; border-radius: 4px; color: #fff; background: var(--ita-secondary); }
.at-m-get { background: var(--at-pub); } .at-m-post { background: var(--at-wip); } .at-m-put, .at-m-patch { background: var(--at-upd); } .at-m-delete { background: var(--ita-danger); }

/* ---------- responsive ---------- */
@media (max-width: 1100px) {
    .at-stats { grid-template-columns: repeat(3, 1fr); }
    .at-stat-main { grid-column: 1 / -1; }
    .at-redazione { grid-template-columns: 1fr; }
    .at-tree-panel { position: static; max-height: 360px; }
}
@media (max-width: 900px) {
    .at-detail { grid-template-columns: 1fr; gap: 10px; }
    .at-detail-nav .at-nav { position: static; max-height: 360px; }
    .at-form { grid-template-columns: 1fr 1fr; }
    .at-w3 { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
    .at-stats { grid-template-columns: 1fr 1fr; }
    .at-form { grid-template-columns: 1fr; }
    .at-w3 { grid-column: auto; }
    .at-pagehead h1 { font-size: 1.6rem; }
    .at-pagehead .ita-container { flex-direction: column; align-items: flex-start; }
    .at-editor { padding: 18px 16px; }
}
@media (prefers-reduced-motion: reduce) { .at-sez, .at-stat, .at-progress span { transition: none; } }

.ita-theme .at-tree-link, .ita-theme .at-tree-link:hover { text-decoration: none; }
.ita-theme .at-tree-link .at-cod { text-decoration: none; }

/* ---------- albero di navigazione (consultazione) ---------- */
.at-home { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 28px; align-items: start; }
.at-home .at-grid { grid-template-columns: repeat(auto-fill, minmax(290px, 1fr)); }
.at-nav { position: sticky; top: 12px; background: #fff; border: 1px solid var(--ita-border); border-radius: 6px; box-shadow: var(--at-shadow); max-height: calc(100vh - 24px); overflow: auto; }
.at-nav-head { display: flex; justify-content: space-between; align-items: center; padding: 12px 14px; border-bottom: 1px solid var(--ita-border); position: sticky; top: 0; background: #fff; z-index: 1; }
.at-nav-head i { color: var(--ita-primary); margin-right: 6px; }
.at-nav-tree, .at-nav-tree ul { list-style: none; margin: 0; padding: 0; }
.at-nav-tree { padding: 6px 6px 10px; }
.at-nav-tree ul { margin-left: 26px; border-left: 1px solid var(--ita-border); }
.at-nav-row { display: flex; align-items: flex-start; border-radius: 4px; }
.at-nav-row:hover { background: var(--ita-bg-light); }
.at-nav-row a { flex: 1; display: flex; gap: 8px; align-items: baseline; padding: 6px 8px 6px 0; color: var(--ita-text); text-decoration: none !important; font-size: .92rem; line-height: 1.3; min-width: 0; }
.at-nav-row a .at-dot { align-self: center; width: 9px; height: 9px; }
.at-nav-row.in > a, .at-nav-row.in .at-nav-t { font-weight: 700; }
.at-nav-row.sel { background: rgb(var(--ita-primary-rgb) / 12%); box-shadow: inset 3px 0 0 var(--ita-primary); }
.at-nav-row.sel .at-nav-t { font-weight: 700; color: var(--ita-primary); }
.at-nav-row .at-toggle { height: 32px; }
.at-nav-row.at-na .at-nav-t { color: var(--ita-text-muted); }
.at-nav-row a:focus-visible { outline: none; box-shadow: var(--ita-focus); border-radius: 4px; }
.at-detail-nav .at-nav { position: sticky; top: 12px; }
@media (max-width: 1100px) { .at-home { grid-template-columns: 1fr; } .at-nav { position: static; max-height: 360px; } }

/* ---------- guida alla compilazione ---------- */
.at-norma { background: var(--ita-bg-light); border-left: 4px solid var(--ita-primary); border-radius: 0 6px 6px 0; padding: 16px 22px; margin: 0 0 8px; }
.at-norma h2 { font-size: 1.125rem; margin: 0 0 8px; display: flex; gap: 8px; align-items: center; }
.at-norma h2 i { color: var(--ita-primary); }
.at-norma h3 { font-size: .95rem; margin: 14px 0 4px; }
.at-norma ul { margin: 0; padding-left: 20px; }
.at-norma li { margin: 3px 0; }
.at-norma .at-testo { margin: 0; font-size: .95rem; }
.at-obbl-lista { display: grid; gap: 14px; }
.at-obbl-vista { background: #fff; border: 1px solid var(--ita-border); border-radius: 6px; padding: 16px 20px; border-left: 4px solid var(--ita-primary); }
.at-obbl-vista h3 { font-size: 1.0625rem; margin: 0 0 8px; display: flex; gap: 10px; align-items: baseline; line-height: 1.35; }
.at-obbl-vista h3 i { color: var(--ita-primary); flex: none; }
.at-obbl-vista p { margin: 6px 0; }
.at-obbl-vista .at-doclist { margin-top: 8px; }
.at-ov-nota { color: var(--ita-text-muted); font-style: italic; }
.at-ov-assorbito { border-left-color: var(--ita-info); }
.at-ov-nonpresente { border-left-color: var(--ita-secondary); }
.at-ov-rinvio { border-left-color: var(--at-upd); }

/* editor guidato */
.at-obbl { border: 1px solid var(--ita-border); border-radius: 8px; padding: 16px 18px; margin-bottom: 14px; background: #fff; }
.at-obbl.ok { border-left: 5px solid var(--at-pub); }
.at-obbl.ko { border-left: 5px solid var(--at-upd); }
.at-obbl-head { display: flex; gap: 10px; align-items: flex-start; justify-content: space-between; }
.at-obbl-head h4 { margin: 0; font-size: 1rem; line-height: 1.35; flex: 1; }
.at-obbl-head .at-flag { flex: none; font-size: .75rem; font-weight: 700; padding: 2px 10px; border-radius: 99px; }
.at-flag-ok { background: #e2f4ec; color: #00663f; } .at-flag-ko { background: #fbefd9; color: #7a4900; }
.at-modi { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; }
.at-modo { display: inline-flex; align-items: center; gap: 8px; font: inherit; font-size: .875rem; font-weight: 600; padding: 7px 14px; cursor: pointer; background: #fff; border: 2px solid var(--ita-border); border-radius: 6px; color: var(--ita-text); }
.at-modo:hover { border-color: var(--ita-primary); }
.at-modo:focus-visible { outline: none; box-shadow: var(--ita-focus); }
.at-modo.on { background: var(--ita-primary); border-color: var(--ita-primary); color: #fff; }
.at-obbl-campi { display: grid; gap: 10px; margin-top: 4px; }
.at-hint { font-size: .85rem; color: var(--ita-text-muted); margin: 0; }
.at-hint-warn { color: var(--at-upd); font-weight: 600; }
.at-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.at-anteprima { margin-top: 12px; padding: 10px 14px; background: var(--ita-bg-light); border-radius: 6px; }
.at-anteprima > small { display: block; text-transform: uppercase; letter-spacing: .05em; font-size: .7rem; color: var(--ita-text-muted); margin-bottom: 6px; }
.at-anteprima .at-obbl-vista { border-left-width: 4px; margin: 0; }
.at-obbl-docs { margin: 8px 0 0; padding: 0; list-style: none; font-size: .9rem; }
.at-obbl-docs li { padding: 3px 0; }
.at-completezza { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.at-completezza .at-progress { flex: 1; }

.at-editor h3.at-h2 { margin-top: 40px; }

/* ---------- 3° livello: singoli obblighi ---------- */
.at-clamp { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.at-nav-obbl a { font-size: .85rem; color: var(--ita-text-muted); padding: 4px 8px 4px 0; }
.at-nav-obbl a:hover { color: var(--ita-primary); }
.at-nav-obbl .at-cod { background: transparent; border: 1px solid var(--ita-border); color: var(--ita-text-muted); font-weight: 600; }
.at-nav-tree ul ul { margin-left: 22px; }
.at-tree-obbl .at-tree-titolo { font-size: .82rem; color: var(--ita-text-muted); }
.at-tree-obbl .at-cod { background: transparent; border: 1px solid var(--ita-border); color: var(--ita-text-muted); }
.at-ob-ico { font-size: .8rem; color: var(--at-todo); }
.at-ob-pubblicato, .at-ob-assorbito, .at-ob-rinvio, .at-ob-nonpresente { color: var(--at-pub); }
.at-obbl-vista, .at-obbl { scroll-margin-top: 16px; }

/* ---------- richieste guidate ---------- */
.at-passo { display: flex; align-items: center; gap: 10px; margin: 14px 0 6px; font-weight: 700; font-size: .95rem; }
.at-passo span { display: inline-grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: var(--ita-primary); color: #fff; font-size: .8rem; }
.at-richieste { list-style: none; margin: 0; padding: 0; border: 1px solid var(--ita-border); border-radius: 6px; }
.at-richieste li { display: flex; gap: 12px; align-items: center; justify-content: space-between; padding: 9px 12px; font-size: .92rem; }
.at-richieste li + li { border-top: 1px solid var(--ita-border); }
.at-richieste li.da-fare { background: #fffaf0; }
.at-r-testo { flex: 1; }
.at-r-btns { display: inline-flex; flex: none; border: 1px solid var(--ita-border); border-radius: 6px; overflow: hidden; }
.at-r-btns button { font: inherit; font-size: .78rem; font-weight: 600; padding: 5px 10px; border: 0; background: #fff; color: var(--ita-text-muted); cursor: pointer; }
.at-r-btns button + button { border-left: 1px solid var(--ita-border); }
.at-r-btns button:hover { background: var(--ita-bg-light); }
.at-r-btns button:focus-visible { outline: none; box-shadow: inset var(--ita-focus); }
.at-r-btns .on-ok { background: var(--at-pub); color: #fff; }
.at-r-btns .on-na { background: #77838f; color: #fff; }
.at-r-btns .on-todo { background: var(--at-upd); color: #fff; }
.at-presenti { list-style: none; margin: 4px 0 8px; padding: 0; display: grid; gap: 4px; font-size: .95rem; }
.at-presenti i { color: var(--at-pub); margin-right: 6px; }
@media (max-width: 640px) { .at-richieste li { flex-direction: column; align-items: flex-start; } }

/* ---------- caricamento file ---------- */
.at-drop { position: relative; display: flex; align-items: center; gap: 14px; padding: 18px 20px; border: 2px dashed var(--ita-primary); border-radius: 8px; background: #fff; cursor: pointer; font-weight: 400; font-size: .95rem; color: var(--ita-text); transition: background .15s; }
.at-drop:hover, .at-drop:focus-within { background: rgb(var(--ita-primary-rgb) / 6%); }
.at-drop.ha-file { border-style: solid; background: rgb(var(--ita-primary-rgb) / 6%); }
.at-drop i { font-size: 1.75rem; color: var(--ita-primary); }
.at-file-nome { display: block; color: var(--ita-text-muted); font-size: .8rem; }
.at-doc-desc { margin: 2px 0 4px; font-size: .9rem; color: var(--ita-text-muted); }

/* ---------- tendine DevExpress ----------
   I popup (DxComboBox, DxDateEdit…) sono renderizzati in un portale sotto <body>, fuori da .ita-theme:
   senza queste regole risultano trasparenti e con il font di default. */
dxbl-popup-root { font-family: "Titillium Web", Geneva, Tahoma, sans-serif; font-size: 1rem; color: #19191a; }
dxbl-popup-root .dxbl-dropdown {
    background: #fff; border: 1px solid #d9dadb; border-radius: 4px; box-shadow: 0 8px 24px rgb(0 0 0 / 18%);
    max-height: 320px; overflow-y: auto; overflow-x: hidden;
}
dxbl-popup-root .dxbl-listbox-item { padding: 8px 12px; line-height: 1.3; white-space: normal; }
dxbl-popup-root .dxbl-listbox-item:hover { background: #f2f7fc; }
dxbl-popup-root .dxbl-listbox-item-selected { background: #f2f7fc; font-weight: 700; color: #19191a; }
dxbl-popup-root .dxbl-date-edit-calendar, dxbl-popup-root .dxbl-calendar { background: #fff; }

/* ---------- elenco strutturato ---------- */
.at-doc-campo { display: grid; gap: 8px; }
.at-drop-sm { padding: 10px 14px; }
.at-drop-sm i { font-size: 1.25rem; }
.at-righe { margin-top: 10px; }
.at-righe .at-doc-form { margin-top: 16px; }
.at-table-scroll { overflow-x: auto; margin-bottom: 14px; }
.at-table-pub th { white-space: normal; vertical-align: bottom; }
.at-table-pub td { overflow-wrap: anywhere; }
.at-sr { position: absolute; left: -9999px; }
.at-schede { display: grid; gap: 8px; margin-bottom: 14px; }
.at-schede details { border: 1px solid var(--ita-border); border-radius: 6px; background: #fff; }
.at-schede summary { cursor: pointer; padding: 12px 16px; display: flex; gap: 12px; flex-wrap: wrap; align-items: baseline; }
.at-schede summary span { color: var(--ita-text-muted); font-size: .9rem; }
.at-schede summary:focus-visible { outline: none; box-shadow: var(--ita-focus); }
.at-schede dl { margin: 0; padding: 4px 16px 16px; display: grid; grid-template-columns: minmax(180px, 1fr) 2fr; gap: 6px 18px; border-top: 1px solid var(--ita-border); }
.at-schede dt { font-weight: 600; font-size: .9rem; color: var(--ita-text-muted); padding-top: 8px; }
.at-schede dd { margin: 0; padding-top: 8px; white-space: pre-line; }
@media (max-width: 640px) { .at-schede dl { grid-template-columns: 1fr; } .at-schede dt { padding-top: 10px; } }

.at-obbl-lista { grid-template-columns: minmax(0, 1fr); }
.at-obbl-vista, .at-detail-main { min-width: 0; }

/* accordion della redazione */
.at-acc { border: 1px solid var(--ita-border); border-radius: 8px; background: #fff; }
.at-acc-h, .at-obbl-head { margin: 0; font-size: 1rem; }
.at-acc-btn { all: unset; box-sizing: border-box; display: flex; align-items: center; gap: 10px; width: 100%; cursor: pointer; padding: 12px 16px; font-weight: 600; line-height: 1.35; }
.at-acc-btn > span:first-child { flex: 1; }
.at-acc-btn:focus-visible { outline: 3px solid var(--ita-primary); outline-offset: 2px; border-radius: 6px; }
.at-acc-btn > i { color: var(--ita-primary); flex: none; }
.at-acc-body { padding: 4px 16px 16px; }
.at-obbl { padding: 0; }
.at-obbl .at-obbl-head { display: block; }
.at-obbl .at-acc-btn { padding: 12px 18px; }
.at-obbl > :not(.at-obbl-head) { margin-left: 18px; margin-right: 18px; }
.at-obbl > :last-child { margin-bottom: 16px; }
.at-acc-tools { display: flex; gap: 16px; margin: 4px 0 10px; }

/* collegamenti PerlaPA per anno */
.at-anni { list-style: none; margin: 8px 0 28px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px; }

/* importazione da sito web */
.at-import { margin-top: 18px; padding: 14px 16px; border: 1px dashed var(--ita-border); border-radius: 8px; background: #f8fafc; display: grid; gap: 10px; }
.at-import h4 { margin: 0; font-size: 1rem; }

/* adesione a pagoPA (17.4.1) */
.at-pagopa { background: #f0f6fc; border-left: 4px solid #0066cc; border-radius: 4px; padding: 14px 18px; margin: 8px 0 12px; }
.at-pagopa p { margin: 0 0 10px; }
.at-pagopa p:last-child { margin-bottom: 0; }
.at-pagopa a.ita-btn { color: #fff; }

/* voci non più soggette a pubblicazione: titolo barrato e icona di divieto */
.at-np-ico { color: #b45f06; font-size: .8em; margin-left: 6px; flex: none; align-self: center; }
.at-nav-row.at-np .at-nav-t, .at-tree-row.at-np .at-tree-titolo, .at-sub li.at-np > a { text-decoration: line-through; text-decoration-thickness: 1px; }

/* ricerca */
.at-search-box { display: flex; gap: 8px; align-items: center; }
.at-search-btn { white-space: nowrap; }
.at-search-box .at-ricerca-txt { flex: 1; min-width: 0; }
.at-search-box > i + .at-ricerca-txt input { padding-left: 44px; }
.at-searchbar { background: #f5f7fa; border-bottom: 1px solid var(--ita-border); }
.at-searchbar .at-searchform { display: flex; gap: 8px; align-items: center; padding: 8px 0; max-width: 720px; margin-left: auto; }
.at-searchform .at-ricerca-txt { flex: 1; min-width: 0; }
.at-searchbar input { flex: 1; min-width: 0; padding: 7px 12px; border: 1px solid var(--ita-border); border-radius: 4px; font: inherit; background: #fff; }
.at-searchbar input:focus { outline: 2px solid var(--ita-primary); outline-offset: 1px; }
.at-searchbar button { padding: 6px 16px; }
.at-ricerca { list-style: none; margin: 16px 0 0; padding: 0; display: grid; gap: 12px; }
.at-ricerca > li { background: #fff; border: 1px solid var(--ita-border); border-radius: 6px; padding: 14px 18px; border-left: 4px solid var(--ita-primary); }
.at-ris-testa { display: flex; gap: 10px; align-items: baseline; flex-wrap: wrap; }
.at-ris-link { font-weight: 700; font-size: 1.05rem; }
.at-ris-tipo { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; padding: 2px 8px; border-radius: 99px; background: #eef1f5; color: #3a4a5a; flex: none; }
.at-tipo-documento { background: #e2f4ec; color: #00663f; }
.at-tipo-contenuto { background: #e8eefb; color: #1f4d99; }
.at-tipo-elenco { background: #fbefd9; color: #7a4900; }
.at-ris-dove { font-size: .85rem; color: var(--ita-text-muted); margin: 4px 0 0; }
.at-ris-estratto { margin: 8px 0 0; font-size: .95rem; line-height: 1.5; overflow-wrap: anywhere; }
.at-ris-estratto mark { background: #fff1b8; padding: 0 1px; border-radius: 2px; }
.at-ris-doc { margin-top: 4px; }
.at-chip-on { background: var(--ita-primary) !important; color: #fff !important; }

.at-search-box .at-search-btn { background: #fff; color: var(--ita-primary); border: 1px solid #fff; }
.at-search-box .at-search-btn:hover { background: #f1f1f1; }

/* dati annuali del Patrimonio PA */
.at-anteprima-file { margin-top: 14px; padding: 12px 16px; border: 1px solid var(--ita-border); border-left: 4px solid var(--ita-primary); border-radius: 6px; background: #fff; display: grid; gap: 8px; }
.at-anteprima-file.ko { border-left-color: var(--ita-danger, #b3261e); }
.at-ap-testa { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.at-anno-in { width: 90px; margin-left: 6px; }
.at-anno { border: 1px solid var(--ita-border); border-radius: 6px; margin: 10px 0; background: #fff; }
.at-anno > summary { cursor: pointer; padding: 12px 16px; display: flex; gap: 12px; align-items: baseline; }
.at-anno > summary span { color: var(--ita-text-muted); font-size: .9rem; }
.at-anno > :not(summary) { margin-left: 16px; margin-right: 16px; }
.at-anno > :last-child { margin-bottom: 14px; }
.at-patrimonio a.ita-btn-primary { color: #fff; }
.at-patrimonio .at-table-pub td, .at-patrimonio .at-table-pub th { overflow-wrap: normal; word-break: normal; min-width: 90px; }
.at-patrimonio .at-table-pub td:first-child { min-width: 130px; }

/* finestra modale di modifica/inserimento voci */
.at-modal-bg { position: fixed; inset: 0; background: rgba(23, 50, 77, .55); z-index: 1000; display: flex; align-items: flex-start; justify-content: center; overflow-y: auto; padding: 32px 16px; }
.at-modal { background: #fff; border-radius: 8px; box-shadow: 0 12px 40px rgba(0, 0, 0, .35); width: min(1100px, 100%); padding: 24px 28px 28px; }
.at-modal-sm { width: min(560px, 100%); }
.at-editor-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; }
.at-riepilogo { list-style: none; padding: 0; margin: 12px 0 0; display: grid; gap: 6px; }
.at-riepilogo li i { margin-right: 6px; color: var(--ita-text-muted); }
.at-riepilogo li i.at-ob-pubblicato { color: #1a7f37; }
@media (max-width: 720px) { .at-modal { padding: 16px; } }

@media (max-width: 1100px) { .at-detail { grid-template-columns: 280px minmax(0, 1fr); } .at-detail-side { grid-column: 2; } }

/* sfrutta la larghezza del monitor: il tema limita il contenitore a 1140px */
.ita-container { max-width: none; padding-left: 24px; padding-right: 24px; }
@media (min-width: 1500px) { .at-detail { grid-template-columns: 340px minmax(0, 1fr) 300px; } .at-home { grid-template-columns: 340px minmax(0, 1fr); } .at-redazione { grid-template-columns: 420px minmax(0, 1fr); } }
@media (max-width: 640px) { .ita-container { padding-left: 16px; padding-right: 16px; } }

/* classi di utilità al posto degli style inline (linee guida: niente style per margini e layout) */
.at-link-btn.at-danger { color: var(--ita-danger); }
.at-self-start { justify-self: start; }
.at-mt-xs { margin-top: 6px; }
.at-mt-s { margin-top: 8px; }
.at-mt-0 { margin-top: 0; }
.at-inline { display: flex; gap: 10px; align-items: center; }
.at-num, .at-table th.at-num, .at-table td.at-num { text-align: right; white-space: nowrap; }
.at-modal .at-h2:first-child { margin-top: 0; }
/* titoli e sottotitoli dell'area di redazione: icona fa-regular con spazio a destra (equivalente di "me-2") */
.at-ico { margin-right: .5rem; }
/* titoli dentro le finestre di redazione (TDPopup) come nell’editor */
dxbl-popup-root h3.at-h2 { margin-top: 32px; }
/* intestazione delle finestre (TDPopup, TDConfirmationDialog) nel colore del tema, testo e X bianchi */
/* DevExpress rende lo sfondo dell'header trasparente con una regola più specifica: serve !important, e il velo ::before va tolto */
dxbl-popup-root .dxbl-popup-header { background: var(--ita-primary) !important; color: #fff; }
dxbl-popup-root .dxbl-popup-header::before { display: none; }
dxbl-popup-root .dxbl-popup-header .dxbl-btn, dxbl-popup-root .dxbl-popup-header .dxbl-image { color: #fff; }
/* pulsante Esci nel pie di pagina scuro: bianco come gli altri link */
.at-esci .at-link-btn { color: #fff; padding-left: 0; }
.at-drop .dxbl-btn { flex: none; }
.at-esci .at-link-btn:hover { background: none; text-decoration: underline; }

/* Admin e impostazioni: TD* */
/* moduli con TDFormLayout (al posto della griglia .at-form) e griglie TDGrid in memoria dell'area riservata */
.at-form-td { margin-bottom: 18px; }
.at-form-td .at-actions { padding-top: 10px; }
.at-grid-td { margin-bottom: 22px; }
/* comandi di riga nella cella delle azioni */
.at-grid-azioni { display: flex; flex-wrap: wrap; gap: 8px; }
/* chiave API lunga: monospazio e a capo in qualsiasi punto, senza allargare la colonna */
.at-chiave { font-family: Consolas, monospace; font-size: .85rem; overflow-wrap: anywhere; word-break: break-all; white-space: normal; }

/* Redazione: TD* */
/* toolbar dei comandi della finestra "Modifica voce": resta visibile in cima mentre il corpo del popup scorre */
.at-popup-toolbar { position: sticky; top: 0; z-index: 3; background: #fff; padding: 4px 0; margin-bottom: 8px; border-bottom: 1px solid var(--ita-border); }

/* Editor righe e patrimonio: TD* */
/* griglie (TDGrid) degli elementi di RigheEditor e degli anni di PatrimonioEditor: testo in alto nella cella (nominativo su due righe) */
.at-grid-righe { margin-bottom: 4px; }
.at-grid-righe .dxbl-grid-table td { vertical-align: top; }
/* link di download del CSV nella griglia degli anni: icona tonda centrata come gli altri at-icon-btn */
.at-grid-righe a.at-icon-btn { display: inline-flex; align-items: center; justify-content: center; }
/* scelta dei colori del tema nel modulo «Nuovo ente»: selettore del browser, campo esadecimale e pulsante sulla stessa riga */
.at-colore { display: flex; align-items: center; gap: 8px; }
.at-colore .at-colore-scelta { flex: none; width: 40px; height: 36px; padding: 2px; border: 1px solid var(--ita-border); border-radius: var(--ita-radius); background: #fff; cursor: pointer; }
/* icone dei comandi di riga di UscGridCommandTemplate (modifica, elimina, salva, annulla, aggiungi, esporta): nel colore del tema,
   non nel blu/viola predefinito dei link; valgono anche nei popup (dxbl-popup-root) che stanno fuori da .ita-theme */
.ita-theme a.grid-command-modify, .ita-theme a.grid-command-delete, .ita-theme a.grid-command-save, .ita-theme a.grid-command-new,
dxbl-popup-root a.grid-command-modify, dxbl-popup-root a.grid-command-delete, dxbl-popup-root a.grid-command-save, dxbl-popup-root a.grid-command-new { color: var(--ita-primary); }
.ita-theme a.grid-command-modify:hover, .ita-theme a.grid-command-delete:hover, .ita-theme a.grid-command-save:hover, .ita-theme a.grid-command-new:hover,
dxbl-popup-root a.grid-command-modify:hover, dxbl-popup-root a.grid-command-delete:hover, dxbl-popup-root a.grid-command-save:hover, dxbl-popup-root a.grid-command-new:hover { color: var(--ita-primary-hover); }
.ita-theme a[class*="grid-command-"] > i, dxbl-popup-root a[class*="grid-command-"] > i { color: inherit; }

/* ---------------- guida alla compilazione (solo redazione: consultabile, non scaricabile né stampabile) ---------------- */
.at-guida-rif { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 14px; margin-top: 8px; font-size: .9rem; }
.at-guida-rif a { font-weight: 600; }
.at-guida { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 28px; padding-top: 28px; padding-bottom: 56px; align-items: start; }
.at-guida-indice { position: sticky; top: 16px; max-height: calc(100vh - 32px); overflow: auto; display: grid; gap: 10px; }
.at-guida-voci { list-style: none; margin: 0; padding: 0; }
.at-guida-voci button { all: unset; display: block; box-sizing: border-box; width: 100%; padding: 6px 10px; border-radius: 6px; cursor: pointer; font-size: .9rem; line-height: 1.3; }
.at-guida-voci button:hover, .at-guida-voci button:focus-visible { background: var(--ita-bg-light, #f2f4f6); }
.at-guida-voci button.sel { background: var(--ita-primary, #b30027); color: #fff; }
.at-guida-voci .liv-1 button { font-weight: 600; }
.at-guida-voci .liv-2 button { padding-left: 24px; }
.at-guida-barra { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.at-guida-pagina { position: relative; width: 100%; max-width: 900px; margin: 0 auto; box-shadow: var(--at-shadow); background: #fff; overflow: hidden;
    user-select: none; -webkit-user-select: none; -webkit-touch-callout: none; }
.at-guida-pagina img { display: block; width: 100%; height: 100%; pointer-events: none; }
.at-guida-filigrana { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-around; align-items: center; pointer-events: none; overflow: hidden; }
.at-guida-filigrana span { transform: rotate(-30deg); white-space: nowrap; font-size: 1.4rem; font-weight: 600; color: rgb(0 0 0 / 7%); }
.at-guida-link { all: unset; position: absolute; cursor: pointer; border-radius: 2px; }
.at-guida-link:hover, .at-guida-link:focus-visible { background: rgb(0 102 204 / 12%); outline: 1px solid rgb(0 102 204 / 40%); }
.at-guida-nostampa { display: none; }
@media (max-width: 992px) { .at-guida { grid-template-columns: 1fr; } .at-guida-indice { position: static; max-height: 40vh; } }
@media print { .at-guida { display: none !important; } .at-guida-nostampa { display: block; } }
