/* AV DS system-contract layer: non-product-specific themes and print output. */
@layer avds-system {
  body[data-avds-theme='institutional'] {
    color: var(--av-color-foreground);
    background: var(--av-color-background);
  }

  body[data-avds-surface='public-generated'] .seo-kicker,
  body[data-avds-surface='landing'] .eyebrow {
    letter-spacing: .08em;
  }

  body[data-avds-surface='public-generated'] .data-lab-shell,
  body[data-avds-surface='public-generated'] .regions-map-card {
    --avds-data-surface: 1;
  }

  .avds-info-tooltip {
    position: relative;
    display: inline-block;
    margin-block-start: 12px;
  }

  .avds-info-tooltip summary {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    padding: 0 12px;
    border: 1px solid var(--av-color-border);
    border-radius: var(--av-radius-full);
    color: var(--av-color-foreground);
    background: var(--av-color-surface);
    cursor: pointer;
    list-style: none;
  }

  .avds-info-tooltip summary::-webkit-details-marker { display: none; }
  .avds-info-tooltip summary::before {
    display: inline-grid;
    width: 20px;
    height: 20px;
    margin-inline-end: 6px;
    place-items: center;
    border-radius: 50%;
    color: var(--av-color-primary-foreground);
    background: var(--av-color-primary);
    content: 'i';
    font: 600 13px/1 'IBM Plex Mono', monospace;
  }
  .avds-info-tooltip summary:focus-visible { outline: 2px solid var(--av-color-primary); outline-offset: 2px; }
  .avds-info-tooltip[open] > div {
    max-width: 40ch;
    margin-block-start: 8px;
    padding: 10px 12px;
    border: 1px solid var(--av-color-border);
    border-radius: var(--av-radius-md);
    color: var(--av-color-foreground);
    background: var(--av-color-surface);
    box-shadow: var(--av-shadow-sm);
  }

  .avds-range-with-flags {
    display: grid;
    gap: 6px;
    margin-block-start: 12px;
  }
  .avds-range-with-flags input {
    width: 100%;
    min-height: 44px;
    margin: 0;
    accent-color: var(--av-color-primary);
  }
  .avds-range-with-flags__legend { display: flex; justify-content: space-between; gap: 8px; color: var(--av-color-muted-foreground); font-size: 12px; }
  .avds-range-with-flags__legend output { color: var(--av-color-foreground); font-family: 'IBM Plex Mono', monospace; }

  .avds-source-policy-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    min-height: 24px;
    margin-block-start: 8px;
    padding: 0 10px;
    border: 1px solid var(--av-color-border);
    border-radius: var(--av-radius-full);
    color: var(--av-color-muted-foreground);
    background: var(--av-color-muted);
    font-size: 12px;
    font-weight: 600;
  }

  .avds-chart-legend {
    display: block;
    margin-block-start: 8px;
    color: var(--av-color-muted-foreground);
    font-size: 12px;
  }

  .data-lab-bar-group { margin: 0; }
  .data-lab-bar-group > figcaption {
    display: block;
    margin-block-end: 10px;
    color: var(--av-color-muted-foreground);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
  }

  .avds-radial-gauge {
    --avds-gauge-value: 0%;
    display: inline-grid;
    width: 52px;
    height: 52px;
    place-items: center;
    border-radius: 50%;
    background: conic-gradient(var(--av-color-primary) var(--avds-gauge-value), var(--av-color-muted) 0);
    color: var(--av-color-foreground);
    font: 600 11px/1 'IBM Plex Mono', monospace;
  }
  .avds-radial-gauge::before { grid-area: 1 / 1; width: 38px; height: 38px; border-radius: 50%; background: var(--av-color-surface); content: ''; }
  .avds-radial-gauge > span { z-index: 1; grid-area: 1 / 1; }

  [data-avds-state='offline'], [data-avds-state='stale_data'], [data-avds-state='degraded'] {
    border-inline-start: 3px solid var(--av-color-primary);
    padding-inline-start: 12px;
  }

  @media print {
    :root { color-scheme: light; }
    html, body { background: #fff !important; color: #111 !important; }
    .header, .footer, .nav, .header-actions, .page-share, .theme-toggle,
    .toast, [data-share-page], [data-share-answer], .widget-trigger,
    .janus-widget-bubble, .janus-widget-panel { display: none !important; }
    main, .container, .seo-shell, .avds-shell-section { max-width: none !important; width: 100% !important; }
    a[href]::after { content: " (" attr(href) ")"; font-size: .85em; word-break: break-all; }
    .avds-card, .seo-card, .corpus-card, .data-lab-answer-card { box-shadow: none !important; break-inside: avoid; }
  }
}
