/* SDOS v2 base: fonts, reset, typography, forms, utilities */
@layer base {
  @font-face {
    font-family: "IBM Plex Sans Thai";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("/assets/plex-sans-thai-400-thai-ccf74751.woff2") format("woff2");
    unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
  }
  @font-face {
    font-family: "IBM Plex Sans Thai";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("/assets/plex-sans-thai-400-latin-c90204cc.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: "IBM Plex Sans Thai";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("/assets/plex-sans-thai-500-thai-2c3d730b.woff2") format("woff2");
    unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
  }
  @font-face {
    font-family: "IBM Plex Sans Thai";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("/assets/plex-sans-thai-500-latin-770a5fd8.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: "IBM Plex Sans Thai";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("/assets/plex-sans-thai-600-thai-8eb1e232.woff2") format("woff2");
    unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
  }
  @font-face {
    font-family: "IBM Plex Sans Thai";
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url("/assets/plex-sans-thai-600-latin-471f960c.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: "IBM Plex Sans Thai";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("/assets/plex-sans-thai-700-thai-f8fe3e8b.woff2") format("woff2");
    unicode-range: U+02D7, U+0303, U+0331, U+0E01-0E5B, U+200C-200D, U+25CC;
  }
  @font-face {
    font-family: "IBM Plex Sans Thai";
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url("/assets/plex-sans-thai-700-latin-57268bb1.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: "IBM Plex Mono";
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url("/assets/plex-mono-400-latin-d13bb5b4.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  @font-face {
    font-family: "IBM Plex Mono";
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url("/assets/plex-mono-500-latin-deab9c2b.woff2") format("woff2");
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }

  * { box-sizing: border-box; }
  html, body { margin: 0; padding: 0; }
  body {
    background: var(--bg);
    color: var(--text);
    font-family: var(--font-sans);
    font-size: 13.5px;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
  }
  h1 { font-size: 20px; font-weight: 700; line-height: 1.25; margin: 0 0 4px; }
  h2 { font-size: 15px; font-weight: 700; margin: 22px 0 10px; }
  h3 { font-size: 14px; font-weight: 700; margin: 16px 0 8px; }
  a { color: var(--primary); text-decoration: none; }
  a:hover { text-decoration: underline; }
  code, .mono { font-family: var(--font-mono); font-size: 0.95em; }
  ::placeholder { color: var(--muted); }

  input[type="text"], input[type="email"], input[type="password"], input[type="search"],
  input[type="number"], input[type="date"], input[type="time"], select, textarea {
    font-family: inherit; font-size: 13px;
    color: var(--text); background: var(--surface);
    border: 1px solid var(--line-strong); border-radius: var(--r-sm);
    padding: 8px 10px;
  }
  input:focus-visible, select:focus-visible, textarea:focus-visible, button:focus-visible {
    outline: 2px solid var(--primary); outline-offset: 1px;
  }
  button, input[type="submit"] { font-family: inherit; cursor: pointer; }

  .muted { color: var(--muted); }
  .small { font-size: 12px; }
  .right { text-align: right; }
  .nowrap { white-space: nowrap; }
  .source { color: var(--muted); font-size: 13px; }
  .empty { text-align: center; color: var(--muted); padding: 30px 0; }
  @media print { .no-print { display: none !important; } }
}
