/* Base structure & typography — relocated from Pico (#55/#110):
   Document (box-sizing, responsive root font-size, body), landmarks/section, container, grid, overflow,
   typography (headings/link/hr/small/mark/blockquote), table, code, figure, accordion (<details>),
   card (<article>), dropdown. Same rules + --pico-* vars => identical. Owned in-app for #111.
   Loaded first (base) so app component CSS overrides it. */

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

::before,
::after {
  text-decoration: inherit;
  vertical-align: inherit;
}

:where(:root),
:where(:host) {
  -webkit-tap-highlight-color: transparent;
  -webkit-text-size-adjust: 100%;
  -moz-text-size-adjust: 100%;
  text-size-adjust: 100%;
  background-color: var(--pico-background-color);
  color: var(--pico-color);
  font-weight: var(--pico-font-weight);
  font-size: var(--pico-font-size);
  line-height: var(--pico-line-height);
  font-family: var(--pico-font-family);
  text-underline-offset: var(--pico-text-underline-offset);
  text-rendering: optimizeLegibility;
  overflow-wrap: break-word;
  -moz-tab-size: 4;
  -o-tab-size: 4;
  tab-size: 4;
}

/**
 * Landmarks
 */
body {
  width: var(--toddyi-size-100pct);
  margin: 0;
}

main {
  display: block;
}

body > header,
body > main,
body > footer {
  padding-block: var(--pico-block-spacing-vertical);
}

/**
 * Section
 */
section {
  margin-bottom: var(--pico-block-spacing-vertical);
}

/**
 * Container
 */
.container,
.container-fluid {
  width: var(--toddyi-size-100pct);
  margin-inline-end: auto;
  margin-inline-start: auto;
  padding-inline-end: var(--pico-spacing);
  padding-inline-start: var(--pico-spacing);
}

@media (min-width: 576px) {
  .container {
    max-width: var(--toddyi-size-510px);
    padding-inline-end: 0;
    padding-inline-start: 0;
  }
}
@media (min-width: 768px) {
  .container {
    max-width: var(--toddyi-size-700px);
  }
}
@media (min-width: 1024px) {
  .container {
    max-width: var(--toddyi-size-950px);
  }
}
@media (min-width: 1280px) {
  .container {
    max-width: var(--toddyi-size-1200px);
  }
}
@media (min-width: 1536px) {
  .container {
    max-width: var(--toddyi-size-1450px);
  }
}

/**
 * Grid
 * Minimal grid system with auto-layout columns
 */
.grid {
  grid-column-gap: var(--pico-grid-column-gap);
  grid-row-gap: var(--pico-grid-row-gap);
  display: grid;
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .grid {
    grid-template-columns: repeat(auto-fit, minmax(0%, 1fr));
  }
}
.grid > * {
  min-width: 0;
}

/**
 * Overflow auto
 */
.overflow-auto {
  overflow: auto;
}

