.loading-overlay[data-v-0ab63dc9]{z-index:300;background:#0f111a99;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-box[data-v-0ab63dc9]{flex-direction:column;align-items:center;gap:14px;display:flex}.loading-spinner[data-v-0ab63dc9]{border:3px solid #ffffff40;border-top-color:#fff;border-radius:50%;width:36px;height:36px;animation:.8s linear infinite loading-spin-0ab63dc9}.loading-text[data-v-0ab63dc9]{color:#fff;font-size:.9rem}@keyframes loading-spin-0ab63dc9{to{transform:rotate(360deg)}}*{box-sizing:border-box;margin:0;padding:0}body{background:#f0f2f5;font-family:Kanit,Roboto,sans-serif}button,input,select,textarea{font-family:inherit}.app-loading{color:#6c7086;background:#1e1e2e;justify-content:center;align-items:center;min-height:100vh;font-size:.9rem;display:flex}#app-layout{height:100vh;display:flex;overflow:hidden}.sidebar{color:#cdd6f4;background:#141824;flex-direction:column;flex-shrink:0;gap:28px;width:260px;height:100vh;padding:28px 20px;display:flex;overflow-y:auto}.logo{border-bottom:1px solid #1e2433;padding-bottom:20px}.logo-name{align-items:center;margin-bottom:6px;font-family:Kanit,sans-serif;font-size:1.15rem;font-weight:700;display:flex}.logo-dxt{color:#e2e8f0}.logo-s{color:#7c85f5}.logo-mail{color:#60a5fa}.logo-version{color:#b6b9bd;letter-spacing:.04em;background:#1e2433;border:1px solid #b6b9bd;border-radius:20px;align-self:flex-start;margin-left:8px;padding:2px 7px;font-family:Roboto,sans-serif;font-size:.6rem;font-weight:500}.logo-tagline{color:#4a5568;letter-spacing:.02em;font-size:.72rem;font-weight:300}.nav-links{flex-direction:column;flex:1;gap:2px;display:flex}.nav-label{text-transform:uppercase;letter-spacing:.08em;color:#4a5568;margin-top:20px;margin-bottom:4px;padding:0 12px;font-size:.65rem;font-weight:600}.nav-links a{color:#8892a4;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:.88rem;font-weight:400;text-decoration:none;transition:background .15s,color .15s;display:flex}.nav-links a i{text-align:center;flex-shrink:0;width:18px;font-size:1.1rem}.nav-links a:hover{color:#c8d0e0;background:#1e2433}.nav-links a.router-link-active{color:#60a5fa;background:#1e2d4a;border-left:3px solid #60a5fa;padding-left:9px}.nav-links a.router-link-active i{color:#60a5fa}.nav-footer{border-top:1px solid #1e2433;align-items:center;gap:10px;padding-top:20px;display:flex}.avatar{border:2px solid #1e2433;border-radius:50%;flex-shrink:0;width:34px;height:34px}.avatar-fallback{color:#94a3b8;letter-spacing:.02em;-webkit-user-select:none;user-select:none;background:#2d3748;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;display:flex}.user-info{flex-direction:column;flex:1;min-width:0;display:flex}.user-email{color:#c8d0e0;text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;overflow:hidden}.user-role{color:#4a5568;text-transform:uppercase;letter-spacing:.04em;margin-top:1px;font-size:.65rem}.logout-btn{color:#6b7280;cursor:pointer;background:0 0;border:1px solid #2d3748;border-radius:6px;flex-shrink:0;padding:5px 9px;font-size:.72rem;transition:all .15s}.logout-btn:hover{color:#ef4444;background:#ef44440d;border-color:#ef4444}.content{background:#f0f2f5;flex:1;padding:20px;overflow-y:auto}.content--flush{background:0 0;padding:0;overflow:hidden}.oa-dropdown{display:none!important}.btn-primary{color:#fff;cursor:pointer;white-space:nowrap;background:#4f46e5;border:none;border-radius:6px;align-items:center;gap:6px;padding:7px 16px;font-size:.85rem;font-weight:500;text-decoration:none;transition:background .15s;display:inline-flex}.btn-primary:hover{background:#4338ca}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-cancel{cursor:pointer;color:#374151;background:#fff;border:1px solid #e5e7eb;border-radius:6px;padding:7px 16px;font-size:.85rem}.btn-cancel:hover{background:#f3f4f6}.btn-delete{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:6px;padding:7px 16px;font-size:.85rem}.btn-delete:hover{background:#b91c1c}.btn-save{color:#fff;cursor:pointer;background:#4f46e5;border:none;border-radius:6px;padding:7px 16px;font-size:.85rem}.btn-save:hover:not(:disabled){background:#4338ca}.btn-save:disabled{opacity:.6;cursor:not-allowed}.btn-sm{cursor:pointer;color:#374151;background:#fff;border:1px solid #e5e7eb;border-radius:5px;padding:4px 11px;font-size:.78rem;text-decoration:none;transition:all .12s;display:inline-block}.btn-sm:hover{background:#f3f4f6;border-color:#d1d5db}.btn-sm-danger{color:#dc2626;border-color:#fecaca}.btn-sm-danger:hover{background:#fef2f2;border-color:#fca5a5}.modal-overlay{z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:10px;min-width:320px;padding:28px;box-shadow:0 20px 60px #00000026}.modal h3{color:#111827;margin-bottom:20px;font-size:1rem;font-weight:600}.modal>p{color:#374151;margin-bottom:20px;font-size:.9rem;line-height:1.6}.modal-actions{justify-content:flex-end;gap:8px;display:flex}.state-msg{text-align:center;color:#9ca3af;padding:48px 0;font-size:.9rem}.state-msg.error{color:#dc2626}.search-bar{display:flex}.search-input-wrap{background:#fff;border-radius:8px;align-items:center;gap:8px;padding:10px 12px;display:flex}.search-input-wrap:focus-within{border-color:#a5b4fc}.search-icon{color:#9ca3af;flex-shrink:0;font-size:1rem}.search-input{background:0 0;border:none;outline:none;flex:1;font-size:.875rem}.search-clear{cursor:pointer;color:#9ca3af;background:0 0;border:none;padding:0;line-height:1}.search-clear:hover{color:#6b7280}.table-wrap{background:#fff;border:1px solid #e5e7eb;border-radius:8px;overflow:hidden}.table{border-collapse:collapse;width:100%;font-size:.875rem}.table th{text-align:left;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;background:#f8fafc;border-bottom:1px solid #e5e7eb;padding:10px 14px;font-size:.75rem;font-weight:600}.table td{vertical-align:middle;color:#374151;border-bottom:1px solid #f3f4f6;padding:11px 14px}.table tr:last-child td{border-bottom:none}.table tr:hover td{background:#f8fafc}.table .mono{color:#6b7280;font-family:monospace;font-size:.83rem}.table .actions{white-space:nowrap;width:1%}.table .actions-row{gap:5px;display:flex}.badge{border-radius:20px;padding:2px 9px;font-size:.72rem;font-weight:600;display:inline-block}.badge-active{color:#065f46;background:#d1fae5}.badge-inactive{color:#9ca3af;background:#f3f4f6}.badge-debug{color:#92400e;background:#fef3c7}.filter-bar{background:#fff;border-radius:8px;flex-wrap:wrap;align-items:center;gap:12px;padding:10px 14px;display:flex}.filter-group{align-items:center;gap:8px;display:flex}.filter-group+.filter-group{border-left:1px solid #e5e5e5;padding-left:12px}.filter-label{text-transform:uppercase;letter-spacing:.05em;color:#888;white-space:nowrap;font-size:.72rem;font-weight:700}.chips{flex-wrap:wrap;gap:5px;display:flex}.chip{cursor:pointer;color:#555;background:0 0;border:1px solid #ccc;border-radius:6px;padding:3px 12px;font-size:.8rem;transition:all .15s}.chip:hover{opacity:.75}.chip.chip-active:not(.chip-danger):not(.chip-warning):not(.chip-success){color:#fff;background:#1e1e2e;border-color:#1e1e2e}.chip-danger{color:#e53935;border-color:#e53935}.chip-warning{color:#f57c00;border-color:#f57c00}.chip-success{color:#43a047;border-color:#43a047}.chip-info{color:#1565c0;border-color:#1565c0}.chip-danger.chip-active{color:#fff;background:#e53935}.chip-warning.chip-active{color:#fff;background:#f57c00}.chip-success.chip-active{color:#fff;background:#43a047}.chip-info.chip-active{color:#fff;background:#1565c0}.filter-count{color:#aaa;white-space:nowrap;margin-left:auto;font-size:.8rem}@media (width<=720px){.filter-bar{flex-direction:column;align-items:flex-start}.filter-group+.filter-group{border-top:1px solid #e5e5e5;border-left:none;width:100%;padding-top:8px;padding-left:0}.filter-count{display:none}}.page-toolbar{align-items:center;gap:10px;margin-bottom:16px;display:flex}.form-fields{flex-direction:column;gap:14px;margin-bottom:16px;display:flex}.form-field{flex-direction:column;gap:5px;display:flex}.form-field label{color:#374151;font-size:.82rem;font-weight:500}.form-field input,.form-field select,.form-field textarea{border:1px solid #d1d5db;border-radius:6px;outline:none;padding:5px 10px;font-size:.875rem}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{border-color:#a5b4fc}.form-req{color:#dc2626}.form-error{color:#dc2626;margin-bottom:12px;font-size:.82rem}.text-center{text-align:center}
