@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/noto-sans-thai-400-thai.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/noto-sans-thai-400-latin.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/noto-sans-thai-400-latin-2.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:Noto Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(../../../fonts/noto-sans-thai-500-thai.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(../../../fonts/noto-sans-thai-500-latin.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:500;font-display:swap;src:url(../../../fonts/noto-sans-thai-500-latin-5.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:Noto Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(../../../fonts/noto-sans-thai-600-thai.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(../../../fonts/noto-sans-thai-600-latin.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(../../../fonts/noto-sans-thai-600-latin-8.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:Noto Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(../../../fonts/noto-sans-thai-700-thai.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(../../../fonts/noto-sans-thai-700-latin.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(../../../fonts/noto-sans-thai-700-latin-11.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:Noto Sans Thai;font-style:normal;font-weight:800;font-display:swap;src:url(../../../fonts/noto-sans-thai-800-thai.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:800;font-display:swap;src:url(../../../fonts/noto-sans-thai-800-latin.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Noto Sans Thai;font-style:normal;font-weight:800;font-display:swap;src:url(../../../fonts/noto-sans-thai-800-latin-14.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}:root{--gr-yellow: #ffc107;--gr-yellow-hover: #eeb200;--gr-yellow-soft: #fff8e6;--gr-bg: #f6f5f0;--gr-text: #2a3038;--gr-text-2: #4a5260;--gr-muted: #77808c;--gr-border: #ddd9cf;--gr-border-soft: #efede6;--gr-surface: #ffffff;--gr-surface-2: #faf9f5;--gr-success: #2b9560;--gr-success-bg: #e2f5ea;--gr-warn: #d99e00;--gr-danger: #cf4b58;--gr-danger-bg: #fdeeee;--gr-topbar: rgba(255, 255, 255, .85);--gr-radius: 18px;--gr-radius-sm: 12px;--gr-radius-pill: 999px;--gr-shadow: 0 2px 8px rgba(60, 50, 30, .04), 0 10px 32px rgba(60, 50, 30, .06);--gr-shadow-hover: 0 4px 12px rgba(60, 50, 30, .06), 0 20px 44px rgba(60, 50, 30, .1);--gr-ease: cubic-bezier(.25, .75, .3, 1);--gr-spring: cubic-bezier(.34, 1.35, .5, 1);--gr-fast: .22s;--gr-slow: .5s;--gr-ring: 0 0 0 3px rgba(255, 193, 7, .28)}.theme-dark{--gr-bg: #0f172a;--gr-text: #f1f5f9;--gr-text-2: #cbd5e1;--gr-muted: #94a3b8;--gr-border: #334155;--gr-border-soft: #263449;--gr-surface: #1e293b;--gr-surface-2: #172033;--gr-success: #34d399;--gr-success-bg: #064e3b;--gr-warn: #fbbf24;--gr-danger: #f87171;--gr-danger-bg: #4c1d1d;--gr-shadow: 0 4px 16px rgba(0, 0, 0, .4);--gr-shadow-hover: 0 8px 28px rgba(0, 0, 0, .5)}:root[data-tone=clean]{--gr-bg: #eaeef2;--gr-text: #182029;--gr-text-2: #44515e;--gr-muted: #7a8794;--gr-border: #d3dbe3;--gr-border-soft: #e6ebf0;--gr-surface: #ffffff;--gr-surface-2: #f3f6f9;--gr-success: #1f9d63;--gr-success-bg: #dcf1e6;--gr-danger: #d6455a;--gr-danger-bg: #fbe4e7;--gr-yellow-soft: #fff2d4;--gr-shadow: 0 2px 8px rgba(24, 40, 55, .05), 0 12px 30px rgba(24, 40, 55, .08);--gr-shadow-hover: 0 4px 14px rgba(24, 40, 55, .07), 0 22px 46px rgba(24, 40, 55, .12)}:root[data-tone=dark]{--gr-bg: #14161b;--gr-text: #eef1f6;--gr-text-2: #c3cbd7;--gr-muted: #8a94a4;--gr-border: #2c313d;--gr-border-soft: #242833;--gr-surface: #1c1f27;--gr-surface-2: #232733;--gr-success: #4caf7d;--gr-success-bg: #1e3a2c;--gr-warn: #e0a33a;--gr-danger: #ef6b5e;--gr-danger-bg: #3a2320;--gr-yellow-soft: #352f18;--gr-topbar: rgba(28, 31, 39, .82);--gr-shadow: 0 4px 16px rgba(0, 0, 0, .45);--gr-shadow-hover: 0 8px 30px rgba(0, 0, 0, .6)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%;font-family:Noto Sans Thai,Leelawadee UI,Segoe UI,Tahoma,sans-serif;color:var(--gr-text);background:var(--gr-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{color:inherit}a{color:#0969da;text-decoration:none}::selection{background:#ffc10759}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#77808c59;border-radius:999px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background-color:#77808c8c}@keyframes gr-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes gr-fade-in{0%{opacity:0}to{opacity:1}}@keyframes gr-pop{0%{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes gr-slide-in{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0)}}@keyframes gr-pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes gr-shimmer{to{background-position:-200% 0}}.page-title{margin:0 0 1rem;font-size:1.45rem;font-weight:700;letter-spacing:-.01em}.card-box{background:var(--gr-surface);border-radius:var(--gr-radius);box-shadow:var(--gr-shadow);padding:1.35rem 1.55rem;margin-bottom:1.25rem;animation:gr-fade-up var(--gr-slow) var(--gr-ease) both}.card-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.card-head h2{margin:0;font-size:1.05rem;font-weight:700}.has-view-toggle{position:relative}.has-view-toggle .card-head{padding-right:6rem}@media (max-width: 640px){.has-view-toggle .card-head{padding-right:0}}.data-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.9rem}.data-card{position:relative;display:flex;flex-direction:column;gap:.55rem;background:var(--gr-surface);border:1px solid var(--gr-border-soft);border-radius:16px;padding:1rem 1.1rem;box-shadow:var(--gr-shadow);transition:transform var(--gr-fast) var(--gr-ease),box-shadow var(--gr-fast) var(--gr-ease);animation:gr-pop .4s var(--gr-spring) both}.data-card:hover{transform:translateY(-3px);box-shadow:var(--gr-shadow-hover)}.data-card .dc-title{font-size:1rem;font-weight:700;line-height:1.25}.data-card .dc-sub{color:var(--gr-muted);font-size:.83rem}.data-card .dc-seq{position:absolute;top:.8rem;right:.9rem;min-width:1.5rem;height:1.5rem;padding:0 .4rem;display:inline-grid;place-items:center;border-radius:999px;background:var(--gr-surface-2);color:var(--gr-muted);font-size:.78rem;font-weight:700}.data-card .dc-actions{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:auto;padding-top:.2rem}.data-grid .dc-empty{grid-column:1 / -1;text-align:center;color:var(--gr-muted);padding:2rem}.btn{border:none;border-radius:var(--gr-radius-pill);padding:.55rem 1.2rem;font-weight:600;font-size:.9rem;cursor:pointer;font-family:inherit;white-space:nowrap;transition:background var(--gr-fast) var(--gr-ease),box-shadow var(--gr-fast) var(--gr-ease),transform var(--gr-fast) var(--gr-ease)}.btn:hover{transform:translateY(-1.5px);box-shadow:0 8px 20px #3c321e21}.btn:active{transform:translateY(0) scale(.96);box-shadow:none}.btn:focus-visible{outline:none;box-shadow:var(--gr-ring)}.btn-primary{background:var(--gr-yellow);color:#23272b}.btn-primary:hover{background:var(--gr-yellow-hover)}.btn-sm{padding:.32rem .8rem;font-size:.82rem}.btn-light{background:#efede6;color:var(--gr-text)}.btn-light:hover{background:#e7e4da}.btn-danger{background:var(--gr-danger-bg);color:var(--gr-danger)}.data-table{width:100%;border-collapse:collapse;font-size:.92rem}.data-table th,.data-table td{text-align:left;padding:.6rem .75rem;border-bottom:1px solid var(--gr-border-soft)}.data-table th{color:var(--gr-muted);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.data-table td{transition:background var(--gr-fast) var(--gr-ease);font-variant-numeric:tabular-nums}.data-table tbody tr{animation:gr-fade-in var(--gr-slow) var(--gr-ease) both}.data-table tr:hover td{background:var(--gr-surface-2)}.form-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end}.field{display:flex;flex-direction:column;gap:.3rem}.field label{font-size:.82rem;font-weight:600;color:var(--gr-muted)}.field input,.field select{padding:.5rem .75rem;border:1px solid var(--gr-border);border-radius:var(--gr-radius-sm);font-size:.95rem;font-family:inherit;background:var(--gr-surface);color:inherit;transition:border-color var(--gr-fast) var(--gr-ease),box-shadow var(--gr-fast) var(--gr-ease)}.field input:focus,.field select:focus{outline:none;border-color:var(--gr-yellow);box-shadow:var(--gr-ring)}.badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.78rem;font-weight:600}.badge-on{background:var(--gr-success-bg);color:var(--gr-success)}.badge-off{background:#f0efe9;color:var(--gr-muted)}.err{background:var(--gr-danger-bg);color:var(--gr-danger);border-radius:var(--gr-radius-sm);padding:.55rem .8rem;margin-bottom:.75rem;font-size:.9rem;animation:gr-pop var(--gr-fast) var(--gr-ease) both}.skel{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--gr-border-soft) 25%,var(--gr-surface-2) 45%,var(--gr-border-soft) 65%);background-size:200% 100%;animation:gr-shimmer 1.4s infinite linear;margin:.45rem 0}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
