/* Copied verbatim from aisofts-superapp packages/theme/src/base.css (branch p0/aws-2gb @ 5bfc8fa, 2026-11-12) - the aiSofts design system. Our own code; re-copy, do not edit here. */
/*
 * Element defaults and finishing surfaces (design-system 6.2 colour rules, 6.4 type, 6.8 focus; craft F2-F4).
 * Reads only --as-* tokens. Layer as-reset / as-base so components and the brand layers win without specificity.
 */
@layer as-reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }
  html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
  }
  body,
  h1,
  h2,
  h3,
  h4,
  p,
  figure,
  blockquote,
  dl,
  dd,
  ol,
  ul {
    margin: 0;
  }
  ol[role="list"],
  ul[role="list"] {
    list-style: none;
    padding: 0;
  }
  img,
  svg {
    display: block;
    max-inline-size: 100%;
  }
  input,
  button,
  textarea,
  select {
    font: inherit;
    color: inherit;
  }
}

@layer as-base {
  html {
    font-family: var(--as-font-sans);
    font-size: 100%;
    line-height: var(--as-lh-normal);
    color: var(--as-text-primary);
    background: var(--as-surface-canvas);
    caret-color: var(--as-accent);
    accent-color: var(--as-accent-fill);
    scrollbar-color: var(--as-border-control) transparent;
    -webkit-tap-highlight-color: var(--as-tap-highlight);
    /* Sticky chrome never hides focus or content (2.4.11 / 1.4.10, interaction-spec 0.1 M-4). */
    scroll-padding-block-start: calc(var(--as-topbar-h) + var(--as-banner-stack-h));
    scroll-padding-block-end: env(safe-area-inset-bottom);
  }
  @media (prefers-reduced-motion: no-preference) {
    html:not([data-motion="off"]) {
      scroll-behavior: smooth;
    }
  }
  body {
    min-block-size: 100dvh;
    font-size: var(--as-fs-base);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
  }
  ::selection {
    background: var(--as-accent-soft);
    color: var(--as-text-primary);
  }
  h1,
  h2,
  h3,
  h4 {
    font-family: var(--as-font-display);
    line-height: var(--as-lh-snug);
    font-weight: var(--as-fw-semibold);
    text-wrap: balance;
  }
  h1,
  h2 {
    letter-spacing: var(--as-ls-display);
  }
  :lang(hi) h1,
  :lang(hi) h2,
  :lang(hi) h3,
  :lang(hi) h4 {
    line-height: var(--as-lh-tight-deva);
    letter-spacing: normal;
  }
  p,
  li,
  dd {
    text-wrap: pretty;
  }
  code,
  kbd,
  samp {
    font-family: var(--as-font-mono);
  }
  /* Links inside text are always underlined; hover/focus thickens, colour never changes (B-1, m-4). */
  a {
    color: var(--as-accent);
    text-decoration-line: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 0.15em;
  }
  a:hover,
  a:focus-visible {
    text-decoration-thickness: 2px;
  }
  /* Focus: two-stop ring + transparent outline that forced-colors paints (6.8, M-2). */
  :focus-visible {
    outline: 2px solid transparent;
    outline-offset: 2px;
    box-shadow: var(--as-focus-ring);
    border-radius: var(--as-r-xs);
  }
  [tabindex="-1"]:focus {
    outline: none;
  }
  [tabindex="-1"]:focus-visible {
    outline: 2px solid transparent;
    box-shadow: var(--as-focus-ring);
  }
  ::placeholder {
    color: var(--as-text-subtle);
    opacity: 1;
  }
  .as-tabular {
    font-variant-numeric: tabular-nums;
  }
  .as-sr-only {
    position: absolute;
    inline-size: 1px;
    block-size: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip-path: inset(50%);
    white-space: nowrap;
    border: 0;
  }
}
