/* HalloFrame Anagrafiche — identità «registro»: carta calda, petrolio, ocra.
   Lo shell (sidebar, topbar, form base) arriva da hf-ui.css; qui solo il frame. */

:root {
  --hf-accent: #0f4c5c;
  --hf-paper: #f3f1ea;
  --hf-content-max: 1580px;

  --an-ink: #13202a;
  --an-text: #24313a;
  --an-muted: #69737a;
  --an-faint: #9aa0a1;
  --an-paper: #f3f1ea;
  --an-paper-2: #ebe7dc;
  --an-card: #fffdf8;
  --an-line: #e4dfd3;
  --an-line-2: #d5cdbb;
  --an-petrol: #0f4c5c;
  --an-petrol-2: #136273;
  --an-petrol-soft: #e3edec;
  --an-ochre: #b97f22;
  --an-ochre-2: #d9a441;
  --an-ochre-soft: #f7ecd6;
  --an-danger: #a8321f;
  --an-danger-soft: #f8e4df;
  --an-ok: #2f7a4f;
  --an-ok-soft: #e1f0e6;

  --k-societa: #0f4c5c;
  --k-ditta: #a86d16;
  --k-persona: #7b4a6a;
  --k-ente: #2e5478;
  --k-associazione: #56662c;

  --an-serif: "Source Serif 4", "Iowan Old Style", Georgia, serif;
  --an-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace;
  --an-radius: 12px;
  --an-shadow: 0 1px 0 rgba(19, 32, 42, .04), 0 12px 32px -18px rgba(19, 32, 42, .25);
}

body { background: var(--an-paper); color: var(--an-text); }
::selection { background: color-mix(in srgb, var(--an-ochre-2) 45%, white); }
.an-mono, code { font-family: var(--an-mono); }

/* ---------------------------------------------------------------- shell */
.sidebar { background: #fbfaf5; border-right: 1px solid var(--an-line); }
.sidebar-brand { gap: 12px; }
.sidebar-brand .an-mark { border-radius: 11px; flex-shrink: 0; }
.brand-text small { font-size: 10px; letter-spacing: .16em; text-transform: uppercase; color: var(--an-muted); }
.brand-text strong { font-family: var(--an-serif); font-size: 21px; font-weight: 600; letter-spacing: -.01em; color: var(--an-ink); }
.an-side-new { margin: 10px 4px 14px; justify-content: center; gap: 8px; background: var(--an-petrol); border-color: var(--an-petrol); border-radius: 10px; min-height: 42px; display: inline-flex; align-items: center; color: #fff; font-weight: 600; font-size: 13px; }
.an-side-new:hover { background: var(--an-petrol-2); text-decoration: none; }
.an-side-new [data-icon] { width: 16px; height: 16px; }
.sidebar-nav a.active { background: var(--an-petrol-soft); color: var(--an-petrol); }
.sidebar-nav a { position: relative; }
.an-nav-count { margin-left: auto; min-width: 22px; padding: 1px 7px; border-radius: 99px; background: var(--an-ochre-soft); color: #7a5313; font: 600 11px/1.6 var(--hf-sans); text-align: center; }
.an-session { display: flex; align-items: center; gap: 10px; padding: 4px 6px 12px; min-width: 0; }
.an-session strong { display: block; font-size: 12.5px; color: var(--an-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 170px; }
.an-session small { font-size: 11px; color: var(--an-muted); }
.an-avatar { width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; flex-shrink: 0; background: var(--an-ochre-soft); color: #7a5313; font: 600 13px var(--an-serif); }

.topbar { background: color-mix(in srgb, var(--an-paper) 88%, transparent); border-bottom: 1px solid var(--an-line); }
.an-crumb { display: flex; align-items: center; gap: 10px; min-width: 0; font-size: 12.5px; color: var(--an-muted); }
.an-crumb .page-title { font-size: 13.5px; font-weight: 600; color: var(--an-ink); }
.an-search-btn { display: inline-flex; align-items: center; gap: 10px; background: var(--an-card); border-color: var(--an-line); }
.an-search-btn kbd { font: 500 10.5px var(--an-mono); color: var(--an-muted); border: 1px solid var(--an-line); border-radius: 5px; padding: 1px 5px; background: var(--an-paper); }
.an-live { display: inline-flex; align-items: center; gap: 7px; font-size: 11.5px; color: var(--an-muted); padding: 0 6px; }
.an-live i { width: 7px; height: 7px; border-radius: 50%; background: var(--an-faint); box-shadow: 0 0 0 3px rgba(154, 160, 161, .18); }
.an-live[data-state="on"] i { background: #2f9e62; box-shadow: 0 0 0 3px rgba(47, 158, 98, .16); }
.an-live[data-state="retry"] i { background: var(--an-ochre-2); box-shadow: 0 0 0 3px rgba(217, 164, 65, .2); }
.an-content { padding-top: clamp(18px, 2.4vw, 28px); }
.an-loading { display: flex; align-items: center; gap: 12px; padding: 40px 4px; color: var(--an-muted); font-size: 13.5px; }
.an-loading span { width: 18px; height: 18px; border-radius: 50%; border: 2px solid var(--an-line-2); border-top-color: var(--an-petrol); animation: an-spin .8s linear infinite; }
@keyframes an-spin { to { transform: rotate(360deg); } }

/* ---------------------------------------------------------------- titoli di pagina */
.an-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 18px; flex-wrap: wrap; }
.an-head h2 { font-family: var(--an-serif); font-weight: 600; font-size: clamp(30px, 3.2vw, 40px); letter-spacing: -.02em; line-height: 1.02; color: var(--an-ink); }
.an-head .an-sub { margin-top: 8px; font-size: 13px; color: var(--an-muted); display: flex; gap: 14px; flex-wrap: wrap; }
.an-head .an-sub b { color: var(--an-ink); font-weight: 600; font-variant-numeric: tabular-nums; }
.an-head-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.an-eyebrow { font: 600 10.5px var(--hf-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--an-muted); }

.primary { background: var(--an-ink); border-color: var(--an-ink); border-radius: 9px; display: inline-flex; align-items: center; gap: 8px; }
.primary.accent, .primary.petrol { background: var(--an-petrol); border-color: var(--an-petrol); }
.primary.petrol:hover { background: var(--an-petrol-2); }
.ghost { background: var(--an-card); border-color: var(--an-line-2); border-radius: 9px; display: inline-flex; align-items: center; gap: 8px; }
.ghost:hover { background: #fff; border-color: var(--an-faint); }
.primary [data-icon], .ghost [data-icon], .danger [data-icon] { width: 15px; height: 15px; }
.danger { border-radius: 9px; }
.an-link { background: none; border: 0; padding: 0; color: var(--an-petrol); font-weight: 600; font-size: 12.5px; cursor: pointer; }
.an-link:hover { text-decoration: underline; }

/* ---------------------------------------------------------------- strisce numeriche */
.an-ledger { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); background: var(--an-card); border: 1px solid var(--an-line); border-radius: var(--an-radius); margin-bottom: 18px; overflow: hidden; }
.an-ledger > div { padding: 14px 18px; border-right: 1px solid var(--an-line); min-width: 0; }
.an-ledger > div:last-child { border-right: 0; }
.an-ledger small { display: block; font-size: 10.5px; letter-spacing: .12em; text-transform: uppercase; color: var(--an-muted); }
.an-ledger strong { display: block; margin-top: 4px; font: 500 26px/1.1 var(--an-serif); color: var(--an-ink); font-variant-numeric: tabular-nums; }
.an-ledger button { all: unset; cursor: pointer; display: block; }
.an-ledger button:focus-visible { outline: 2px solid var(--an-petrol); outline-offset: 4px; border-radius: 4px; }

/* ---------------------------------------------------------------- barra di ricerca e filtri */
.an-toolbar { display: grid; gap: 12px; margin-bottom: 16px; }
.an-searchbox { position: relative; }
.an-searchbox [data-icon="search"] { position: absolute; left: 16px; top: 50%; transform: translateY(-50%); width: 18px; height: 18px; color: var(--an-muted); pointer-events: none; }
.an-searchbox input { width: 100%; min-height: 52px; padding: 0 116px 0 46px; border-radius: 12px; border: 1px solid var(--an-line-2); background: var(--an-card); font-size: 15px; color: var(--an-ink); box-shadow: inset 0 1px 0 rgba(19, 32, 42, .03); }
.an-searchbox input::placeholder { color: var(--an-faint); }
.an-searchbox input:focus { outline: none; border-color: var(--an-petrol); box-shadow: 0 0 0 4px rgba(15, 76, 92, .1); }
.an-searchbox .an-count { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); font: 500 12px var(--an-mono); color: var(--an-muted); }
.an-roles { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding-bottom: 2px; }
.an-roles::-webkit-scrollbar { display: none; }
.an-chip { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; padding: 7px 13px; border-radius: 99px; border: 1px solid var(--an-line-2); background: var(--an-card); color: var(--an-text); font-size: 12.5px; font-weight: 500; cursor: pointer; }
.an-chip b { font: 500 11px var(--an-mono); color: var(--an-muted); }
.an-chip:hover { border-color: var(--an-faint); }
.an-chip[aria-pressed="true"] { background: var(--an-ink); border-color: var(--an-ink); color: #fff; }
.an-chip[aria-pressed="true"] b { color: rgba(255, 255, 255, .7); }
.an-filters { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.an-filters select { min-height: 36px; padding: 6px 30px 6px 11px; font-size: 12.5px; border-radius: 9px; border: 1px solid var(--an-line-2); background-color: var(--an-card); max-width: 200px; }
.an-filters .an-filter-toggle { display: none; }
.an-filters .an-reset { margin-left: 4px; }
.an-filters .an-spacer { flex: 1; }

/* ---------------------------------------------------------------- archivio */
.an-archive { display: grid; grid-template-columns: minmax(330px, 440px) minmax(0, 1fr); gap: 18px; align-items: start; }
.an-listwrap { display: grid; grid-template-columns: 26px minmax(0, 1fr); gap: 6px; align-items: start; min-width: 0; }
.an-rail { position: sticky; top: 76px; display: flex; flex-direction: column; align-items: center; padding: 4px 0; }
.an-rail button { all: unset; width: 22px; height: 18px; display: grid; place-items: center; font: 600 10.5px var(--hf-sans); color: var(--an-faint); border-radius: 5px; cursor: default; }
.an-rail button.has { color: var(--an-ink); cursor: pointer; }
.an-rail button.has:hover { background: var(--an-paper-2); }
.an-rail button[aria-pressed="true"] { background: var(--an-ochre-2); color: #1e1608; }
.an-rail button:focus-visible { outline: 2px solid var(--an-petrol); }
.an-list { background: var(--an-card); border: 1px solid var(--an-line); border-radius: var(--an-radius); overflow: clip; min-width: 0; }
.an-letter { position: sticky; top: 62px; z-index: 2; padding: 6px 16px 5px; background: color-mix(in srgb, var(--an-paper) 72%, white); border-bottom: 1px solid var(--an-line); font: 600 14px var(--an-serif); color: var(--an-petrol); }
.an-row { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 11px 14px 11px 16px; border-bottom: 1px solid var(--an-line); color: inherit; text-decoration: none; position: relative; }
.an-row:last-child { border-bottom: 0; }
.an-row:hover { background: #fffaf0; text-decoration: none; }
.an-row[aria-current="true"] { background: var(--an-petrol-soft); }
.an-row[aria-current="true"]::before { content: ""; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius: 0 3px 3px 0; background: var(--an-petrol); }
.an-row .an-name { display: block; font-size: 14px; font-weight: 600; color: var(--an-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.an-row .an-meta { display: block; margin-top: 2px; font-size: 12px; color: var(--an-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.an-row .an-meta .an-mono { font-size: 11.5px; color: var(--an-text); }
.an-row .an-meta i { font-style: normal; color: var(--an-faint); padding: 0 5px; }
.an-row-tags { display: flex; gap: 4px; flex-shrink: 0; }
.an-row.muted .an-name { color: var(--an-muted); }
.an-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; }
.an-more { display: flex; justify-content: center; padding: 12px; border-top: 1px solid var(--an-line); }

.an-mono-badge, .an-monogram { display: grid; place-items: center; border-radius: 10px; color: #fff; font: 600 14px var(--an-serif); letter-spacing: .01em; background: var(--k-societa); flex-shrink: 0; }
.an-monogram { width: 40px; height: 40px; }
[data-kind="ditta"] > .an-monogram, .an-monogram[data-kind="ditta"] { background: var(--k-ditta); }
[data-kind="persona"] > .an-monogram, .an-monogram[data-kind="persona"] { background: var(--k-persona); border-radius: 50%; }
[data-kind="ente"] > .an-monogram, .an-monogram[data-kind="ente"] { background: var(--k-ente); }
[data-kind="associazione"] > .an-monogram, .an-monogram[data-kind="associazione"] { background: var(--k-associazione); }
.an-monogram.anon { background: var(--an-faint) !important; }

.an-role { display: inline-flex; align-items: center; padding: 2px 8px; border-radius: 6px; font-size: 10.5px; font-weight: 600; letter-spacing: .02em; background: var(--an-paper-2); color: var(--an-text); white-space: nowrap; }
.an-role[data-role="cliente"] { background: var(--an-petrol-soft); color: var(--an-petrol); }
.an-role[data-role="potenziale"] { background: #eef0e2; color: #4f5a25; }
.an-role[data-role="fornitore"] { background: var(--an-ochre-soft); color: #7a5313; }
.an-role[data-role="partner"] { background: #ece5ef; color: #5e3a58; }
.an-role[data-role="collaboratore"] { background: #e5ebf2; color: #2e5478; }
.an-status { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; font-weight: 600; color: var(--an-ok); }
.an-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.an-status[data-status="sospeso"] { color: var(--an-ochre); }
.an-status[data-status="archiviato"] { color: var(--an-faint); }
.an-tag { display: inline-flex; align-items: center; gap: 4px; padding: 2px 9px; border-radius: 99px; border: 1px dashed var(--an-line-2); font-size: 11.5px; color: var(--an-text); background: transparent; }
.an-tag::before { content: "#"; color: var(--an-faint); }

/* ---------------------------------------------------------------- scheda */
.an-sheet-wrap { position: sticky; top: 76px; max-height: calc(100vh - 92px); overflow: auto; border-radius: var(--an-radius); scrollbar-width: thin; }
.an-sheet { background: var(--an-card); border: 1px solid var(--an-line); border-radius: var(--an-radius); box-shadow: var(--an-shadow); overflow: clip; }
.an-sheet-head { position: relative; padding: 22px 24px 18px; border-bottom: 1px solid var(--an-line); background:
  linear-gradient(180deg, rgba(255,255,255,.65), rgba(255,255,255,0)), repeating-linear-gradient(0deg, transparent 0 27px, rgba(19,32,42,.035) 27px 28px); }
.an-sheet-head::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--k-societa); }
.an-sheet[data-kind="ditta"] .an-sheet-head::after { background: var(--k-ditta); }
.an-sheet[data-kind="persona"] .an-sheet-head::after { background: var(--k-persona); }
.an-sheet[data-kind="ente"] .an-sheet-head::after { background: var(--k-ente); }
.an-sheet[data-kind="associazione"] .an-sheet-head::after { background: var(--k-associazione); }
.an-sheet-top { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px; align-items: start; }
.an-sheet-top .an-monogram { width: 58px; height: 58px; font-size: 21px; border-radius: 14px; }
.an-sheet[data-kind="persona"] .an-sheet-top .an-monogram { border-radius: 50%; }
.an-sheet h2 { font-family: var(--an-serif); font-weight: 600; font-size: clamp(23px, 2.2vw, 30px); line-height: 1.12; letter-spacing: -.015em; color: var(--an-ink); overflow-wrap: anywhere; }
.an-sheet .an-trade { margin-top: 3px; font-size: 13.5px; color: var(--an-muted); }
.an-sheet-line { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; margin-top: 8px; font-size: 12px; color: var(--an-muted); }
.an-code { font: 500 12px var(--an-mono); color: var(--an-ink); background: var(--an-paper-2); padding: 2px 7px; border-radius: 5px; }
.an-sheet-actions { display: flex; gap: 6px; align-items: center; }
.an-roles-line { display: flex; gap: 5px; flex-wrap: wrap; margin-top: 12px; }
.an-banner { margin: 0; padding: 10px 24px; font-size: 12.5px; border-bottom: 1px solid var(--an-line); display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.an-banner.warn { background: var(--an-ochre-soft); color: #6c4910; }
.an-banner.info { background: var(--an-petrol-soft); color: var(--an-petrol); }
.an-banner.muted { background: var(--an-paper-2); color: var(--an-muted); }
.an-banner a { font-weight: 600; }

.an-quick { display: flex; gap: 8px; flex-wrap: wrap; padding: 14px 24px; border-bottom: 1px solid var(--an-line); }
.an-quick a, .an-quick button { display: inline-flex; align-items: center; gap: 8px; padding: 8px 13px; border-radius: 9px; border: 1px solid var(--an-line-2); background: #fff; color: var(--an-ink); font-size: 12.5px; font-weight: 600; text-decoration: none; cursor: pointer; }
.an-quick a:hover, .an-quick button:hover { border-color: var(--an-petrol); color: var(--an-petrol); text-decoration: none; }
.an-quick [data-icon] { width: 15px; height: 15px; }
.an-quick .disabled { opacity: .45; pointer-events: none; }

.an-sheet { container-type: inline-size; }
.an-blocks { display: grid; grid-template-columns: minmax(0, 1fr); }
.an-block { padding: 18px 24px 20px; border-bottom: 1px solid var(--an-line); min-width: 0; }
@container (min-width: 760px) {
  .an-blocks { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .an-blocks > .an-block:nth-child(odd):not(.wide) { border-right: 1px solid var(--an-line); }
}
.an-block.wide { grid-column: 1 / -1; }
.an-block h3 { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 12px; font: 600 10.5px var(--hf-sans); letter-spacing: .16em; text-transform: uppercase; color: var(--an-muted); }
.an-kv { display: grid; grid-template-columns: minmax(110px, 40%) minmax(0, 1fr); gap: 7px 14px; font-size: 13px; }
.an-kv dt { color: var(--an-muted); }
.an-kv dd { margin: 0; color: var(--an-ink); overflow-wrap: anywhere; display: flex; align-items: center; gap: 6px; min-width: 0; }
.an-kv dd.an-nil { color: var(--an-faint); }
.an-kv dd .an-mono { font-size: 12.5px; letter-spacing: .02em; }
.an-copy { all: unset; cursor: pointer; width: 22px; height: 22px; display: inline-grid; place-items: center; border-radius: 6px; color: var(--an-faint); flex-shrink: 0; }
.an-copy:hover { background: var(--an-paper-2); color: var(--an-petrol); }
.an-copy [data-icon] { width: 13px; height: 13px; }
.an-copy:focus-visible { outline: 2px solid var(--an-petrol); }
.an-fiscal { border: 1px solid var(--an-line); border-radius: 10px; background: linear-gradient(180deg, #fff, #fbf8f0); padding: 12px 14px; }
.an-fiscal .an-kv { grid-template-columns: minmax(118px, 42%) minmax(0, 1fr); }
.an-addr { display: grid; gap: 10px; }
.an-addr-item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px; padding: 10px 12px; border-radius: 10px; border: 1px solid var(--an-line); background: #fff; font-size: 13px; }
.an-addr-item small { display: block; font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--an-muted); margin-bottom: 3px; }
.an-addr-item a { font-size: 12px; font-weight: 600; align-self: start; }
.an-people { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.an-person { padding: 12px 14px; border-radius: 10px; border: 1px solid var(--an-line); background: #fff; font-size: 12.5px; display: grid; gap: 4px; min-width: 0; }
.an-person strong { font-size: 13.5px; color: var(--an-ink); }
.an-person em { font-style: normal; color: var(--an-muted); }
.an-person a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.an-notes { white-space: pre-wrap; font-size: 13.5px; line-height: 1.55; color: var(--an-text); }
.an-tags-line { display: flex; gap: 6px; flex-wrap: wrap; }
.an-none { color: var(--an-faint); font-size: 13px; }
.an-sheet-foot { padding: 12px 24px; font-size: 11.5px; color: var(--an-muted); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; background: #fbf9f3; }

.an-history { display: grid; gap: 0; }
.an-history-item { display: grid; grid-template-columns: 14px minmax(0, 1fr); gap: 12px; position: relative; padding-bottom: 14px; }
.an-history-item::before { content: ""; position: absolute; left: 6px; top: 14px; bottom: 0; width: 1px; background: var(--an-line-2); }
.an-history-item:last-child::before { display: none; }
.an-history-item > i { width: 13px; height: 13px; border-radius: 50%; border: 2px solid var(--an-petrol); background: var(--an-card); margin-top: 3px; }
.an-history-item[data-action="creazione"] > i, .an-history-item[data-action="importazione"] > i { border-color: var(--an-ok); }
.an-history-item[data-action="unione"] > i { border-color: var(--k-persona); }
.an-history-item[data-action="archiviazione"] > i, .an-history-item[data-action="anonimizzazione"] > i { border-color: var(--an-faint); }
.an-history-item p { font-size: 13px; color: var(--an-ink); }
.an-history-item small { font-size: 11.5px; color: var(--an-muted); }
.an-changes { margin-top: 6px; display: grid; gap: 3px; font-size: 12px; }
.an-changes div { display: grid; grid-template-columns: minmax(90px, 30%) minmax(0, 1fr); gap: 8px; }
.an-changes span { color: var(--an-muted); }
.an-changes s { color: var(--an-faint); text-decoration-color: rgba(168, 50, 31, .5); }
.an-changes b { font-weight: 600; color: var(--an-ink); }

.an-placeholder { position: sticky; top: 76px; min-height: 420px; display: grid; place-items: center; text-align: center; border: 1px dashed var(--an-line-2); border-radius: var(--an-radius); color: var(--an-muted); padding: 30px; }
.an-placeholder .an-stack { position: relative; width: 132px; height: 92px; margin: 0 auto 18px; }
.an-placeholder .an-stack span { position: absolute; inset: 0; border-radius: 10px; border: 1px solid var(--an-line-2); background: var(--an-card); }
.an-placeholder .an-stack span:nth-child(1) { transform: rotate(-6deg) translate(-8px, 6px); }
.an-placeholder .an-stack span:nth-child(2) { transform: rotate(3deg) translate(6px, 2px); }
.an-placeholder .an-stack span:nth-child(3) { background: linear-gradient(90deg, var(--an-petrol) 0 26px, var(--an-card) 26px); }
.an-placeholder .an-stack span:nth-child(3)::after { content: ""; position: absolute; right: 14px; top: -9px; width: 34px; height: 12px; border-radius: 4px 4px 0 0; background: var(--an-ochre-2); }
.an-placeholder strong { display: block; font: 600 19px var(--an-serif); color: var(--an-ink); margin-bottom: 4px; }

.an-empty { background: var(--an-card); border: 1px solid var(--an-line); border-radius: var(--an-radius); padding: clamp(28px, 6vw, 64px) clamp(20px, 5vw, 56px); display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 30px; align-items: center; }
.an-empty h3 { font: 600 clamp(24px, 2.6vw, 32px)/1.1 var(--an-serif); color: var(--an-ink); letter-spacing: -.015em; }
.an-empty p { margin-top: 10px; color: var(--an-muted); max-width: 52ch; font-size: 14px; }
.an-empty .an-head-actions { margin-top: 18px; }
.an-empty-art { display: grid; grid-template-columns: repeat(4, 34px); gap: 8px; }
.an-empty-art span { height: 46px; border-radius: 8px; border: 1px solid var(--an-line-2); background: var(--an-paper); display: grid; place-items: center; font: 600 14px var(--an-serif); color: var(--an-faint); }
.an-empty-art span.on { background: var(--an-petrol); color: #fff; border-color: var(--an-petrol); }
.an-noresult { padding: 36px 20px; text-align: center; color: var(--an-muted); font-size: 13.5px; }
.an-noresult strong { display: block; font: 600 17px var(--an-serif); color: var(--an-ink); margin-bottom: 4px; }

/* ---------------------------------------------------------------- menu contestuale */
.an-menu { position: relative; }
.an-menu > summary { list-style: none; }
.an-menu > summary::-webkit-details-marker { display: none; }
.an-menu-list { position: absolute; right: 0; top: calc(100% + 6px); z-index: 30; min-width: 230px; padding: 6px; background: #fff; border: 1px solid var(--an-line); border-radius: 11px; box-shadow: 0 18px 50px -20px rgba(19, 32, 42, .45); display: grid; }
.an-menu-list button, .an-menu-list a { all: unset; display: flex; align-items: center; gap: 10px; padding: 9px 10px; border-radius: 7px; font-size: 13px; color: var(--an-ink); cursor: pointer; }
.an-menu-list button:hover, .an-menu-list a:hover, .an-menu-list button:focus-visible, .an-menu-list a:focus-visible { background: var(--an-paper); }
.an-menu-list [data-icon] { width: 15px; height: 15px; color: var(--an-muted); }
.an-menu-list hr { border: 0; border-top: 1px solid var(--an-line); margin: 5px 4px; }
.an-menu-list .danger-item { color: var(--an-danger); }
.an-menu-list .danger-item [data-icon] { color: var(--an-danger); }

/* ---------------------------------------------------------------- editor */
.an-editor { padding: 0; border: 0; margin: 0 0 0 auto; width: min(900px, 100vw); max-width: 100vw; height: 100dvh; max-height: 100dvh; background: var(--an-paper); color: var(--an-text); box-shadow: -30px 0 80px -30px rgba(19, 32, 42, .45); }
.an-editor[open] { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto auto minmax(0, 1fr) auto; animation: an-slide .26s cubic-bezier(.2, .8, .2, 1); }
.an-editor::backdrop { background: rgba(19, 32, 42, .38); backdrop-filter: blur(2px); }
@keyframes an-slide { from { transform: translateX(40px); opacity: .4; } to { transform: none; opacity: 1; } }
.an-ed-head { display: flex; align-items: center; gap: 14px; padding: 14px 22px; background: var(--an-card); border-bottom: 1px solid var(--an-line); }
.an-ed-head .an-ed-title { flex: 1; min-width: 0; }
.an-ed-head small { display: block; font: 500 11px var(--an-mono); color: var(--an-muted); }
.an-ed-head h2 { font: 600 21px/1.2 var(--an-serif); color: var(--an-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.an-ed-body { display: grid; grid-template-columns: 172px minmax(0, 1fr); overflow: hidden; min-height: 0; }
.an-ed-nav { padding: 18px 10px 18px 18px; display: grid; align-content: start; gap: 2px; border-right: 1px solid var(--an-line); overflow: auto; }
.an-ed-nav a { display: flex; align-items: center; gap: 9px; padding: 8px 10px; border-radius: 8px; font-size: 12.5px; font-weight: 500; color: var(--an-text); text-decoration: none; }
.an-ed-nav a:hover { background: var(--an-paper-2); text-decoration: none; }
.an-ed-nav a.active { background: var(--an-card); color: var(--an-petrol); box-shadow: inset 0 0 0 1px var(--an-line); }
.an-ed-nav a i { font: 500 10.5px var(--an-mono); color: var(--an-faint); font-style: normal; width: 16px; }
.an-ed-nav a.has-error { color: var(--an-danger); }
.an-ed-nav a.has-error i { color: var(--an-danger); }
.an-ed-form { overflow: auto; padding: 20px 26px 60px; scroll-behavior: smooth; }
.an-ed-section { padding: 6px 0 22px; margin-bottom: 18px; border-bottom: 1px solid var(--an-line); scroll-margin-top: 12px; }
.an-ed-section:last-child { border-bottom: 0; }
.an-ed-section > h3 { display: flex; align-items: baseline; gap: 10px; margin-bottom: 14px; font: 600 18px var(--an-serif); color: var(--an-ink); }
.an-ed-section > h3 i { font: 500 11px var(--an-mono); color: var(--an-ochre); font-style: normal; }
.an-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px 14px; }
.an-grid > .c2 { grid-column: span 2; } .an-grid > .c3 { grid-column: span 3; } .an-grid > .c4 { grid-column: span 4; } .an-grid > .c6 { grid-column: 1 / -1; } .an-grid > .c1 { grid-column: span 1; }
.an-editor .field { gap: 6px; }
.an-editor .field > span { font-size: 11.5px; font-weight: 600; color: var(--an-text); letter-spacing: .01em; }
.an-editor .field input, .an-editor .field select, .an-editor .field textarea { background: #fff; border-color: var(--an-line-2); border-radius: 9px; min-height: 40px; }
.an-editor .field input:focus, .an-editor .field select:focus, .an-editor .field textarea:focus { border-color: var(--an-petrol); box-shadow: 0 0 0 3px rgba(15, 76, 92, .12); outline: none; }
.an-editor .field input.an-mono { font-family: var(--an-mono); font-size: 13.5px; letter-spacing: .03em; text-transform: uppercase; }
.an-editor .field textarea { min-height: 110px; resize: vertical; }
.field.invalid input, .field.invalid select, .field.invalid textarea { border-color: var(--an-danger) !important; background: #fffaf8 !important; }
.an-err, .field .an-err { font-size: 11.5px; font-weight: 600; color: var(--an-danger); order: 5; letter-spacing: 0; text-transform: none; }
.an-dupes ul, .an-check-rows ul, .an-login-cards, .an-steps { margin: 0; padding: 0; }
.an-inline { display: flex; gap: 8px; align-items: stretch; }
.an-inline > input { flex: 1; min-width: 0; }
.an-inline > button { white-space: nowrap; min-height: 40px; }

.an-kinds { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin-bottom: 16px; }
.an-kinds label { position: relative; display: grid; gap: 6px; padding: 12px 12px 11px; border-radius: 11px; border: 1px solid var(--an-line-2); background: #fff; cursor: pointer; min-width: 0; }
.an-kinds label:hover { border-color: var(--an-faint); }
.an-kinds input { position: absolute; opacity: 0; pointer-events: none; }
.an-kinds [data-icon] { width: 18px; height: 18px; color: var(--an-muted); }
.an-kinds strong { font-size: 12.5px; color: var(--an-ink); line-height: 1.25; }
.an-kinds label:has(input:checked) { border-color: var(--an-petrol); box-shadow: inset 0 0 0 1px var(--an-petrol); background: var(--an-petrol-soft); }
.an-kinds label:has(input:checked) [data-icon] { color: var(--an-petrol); }
.an-kinds label:has(input:focus-visible) { outline: 2px solid var(--an-petrol); outline-offset: 2px; }
.an-toggles { display: flex; gap: 6px; flex-wrap: wrap; }
.an-toggles label { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 8px 13px; border-radius: 99px; border: 1px solid var(--an-line-2); background: #fff; font-size: 12.5px; font-weight: 500; cursor: pointer; }
.an-toggles input { position: absolute; opacity: 0; pointer-events: none; }
.an-toggles label::before { content: ""; width: 14px; height: 14px; border-radius: 4px; border: 1.5px solid var(--an-line-2); background: #fff; }
.an-toggles label:has(input:checked) { border-color: var(--an-ink); background: var(--an-ink); color: #fff; }
.an-toggles label:has(input:checked)::before { border-color: #fff; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3.5 8.5l3 3 6-7' fill='none' stroke='%2313202a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/11px no-repeat; }
.an-toggles label:has(input:focus-visible) { outline: 2px solid var(--an-petrol); outline-offset: 2px; }
.an-toggles.invalid label { border-color: var(--an-danger); }
.an-switch { display: inline-flex; align-items: center; gap: 10px; font-size: 13px; cursor: pointer; padding-top: 22px; }
.an-switch input { width: 36px; height: 20px; appearance: none; border-radius: 99px; background: var(--an-line-2); position: relative; cursor: pointer; transition: background .15s; flex-shrink: 0; margin: 0; }
.an-switch input::after { content: ""; position: absolute; left: 3px; top: 3px; width: 14px; height: 14px; border-radius: 50%; background: #fff; transition: transform .15s; box-shadow: 0 1px 2px rgba(0, 0, 0, .2); }
.an-switch input:checked { background: var(--an-petrol); }
.an-switch input:checked::after { transform: translateX(16px); }
.an-switch input:focus-visible { outline: 2px solid var(--an-petrol); outline-offset: 2px; }

.an-repeat { display: grid; gap: 10px; }
.an-repeat-item { background: var(--an-card); border: 1px solid var(--an-line); border-radius: 11px; padding: 12px 14px 14px; }
.an-repeat-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 10px; }
.an-repeat-head strong { font: 500 11px var(--an-mono); color: var(--an-muted); }
.an-remove { all: unset; cursor: pointer; font-size: 12px; font-weight: 600; color: var(--an-danger); padding: 4px 6px; border-radius: 6px; }
.an-remove:hover { background: var(--an-danger-soft); }
.an-add { justify-self: start; border-style: dashed; }

.an-lookup { margin-top: 10px; border-radius: 11px; border: 1px solid var(--an-line); background: #fff; padding: 12px 14px; display: grid; gap: 8px; font-size: 13px; }
.an-lookup.ok { border-color: color-mix(in srgb, var(--an-ok) 40%, white); background: linear-gradient(180deg, #f7fbf8, #fff); }
.an-lookup.bad { border-color: color-mix(in srgb, var(--an-danger) 35%, white); background: #fffaf8; color: var(--an-danger); }
.an-lookup header { display: flex; justify-content: space-between; gap: 10px; align-items: center; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--an-muted); }
.an-lookup strong { font: 600 15px var(--an-serif); color: var(--an-ink); }
.an-lookup .an-lookup-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.an-ipa-results { display: grid; gap: 6px; max-height: 300px; overflow: auto; }
.an-ipa-results button { all: unset; cursor: pointer; display: grid; gap: 2px; padding: 9px 11px; border-radius: 9px; border: 1px solid var(--an-line); background: var(--an-card); font-size: 12.5px; }
.an-ipa-results button:hover, .an-ipa-results button:focus-visible { border-color: var(--an-petrol); background: var(--an-petrol-soft); }
.an-ipa-results b { font-size: 13px; color: var(--an-ink); }
.an-ipa-results span { color: var(--an-muted); }
.an-ipa-results code { font: 500 11.5px var(--an-mono); color: var(--an-petrol); }

.an-dupes { margin-bottom: 16px; border-radius: 11px; background: var(--an-ochre-soft); border: 1px solid color-mix(in srgb, var(--an-ochre) 30%, white); padding: 12px 14px; font-size: 13px; color: #5e400d; display: grid; gap: 8px; }
.an-dupes.certain { background: var(--an-danger-soft); border-color: color-mix(in srgb, var(--an-danger) 30%, white); color: #6e2215; }
.an-dupes strong { font-weight: 700; }
.an-dupes ul { list-style: none; display: grid; gap: 5px; }
.an-dupes li { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.an-dupes li span { font-size: 11.5px; opacity: .85; }
.an-conflict { margin: 0; padding: 12px 22px; background: var(--an-danger-soft); color: #6e2215; font-size: 13px; display: flex; gap: 12px; align-items: center; flex-wrap: wrap; border-bottom: 1px solid color-mix(in srgb, var(--an-danger) 25%, white); }
.an-ed-foot { display: flex; align-items: center; gap: 12px; padding: 12px 22px calc(12px + env(safe-area-inset-bottom)); background: var(--an-card); border-top: 1px solid var(--an-line); }
.an-ed-foot .an-ed-state { flex: 1; font-size: 12.5px; color: var(--an-muted); min-width: 0; }
.an-ed-foot .an-ed-state.err { color: var(--an-danger); font-weight: 600; }
.an-ed-foot kbd { font: 500 10.5px var(--an-mono); border: 1px solid var(--an-line); border-radius: 5px; padding: 1px 5px; color: var(--an-muted); }

/* ---------------------------------------------------------------- finestre */
.an-modal { border: 0; padding: 0; border-radius: 16px; width: min(640px, calc(100vw - 24px)); max-height: min(86dvh, 820px); background: var(--an-card); color: var(--an-text); box-shadow: 0 40px 100px -30px rgba(19, 32, 42, .55); }
.an-modal[open] { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr) auto; animation: an-pop .2s ease-out; }
.an-modal.wide { width: min(920px, calc(100vw - 24px)); }
.an-modal::backdrop { background: rgba(19, 32, 42, .4); }
@keyframes an-pop { from { transform: translateY(8px) scale(.985); opacity: 0; } to { transform: none; opacity: 1; } }
.an-modal header { padding: 20px 22px 12px; }
.an-modal header h2 { font: 600 21px/1.2 var(--an-serif); color: var(--an-ink); }
.an-modal header p { margin-top: 6px; font-size: 13px; color: var(--an-muted); }
.an-modal .an-modal-body { padding: 4px 22px 18px; overflow: auto; }
.an-modal footer { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 22px; border-top: 1px solid var(--an-line); background: #fbf9f3; flex-wrap: wrap; }
.an-compare { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 12.5px; }
.an-compare th, .an-compare td { padding: 8px 10px; border-bottom: 1px solid var(--an-line); text-align: left; vertical-align: top; overflow-wrap: anywhere; }
.an-compare th { font-weight: 600; color: var(--an-muted); width: 24%; }
.an-compare td.diff { background: #fffaf0; }
.an-compare thead th { font: 500 11px var(--an-mono); color: var(--an-ink); background: var(--an-paper); }
.an-keep { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 6px 0 14px; }
.an-keep label { display: grid; gap: 3px; padding: 12px 14px; border: 1px solid var(--an-line-2); border-radius: 11px; cursor: pointer; background: #fff; position: relative; }
.an-keep input { position: absolute; opacity: 0; }
.an-keep label:has(input:checked) { border-color: var(--an-petrol); box-shadow: inset 0 0 0 1px var(--an-petrol); background: var(--an-petrol-soft); }
.an-keep label:has(input:focus-visible) { outline: 2px solid var(--an-petrol); outline-offset: 2px; }
.an-keep small { font: 500 11px var(--an-mono); color: var(--an-muted); }
.an-keep strong { font-size: 13.5px; color: var(--an-ink); }
.an-picker { display: grid; gap: 6px; margin-top: 10px; max-height: 300px; overflow: auto; }
.an-picker button { all: unset; cursor: pointer; display: grid; grid-template-columns: 34px minmax(0, 1fr); gap: 10px; align-items: center; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--an-line); background: #fff; }
.an-picker button:hover, .an-picker button:focus-visible { border-color: var(--an-petrol); background: var(--an-petrol-soft); }
.an-picker .an-monogram { width: 34px; height: 34px; font-size: 12px; border-radius: 9px; }
.an-picker b { display: block; font-size: 13px; color: var(--an-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.an-picker span { font-size: 11.5px; color: var(--an-muted); }

/* ---------------------------------------------------------------- import */
.an-steps { display: flex; gap: 0; margin-bottom: 18px; background: var(--an-card); border: 1px solid var(--an-line); border-radius: var(--an-radius); overflow: hidden; }
.an-steps li { list-style: none; flex: 1; display: flex; align-items: center; gap: 10px; padding: 13px 16px; border-right: 1px solid var(--an-line); font-size: 13px; color: var(--an-muted); min-width: 0; }
.an-steps li:last-child { border-right: 0; }
.an-steps li b { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; border: 1px solid var(--an-line-2); font: 500 11.5px var(--an-mono); flex-shrink: 0; }
.an-steps li.on { color: var(--an-ink); font-weight: 600; background: #fffaf0; }
.an-steps li.on b { background: var(--an-ochre-2); border-color: var(--an-ochre-2); color: #1e1608; }
.an-steps li.done b { background: var(--an-petrol); border-color: var(--an-petrol); color: #fff; }
.an-drop { display: grid; place-items: center; text-align: center; gap: 8px; padding: clamp(30px, 6vw, 60px) 20px; border: 1.5px dashed var(--an-line-2); border-radius: var(--an-radius); background: var(--an-card); cursor: pointer; transition: border-color .15s, background .15s; }
.an-drop:hover, .an-drop.over { border-color: var(--an-petrol); background: #fbfdfc; }
.an-drop [data-icon] { width: 30px; height: 30px; color: var(--an-petrol); }
.an-drop strong { font: 600 20px var(--an-serif); color: var(--an-ink); }
.an-drop span { font-size: 13px; color: var(--an-muted); }
.an-drop input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.an-panel { background: var(--an-card); border: 1px solid var(--an-line); border-radius: var(--an-radius); padding: 18px 20px; }
.an-panel + .an-panel { margin-top: 14px; }
.an-panel > h3 { font: 600 17px var(--an-serif); color: var(--an-ink); margin-bottom: 4px; }
.an-panel > p { font-size: 13px; color: var(--an-muted); margin-bottom: 14px; }
.an-map { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 10px 14px; }
.an-map .field select { min-height: 38px; }
.an-map .field.mapped select { border-color: var(--an-petrol); background-color: #f6faf9; }
.an-sample { overflow: auto; border: 1px solid var(--an-line); border-radius: 10px; margin-top: 14px; }
.an-sample table { border-collapse: collapse; font-size: 12px; min-width: 100%; }
.an-sample th, .an-sample td { padding: 7px 10px; border-bottom: 1px solid var(--an-line); white-space: nowrap; max-width: 220px; overflow: hidden; text-overflow: ellipsis; text-align: left; }
.an-sample th { background: var(--an-paper); font-weight: 600; color: var(--an-text); position: sticky; top: 0; }
.an-tally { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.an-tally div { border: 1px solid var(--an-line); border-radius: 11px; padding: 12px 14px; background: #fff; }
.an-tally small { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; color: var(--an-muted); }
.an-tally strong { display: block; font: 500 24px var(--an-serif); color: var(--an-ink); font-variant-numeric: tabular-nums; }
.an-tally .ok strong { color: var(--an-ok); } .an-tally .warn strong { color: var(--an-ochre); } .an-tally .bad strong { color: var(--an-danger); }
.an-check-rows { display: grid; gap: 0; border: 1px solid var(--an-line); border-radius: 11px; overflow: hidden; background: #fff; }
.an-check-rows > div { display: grid; grid-template-columns: 60px minmax(0, 1fr) auto; gap: 12px; padding: 9px 14px; border-bottom: 1px solid var(--an-line); font-size: 12.5px; align-items: start; }
.an-check-rows > div:last-child { border-bottom: 0; }
.an-check-rows .an-mono { color: var(--an-muted); font-size: 11.5px; }
.an-check-rows ul { list-style: none; margin-top: 2px; color: var(--an-muted); font-size: 11.5px; }
.an-badge { font-size: 10.5px; font-weight: 700; padding: 2px 8px; border-radius: 6px; white-space: nowrap; }
.an-badge.ok { background: var(--an-ok-soft); color: var(--an-ok); }
.an-badge.attenzione, .an-badge.doppione, .an-badge.ripetuta { background: var(--an-ochre-soft); color: #7a5313; }
.an-badge.errore { background: var(--an-danger-soft); color: var(--an-danger); }
.an-actions-row { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; margin-top: 16px; }
.an-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px 14px; }
.an-radio { display: flex; gap: 14px; flex-wrap: wrap; font-size: 13px; }
.an-radio label { display: inline-flex; gap: 8px; align-items: center; cursor: pointer; }
.an-result { text-align: center; padding: clamp(30px, 6vw, 56px) 20px; }
.an-result strong { display: block; font: 600 30px var(--an-serif); color: var(--an-ink); }
.an-result p { color: var(--an-muted); margin: 8px 0 18px; }

/* ---------------------------------------------------------------- doppioni */
.an-pairs { display: grid; gap: 12px; }
.an-pair { display: grid; grid-template-columns: minmax(0, 1fr) 40px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 14px 16px; background: var(--an-card); border: 1px solid var(--an-line); border-radius: var(--an-radius); }
.an-pair a { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 10px; align-items: center; color: inherit; text-decoration: none; min-width: 0; }
.an-pair a:hover strong { color: var(--an-petrol); }
.an-pair a strong { display: block; font-size: 13.5px; color: var(--an-ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.an-pair a small { font: 500 11px var(--an-mono); color: var(--an-muted); }
.an-pair .an-monogram { width: 38px; height: 38px; font-size: 13px; }
.an-pair .an-vs { text-align: center; font: italic 500 15px var(--an-serif); color: var(--an-ochre); }
.an-pair-why { grid-column: 1 / -1; display: flex; gap: 6px; flex-wrap: wrap; border-top: 1px dashed var(--an-line); padding-top: 10px; }
.an-pair-why span { font-size: 11.5px; padding: 2px 9px; border-radius: 99px; background: var(--an-ochre-soft); color: #7a5313; font-weight: 600; }
.an-pair-actions { display: flex; gap: 6px; }

/* ---------------------------------------------------------------- attività */
.an-timeline { display: grid; gap: 22px; }
.an-day h3 { font: 600 16px var(--an-serif); color: var(--an-ink); margin-bottom: 10px; display: flex; gap: 10px; align-items: baseline; }
.an-day h3 small { font: 500 11px var(--an-mono); color: var(--an-muted); }
.an-events { background: var(--an-card); border: 1px solid var(--an-line); border-radius: var(--an-radius); overflow: hidden; }
.an-event { display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; gap: 14px; padding: 12px 16px; border-bottom: 1px solid var(--an-line); align-items: start; font-size: 13px; }
.an-event:last-child { border-bottom: 0; }
.an-event time { font: 500 12px var(--an-mono); color: var(--an-muted); padding-top: 1px; }
.an-event p { color: var(--an-ink); }
.an-event p a { font-weight: 600; }
.an-event small { color: var(--an-muted); font-size: 12px; }
.an-event details summary { cursor: pointer; font-size: 12px; color: var(--an-petrol); font-weight: 600; margin-top: 4px; }
.an-act { font-size: 10.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 3px 8px; border-radius: 6px; background: var(--an-paper-2); color: var(--an-text); white-space: nowrap; }
.an-act[data-action="creazione"], .an-act[data-action="importazione"] { background: var(--an-ok-soft); color: var(--an-ok); }
.an-act[data-action="modifica"] { background: var(--an-petrol-soft); color: var(--an-petrol); }
.an-act[data-action="unione"] { background: #ece5ef; color: #5e3a58; }
.an-act[data-action="archiviazione"], .an-act[data-action="sospensione"] { background: var(--an-ochre-soft); color: #7a5313; }
.an-act[data-action="anonimizzazione"] { background: var(--an-danger-soft); color: var(--an-danger); }

/* ---------------------------------------------------------------- accessi */
.an-users { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--an-card); border: 1px solid var(--an-line); border-radius: var(--an-radius); overflow: hidden; font-size: 13px; }
.an-users th { text-align: left; font: 600 10.5px var(--hf-sans); letter-spacing: .12em; text-transform: uppercase; color: var(--an-muted); padding: 11px 14px; background: #fbf9f3; border-bottom: 1px solid var(--an-line); }
.an-users td { padding: 12px 14px; border-bottom: 1px solid var(--an-line); vertical-align: middle; }
.an-users tr:last-child td { border-bottom: 0; }
.an-users td strong { display: block; color: var(--an-ink); }
.an-users td small { color: var(--an-muted); font-size: 12px; }
.an-yes { color: var(--an-ok); font-weight: 600; } .an-no { color: var(--an-faint); }

/* ---------------------------------------------------------------- accesso */
.an-login { min-height: 100vh; background: var(--an-paper); display: grid; place-items: center; padding: 24px 16px; }
.an-login-shell { width: min(980px, 100%); display: grid; grid-template-columns: 1.05fr 1fr; background: var(--an-card); border: 1px solid var(--an-line); border-radius: 20px; overflow: hidden; box-shadow: 0 40px 90px -50px rgba(19, 32, 42, .5); }
.an-login-plate { position: relative; padding: 36px 38px; background: var(--an-petrol); color: #eef3f1; display: grid; align-content: space-between; gap: 34px; overflow: hidden;
  background-image: repeating-linear-gradient(0deg, transparent 0 31px, rgba(255,255,255,.05) 31px 32px); }
.an-login-brand { display: inline-flex; align-items: center; gap: 12px; color: inherit; text-decoration: none; }
.an-login-brand small { display: block; font-size: 10px; letter-spacing: .18em; text-transform: uppercase; opacity: .7; }
.an-login-brand strong { display: block; font: 600 23px var(--an-serif); }
.an-login-plate .an-login-brand img { box-shadow: 0 0 0 1px rgba(255, 255, 255, .2); border-radius: 11px; }
.an-login-index { display: flex; gap: 6px; }
.an-login-index span { width: 34px; height: 44px; border-radius: 7px 7px 0 0; display: grid; place-items: center; font: 600 16px var(--an-serif); background: rgba(255, 255, 255, .08); color: rgba(255, 255, 255, .55); }
.an-login-index span.on { background: var(--an-ochre-2); color: #1e1608; transform: translateY(-6px); }
.an-login-motto { font: 500 clamp(22px, 2.6vw, 30px)/1.2 var(--an-serif); letter-spacing: -.01em; max-width: 18ch; }
.an-login-cards { list-style: none; display: grid; gap: 8px; margin: 0; padding: 0; }
.an-login-cards li { display: grid; gap: 2px; padding: 11px 14px; border-radius: 10px; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .1); }
.an-login-cards b { font-size: 13px; }
.an-login-cards span { font-size: 12px; opacity: .72; }
.an-login-card { padding: 40px 40px 30px; display: grid; align-content: center; gap: 16px; }
.an-login-card .compact { display: none; color: var(--an-ink); }
.an-login-card h1 { font: 600 30px/1.1 var(--an-serif); color: var(--an-ink); letter-spacing: -.015em; }
.an-login-form { display: grid; gap: 14px; }
.an-login-form .field > span { font-size: 12px; font-weight: 600; }
.an-login-form input { min-height: 46px; border-radius: 10px; background: #fff; border: 1px solid var(--an-line-2); width: 100%; padding: 0 14px; font-size: 15px; }
.an-login-form input:focus { outline: none; border-color: var(--an-petrol); box-shadow: 0 0 0 4px rgba(15, 76, 92, .12); }
.an-login-form .primary { min-height: 48px; justify-content: center; background: var(--an-petrol); border-color: var(--an-petrol); font-size: 14px; border-radius: 10px; margin-top: 4px; width: 100%; }
.an-login-foot { font-size: 11.5px; color: var(--an-faint); letter-spacing: .04em; }

/* ---------------------------------------------------------------- responsive */
@media (max-width: 1240px) {
  .an-archive { grid-template-columns: minmax(310px, 380px) minmax(0, 1fr); }
}
@media (max-width: 1100px) {
  .an-archive { grid-template-columns: minmax(0, 1fr); }
  .an-archive[data-mode="sheet"] .an-listwrap, .an-archive[data-mode="sheet"] ~ .an-hide-sheet { display: none; }
  .an-archive:not([data-mode="sheet"]) .an-sheet-wrap, .an-archive:not([data-mode="sheet"]) .an-placeholder { display: none; }
  .an-sheet-wrap { position: static; max-height: none; overflow: visible; }
  .an-back { display: inline-flex !important; }
  body.an-sheet-mode .an-toolbar, body.an-sheet-mode .an-ledger, body.an-sheet-mode .an-head { display: none; }
  .an-ledger { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .an-ledger > div:nth-child(n+4) { display: none; }
  .an-ledger > div:nth-child(3) { border-right: 0; }
}
.an-back { display: none; margin-bottom: 12px; }
@media (min-width: 961px) { .an-head .an-new { display: none; } }
@media (max-width: 960px) {
  .an-live span { display: none; }
}
@media (max-width: 720px) {
  .an-content { padding-left: 12px; padding-right: 12px; }
  .an-search-label, .an-search-btn kbd { display: none; }
  .an-head { margin-bottom: 14px; }
  .an-head-actions .ghost span:not([data-icon]) { display: none; }
  .an-listwrap { grid-template-columns: minmax(0, 1fr); }
  .an-rail { display: none; }
  .an-searchbox input { min-height: 48px; font-size: 16px; padding-right: 76px; }
  .an-filters .an-filter-toggle { display: inline-flex; }
  .an-filters:not(.open) select, .an-filters:not(.open) .an-reset { display: none; }
  .an-filters.open select { flex: 1 1 calc(50% - 8px); max-width: none; }
  .an-sheet-head { padding: 18px 16px 14px; }
  .an-sheet-top { grid-template-columns: auto minmax(0, 1fr); }
  .an-sheet-top .an-sheet-actions { grid-column: 1 / -1; }
  .an-sheet-top .an-monogram { width: 48px; height: 48px; font-size: 17px; }
  .an-block { padding: 16px 16px 18px; }
  .an-quick { position: sticky; bottom: 0; z-index: 5; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: color-mix(in srgb, var(--an-card) 94%, transparent); backdrop-filter: blur(10px); border-top: 1px solid var(--an-line); display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; order: 9; }
  .an-quick a, .an-quick button { flex-direction: column; gap: 4px; padding: 8px 4px; font-size: 11px; justify-content: center; text-align: center; }
  .an-sheet { display: flex; flex-direction: column; }
  .an-banner { padding: 10px 16px; }
  .an-sheet-foot { padding: 12px 16px; }
  .an-kv { grid-template-columns: minmax(96px, 38%) minmax(0, 1fr); }
  .an-row { padding: 11px 12px; grid-template-columns: 38px minmax(0, 1fr); }
  .an-row .an-row-tags { display: none; }
  .an-letter { top: 62px; }
  .an-empty { grid-template-columns: 1fr; }
  .an-empty-art { display: none; }

  .an-editor { width: 100vw; box-shadow: none; }
  .an-ed-head { padding: 10px 12px; gap: 8px; }
  .an-ed-head h2 { font-size: 18px; }
  .an-ed-head [data-ed="save"] { display: none; }
  .an-ed-body { grid-template-columns: 1fr; grid-template-rows: auto minmax(0, 1fr); }
  .an-ed-nav { display: flex; gap: 4px; overflow-x: auto; border-right: 0; border-bottom: 1px solid var(--an-line); padding: 8px 10px; scrollbar-width: none; }
  .an-ed-nav::-webkit-scrollbar { display: none; }
  .an-ed-nav a { white-space: nowrap; padding: 6px 10px; }
  .an-ed-nav a i { display: none; }
  .an-ed-form { padding: 16px 14px 60px; }
  .an-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .an-grid > .c1, .an-grid > .c2 { grid-column: span 1; }
  .an-grid > .c3, .an-grid > .c4, .an-grid > .c6 { grid-column: 1 / -1; }
  .an-kinds { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .an-kinds label:last-child { grid-column: 1 / -1; }
  .an-ed-foot { padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); }
  .an-ed-foot kbd { display: none; }
  .an-ed-foot .primary { flex: 0 0 auto; }
  .an-switch { padding-top: 4px; }

  .an-steps li span { display: none; }
  .an-steps li { justify-content: center; }
  .an-tally { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .an-options { grid-template-columns: 1fr 1fr; }
  .an-pair { grid-template-columns: minmax(0, 1fr); }
  .an-pair .an-vs { text-align: left; padding-left: 48px; }
  .an-pair-actions { justify-content: flex-start; }
  .an-event { grid-template-columns: 46px minmax(0, 1fr); }
  .an-event > .an-act { grid-column: 2; justify-self: start; }
  .an-users thead { display: none; }
  .an-users, .an-users tbody, .an-users tr, .an-users td { display: block; width: 100%; }
  .an-users tr { border-bottom: 1px solid var(--an-line); padding: 6px 0; }
  .an-users td { border: 0; padding: 4px 14px; }
  .an-keep { grid-template-columns: 1fr; }
  .an-modal { width: 100vw; max-width: 100vw; max-height: 92dvh; margin: auto 0 0; border-radius: 18px 18px 0 0; }
  .an-modal footer { padding-bottom: calc(14px + env(safe-area-inset-bottom)); }
  .an-modal footer > * { flex: 1 1 auto; justify-content: center; }

  .an-login-shell { grid-template-columns: 1fr; border-radius: 18px; }
  .an-login-plate { display: none; }
  .an-login-card { padding: 30px 22px 24px; }
  .an-login-card .compact { display: inline-flex; }
}
@media (max-width: 480px) {
  .an-head h2 { font-size: 28px; }
  .an-ledger { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .an-ledger > div { padding: 11px 12px; }
  .an-ledger strong { font-size: 21px; }
  .an-ledger small { font-size: 9.5px; letter-spacing: .08em; }
  .an-tally { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .an-options { grid-template-columns: 1fr; }
  .an-chip { padding: 6px 11px; }
  .an-sheet h2 { font-size: 22px; }
  .an-kv, .an-fiscal .an-kv { grid-template-columns: 1fr; gap: 2px 0; }
  .an-kv dd { margin-bottom: 8px; }
  .an-people { grid-template-columns: 1fr; }
  .an-login { padding: 12px; place-items: start center; }
}
@media (prefers-reduced-motion: reduce) {
  .an-editor[open], .an-modal[open] { animation: none; }
  .an-ed-form { scroll-behavior: auto; }
}
