:root{color-scheme:light;--surface-0: #f7f5f1;--surface-1: #fcfcfb;--surface-2: #f0ece4;--surface-3: #e5dfd3;--ink-1: #1c1917;--ink-2: #57534e;--ink-3: #8a827a;--line-1: #ded7ca;--line-2: #c9c0af;--brand: #7a4b12;--brand-soft: #f3e9dc;--brand-ink: #5c3a10;--series-1: #2a78d6;--series-2: #eb6834;--series-3: #1baf7a;--series-4: #eda100;--series-5: #e87ba4;--series-6: #008300;--series-7: #4a3aa7;--series-8: #e34948;--seq-0: #eceff2;--seq-1: #cde2fb;--seq-2: #9ec5f4;--seq-3: #6da7ec;--seq-4: #3987e5;--seq-5: #256abf;--seq-6: #184f95;--seq-7: #0d366b;--status-warn: #fab219;--radius: 10px;--shadow-1: 0 1px 2px rgb(28 25 23 / 6%), 0 1px 3px rgb(28 25 23 / 4%);--shadow-2: 0 4px 16px rgb(28 25 23 / 10%)}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--surface-0: #14130f;--surface-1: #1f1d19;--surface-2: #2a2721;--surface-3: #38342c;--ink-1: #f5f1e8;--ink-2: #c3bcae;--ink-3: #918a7d;--line-1: #3a3630;--line-2: #4d4840;--brand: #d8a86a;--brand-soft: #33291c;--brand-ink: #e8c48f;--series-1: #3987e5;--series-2: #d95926;--series-3: #199e70;--series-4: #c98500;--series-5: #d55181;--series-6: #008300;--series-7: #9085e9;--series-8: #e66767;--seq-0: #2a2721;--seq-1: #0d366b;--seq-2: #184f95;--seq-3: #256abf;--seq-4: #3987e5;--seq-5: #6da7ec;--seq-6: #9ec5f4;--seq-7: #cde2fb;--shadow-1: 0 1px 2px rgb(0 0 0 / 40%);--shadow-2: 0 4px 16px rgb(0 0 0 / 45%)}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--surface-0);color:var(--ink-1);font-family:Noto Sans Thai,Sarabun,IBM Plex Sans Thai,system-ui,-apple-system,Segoe UI,sans-serif;font-size:15px;line-height:1.55;font-variant-numeric:tabular-nums}a{color:var(--brand-ink);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;line-height:1.3;font-weight:650;letter-spacing:-.01em}h1{font-size:1.6rem}h2{font-size:1.18rem}h3{font-size:1rem}button{font:inherit}.card{background:var(--surface-1);border:1px solid var(--line-1);border-radius:var(--radius);box-shadow:var(--shadow-1)}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 16px 0}.card-head p{margin:2px 0 0;color:var(--ink-3);font-size:.82rem}.card-body{padding:14px 16px 16px}.muted{color:var(--ink-3)}.small{font-size:.82rem}.btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:8px;border:1px solid var(--line-2);background:var(--surface-1);color:var(--ink-1);cursor:pointer;font-size:.88rem}.btn:hover{background:var(--surface-2)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff}.btn.primary:hover{filter:brightness(1.08)}.btn:disabled{opacity:.45;cursor:default}.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line-1);font-size:.78rem;color:var(--ink-2)}.chip.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand-ink)}select,input[type=text],input[type=search],input[type=number]{font:inherit;color:var(--ink-1);background:var(--surface-1);border:1px solid var(--line-2);border-radius:8px;padding:7px 10px;min-width:0;width:100%}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{outline:2px solid var(--series-1);outline-offset:2px}label.field{display:grid;gap:4px;font-size:.78rem;color:var(--ink-3)}.table-wrap{overflow-x:auto}table.data{border-collapse:collapse;width:100%;font-size:.88rem}table.data th,table.data td{padding:8px 12px;text-align:left;white-space:nowrap;border-bottom:1px solid var(--line-1)}table.data th{position:sticky;top:0;z-index:1;background:var(--surface-2);color:var(--ink-2);font-weight:600;font-size:.8rem}table.data td.num,table.data th.num{text-align:right}table.data tbody tr:hover{background:var(--surface-2)}.grid{display:grid;gap:14px}.skeleton{background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer 1.3s linear infinite;border-radius:6px}@keyframes shimmer{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}*{transition:none!important}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
