@layer dingous-foundation {
  :root {
    --dg-brand: #22d3ee;
    --dg-brand-strong: #0891b2;
    --dg-accent: #8b5cf6;
    --dg-success: #22c55e;
    --dg-warning: #f59e0b;
    --dg-danger: #ef4444;
    --dg-radius-sm: 10px;
    --dg-radius: 16px;
    --dg-radius-lg: 24px;
    --dg-shadow: 0 18px 50px rgba(2, 6, 23, .18);
    --dg-focus: 0 0 0 3px rgba(34, 211, 238, .38);
    --dg-motion: 180ms cubic-bezier(.2,.8,.2,1);
  }

  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; text-size-adjust: 100%; }
  body.dingous-ui { min-width: 320px; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
  body.dingous-ui :where(img, video, canvas, svg) { max-width: 100%; }
  body.dingous-ui :where(button, input, select, textarea) { font: inherit; }

  .dg-skip-link {
    position: fixed; left: 16px; top: 12px; z-index: 100000;
    padding: 11px 16px; border-radius: 12px; color: #03131c; background: #a5f3fc;
    font-weight: 900; text-decoration: none; transform: translateY(-160%); transition: transform var(--dg-motion);
  }
  .dg-skip-link:focus { transform: translateY(0); box-shadow: var(--dg-focus); }

  body.dingous-ui :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
    outline: 2px solid var(--dg-brand) !important; outline-offset: 3px !important; box-shadow: var(--dg-focus);
  }
  body.dingous-ui :where(button, [role="button"], input[type="button"], input[type="submit"], input[type="reset"]) {
    min-height: 44px; touch-action: manipulation; transition: transform var(--dg-motion), box-shadow var(--dg-motion), border-color var(--dg-motion), background var(--dg-motion);
  }
  body.dingous-ui :where(button, [role="button"]):not(:disabled):active { transform: translateY(1px) scale(.99); }
  body.dingous-ui :where(button, input, select, textarea):disabled { cursor: not-allowed; opacity: .58; }
  body.dingous-ui :where(input, select, textarea) { max-width: 100%; }
  body.dingous-ui textarea { resize: vertical; min-height: 110px; }
  body.dingous-ui :where(label) { font-weight: 700; }
  body.dingous-ui :where(table) { width: 100%; }
  body.dingous-ui :where(th) { text-align: left; }
  body.dingous-ui :where(dialog, [role="dialog"]) { max-width: min(720px, calc(100vw - 32px)); }
  body.dingous-ui :where([aria-busy="true"]) { cursor: progress; }
  body.dingous-ui :where(.form-control, .form-select, input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    border-radius: var(--dg-radius-sm); transition: border-color var(--dg-motion), box-shadow var(--dg-motion), background var(--dg-motion);
  }
  body.dingous-ui :where(.btn, .admin-button, .nav-cta) { border-radius: var(--dg-radius-sm); font-weight: 800; }
  body.dingous-ui :where(.card, .metric-card, .os-window) { box-shadow: var(--dg-shadow); }
  body.dingous-ui :where(.table-responsive, [data-table-scroll]) { border-radius: var(--dg-radius); }
  body.dingous-ui :where(.table-responsive, [data-table-scroll]) thead th { position: sticky; top: 0; z-index: 2; }

  /* Admin: mantém ações e dados utilizáveis em notebooks, tablets e totens de operação. */
  body.dingous-ui .window-body { min-width: 0; }
  body.dingous-ui .admin-table { font-variant-numeric: tabular-nums; }
  body.dingous-ui .desktop-shortcut { min-height: 86px; }

  /* Portal e imobiliário: linhas legíveis e conteúdo sem saltos laterais. */
  body.dingous-ui :where(.content, .page-shell, main) { min-width: 0; }
  body.dingous-ui :where(p, li) { text-wrap: pretty; }
  body.dingous-ui :where(h1, h2, h3) { text-wrap: balance; }

  .dg-sr-only {
    position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important;
    margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important;
    white-space: nowrap !important; border: 0 !important;
  }

  body.dingous-ui ::selection { color: #ecfeff; background: rgba(8,145,178,.8); }
  body.dingous-ui { scrollbar-color: rgba(34,211,238,.55) transparent; scrollbar-width: thin; }

  @media (hover: hover) {
    body.dingous-ui :where(button, [role="button"]):not(:disabled):hover { transform: translateY(-1px); }
  }
  @media (max-width: 720px) {
    body.dingous-ui :where(button, [role="button"], input, select) { min-height: 48px; }
    body.dingous-ui :where(.table-responsive, [data-table-scroll]) { overflow-x: auto; overscroll-behavior-inline: contain; }
  }
  @media (max-width: 980px) {
    body.dingous-ui .os-desktop { padding: 14px; padding-bottom: 84px; }
    body.dingous-ui .desktop-grid { grid-template-columns: 1fr; gap: 14px; }
    body.dingous-ui .desktop-icons { flex-direction: row; overflow-x: auto; padding: 2px 2px 10px; scroll-snap-type: x proximity; }
    body.dingous-ui .desktop-shortcut { min-width: 92px; scroll-snap-align: start; }
    body.dingous-ui .window-stack { grid-template-columns: 1fr; }
    body.dingous-ui .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.dingous-ui .nav-actions { gap: 8px; }
  }
  @media (max-width: 520px) {
    body.dingous-ui .metric-grid { grid-template-columns: 1fr; }
    body.dingous-ui .window-body { padding: 14px; }
    body.dingous-ui .topbar { align-items: flex-start; }
    body.dingous-ui .nav-actions { width: 100%; overflow-x: auto; justify-content: flex-start; padding-bottom: 6px; }
  }
  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  }
  @media (forced-colors: active) {
    body.dingous-ui :where(button, a, input, select, textarea) { forced-color-adjust: auto; }
  }
}
