/* css/base.css */
@import url('https://fonts.googleapis.com/css2?family=Anuphan:wght@300;400;500;600;700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@24,400,0,0');

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

html {
  font-family: var(--font-family-base);
  font-size: var(--font-size-body-l);
  line-height: var(--line-height-body-l);
  color: var(--foreground-neutral-default);
  background-color: var(--canvas-default);
  -webkit-font-smoothing: antialiased;
}

body { min-height: 100vh; }

.text-header {
  font-size: var(--font-size-headline-s);
  line-height: var(--line-height-headline-s);
  font-weight: var(--font-weight-600);
  color: var(--foreground-neutral-default);
}
.text-subheader {
  font-size: var(--font-size-title-m);
  line-height: var(--line-height-title-m);
  font-weight: var(--font-weight-400);
  color: var(--foreground-neutral-light);
}
.text-title {
  font-size: var(--font-size-title-m);
  line-height: var(--line-height-title-m);
  font-weight: var(--font-weight-600);
  color: var(--foreground-neutral-default);
}
.text-subtitle {
  font-size: var(--font-size-body-m);
  line-height: var(--line-height-body-m);
  font-weight: var(--font-weight-400);
  color: var(--foreground-neutral-light);
}
.text-body  { color: var(--foreground-neutral-light); }
.text-muted { color: var(--foreground-neutral-lighter); }
.text-disabled { color: var(--foreground-neutral-lightest); }
.text-primary  { color: var(--foreground-primary-default); }
.text-error    { color: var(--foreground-negative-default); }
.text-success  { color: var(--foreground-positive-default); }
.text-warning  { color: var(--foreground-warning-dark); }

@media (min-width: 1024px) {
  .text-header {
    font-size: var(--font-size-display-s);
    line-height: var(--line-height-display-s);
  }
  .text-subheader, .text-title {
    font-size: var(--font-size-title-l);
    line-height: var(--line-height-title-l);
  }
  .text-subtitle {
    font-size: var(--font-size-body-l);
    line-height: var(--line-height-body-l);
  }
}

.icon {
  font-family: 'Material Symbols Outlined';
  font-style: normal;
  font-size: 24px;
  line-height: 1;
  user-select: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  vertical-align: middle;
  flex-shrink: 0;
}
.icon-sm { font-size: 16px; }
.icon-lg { font-size: 32px; }

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

:focus-visible {
  outline: 2px solid var(--stroke-primary-default);
  outline-offset: 2px;
  border-radius: var(--radius-xs);
}
