@font-face{font-family:"Plex Thai";font-weight:400;font-display:swap;src:url(/fonts/plex-thai-400.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:"Plex Thai";font-weight:500;font-display:swap;src:url(/fonts/plex-thai-500.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:"Plex Thai";font-weight:600;font-display:swap;src:url(/fonts/plex-thai-600.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:"Plex Thai";font-weight:700 900;font-display:swap;src:url(/fonts/plex-thai-700.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:"Plex Thai";font-weight:400;font-display:swap;src:url(/fonts/plex-latin-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+0E3F}
@font-face{font-family:"Plex Thai";font-weight:500;font-display:swap;src:url(/fonts/plex-latin-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+0E3F}
@font-face{font-family:"Plex Thai";font-weight:600;font-display:swap;src:url(/fonts/plex-latin-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+0E3F}
@font-face{font-family:"Plex Thai";font-weight:700 900;font-display:swap;src:url(/fonts/plex-latin-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD,U+0E3F}
@font-face{font-family:"Prompt";font-weight:500;font-display:swap;src:url(/fonts/prompt-thai-500.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:"Prompt";font-weight:600;font-display:swap;src:url(/fonts/prompt-thai-600.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:"Prompt";font-weight:700 900;font-display:swap;src:url(/fonts/prompt-thai-700.woff2) format("woff2");unicode-range:U+0E01-0E5B,U+200C-200D,U+25CC}
@font-face{font-family:"Prompt";font-weight:500;font-display:swap;src:url(/fonts/prompt-latin-500.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+0E3F}
@font-face{font-family:"Prompt";font-weight:600;font-display:swap;src:url(/fonts/prompt-latin-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+0E3F}
@font-face{font-family:"Prompt";font-weight:700 900;font-display:swap;src:url(/fonts/prompt-latin-700.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+2000-206F,U+20AC,U+2122,U+2212,U+FEFF,U+0E3F}
/* NS system® design system — premium dark + accent (theme presets), glass cards, Prompt/Plex Thai (self-hosted) */
:root{--ac:#e8bb4c;--ac2:#ffd97a;--ac3:#b98a22;--acr:232,187,76;--gold:var(--ac);--gold2:var(--ac2);--gold3:var(--ac3);
 --bg:#07070d;--bg2:#0e0d16;--card:#16131f;--card2:#1e1a2c;--line:rgba(var(--acr),.32);--line2:rgba(255,255,255,.085);--pur:#a77bff;--pur2:#6c3fd1;--blue:#4c8dff;--txt:#f6f0e3;--mut:#a09db4;--ok:#35d49a;--red:#ff5a62;--on:#1a1204;
 --grad:linear-gradient(180deg,var(--ac2) 0%,var(--ac) 52%,var(--ac3) 100%);--shine:linear-gradient(120deg,var(--ac3),var(--ac2) 45%,var(--ac) 70%,var(--ac3));
 --f:"Plex Thai","Noto Sans Thai",system-ui,sans-serif;--fh:"Prompt","Plex Thai",system-ui,sans-serif;--r:20px;--sh:0 18px 48px rgba(0,0,0,.5)}
[data-theme=amethyst]{--ac:#b58cff;--ac2:#dcc8ff;--ac3:#7a4fd6;--acr:181,140,255;--on:#140a2a}
[data-theme=rose]{--ac:#ee9a8a;--ac2:#ffd0c4;--ac3:#b8604f;--acr:238,154,138;--on:#2a0e08}
[data-theme=emerald]{--ac:#3fd6a2;--ac2:#9affd8;--ac3:#16895f;--acr:63,214,162;--on:#02170f}
[data-theme=sapphire]{--ac:#5aa9ff;--ac2:#b6dbff;--ac3:#2a64c0;--acr:90,169,255;--on:#04122a}
[data-theme=crimson]{--ac:#ff5d73;--ac2:#ffa6b2;--ac3:#b81c38;--acr:255,93,115;--on:#2a020a}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;background:var(--bg);color:var(--txt);font-family:var(--f);-webkit-font-smoothing:antialiased}
body{background:radial-gradient(900px 520px at 8% -12%,rgba(var(--acr),.16),transparent 60%),radial-gradient(820px 620px at 112% 18%,rgba(108,63,209,.2),transparent 60%),radial-gradient(700px 500px at 50% 120%,rgba(var(--acr),.07),transparent 60%),#07070d;background-attachment:fixed}
button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}
input,textarea,select{font:inherit;color:var(--txt)}
a{color:var(--ac2)}
.h{font-family:var(--fh);font-weight:600}
.gold{color:var(--ac2)}.mut{color:var(--mut)}.ell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gt{background:var(--shine);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:var(--ac)}
.row{display:flex;align-items:center;gap:10px}.grow{flex:1;min-width:0}
.card{position:relative;background:linear-gradient(180deg,rgba(32,28,46,.82),rgba(16,14,24,.92));border:1px solid var(--line2);border-radius:var(--r);padding:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 10px 30px rgba(0,0,0,.35)}
.card.g{border-color:var(--line);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 0 1px rgba(var(--acr),.06),0 0 40px rgba(var(--acr),.07),var(--sh)}
.glass{background:rgba(22,19,32,.62);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line2)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:0 18px;border-radius:14px;border:1px solid var(--line);color:var(--ac2);font-weight:600;background:rgba(var(--acr),.05);transition:transform .12s,filter .2s,box-shadow .2s}
.btn:active{transform:scale(.96)}.btn:hover{filter:brightness(1.15)}
.btn.pri{background:var(--grad);color:var(--on);border:0;font-weight:700;box-shadow:inset 0 1px 0 rgba(255,255,255,.55),inset 0 -2px 0 rgba(0,0,0,.18),0 10px 26px rgba(var(--acr),.28)}
.btn.red{border-color:rgba(255,90,98,.5);color:#ff9aa0}
.btn.sm{min-height:36px;padding:0 13px;font-size:14px;border-radius:11px}
.btn[disabled]{opacity:.4;pointer-events:none}
.inp{width:100%;min-height:50px;padding:10px 15px;border-radius:14px;background:rgba(5,5,10,.7);border:1px solid var(--line2);outline:0;transition:border .2s,box-shadow .2s}
.inp:focus{border-color:var(--ac);box-shadow:0 0 0 3px rgba(var(--acr),.16)}
label.l{display:block;font-size:13px;color:var(--mut);margin:14px 0 6px;letter-spacing:.2px}
.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid var(--line);color:var(--ac2);background:rgba(var(--acr),.09);white-space:nowrap}
.badge.ok{color:var(--ok);border-color:rgba(53,212,154,.4);background:rgba(53,212,154,.08)}
.badge.pur{color:#cdb4ff;border-color:rgba(167,123,255,.45);background:rgba(167,123,255,.1)}
.badge.red{color:#ff9aa0;border-color:rgba(255,90,98,.4);background:rgba(255,90,98,.08)}
.badge.mut{color:var(--mut);border-color:var(--line2);background:none}
.num{display:inline-grid;place-items:center;min-width:32px;height:32px;border-radius:50%;background:var(--grad);color:var(--on);font-weight:700;font-family:var(--fh);box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 4px 12px rgba(var(--acr),.3)}
.logo{border-radius:50%;object-fit:cover;box-shadow:0 0 0 2px var(--ac3),0 0 24px rgba(var(--acr),.32);background:#0c0b14}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%);background:rgba(28,24,42,.96);border:1px solid var(--line);padding:12px 18px;border-radius:14px;z-index:99;max-width:90vw;box-shadow:0 10px 30px rgba(0,0,0,.6)}
.lang{display:inline-flex;border:1px solid var(--line);border-radius:999px;overflow:hidden}.lang button{padding:5px 12px;font-size:13px;color:var(--mut)}.lang button.on{background:var(--grad);color:var(--on);font-weight:700}
@keyframes flash{0%{box-shadow:0 0 0 0 rgba(var(--acr),.9)}100%{box-shadow:0 0 0 24px rgba(var(--acr),0)}}
@keyframes pop{0%{transform:scale(.6);opacity:0}70%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
@keyframes bob{50%{transform:translateY(-6px)}}
@keyframes rise{from{transform:translateY(12px);opacity:0}}
.flash{animation:flash 1s ease-out 2}
.gg .ic{display:block;width:76px;height:76px;margin:0 auto 2px}.gg .ic .gimg{width:100%;height:100%}.gbig>span{width:84px;height:84px;display:block;flex:none}.gbig .gimg{width:100%;height:100%}.gi2{display:inline-block;width:30px;height:30px;vertical-align:middle}.gi2 .gimg{width:100%;height:100%}
.gimg{display:block}
.lg{max-width:340px;margin:8vh auto;text-align:center;padding:20px}.lg h1{margin:14px 0 4px;font-size:24px}
.dots{display:flex;gap:14px;justify-content:center;margin:22px 0}.dots i{width:16px;height:16px;border-radius:50%;border:2px solid var(--ac)}.dots i.on{background:var(--ac);box-shadow:0 0 14px var(--ac)}
.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.pad button{height:64px;border-radius:18px;background:linear-gradient(180deg,var(--card2),var(--card));border:1px solid var(--line2);font-size:24px;font-family:var(--fh);box-shadow:inset 0 1px 0 rgba(255,255,255,.06)}.pad button:active{background:var(--grad);color:var(--on)}
.err{color:#ff9aa0;margin-top:12px;min-height:20px}
.nsmark{display:inline-flex;align-items:center;gap:10px;font-family:var(--fh);font-weight:700;letter-spacing:.5px;text-decoration:none;color:var(--txt)}.nsmark svg{width:34px;height:34px;flex:none}.nsmark b{font-weight:700;background:var(--shine);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:rgba(var(--acr),.25);border-radius:8px}
@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition:none!important}}
.clz{min-height:80vh;display:grid;place-items:center;padding:20px}.clz-in{max-width:440px;text-align:center;padding:34px 26px}.clz-in h1{margin:16px 0 8px;font-size:26px}.clz-in p{font-size:17px;line-height:1.6;color:var(--txt)}.clz-ic{display:grid;place-items:center}
.ico{display:inline-block;vertical-align:-.2em;flex:none}
