@font-face{font-family:IBM Plex Sans Thai;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-thai-thai-400-normal.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-thai-thai-500-normal.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-thai-thai-600-normal.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-weight:700;font-display:swap;src:url(/fonts/ibm-plex-sans-thai-thai-700-normal.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:IBM Plex Sans Thai;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-thai-latin-400-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans Thai;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-thai-latin-500-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans Thai;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-thai-latin-600-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans Thai;font-weight:700;font-display:swap;src:url(/fonts/ibm-plex-sans-thai-latin-700-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-400-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-500-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-600-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Sans;font-weight:700;font-display:swap;src:url(/fonts/ibm-plex-sans-latin-700-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2")}@font-face{font-family:IBM Plex Mono;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2")}:root{--bg: #f7f5f0;--surface: #ffffff;--surface-sunken: #f0eee7;--ink: #1e2420;--ink-soft: #4a5450;--ink-faint: #7c8580;--border: #dedace;--border-soft: #eae7de;--accent: #2e7d5b;--accent-dark: #1e5a41;--accent-bg: #e8f3ee;--accent-ink: #1e5a41;--good-bg: #e8f3ee;--good-ink: #1e5a41;--bad-bg: #fbeceb;--bad-ink: #a3382b;--shadow: 0 1px 2px rgba(30, 36, 32, .04), 0 8px 24px -12px rgba(30, 36, 32, .12);--font-body: "IBM Plex Sans Thai", "IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", Consolas, monospace;--cat-0: #2e7d5b;--cat-1: #c9873d;--cat-2: #3d6fa3;--cat-3: #a3547f;--cat-4: #7a8a3d;--cat-5: #b0603a;--cat-6: #5b6b8c;--cat-7: #8a6d3b}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #14171a;--surface: #1b1f22;--surface-sunken: #21262a;--ink: #eceeec;--ink-soft: #abb3af;--ink-faint: #767f7b;--border: #33393d;--border-soft: #282e32;--accent: #4caf82;--accent-dark: #7bc9a2;--accent-bg: #1b2d25;--accent-ink: #7bc9a2;--good-bg: #1b2d25;--good-ink: #7bc9a2;--bad-bg: #2c1a18;--bad-ink: #e08d80;--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px -12px rgba(0, 0, 0, .5)}}*{box-sizing:border-box}html,body{height:100%}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:15.5px;line-height:1.55;-webkit-font-smoothing:antialiased}h1,h2,h3{font-weight:700;margin:0}a{color:var(--accent-ink)}button,input,select,textarea{font:inherit}input:focus-visible,button:focus-visible,select:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.card{background:var(--surface);border:1px solid var(--border-soft);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow)}label{display:block;font-size:13px;font-weight:600;color:var(--ink-soft);margin:0 0 5px}.input{width:100%;color:var(--ink);background:var(--surface-sunken);border:1px solid var(--border-soft);border-radius:9px;padding:10px 12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font-weight:600;border-radius:999px;padding:10px 20px;cursor:pointer;border:1px solid var(--border);background:var(--surface);color:var(--ink)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-dark);border-color:var(--accent-dark)}.btn.ghost{background:transparent;border-color:transparent;color:var(--ink-soft)}.btn.danger{color:var(--bad-ink);border-color:transparent;background:transparent}.btn.block{width:100%}.pos{color:var(--good-ink)}.neg{color:var(--bad-ink)}.muted{color:var(--ink-faint)}.input-group{display:flex;align-items:stretch;border:1px solid var(--border-soft);border-radius:9px;background:var(--surface-sunken);overflow:hidden}.input-group:focus-within{outline:2px solid var(--accent);outline-offset:2px}.input-group .prefix{display:flex;align-items:center;padding:0 4px 0 12px;color:var(--ink-faint);font-family:var(--font-mono);font-size:14px;-webkit-user-select:none;user-select:none}.input-group input{flex:1;border:none;background:transparent;color:var(--ink);padding:10px 12px 10px 0;font-family:var(--font-mono)}.input-group input:focus-visible{outline:none}.field{margin-bottom:14px}.err-text{color:var(--bad-ink);font-size:13px;margin-top:6px}
