/* dossierpagamenti.com — db.css
   Data-reference UI. Flat hyphenated names, db- prefix, rem units. */

:root {
  --db-white: #ffffff;
  --db-band: #f1f3f5;
  --db-band-2: #e7ebee;
  --db-ink: #263238;
  --db-head: #37474f;
  --db-muted: #56666e;
  --db-line: #d5dbdf;
  --db-line-strong: #b0bec5;
  --db-amber: #ffb300;
  --db-amber-dark: #e69a00;
  --db-amber-soft: #fff6dc;
  --db-link: #1565c0;
  --db-link-dark: #0d47a1;
  --db-link-soft: #e8f1fb;
  --db-ok: #2e7d32;
  --db-ok-soft: #e9f4ea;
  --db-bad: #b3261e;
  --db-bad-soft: #fbeceb;
  --db-slow: #78909c;
  --db-radius: 0.25rem;
  --db-font: "Fira Sans", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  --db-mono: "Fira Code", ui-monospace, "Cascadia Mono", Consolas, "Courier New", monospace;
  --db-bar-h: 3rem;
  --db-wrap: 80rem;
  --db-gutter: 1rem;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; scroll-behavior: smooth; }

body {
  margin: 0;
  background: var(--db-white);
  color: var(--db-ink);
  font-family: var(--db-font);
  font-size: 1rem;
  line-height: 1.6;
  overflow-wrap: break-word;
}

[hidden] { display: none !important; }
[id] { scroll-margin-top: 4.5rem; }

img, svg { max-width: 100%; }

a { color: var(--db-link); text-decoration: underline; text-decoration-thickness: 0.0625rem; text-underline-offset: 0.15em; }
a:hover { color: var(--db-link-dark); text-decoration-thickness: 0.125rem; }

:focus-visible { outline: 0.1875rem solid var(--db-link); outline-offset: 0.125rem; border-radius: 0.125rem; }

h1, h2, h3, h4 { color: var(--db-head); line-height: 1.2; margin: 0 0 0.75rem; font-weight: 700; }
h1 { font-size: 1.75rem; letter-spacing: -0.01em; }
h2 { font-size: 1.375rem; }
h3 { font-size: 1.125rem; font-weight: 600; }
p { margin: 0 0 1rem; }
ul, ol { margin: 0 0 1rem; padding-left: 1.25rem; }
dl, dd { margin: 0; }
strong { font-weight: 600; }
small { font-size: 0.8125rem; }
hr { border: 0; border-top: 0.0625rem solid var(--db-line); margin: 2rem 0; }

.db-sr {
  position: absolute; width: 0.0625rem; height: 0.0625rem; margin: -0.0625rem; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

.db-skip {
  position: absolute; left: 0.5rem; top: -4rem; z-index: 100;
  background: var(--db-amber); color: var(--db-ink); font-weight: 600;
  padding: 0.5rem 0.875rem; border-radius: var(--db-radius); text-decoration: none;
}
.db-skip:focus { top: 0.5rem; }

.db-mono { font-family: var(--db-mono); font-variant-numeric: tabular-nums; }

/* ---------- App bar ---------- */

.db-appbar { background: var(--db-head); color: #fff; border-bottom: 0.1875rem solid var(--db-amber); position: relative; z-index: 40; }
.db-appbar-in {
  max-width: var(--db-wrap); margin: 0 auto; padding: 0.5rem var(--db-gutter);
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 0.75rem;
}
.db-appbar :focus-visible { outline-color: var(--db-amber); }

.db-wordmark {
  display: inline-flex; align-items: center; gap: 0.5rem; flex: 1 1 auto; min-width: 0;
  color: #fff; text-decoration: none; font-family: var(--db-mono); font-size: 0.9375rem; font-weight: 600; letter-spacing: -0.01em;
}
.db-wordmark:hover { color: #fff; }
.db-wordmark svg { flex: none; width: 1.5rem; height: 1.5rem; display: block; }
.db-wordmark-b { color: var(--db-amber); font-weight: 500; }

.db-nav { display: none; }
.db-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 0.25rem; }
.db-nav a {
  display: block; padding: 0.375rem 0.625rem; color: #e3e9ec; text-decoration: none;
  font-size: 0.875rem; font-weight: 500; border-radius: var(--db-radius); white-space: nowrap;
}
.db-nav a:hover { color: #fff; background: rgba(255, 255, 255, 0.1); }
.db-nav a[aria-current="page"] { color: #fff; box-shadow: inset 0 -0.125rem 0 var(--db-amber); border-radius: 0; }

.db-search { order: 3; flex: 1 1 100%; margin: 0; position: relative; }
.db-search input {
  width: 100%; height: 2.125rem; padding: 0 0.625rem 0 2rem;
  font: 400 0.8125rem/1 var(--db-mono); color: #fff;
  background: rgba(255, 255, 255, 0.12); border: 0.0625rem solid rgba(255, 255, 255, 0.35); border-radius: var(--db-radius);
}
.db-search::before {
  content: ""; position: absolute; left: 0.6875rem; top: 50%; width: 0.625rem; height: 0.625rem; margin-top: -0.4375rem;
  border: 0.125rem solid #cfd8dc; border-radius: 50%; pointer-events: none;
}
.db-search::after {
  content: ""; position: absolute; left: 1.25rem; top: 50%; width: 0.375rem; height: 0.125rem; margin-top: 0.25rem;
  background: #cfd8dc; transform: rotate(45deg); pointer-events: none;
}
.db-search input::placeholder { color: #cfd8dc; opacity: 1; }
.db-search input:focus { background: #fff; color: var(--db-ink); border-color: var(--db-amber); outline: 0.125rem solid var(--db-amber); outline-offset: 0; }
.db-search input:focus::placeholder { color: var(--db-muted); }

.db-menu { flex: none; }
.db-menu > summary {
  list-style: none; cursor: pointer; height: 2.125rem; padding: 0 0.75rem; display: inline-flex; align-items: center; gap: 0.5rem;
  font-size: 0.8125rem; font-weight: 600; color: #fff; border: 0.0625rem solid rgba(255, 255, 255, 0.35); border-radius: var(--db-radius);
}
.db-menu > summary::-webkit-details-marker { display: none; }
.db-menu > summary::before {
  content: ""; width: 0.875rem; height: 0.625rem;
  background: linear-gradient(#fff, #fff) 0 0 / 100% 0.125rem no-repeat, linear-gradient(#fff, #fff) 0 50% / 100% 0.125rem no-repeat, linear-gradient(#fff, #fff) 0 100% / 100% 0.125rem no-repeat;
}
.db-menu[open] > summary { background: #fff; color: var(--db-head); }
.db-menu[open] > summary::before {
  background: linear-gradient(var(--db-head), var(--db-head)) 0 0 / 100% 0.125rem no-repeat, linear-gradient(var(--db-head), var(--db-head)) 0 50% / 100% 0.125rem no-repeat, linear-gradient(var(--db-head), var(--db-head)) 0 100% / 100% 0.125rem no-repeat;
}
.db-menu-panel {
  position: absolute; left: 0; right: 0; top: 100%; margin-top: 0.1875rem;
  background: #fff; border-bottom: 0.0625rem solid var(--db-line-strong); box-shadow: 0 0.5rem 1rem rgba(38, 50, 56, 0.16);
}
.db-menu-panel ul { list-style: none; margin: 0; padding: 0.25rem var(--db-gutter) 0.5rem; }
.db-menu-panel li + li { border-top: 0.0625rem solid var(--db-line); }
.db-menu-panel a { display: block; padding: 0.75rem 0.25rem; color: var(--db-head); font-weight: 500; text-decoration: none; }
.db-menu-panel a[aria-current="page"] { box-shadow: inset 0.1875rem 0 0 var(--db-amber); padding-left: 0.75rem; }
.db-menu-panel a:focus-visible { outline-color: var(--db-link); }

@media (min-width: 70rem) {
  .db-appbar { position: sticky; top: 0; }
  .db-appbar-in { flex-wrap: nowrap; height: var(--db-bar-h); padding-top: 0; padding-bottom: 0; gap: 1.25rem; }
  .db-wordmark { flex: none; }
  .db-nav { display: block; flex: 1 1 auto; }
  .db-search { order: 0; flex: 0 1 17rem; }
  .db-search input { height: 2rem; }
  .db-menu { display: none; }
}

/* ---------- Notice strip ---------- */

.db-notice { background: var(--db-band); border-bottom: 0.0625rem solid var(--db-line); font-size: 0.8125rem; line-height: 1.45; color: var(--db-ink); }
.db-notice-in { max-width: var(--db-wrap); margin: 0 auto; padding: 0.625rem var(--db-gutter); display: grid; gap: 0.375rem; }
.db-notice p { margin: 0; padding-left: 0.625rem; border-left: 0.1875rem solid var(--db-line-strong); }
.db-notice p.db-notice-age { border-left-color: var(--db-bad); }
.db-notice p.db-notice-lic { border-left-color: var(--db-amber); }
.db-notice b { font-weight: 600; color: var(--db-head); }
@media (min-width: 62rem) {
  .db-notice-in { grid-template-columns: 1.3fr 1fr 1.1fr; gap: 1.25rem; }
}

/* ---------- Layout ---------- */

.db-wrap { max-width: var(--db-wrap); margin: 0 auto; padding-left: var(--db-gutter); padding-right: var(--db-gutter); }
.db-wrap-narrow { max-width: 54rem; }
.db-section { padding: 2rem 0; }
.db-band { background: var(--db-band); border-top: 0.0625rem solid var(--db-line); border-bottom: 0.0625rem solid var(--db-line); }
.db-section-head { margin-bottom: 1.25rem; }
.db-section-head p { color: var(--db-muted); max-width: 46rem; margin-bottom: 0; }

.db-crumb { font: 400 0.75rem/1.4 var(--db-mono); color: var(--db-muted); padding: 0.75rem 0 0; }
.db-crumb ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 0.5rem; }
.db-crumb li + li::before { content: "/"; margin-right: 0.5rem; color: var(--db-line-strong); }
.db-crumb a { color: var(--db-link); }

.db-pagehead { padding: 1.5rem 0 1.75rem; border-bottom: 0.0625rem solid var(--db-line); }
.db-crumb + .db-pagehead { padding-top: 1rem; }
.db-card-head + .db-card-note { padding-top: 0.75rem; }
.db-kicker {
  display: inline-block; font: 600 0.6875rem/1 var(--db-mono); letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--db-ink); background: var(--db-amber); padding: 0.3125rem 0.5rem; border-radius: 0.125rem; margin-bottom: 0.75rem;
}
.db-lead { font-size: 1.0625rem; max-width: 48rem; color: var(--db-ink); }
.db-pagehead .db-lead:last-child { margin-bottom: 0; }

.db-record {
  display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; margin: 0 0 1rem; padding: 0.5rem 0.75rem;
  font: 400 0.75rem/1.5 var(--db-mono); font-variant-numeric: tabular-nums; color: var(--db-muted);
  background: var(--db-band); border: 0.0625rem solid var(--db-line); border-left: 0.1875rem solid var(--db-amber); border-radius: var(--db-radius);
}
.db-record span { min-width: 0; }
.db-record b { font-weight: 500; color: var(--db-head); }
.db-record a { color: var(--db-link); }

.db-tag {
  display: inline-block; font: 500 0.625rem/1 var(--db-mono); letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--db-muted); background: var(--db-band); border: 0.0625rem solid var(--db-line); border-radius: 0.125rem; padding: 0.1875rem 0.3125rem; vertical-align: middle; white-space: nowrap;
}

/* ---------- Stat tiles ---------- */

.db-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.0625rem; margin: 1.5rem 0 0; background: var(--db-line); border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); overflow: hidden; }
.db-stat { padding: 0.75rem 0.875rem; background: #fff; }
.db-stat dt { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--db-muted); }
.db-stat dd { font: 600 1.375rem/1.3 var(--db-mono); font-variant-numeric: tabular-nums; color: var(--db-head); }
.db-stat dd small { display: block; font: 400 0.6875rem/1.4 var(--db-font); color: var(--db-muted); }
@media (min-width: 48rem) { .db-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* ---------- Buttons ---------- */

.db-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.375rem;
  min-height: 2.25rem; padding: 0.375rem 0.875rem;
  font: 600 0.875rem/1.2 var(--db-font); color: var(--db-ink); text-decoration: none; white-space: nowrap;
  background: var(--db-amber); border: 0.0625rem solid var(--db-amber-dark); border-radius: var(--db-radius); cursor: pointer;
  transition: background-color 0.12s ease, box-shadow 0.12s ease;
}
.db-btn::after { content: "\2197"; font-family: var(--db-mono); font-size: 0.8125rem; }
.db-btn:hover { background: #ffc233; color: var(--db-ink); box-shadow: 0 0.125rem 0 var(--db-amber-dark); }
.db-btn-lg { min-height: 2.75rem; padding: 0.5rem 1.25rem; font-size: 1rem; }
.db-btn-plain { background: #fff; border-color: var(--db-line-strong); color: var(--db-head); }
.db-btn-plain::after { content: "\2192"; }
.db-btn-plain:hover { background: var(--db-band); box-shadow: none; color: var(--db-head); }
.db-btn-submit::after { content: none; }

/* ---------- Toolbar / filters ---------- */

.db-toolbar {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.625rem 1rem; padding: 0.625rem 0.75rem;
  background: var(--db-band); border: 0.0625rem solid var(--db-line-strong); border-bottom: 0; border-radius: var(--db-radius) var(--db-radius) 0 0;
}
.db-toolbar-label { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--db-muted); }
.db-filter { display: flex; flex-wrap: wrap; gap: 0.375rem; align-items: center; flex: 1 1 auto; }
.db-filter-btn, .db-tool-btn {
  font: 500 0.8125rem/1 var(--db-font); color: var(--db-head); background: #fff;
  border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); padding: 0.4375rem 0.625rem; cursor: pointer;
}
.db-filter-btn:hover, .db-tool-btn:hover { border-color: var(--db-head); }
.db-filter-btn[aria-pressed="true"] { background: var(--db-head); border-color: var(--db-head); color: #fff; }
.db-status { margin: 0; font: 400 0.75rem/1.4 var(--db-mono); font-variant-numeric: tabular-nums; color: var(--db-muted); }
.db-status b { color: var(--db-head); font-weight: 600; }
html:not(.db-js) .db-js-only { display: none !important; }
.db-nojs-note { display: none; margin: 0; font-size: 0.8125rem; color: var(--db-muted); }
html:not(.db-js) .db-nojs-note { display: block; }

/* ---------- Tables ---------- */

.db-scroll {
  position: relative; overflow-x: auto; -webkit-overflow-scrolling: touch; background: #fff;
  border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); margin: 0 0 1.25rem;
}
.db-toolbar + .db-scroll { border-radius: 0 0 var(--db-radius) var(--db-radius); }
.db-scroll:focus-visible { outline-offset: 0.125rem; }

.db-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 0.875rem; line-height: 1.4; }
.db-table caption { caption-side: top; text-align: left; padding: 0.5rem 0.75rem; font: 400 0.75rem/1.4 var(--db-mono); color: var(--db-muted); border-bottom: 0.0625rem solid var(--db-line); }
.db-table th, .db-table td { padding: 0.625rem 0.75rem; text-align: left; vertical-align: middle; border-bottom: 0.0625rem solid var(--db-line); background: #fff; }
.db-table thead th {
  position: sticky; top: 0; z-index: 3; background: var(--db-band); border-bottom: 0.0625rem solid var(--db-line-strong);
  font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--db-head); white-space: nowrap; vertical-align: bottom;
}
.db-table thead th + th, .db-table tbody td, .db-table tbody th + td { border-left: 0.0625rem solid var(--db-band-2); }
.db-table tbody th { font-weight: 600; color: var(--db-head); }
.db-table tbody:last-child tr:last-child > *, .db-table tbody.db-row-last tr:last-child > * { border-bottom: 0; }
.db-table tbody tr:hover > th, .db-table tbody tr:hover > td { background: #f6f9fb; }
.db-table tbody tr.db-detail:hover > td { background: var(--db-band); }

.db-th-sort {
  display: inline-flex; align-items: center; gap: 0.375rem; margin: -0.25rem -0.375rem; padding: 0.25rem 0.375rem;
  font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; background: none; border: 0; border-radius: 0.125rem; cursor: pointer; white-space: nowrap;
}
.db-th-sort::after { content: "\2195"; font-family: var(--db-mono); font-size: 0.75rem; color: var(--db-line-strong); }
.db-th-sort:hover { color: var(--db-link); }
.db-th-sort:hover::after { color: var(--db-link); }
th[aria-sort="ascending"], th[aria-sort="descending"] { box-shadow: inset 0 -0.1875rem 0 var(--db-amber); }
th[aria-sort="ascending"] .db-th-sort::after { content: "\2191"; color: var(--db-ink); }
th[aria-sort="descending"] .db-th-sort::after { content: "\2193"; color: var(--db-ink); }
html:not(.db-js) .db-th-sort { cursor: default; pointer-events: none; }
html:not(.db-js) .db-th-sort::after { content: none; }

.db-cell-num { font-family: var(--db-mono); font-variant-numeric: tabular-nums; font-size: 0.8125rem; white-space: nowrap; }
.db-cell-right { text-align: right !important; }
.db-cell-note { display: block; font: 400 0.6875rem/1.3 var(--db-font); color: var(--db-muted); white-space: normal; }

.db-bar { display: block; width: 100%; min-width: 4.5rem; height: 0.3125rem; margin-top: 0.3125rem; background: var(--db-band-2); border-radius: 0.125rem; overflow: hidden; }
.db-bar > span { display: block; height: 100%; background: var(--db-slow); border-radius: 0.125rem; }
.db-bar-fast > span { background: var(--db-ok); }
.db-bar-mid > span { background: var(--db-amber); }
.db-bar-score > span { background: var(--db-head); }

.db-logo {
  flex: none; display: inline-flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem;
  font: 600 0.75rem/1 var(--db-mono); color: var(--db-head); background: repeating-linear-gradient(135deg, #fff 0 0.25rem, var(--db-band) 0.25rem 0.5rem);
  border: 0.0625rem dashed var(--db-line-strong); border-radius: var(--db-radius);
}
.db-logo-lg { width: 4rem; height: 4rem; font-size: 1.125rem; }

.db-op { display: flex; align-items: center; gap: 0.625rem; }
.db-op-txt { display: flex; flex-direction: column; align-items: flex-start; gap: 0.1875rem; min-width: 0; }
.db-op-name { font-weight: 600; color: var(--db-head); line-height: 1.25; }
.db-toggle {
  display: inline-flex; align-items: center; gap: 0.25rem; padding: 0.125rem 0; font: 500 0.75rem/1.2 var(--db-font);
  color: var(--db-link); background: none; border: 0; cursor: pointer; text-decoration: underline; text-underline-offset: 0.15em;
}
.db-toggle::before { content: "+"; display: inline-block; width: 0.875rem; height: 0.875rem; font: 600 0.75rem/0.75rem var(--db-mono); text-align: center; border: 0.0625rem solid currentColor; border-radius: 0.125rem; text-decoration: none; }
.db-toggle[aria-expanded="true"]::before { content: "\2212"; }
html:not(.db-js) .db-toggle { display: none; }

.db-score { display: inline-block; min-width: 2.5rem; padding: 0.1875rem 0.375rem; text-align: center; font: 600 0.875rem/1.2 var(--db-mono); color: #fff; background: var(--db-head); border-radius: 0.125rem; }
.db-score-top { background: var(--db-ok); }
.db-yes { color: var(--db-ok); font-weight: 600; }
.db-no { color: var(--db-bad); font-weight: 600; }

.db-col-rank { width: 2.75rem; min-width: 2.75rem; max-width: 2.75rem; color: var(--db-muted); }
.db-col-cta { width: 1%; white-space: nowrap; }
.db-col-cta a + a { display: block; margin-top: 0.25rem; font-size: 0.75rem; text-align: center; }

.db-table-main { min-width: 62rem; }
.db-table-main .db-col-op { position: sticky; left: 0; z-index: 2; width: 7.5rem; min-width: 7.5rem; max-width: 7.5rem; box-shadow: inset -0.0625rem 0 0 var(--db-line-strong); }
.db-table-main thead .db-col-op { z-index: 4; }
.db-table-main .db-col-op .db-logo { display: none; }

.db-table-sticky { min-width: 36rem; }
.db-table-sticky tbody th, .db-table-sticky thead th:first-child { position: sticky; left: 0; z-index: 2; box-shadow: inset -0.0625rem 0 0 var(--db-line-strong); max-width: 9rem; }
.db-table-sticky thead th:first-child { z-index: 4; }

.db-detail > td { padding: 0 !important; background: var(--db-band) !important; border-left: 0 !important; }
.db-detail-in {
  position: sticky; left: 0; width: min(100%, calc(100vw - 2 * var(--db-gutter) - 0.125rem));
  padding: 0.875rem 0.75rem 1rem; border-left: 0.1875rem solid var(--db-amber);
}
.db-detail-in .db-record { background: #fff; border-left-color: var(--db-line-strong); margin-bottom: 0.75rem; }
.db-methods { list-style: none; margin: 0 0 0.875rem; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(13.5rem, 1fr)); gap: 0.5rem; }
.db-methods li { background: #fff; border: 0.0625rem solid var(--db-line); border-radius: var(--db-radius); padding: 0.5rem 0.625rem; display: grid; grid-template-columns: 1fr auto; gap: 0 0.5rem; align-items: baseline; }
.db-m-name { font-weight: 600; font-size: 0.8125rem; color: var(--db-head); }
.db-m-time { font: 500 0.8125rem/1.3 var(--db-mono); font-variant-numeric: tabular-nums; }
.db-methods .db-bar, .db-m-meta { grid-column: 1 / -1; }
.db-m-meta { margin-top: 0.3125rem; font: 400 0.6875rem/1.4 var(--db-mono); color: var(--db-muted); }
.db-detail-actions { margin: 0; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; font-size: 0.875rem; }

.db-empty td { padding: 1.5rem 0.75rem; text-align: center; color: var(--db-muted); font-family: var(--db-mono); font-size: 0.8125rem; }

@media (min-width: 40rem) {
  .db-table-main .db-col-rank { position: sticky; left: 0; z-index: 2; }
  .db-table-main thead .db-col-rank { z-index: 4; }
  .db-table-main .db-col-op { left: 2.75rem; width: auto; min-width: 12.5rem; max-width: none; }
  .db-table-main .db-col-op .db-logo { display: inline-flex; }
}
@media (min-width: 75rem) {
  .db-scroll-wide { overflow: visible; }
  .db-scroll-wide .db-table thead th { top: var(--db-bar-h); }
  .db-table-main { min-width: 0; }
  .db-table-main .db-col-op, .db-table-main .db-col-rank { box-shadow: none; }
  .db-detail-in { width: 100%; }
}

/* ---------- Legend ---------- */

.db-legend { border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); background: #fff; margin: 0 0 1.25rem; font: 400 0.75rem/1.55 var(--db-mono); }
.db-legend-head { margin: 0; padding: 0.4375rem 0.75rem; background: var(--db-band); border-bottom: 0.0625rem solid var(--db-line); color: var(--db-head); font-weight: 500; display: flex; flex-wrap: wrap; gap: 0.25rem 1rem; justify-content: space-between; }
.db-legend dl { display: grid; grid-template-columns: 1fr; }
.db-legend dt { padding: 0.4375rem 0.75rem 0; color: var(--db-head); font-weight: 600; }
.db-legend dt::after { content: ";"; color: var(--db-line-strong); }
.db-legend dd { padding: 0 0.75rem 0.4375rem; color: var(--db-muted); border-bottom: 0.0625rem solid var(--db-band-2); font-family: var(--db-font); font-size: 0.8125rem; }
.db-legend dd:last-child { border-bottom: 0; }
.db-key { display: inline-block; width: 1.5rem; height: 0.3125rem; border-radius: 0.125rem; vertical-align: middle; margin-right: 0.25rem; background: var(--db-slow); }
.db-key-fast { background: var(--db-ok); }
.db-key-mid { background: var(--db-amber); }
@media (min-width: 48rem) {
  .db-legend dl { grid-template-columns: 13rem 1fr; }
  .db-legend dt { padding: 0.4375rem 0.75rem; border-bottom: 0.0625rem solid var(--db-band-2); border-right: 0.0625rem solid var(--db-band-2); }
  .db-legend dd { padding: 0.4375rem 0.75rem; }
  .db-legend dt:last-of-type { border-bottom: 0; }
}

/* ---------- Method cards ---------- */

.db-cards { display: grid; grid-template-columns: 1fr; gap: 0.75rem; margin: 0 0 1.25rem; padding: 0; list-style: none; }
.db-card { background: #fff; border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); display: flex; flex-direction: column; }
.db-card-head { display: flex; justify-content: space-between; align-items: baseline; gap: 0.5rem; padding: 0.625rem 0.75rem; border-bottom: 0.0625rem solid var(--db-line); background: var(--db-band); border-radius: var(--db-radius) var(--db-radius) 0 0; }
.db-card-head h3 { margin: 0; font-size: 1rem; }
.db-card-head h3 a { color: inherit; }
.db-card-id { font: 500 0.6875rem/1 var(--db-mono); color: var(--db-muted); white-space: nowrap; }
.db-card dl { padding: 0.25rem 0.75rem 0.5rem; }
.db-card dl > div { display: flex; justify-content: space-between; align-items: baseline; gap: 0.75rem; padding: 0.375rem 0; border-bottom: 0.0625rem dotted var(--db-line-strong); }
.db-card dl > div:last-child { border-bottom: 0; }
.db-card dt { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--db-muted); }
.db-card dd { font: 500 0.8125rem/1.4 var(--db-mono); font-variant-numeric: tabular-nums; text-align: right; color: var(--db-ink); }
.db-card-bar { padding: 0 0.75rem 0.75rem; margin-top: auto; }
.db-card-note { margin: 0; padding: 0 0.75rem 0.75rem; font-size: 0.8125rem; color: var(--db-muted); }
@media (min-width: 36rem) { .db-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 62rem) { .db-cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- Two-column record layout ---------- */

.db-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; padding-top: 2rem; padding-bottom: 2.5rem; }
.db-toc { border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); background: #fff; font-size: 0.875rem; align-self: start; }
.db-toc-title { margin: 0; padding: 0.5rem 0.75rem; background: var(--db-band); border-bottom: 0.0625rem solid var(--db-line); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--db-head); border-radius: var(--db-radius) var(--db-radius) 0 0; }
.db-toc ol { list-style: none; margin: 0; padding: 0.25rem 0; counter-reset: dbtoc; }
.db-toc li { counter-increment: dbtoc; }
.db-toc a { display: flex; gap: 0.625rem; padding: 0.375rem 0.75rem; color: var(--db-head); text-decoration: none; line-height: 1.35; }
.db-toc a::before { content: counter(dbtoc, decimal-leading-zero); font: 400 0.75rem/1.6 var(--db-mono); color: var(--db-muted); }
.db-toc a:hover { background: var(--db-link-soft); color: var(--db-link-dark); }
@media (min-width: 64rem) {
  .db-layout { grid-template-columns: 15rem minmax(0, 1fr); gap: 2.5rem; }
  .db-toc { position: sticky; top: calc(var(--db-bar-h) + 1rem); max-height: calc(100vh - var(--db-bar-h) - 2rem); overflow-y: auto; }
}

/* ---------- Prose ---------- */

.db-prose { min-width: 0; }
.db-prose > section { padding: 0 0 2rem; margin: 0 0 2rem; border-bottom: 0.0625rem solid var(--db-line); }
.db-prose > section:last-child { border-bottom: 0; margin-bottom: 0; padding-bottom: 0; }
.db-prose p, .db-prose > section > ul, .db-prose > section > ol, .db-prose li { max-width: 46rem; }
.db-prose h2 { display: flex; align-items: baseline; gap: 0.625rem; padding-bottom: 0.5rem; margin-bottom: 1rem; border-bottom: 0.125rem solid var(--db-head); }
.db-prose h2 .db-h-id { font: 500 0.75rem/1 var(--db-mono); color: var(--db-ink); background: var(--db-amber); padding: 0.25rem 0.375rem; border-radius: 0.125rem; flex: none; transform: translateY(-0.125rem); }
.db-prose h3 { margin-top: 1.5rem; }
.db-prose li { margin-bottom: 0.375rem; }
.db-prose li::marker { color: var(--db-muted); }
.db-answer { font-size: 1.0625rem; }

.db-note { border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); background: var(--db-band); padding: 0.875rem 1rem; margin: 0 0 1.25rem; max-width: 46rem; }
.db-note-title { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.25rem 1rem; margin: 0 0 0.5rem; font: 600 0.6875rem/1.4 var(--db-mono); letter-spacing: 0.06em; text-transform: uppercase; color: var(--db-head); }
.db-note-title span { color: var(--db-muted); font-weight: 400; letter-spacing: 0; text-transform: none; }
.db-note p, .db-note ul, .db-note ol { font-size: 0.9375rem; }
.db-note > :last-child { margin-bottom: 0; }
.db-note-info { background: var(--db-link-soft); border-color: #b7d0ee; border-left: 0.1875rem solid var(--db-link); }
.db-note-warn { background: var(--db-amber-soft); border-color: #f0d68a; border-left: 0.1875rem solid var(--db-amber); }
.db-note-ok { background: var(--db-ok-soft); border-color: #b9d8bb; border-left: 0.1875rem solid var(--db-ok); }
.db-note-bad { background: var(--db-bad-soft); border-color: #ecc3c0; border-left: 0.1875rem solid var(--db-bad); }

.db-steps { list-style: none; margin: 0 0 1.25rem; padding: 0; counter-reset: dbstep; max-width: 46rem; border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); }
.db-steps > li { counter-increment: dbstep; position: relative; margin: 0; padding: 0.875rem 1rem 0.875rem 3.75rem; border-bottom: 0.0625rem solid var(--db-line); max-width: none; }
.db-steps > li:last-child { border-bottom: 0; }
.db-steps > li::before {
  content: counter(dbstep, decimal-leading-zero); position: absolute; left: 0.875rem; top: 0.875rem; width: 2rem; height: 2rem;
  display: flex; align-items: center; justify-content: center; font: 600 0.8125rem/1 var(--db-mono); color: var(--db-ink); background: var(--db-amber); border-radius: 0.125rem;
}
.db-steps h3 { margin: 0 0 0.25rem; font-size: 1rem; }
.db-steps p { margin: 0; font-size: 0.9375rem; }
.db-steps .db-step-meta { margin-top: 0.375rem; font: 400 0.75rem/1.4 var(--db-mono); color: var(--db-muted); }

.db-proscons { display: grid; grid-template-columns: 1fr; gap: 0.75rem; margin: 0 0 1.25rem; }
.db-pc { border: 0.0625rem solid var(--db-line-strong); border-top: 0.1875rem solid var(--db-ok); border-radius: var(--db-radius); padding: 0.875rem 1rem; background: #fff; }
.db-pc-con { border-top-color: var(--db-bad); }
.db-pc h3 { margin: 0 0 0.625rem; font-size: 0.75rem; letter-spacing: 0.06em; text-transform: uppercase; color: var(--db-ok); }
.db-pc-con h3 { color: var(--db-bad); }
.db-pc ul { list-style: none; margin: 0; padding: 0; }
.db-pc li { position: relative; padding: 0.375rem 0 0.375rem 1.5rem; margin: 0; border-top: 0.0625rem dotted var(--db-line-strong); font-size: 0.9375rem; }
.db-pc li:first-child { border-top: 0; }
.db-pc li::before { content: "+"; position: absolute; left: 0.125rem; top: 0.375rem; font: 600 1rem/1.5 var(--db-mono); color: var(--db-ok); }
.db-pc-con li::before { content: "\2212"; color: var(--db-bad); }
@media (min-width: 40rem) { .db-proscons { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.db-faq { border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); counter-reset: dbfaq; max-width: 50rem; margin-bottom: 1.25rem; }
.db-faq dt { counter-increment: dbfaq; display: flex; gap: 0.75rem; padding: 0.875rem 1rem 0.25rem; font-weight: 600; font-size: 1.0625rem; color: var(--db-head); line-height: 1.35; }
.db-faq dt::before { content: "Q" counter(dbfaq, decimal-leading-zero); flex: none; font: 500 0.75rem/1.9 var(--db-mono); color: var(--db-muted); }
.db-faq dd { padding: 0 1rem 0.875rem 3.125rem; border-bottom: 0.0625rem solid var(--db-line); }
.db-faq dd:last-child { border-bottom: 0; }
.db-faq dd p { max-width: none; }
.db-faq dd > :last-child { margin-bottom: 0; }

.db-author { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.875rem 1rem; align-items: start; border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); padding: 1rem; background: #fff; max-width: 50rem; margin-bottom: 1.25rem; }
.db-avatar { width: 3.5rem; height: 3.5rem; display: flex; align-items: center; justify-content: center; font: 600 1rem/1 var(--db-mono); color: var(--db-head); background: var(--db-band); border: 0.0625rem dashed var(--db-line-strong); border-radius: 50%; }
.db-author-name { margin: 0; font-weight: 600; font-size: 1.0625rem; color: var(--db-head); }
.db-author-role { margin: 0 0 0.5rem; font: 400 0.75rem/1.5 var(--db-mono); color: var(--db-muted); }
.db-author p:last-child { margin-bottom: 0; }
.db-author-body p { font-size: 0.9375rem; }

.db-cta-inline { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1.5rem; margin: 0 0 1.25rem; padding: 1rem; max-width: 46rem; background: var(--db-head); color: #fff; border-radius: var(--db-radius); border-left: 0.25rem solid var(--db-amber); }
.db-cta-inline p { margin: 0; max-width: 30rem; font-size: 0.9375rem; }
.db-cta-inline strong { display: block; font-size: 1.0625rem; }
.db-cta-inline .db-btn::after { content: "\2192"; }
.db-cta-inline :focus-visible { outline-color: var(--db-amber); }
.db-cta-inline small { display: block; flex-basis: 100%; color: #cfd8dc; font-size: 0.75rem; }

/* ---------- Top list (compact variant) ---------- */

.db-top { list-style: none; margin: 0 0 1.25rem; padding: 0; counter-reset: dbtop; border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); background: #fff; }
.db-top > li { counter-increment: dbtop; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.75rem 0.875rem; padding: 0.875rem; border-bottom: 0.0625rem solid var(--db-line); align-items: center; }
.db-top > li:last-child { border-bottom: 0; }
.db-top-id { display: flex; align-items: center; gap: 0.625rem; }
.db-top-id::before { content: counter(dbtop, decimal-leading-zero); font: 500 0.8125rem/1 var(--db-mono); color: var(--db-muted); }
.db-top-name { margin: 0; font-size: 1.0625rem; }
.db-top-name + p { margin: 0; font: 400 0.75rem/1.5 var(--db-mono); color: var(--db-muted); }
.db-top-facts { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.5rem 1rem; }
.db-top-facts dt { font-size: 0.625rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--db-muted); }
.db-top-facts dd { font: 500 0.8125rem/1.4 var(--db-mono); font-variant-numeric: tabular-nums; }
.db-top-cta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; font-size: 0.875rem; }
@media (min-width: 56rem) {
  .db-top > li { grid-template-columns: 15rem minmax(0, 1fr) auto; }
  .db-top-facts { grid-column: auto; grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .db-top-cta { grid-column: auto; flex-direction: column; align-items: stretch; text-align: center; }
}

/* ---------- Review ---------- */

.db-scorebox { display: grid; grid-template-columns: 1fr; border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); background: #fff; margin: 1.25rem 0 0; }
.db-scorebox-main { display: flex; align-items: center; gap: 1rem; padding: 1rem; border-bottom: 0.0625rem solid var(--db-line); background: var(--db-band); border-radius: var(--db-radius) var(--db-radius) 0 0; }
.db-scorebox-num { margin: 0; font: 600 2.75rem/1 var(--db-mono); font-variant-numeric: tabular-nums; color: var(--db-head); }
.db-scorebox-num small { font-size: 1rem; font-weight: 400; color: var(--db-muted); }
.db-scorebox-label { margin: 0.25rem 0 0; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--db-muted); }
.db-meters { padding: 0.75rem 1rem; border-bottom: 0.0625rem solid var(--db-line); }
.db-meters > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 0.75rem; padding: 0.3125rem 0; align-items: baseline; }
.db-meters dt { font-size: 0.875rem; color: var(--db-ink); }
.db-meters dd { font: 500 0.8125rem/1.4 var(--db-mono); font-variant-numeric: tabular-nums; }
.db-meters .db-bar { grid-column: 1 / -1; margin-top: 0.125rem; }
.db-scorebox-cta { padding: 1rem; display: flex; flex-direction: column; gap: 0.5rem; justify-content: center; }
.db-scorebox-cta p { margin: 0; font-size: 0.75rem; color: var(--db-muted); }
@media (min-width: 56rem) {
  .db-scorebox { grid-template-columns: auto minmax(0, 1fr) 17rem; }
  .db-scorebox-main { border-bottom: 0; border-right: 0.0625rem solid var(--db-line); border-radius: var(--db-radius) 0 0 var(--db-radius); padding: 1.25rem 1.5rem; }
  .db-meters { border-bottom: 0; border-right: 0.0625rem solid var(--db-line); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 1.5rem; align-content: center; }
}

.db-facts { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; font-size: 0.875rem; border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); margin: 0 0 1.25rem; max-width: 46rem; }
.db-facts caption { text-align: left; padding: 0.5rem 0.75rem; font: 400 0.75rem/1.4 var(--db-mono); color: var(--db-muted); }
.db-facts th, .db-facts td { padding: 0.5rem 0.75rem; text-align: left; vertical-align: top; border-top: 0.0625rem solid var(--db-line); }
.db-facts th { width: 42%; background: var(--db-band); font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--db-head); line-height: 1.6; }
.db-facts td { overflow-wrap: anywhere; font-family: var(--db-mono); font-size: 0.8125rem; font-variant-numeric: tabular-nums; }

.db-chips { list-style: none; margin: 0 0 1rem; padding: 0; display: flex; flex-wrap: wrap; gap: 0.375rem; }
.db-chips li { margin: 0; font: 500 0.75rem/1 var(--db-mono); color: var(--db-head); background: var(--db-band); border: 0.0625rem solid var(--db-line-strong); border-radius: 0.125rem; padding: 0.375rem 0.5rem; }

.db-verdict { border: 0.0625rem solid var(--db-line-strong); border-top: 0.1875rem solid var(--db-amber); border-radius: var(--db-radius); padding: 1rem; max-width: 46rem; margin-bottom: 1.25rem; }
.db-verdict > :last-child { margin-bottom: 0; }
.db-verdict-row { display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem 1.25rem; }
.db-verdict-row p { margin: 0; font-size: 0.8125rem; color: var(--db-muted); }

/* ---------- Team / about ---------- */

.db-people { list-style: none; margin: 0 0 1.25rem; padding: 0; display: grid; grid-template-columns: 1fr; gap: 0.75rem; }
.db-people li { margin: 0; max-width: none; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.75rem; align-items: center; padding: 0.75rem; border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); }
.db-people p { margin: 0; }
.db-people .db-author-role { margin: 0; }
@media (min-width: 40rem) { .db-people { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* ---------- Forms ---------- */

.db-form { border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); background: #fff; max-width: 40rem; }
.db-form-head { margin: 0; padding: 0.5rem 1rem; background: var(--db-band); border-bottom: 0.0625rem solid var(--db-line); font: 500 0.75rem/1.5 var(--db-mono); color: var(--db-head); border-radius: var(--db-radius) var(--db-radius) 0 0; }
.db-form-body { padding: 1rem; display: grid; gap: 0.875rem; }
.db-field label, .db-field legend { display: block; margin-bottom: 0.25rem; font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--db-head); }
.db-field input[type="text"], .db-field input[type="email"], .db-field select, .db-field textarea {
  width: 100%; padding: 0.5rem 0.625rem; font: 400 0.9375rem/1.4 var(--db-font); color: var(--db-ink); background: #fff;
  border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius);
}
.db-field textarea { min-height: 8rem; resize: vertical; }
.db-field input:focus, .db-field select:focus, .db-field textarea:focus { border-color: var(--db-link); outline: 0.125rem solid var(--db-link); outline-offset: 0; }
.db-field-hint { margin: 0.25rem 0 0; font-size: 0.75rem; color: var(--db-muted); }
.db-checkline { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.625rem; align-items: start; font-size: 0.9375rem; }
.db-checkline input { width: 1.125rem; height: 1.125rem; margin: 0.25rem 0 0; accent-color: var(--db-head); }
.db-contact { display: grid; grid-template-columns: 1fr; gap: 1.5rem; }
@media (min-width: 60rem) { .db-contact { grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 2.5rem; } }

.db-check { list-style: none; margin: 0 0 1.25rem; padding: 0; border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); max-width: 46rem; counter-reset: dbchk; }
.db-check li { counter-increment: dbchk; margin: 0; max-width: none; border-bottom: 0.0625rem solid var(--db-line); }
.db-check li:last-child { border-bottom: 0; }
.db-check label { display: grid; grid-template-columns: auto auto minmax(0, 1fr); gap: 0.75rem; align-items: start; padding: 0.75rem 0.875rem; cursor: pointer; }
.db-check label::before { content: counter(dbchk, decimal-leading-zero); order: -1; font: 400 0.75rem/2 var(--db-mono); color: var(--db-muted); }
.db-check input { width: 1.125rem; height: 1.125rem; margin: 0.25rem 0 0; accent-color: var(--db-head); }
.db-check label:hover { background: #f6f9fb; }

.db-help { display: grid; grid-template-columns: 1fr; gap: 0.75rem; margin: 0 0 1.25rem; padding: 0; list-style: none; }
.db-help li { margin: 0; max-width: none; border: 0.0625rem solid var(--db-line-strong); border-left: 0.1875rem solid var(--db-ok); border-radius: var(--db-radius); padding: 0.875rem 1rem; }
.db-help h3 { margin: 0 0 0.25rem; font-size: 1rem; }
.db-help p { margin: 0; font-size: 0.9375rem; }
.db-help-num { font: 600 1.375rem/1.4 var(--db-mono); font-variant-numeric: tabular-nums; color: var(--db-head); text-decoration: none; }
@media (min-width: 48rem) { .db-help { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.db-age { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; flex: none; font: 600 0.875rem/1 var(--db-mono); color: #fff; background: var(--db-bad); border-radius: 50%; }

/* ---------- 404 ---------- */

.db-404 { padding: 3rem 0 4rem; }
.db-404-code { font: 600 0.8125rem/1.6 var(--db-mono); color: var(--db-muted); background: var(--db-band); border: 0.0625rem solid var(--db-line-strong); border-left: 0.1875rem solid var(--db-bad); border-radius: var(--db-radius); padding: 0.75rem 1rem; margin: 0 0 1.5rem; max-width: 40rem; white-space: pre-wrap; }

/* ---------- Footer ---------- */

.db-footer { background: var(--db-band); border-top: 0.1875rem solid var(--db-head); font-size: 0.875rem; color: var(--db-ink); margin-top: 1rem; }
.db-footer-grid { display: grid; grid-template-columns: 1fr; gap: 1.5rem; padding-top: 2rem; padding-bottom: 1.5rem; }
.db-footer .db-wordmark { color: var(--db-head); font-size: 1rem; }
.db-footer .db-wordmark-b { color: var(--db-muted); }
.db-footer-about p { margin: 0.75rem 0 0; color: var(--db-muted); max-width: 26rem; }
.db-footer h2 { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; color: var(--db-head); margin: 0 0 0.5rem; padding-bottom: 0.375rem; border-bottom: 0.0625rem solid var(--db-line-strong); }
.db-footer ul { list-style: none; margin: 0; padding: 0; }
.db-footer li a { display: inline-block; padding: 0.25rem 0; color: var(--db-head); }
.db-footer-rg { border-top: 0.0625rem solid var(--db-line-strong); padding-top: 1.25rem; padding-bottom: 1.25rem; display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.875rem; align-items: start; }
.db-footer-rg p { margin: 0 0 0.375rem; max-width: 60rem; }
.db-footer-rg p:last-child { margin-bottom: 0; color: var(--db-muted); font-size: 0.8125rem; }
.db-footer-base { border-top: 0.0625rem solid var(--db-line-strong); padding-top: 0.875rem; padding-bottom: 1.25rem; font: 400 0.75rem/1.5 var(--db-mono); color: var(--db-muted); display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; justify-content: space-between; }
.db-footer-base p { margin: 0; }
@media (min-width: 48rem) { .db-footer-grid { grid-template-columns: 1.6fr 1fr 1fr 1fr; gap: 2rem; } }

@media (min-width: 48rem) {
  :root { --db-gutter: 1.5rem; }
  h1 { font-size: 2.25rem; }
  h2 { font-size: 1.5rem; }
  .db-section { padding: 2.5rem 0; }
  .db-pagehead { padding: 2rem 0 2.25rem; }
}

/* ---------- Phase 2: byline, profiles, sources, review keys ---------- */

.db-byline a[rel="author"] { font-weight: 500; }

.db-btn-in {
  display: inline-flex; align-items: center; gap: 0.4375rem; min-height: 2rem; padding: 0.25rem 0.625rem 0.25rem 0.375rem;
  font: 500 0.8125rem/1.2 var(--db-font); color: var(--db-head); text-decoration: none; white-space: nowrap;
  background: #fff; border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius);
}
.db-btn-in svg { flex: none; color: var(--db-link); }
.db-btn-in:hover { border-color: var(--db-link); color: var(--db-link-dark); background: var(--db-link-soft); }
.db-author-links { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin: 0 0 0.5rem; font-size: 0.875rem; }
.db-author-check { margin: 0; padding-top: 0.5rem; border-top: 0.0625rem dotted var(--db-line-strong); font: 400 0.75rem/1.5 var(--db-mono); color: var(--db-muted); }
.db-author-name a { color: inherit; }

.db-profile { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 0.875rem 1rem; align-items: start; padding: 1rem; margin: 0 0 1.25rem; max-width: 50rem; background: #fff; border: 0.0625rem solid var(--db-line-strong); border-left: 0.1875rem solid var(--db-amber); border-radius: var(--db-radius); }
.db-profile p { margin: 0 0 0.5rem; font-size: 0.9375rem; }
.db-profile .db-author-name { font-size: 1.0625rem; margin: 0; }
.db-profile .db-author-links { margin: 0; }
.db-portrait {
  display: flex; align-items: center; justify-content: center; width: 4rem; height: 4rem; flex: none;
  font: 600 1.125rem/1 var(--db-mono); color: var(--db-head);
  background: repeating-linear-gradient(135deg, #fff 0 0.25rem, var(--db-band) 0.25rem 0.5rem); border: 0.0625rem dashed var(--db-line-strong); border-radius: var(--db-radius);
}
.db-profile-lg { border: 0; padding: 0; margin: 0 0 1.25rem; max-width: none; background: none; }
.db-profile-lg h1 { margin-bottom: 0.375rem; }
.db-profile-lg .db-author-role { margin-bottom: 0.75rem; }
@media (min-width: 40rem) { .db-profile-lg .db-portrait { width: 7rem; height: 7rem; font-size: 1.75rem; } }

.db-fonti { margin: 0 0 1.25rem; padding: 0; list-style: none; counter-reset: dbsrc; max-width: 46rem; border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); }
.db-fonti li { counter-increment: dbsrc; margin: 0; max-width: none; padding: 0.5rem 0.75rem 0.5rem 3rem; position: relative; border-bottom: 0.0625rem solid var(--db-line); font-size: 0.875rem; color: var(--db-muted); }
.db-fonti li:last-child { border-bottom: 0; }
.db-fonti li::before { content: "[" counter(dbsrc) "]"; position: absolute; left: 0.75rem; top: 0.5rem; font: 500 0.75rem/1.75 var(--db-mono); color: var(--db-head); }

.db-signed { list-style: none; padding: 0; max-width: 46rem; border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); }
.db-signed li { margin: 0; max-width: none; border-bottom: 0.0625rem solid var(--db-line); }
.db-signed li:last-child { border-bottom: 0; }
.db-signed a { display: block; padding: 0.5rem 0.75rem; }
.db-signed a:hover { background: var(--db-link-soft); }

.db-facts-dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(9.5rem, 1fr)); gap: 0.0625rem; margin: 0 0 1.25rem; max-width: 46rem; background: var(--db-line); border: 0.0625rem solid var(--db-line-strong); border-radius: var(--db-radius); overflow: hidden; }
.db-facts-dl > div { background: #fff; padding: 0.5rem 0.75rem; }
.db-facts-dl dt { font-size: 0.625rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--db-muted); }
.db-facts-dl dd { font: 500 0.8125rem/1.5 var(--db-mono); font-variant-numeric: tabular-nums; color: var(--db-ink); }

.db-slot { display: inline-block; padding: 0.0625rem 0.375rem; font: 400 0.75rem/1.5 var(--db-mono); color: #7a4b00; background: var(--db-amber-soft); border: 0.0625rem dashed var(--db-amber-dark); border-radius: 0.125rem; }

.db-test { margin: 1.5rem 0 0; max-width: 46rem; background: #fff; border: 0.0625rem solid var(--db-line-strong); border-top: 0.1875rem solid var(--db-head); border-radius: var(--db-radius); }
.db-prose .db-test-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0.25rem 1rem; margin: 0; padding: 0.625rem 0.875rem; font-size: 1rem; background: var(--db-band); border-bottom: 0.0625rem solid var(--db-line); }
.db-test-head span { font: 400 0.75rem/1.4 var(--db-mono); color: var(--db-muted); }
.db-test dl > div { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); gap: 0.75rem; padding: 0.4375rem 0.875rem; border-bottom: 0.0625rem solid var(--db-line); align-items: baseline; }
.db-test dt { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.05em; text-transform: uppercase; color: var(--db-head); }
.db-test > p { margin: 0; padding: 0.75rem 0.875rem; font-size: 0.875rem; color: var(--db-muted); max-width: none; }

.db-scorebox-mid { min-width: 0; }
.db-keys { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.0625rem; background: var(--db-line); border-bottom: 0.0625rem solid var(--db-line); }
.db-keys > div { background: var(--db-amber-soft); padding: 0.75rem 1rem; box-shadow: inset 0 0.1875rem 0 var(--db-amber); }
.db-keys dt { font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase; color: var(--db-head); }
.db-keys dd { font: 600 1.5rem/1.3 var(--db-mono); font-variant-numeric: tabular-nums; color: var(--db-ink); }
.db-keys dd small { display: block; font: 400 0.6875rem/1.4 var(--db-font); color: var(--db-muted); }
@media (min-width: 56rem) {
  .db-scorebox-mid { border-right: 0.0625rem solid var(--db-line); display: flex; flex-direction: column; }
  .db-scorebox-mid .db-meters { border-right: 0; flex: 1 1 auto; }
}

.db-top-bar { grid-column: 1 / -1; }
.db-top-bar .db-bar { margin-top: 0; }
.db-top-verdict { grid-column: 1 / -1; margin: 0; padding-top: 0.625rem; border-top: 0.0625rem dotted var(--db-line-strong); font-size: 0.875rem; color: var(--db-muted); }
.db-top-name a { color: inherit; }
.db-top-exit { font-size: 0.8125rem; }
.db-top-cta > a + a { font-size: 0.8125rem; }

@media (min-width: 62rem) { .db-footer-grid-5 { grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr; } }
.db-author-links > a:not(.db-btn-in) { overflow-wrap: anywhere; min-width: 0; }
.db-profile > div, .db-author-body { min-width: 0; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

@media print {
  .db-appbar, .db-toolbar, .db-footer, .db-skip { display: none; }
  .db-scroll { overflow: visible; }
}

/* ==========================================================================
   dossierpagamenti.com: aggiunte al segnaposto (loghi reali, filtri dei metodi assenti, stato vuoto, foto, mobile)
   ========================================================================== */
html { -webkit-tap-highlight-color: transparent; }
a, button, summary, .db-btn { touch-action: manipulation; }
.db-btn, .db-filter-btn, .db-tool-btn, summary { -webkit-user-select: none; user-select: none; }
.db-btn, .db-filter-btn, .db-tool-btn { transition: transform 140ms cubic-bezier(.23, 1, .32, 1), background-color 140ms ease, border-color 140ms ease; }
.db-btn:active, .db-filter-btn:active, .db-tool-btn:active { transform: scale(.97); }
input, select, textarea { font-size: 16px; }

.db-logo-img { padding: 0; overflow: hidden; background: #fff; border-style: solid; border-color: var(--db-line); }
.db-logo-img img { display: block; width: 100%; height: 100%; object-fit: cover; }

.db-filter-absent { margin-top: .25rem; }
.db-filter-off { border-style: dashed; color: var(--db-muted); }
.db-filter-off[aria-pressed="true"] { background: var(--db-bad); border-color: var(--db-bad); border-style: solid; color: #fff; }
.db-empty-msg { margin: 0 auto; max-width: 44rem; font-family: var(--db-font); font-size: .9375rem; line-height: 1.55; color: var(--db-ink); text-align: left; }
.db-empty-msg b { color: var(--db-bad); }

.db-table-main td small { display: block; color: var(--db-muted); font-size: .75rem; }
.db-cell-note { color: var(--db-muted); font-size: .875rem; }
.db-detail-in .db-cell-note { margin: .75rem 0 0; }
.db-photo { object-fit: cover; border-style: solid; flex: none; }
.db-author { display: flex; gap: 1rem; align-items: flex-start; }
.db-facts td { overflow-wrap: anywhere; }
.db-pagehead mark { background: var(--db-amber-soft); color: inherit; padding: 0 .15em; border-radius: var(--db-radius); box-shadow: inset 0 -.18em 0 var(--db-amber); }
.db-prose .db-scroll + p, .db-prose .db-scroll + .db-cell-note { margin-top: .5rem; }

@media (hover: hover) and (pointer: fine) {
  .db-filter-off:hover { border-color: var(--db-bad); }
}
@media (prefers-reduced-motion: reduce) {
  .db-btn, .db-filter-btn, .db-tool-btn { transition: none; }
}
