@font-face{font-family:Kanit;font-style:normal;font-weight:300;font-display:swap;src:url(https://fonts.gstatic.com/s/kanit/v17/nKKU-Go6G5tXcr4-OSWg.ttf) format("truetype");unicode-range:u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/kanit/v17/nKKZ-Go6G5tXcoaS.ttf) format("truetype");unicode-range:u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-weight:500;font-display:swap;src:url(https://fonts.gstatic.com/s/kanit/v17/nKKU-Go6G5tXcr5mOCWg.ttf) format("truetype");unicode-range:u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-weight:600;font-display:swap;src:url(https://fonts.gstatic.com/s/kanit/v17/nKKU-Go6G5tXcr5KPyWg.ttf) format("truetype");unicode-range:u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/kanit/v17/nKKU-Go6G5tXcr4uPiWg.ttf) format("truetype");unicode-range:u+0e01-0e5b,u+200c-200d,u+25cc}@font-face{font-family:Kanit;font-style:normal;font-weight:800;font-display:swap;src:url(https://fonts.gstatic.com/s/kanit/v17/nKKU-Go6G5tXcr4yPSWg.ttf) format("truetype");unicode-range:u+0e01-0e5b,u+200c-200d,u+25cc}*{margin:0;padding:0;box-sizing:border-box}#app,body,html{background:#fff!important;min-height:100vh}#app{font-family:Kanit,Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.sidebar[data-v-754f28fa]{position:relative;width:240px;min-height:100vh;background:#fff;border-right:1px solid #efeffa;display:flex;flex-direction:column;flex-shrink:0;transition:width .28s cubic-bezier(.4,0,.2,1);box-shadow:2px 0 16px rgba(80,60,220,.06)}.sidebar.collapsed[data-v-754f28fa]{width:64px}.toggle-btn[data-v-754f28fa]{position:absolute;top:22px;right:-13px;z-index:20;width:26px;height:26px;border-radius:50%;background:#57a9f4;color:#fff;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:11px;box-shadow:0 2px 8px rgba(91,79,255,.4);transition:background .2s}.toggle-btn[data-v-754f28fa]:hover{background:#3a91d9}.sidebar-inner[data-v-754f28fa]{padding:20px 12px 24px;display:flex;flex-direction:column;gap:20px;overflow:hidden;height:100%;min-height:100vh}.brand[data-v-754f28fa]{display:flex;align-items:center;gap:10px;padding:0 4px 4px}.brand-logo[data-v-754f28fa]{height:24px;width:auto;-o-object-fit:contain;object-fit:contain}.mobile-close-btn[data-v-754f28fa]{display:none;margin-left:auto;width:30px;height:30px;border-radius:8px;border:none;background:#f3f4f6;color:#6b7280;cursor:pointer;font-size:14px;align-items:center;justify-content:center;flex-shrink:0}.mobile-topbar[data-v-754f28fa]{display:none;align-items:center;gap:12px;height:56px;padding:0 16px;background:#fff;border-bottom:1px solid #efeffa;position:sticky;top:0;z-index:900;box-shadow:0 1px 8px rgba(0,0,0,.05)}.mobile-menu-btn[data-v-754f28fa]{width:36px;height:36px;border-radius:9px;border:none;background:#f0f6ff;color:#3a7bd5;font-size:18px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.mobile-brand-logo[data-v-754f28fa]{height:22px;width:auto;-o-object-fit:contain;object-fit:contain}.mobile-backdrop[data-v-754f28fa]{display:none}.nav-tree[data-v-754f28fa]{display:flex;flex-direction:column;gap:2px}.item-icon[data-v-754f28fa]{font-size:15px;flex-shrink:0;width:20px;display:flex;align-items:center;justify-content:center;color:#888}.item-label[data-v-754f28fa]{flex:1;font-size:13.5px;white-space:nowrap;overflow:hidden}.chevron[data-v-754f28fa]{font-size:11px;color:#bbb;flex-shrink:0;transition:transform .2s}.group-header[data-v-754f28fa]{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;cursor:pointer;color:#555;font-weight:600;font-size:13.5px;transition:background .15s,color .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.group-header[data-v-754f28fa]:hover{background:#eef6fe;color:#57a9f4}.group-header--active .item-icon[data-v-754f28fa],.group-header--active[data-v-754f28fa],.group-header:hover .item-icon[data-v-754f28fa]{color:#57a9f4}.child-header[data-v-754f28fa]{display:flex;align-items:center;gap:10px;padding:7px 10px 7px 32px;border-radius:10px;cursor:pointer;color:#666;font-weight:500;font-size:13px;transition:background .15s,color .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.child-header[data-v-754f28fa]:hover{background:#eef6fe;color:#57a9f4}.child-header--active[data-v-754f28fa]{color:#57a9f4;font-weight:600}.child-header--active .item-icon[data-v-754f28fa]{color:#57a9f4}.child-icon[data-v-754f28fa]{color:#999;font-size:14px}.child-item[data-v-754f28fa]{display:flex;align-items:center;gap:10px;padding:7px 10px 7px 32px;border-radius:10px;text-decoration:none;color:#666;font-size:13px;font-weight:500;transition:background .15s,color .15s}.child-item[data-v-754f28fa]:hover{background:#eef6fe;color:#57a9f4}.child-item.router-link-active[data-v-754f28fa]{background:#e8f4fe;color:#57a9f4;font-weight:600}.child-item.router-link-active .item-icon[data-v-754f28fa]{color:#57a9f4}.sub-item[data-v-754f28fa]{display:flex;align-items:center;gap:10px;padding:6px 10px 6px 52px;border-radius:10px;text-decoration:none;color:#888;font-size:13px;font-weight:400;transition:background .15s,color .15s}.sub-item[data-v-754f28fa]:hover{background:#eef6fe;color:#57a9f4}.sub-item.router-link-active[data-v-754f28fa]{background:#e8f4fe;color:#57a9f4;font-weight:600}.sub-bullet[data-v-754f28fa]{font-size:13px;color:#bbb;flex-shrink:0}.sub-item.router-link-active .sub-bullet[data-v-754f28fa]{color:#57a9f4}.logout-btn[data-v-754f28fa]{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:10px;cursor:pointer;color:#e05252;font-weight:600;font-size:13.5px;transition:background .15s,color .15s;-webkit-user-select:none;-moz-user-select:none;user-select:none;margin-top:auto}.logout-btn[data-v-754f28fa]:hover{background:#fef2f2;color:#c0392b}.logout-icon[data-v-754f28fa]{color:#e05252!important}.logout-btn:hover .logout-icon[data-v-754f28fa]{color:#c0392b!important}.role-tag[data-v-754f28fa]{display:flex;align-items:center;gap:8px;padding:7px 10px;border-radius:10px;background:#f0f6ff;color:#3a7bd5;font-weight:600;font-size:12px;text-transform:capitalize;letter-spacing:.2px}.role-tag i[data-v-754f28fa]{font-size:13px;flex-shrink:0}.role-row[data-v-754f28fa]{display:flex;align-items:center;gap:6px}.role-row .role-tag[data-v-754f28fa]{flex:1;min-width:0}.role-action-btn[data-v-754f28fa]{flex-shrink:0;width:30px;height:30px;border-radius:8px;border:1.5px solid #e4edf8;background:#fff;color:#5a6a82;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s,color .15s}.role-action-btn[data-v-754f28fa]:hover{background:#f0f6ff;border-color:#bcd6f9;color:#3a7bd5}.cp-modal[data-v-754f28fa]{background:#fff;border-radius:18px;width:100%;max-width:380px;padding:24px 24px 22px;box-shadow:0 24px 60px rgba(0,0,0,.18)}.cp-modal-header[data-v-754f28fa]{display:flex;align-items:flex-start;gap:12px;margin-bottom:18px}.cp-modal-icon[data-v-754f28fa]{width:40px;height:40px;flex-shrink:0;border-radius:12px;background:#f0f6ff;color:#3a7bd5;display:flex;align-items:center;justify-content:center;font-size:17px}.cp-modal-heading[data-v-754f28fa]{flex:1;min-width:0}.cp-modal-title[data-v-754f28fa]{font-size:15.5px;font-weight:700;color:#1a2233}.cp-modal-sub[data-v-754f28fa]{font-size:12px;color:#8a96a8;margin:3px 0 0;line-height:1.4}.cp-modal-close[data-v-754f28fa]{flex-shrink:0;width:28px;height:28px;border-radius:8px;border:none;background:transparent;color:#9aa5b5;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.cp-modal-close[data-v-754f28fa]:hover{background:#f7f9fc;color:#5a6a82}.cp-modal-body[data-v-754f28fa]{display:flex;flex-direction:column;gap:14px}.cp-field[data-v-754f28fa]{display:flex;flex-direction:column;gap:6px}.cp-field label[data-v-754f28fa]{font-size:12.5px;font-weight:600;color:#3a4557}.cp-req[data-v-754f28fa]{color:#e05252}.cp-field input[data-v-754f28fa]{height:40px;border-radius:10px;border:1.5px solid #e4edf8;padding:0 12px;font-size:13px;color:#1a2233;outline:none;transition:border-color .15s;font-family:inherit}.cp-field input[data-v-754f28fa]:focus{border-color:#57a9f4}.cp-error[data-v-754f28fa]{display:flex;align-items:center;gap:6px;padding:9px 12px;border-radius:10px;background:#fef2f2;color:#e05252;font-size:12.5px;line-height:1.4}.cp-success[data-v-754f28fa]{display:flex;align-items:center;gap:8px;padding:14px 12px;border-radius:10px;background:#f0faf4;color:#2e9e5b;font-size:13.5px;font-weight:600}.cp-modal-footer[data-v-754f28fa]{display:flex;gap:8px;margin-top:20px}.cp-btn-confirm[data-v-754f28fa]{flex:1;height:40px;border-radius:10px;border:none;background:#57a9f4;color:#fff;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s}.cp-btn-confirm[data-v-754f28fa]:hover:not(:disabled){background:#3a90e0}.cp-btn-confirm[data-v-754f28fa]:disabled{opacity:.7;cursor:not-allowed}.cp-spinner[data-v-754f28fa]{width:14px;height:14px;border-radius:50%;border:2px solid hsla(0,0%,100%,.4);border-top-color:#fff;animation:cp-spin-754f28fa .7s linear infinite}@keyframes cp-spin-754f28fa{to{transform:rotate(1turn)}}.logout-overlay[data-v-754f28fa]{position:fixed;inset:0;background:rgba(20,25,40,.4);backdrop-filter:blur(2px);display:flex;align-items:center;justify-content:center;z-index:3000;padding:20px}.logout-modal[data-v-754f28fa]{background:#fff;border-radius:18px;width:100%;max-width:340px;padding:26px 24px 22px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.18)}.logout-modal-icon[data-v-754f28fa]{width:48px;height:48px;margin:0 auto 14px;border-radius:14px;background:#fef2f2;color:#e05252;display:flex;align-items:center;justify-content:center;font-size:20px}.logout-modal-title[data-v-754f28fa]{font-size:16px;font-weight:700;color:#1a2233;margin-bottom:6px}.logout-modal-text[data-v-754f28fa]{font-size:12.5px;color:#8a96a8;margin:0 0 20px;line-height:1.5}.logout-modal-actions[data-v-754f28fa]{display:flex;gap:8px}.logout-btn-cancel[data-v-754f28fa]{flex:1;height:40px;border-radius:10px;border:1.5px solid #e4edf8;background:#fff;color:#5a6a82;font-size:13px;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s}.logout-btn-cancel[data-v-754f28fa]:hover{background:#f7f9fc;border-color:#d8e0ec}.logout-btn-confirm[data-v-754f28fa]{flex:1;height:40px;border-radius:10px;border:none;background:#e05252;color:#fff;font-size:13px;font-weight:600;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:6px;transition:background .15s}.logout-btn-confirm[data-v-754f28fa]:hover{background:#c0392b}.logout-fade-enter-active[data-v-754f28fa],.logout-fade-leave-active[data-v-754f28fa]{transition:opacity .15s}.logout-fade-enter-from[data-v-754f28fa],.logout-fade-leave-to[data-v-754f28fa]{opacity:0}@media (max-width:768px){.mobile-close-btn[data-v-754f28fa],.mobile-topbar[data-v-754f28fa]{display:flex}.toggle-btn[data-v-754f28fa]{display:none}.sidebar[data-v-754f28fa]{position:fixed;top:0;left:0;height:100vh;width:260px;max-width:84vw;z-index:5000;transform:translateX(-100%);transition:transform .28s cubic-bezier(.4,0,.2,1);box-shadow:4px 0 24px rgba(0,0,0,.18)}.sidebar.collapsed[data-v-754f28fa]{width:260px}.sidebar.mobile-open[data-v-754f28fa]{transform:translateX(0)}.sidebar-inner[data-v-754f28fa]{min-height:100vh}.mobile-backdrop[data-v-754f28fa]{display:block;position:fixed;inset:0;background:rgba(20,25,40,.4);z-index:4999}}.app-layout[data-v-3bc19f02]{display:flex;min-height:100vh;background:#fff}.main-content[data-v-3bc19f02]{flex:1;overflow-y:auto;background:#fff;min-width:0}@media (max-width:768px){.app-layout[data-v-3bc19f02]{flex-direction:column}}