@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.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:400;font-display:swap;src:url(/fonts/plex-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:IBM Plex Sans Thai;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plex-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:IBM Plex Sans Thai;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/plex-thai-700-thai.woff2) format("woff2");unicode-range:U+02D7,U+0303,U+0331,U+0E01-0E5B,U+200C-200D,U+25CC}:root{line-height:1.6}body{margin:0;min-width:320px;min-height:100vh}:root{font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{transition:background-color .4s cubic-bezier(.4,0,.2,1),color .4s cubic-bezier(.4,0,.2,1)}.MuiAppBar-root,.MuiDrawer-paper{transition:background-color .4s cubic-bezier(.4,0,.2,1) .05s,color .4s cubic-bezier(.4,0,.2,1) .05s,border-color .4s cubic-bezier(.4,0,.2,1) .05s!important}.MuiPaper-root{transition:background-color .4s cubic-bezier(.4,0,.2,1) .1s,color .4s cubic-bezier(.4,0,.2,1) .1s,border-color .4s cubic-bezier(.4,0,.2,1) .1s!important}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{border-radius:4px;background:#00000026}::-webkit-scrollbar-thumb:hover{background:#00000040}*:focus{outline:none}*:focus-visible{outline:2px solid currentColor;outline-offset:2px;border-radius:2px}a{font-weight:500;text-decoration:inherit}@keyframes spin{to{transform:rotate(360deg)}}.spin-slow{animation:spin 2s linear infinite}.spin{animation:spin .8s linear infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes pulseRed{0%,to{opacity:1}50%{opacity:.5}}@keyframes gradientShift{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes bounceArrow{0%,to{transform:translateY(0)}50%{transform:translateY(4px)}}@keyframes pulse-scale{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes breathe{0%,to{box-shadow:0 0 #10b98100}50%{box-shadow:0 0 6px 1px #10b98140}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slideUpFade{0%{transform:translateY(12px);opacity:0}to{transform:translateY(0);opacity:1}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media print{body *{visibility:hidden}#dashboard-content,#dashboard-content *{visibility:visible}#dashboard-content{position:absolute;left:0;top:0;width:100%}.no-print{display:none!important}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-iteration-count:1!important}.spin,.spin-slow,.MuiCircularProgress-svg,.MuiCircularProgress-circleIndeterminate,.MuiLinearProgress-bar1Indeterminate,.MuiLinearProgress-bar2Indeterminate,.aichat-live{animation-iteration-count:infinite!important}}@keyframes aichat-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}@keyframes aichat-sparkle{0%,to{opacity:.4;transform:rotate(0)}50%{opacity:1;transform:rotate(180deg)}}@keyframes aichat-msg-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes aichat-cursor-blink{0%,to{opacity:1}50%{opacity:0}}
