.badge[data-v-c7c8555b]{display:inline-flex;align-items:center;gap:var(--space-1);border-radius:var(--radius-full);font-weight:var(--weight-medium);white-space:nowrap}.badge--sm[data-v-c7c8555b]{padding:var(--space-px) var(--space-2);font-size:var(--text-xs)}.badge--md[data-v-c7c8555b]{padding:2px var(--space-3);font-size:var(--text-xs)}.badge--default[data-v-c7c8555b]{background-color:var(--color-surface-raised);color:var(--color-text-secondary)}.badge--primary[data-v-c7c8555b]{background-color:var(--color-primary-light);color:var(--color-primary)}.badge--success[data-v-c7c8555b]{background-color:var(--color-success-light);color:var(--color-success)}.badge--warning[data-v-c7c8555b]{background-color:var(--color-warning-light);color:var(--color-warning)}.badge--error[data-v-c7c8555b]{background-color:var(--color-error-light);color:var(--color-error)}.badge--info[data-v-c7c8555b]{background-color:var(--color-info-light);color:var(--color-info)}.btn[data-v-c284c893]{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);border:1px solid transparent;border-radius:var(--radius-md);font-weight:var(--weight-medium);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default),opacity var(--duration-fast) var(--ease-default);white-space:nowrap;-webkit-user-select:none;user-select:none}.btn[data-v-c284c893]:focus-visible{outline:none;box-shadow:var(--focus-ring)}.btn[data-v-c284c893]:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn--sm[data-v-c284c893]{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);height:2rem}.btn--md[data-v-c284c893]{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);height:2.5rem}.btn--lg[data-v-c284c893]{padding:var(--space-3) var(--space-6);font-size:var(--text-base);height:3rem}.btn--primary[data-v-c284c893]{background-color:var(--color-primary);color:var(--color-primary-fg)}.btn--primary[data-v-c284c893]:hover:not(:disabled){background-color:var(--color-primary-hover)}.btn--secondary[data-v-c284c893]{background-color:transparent;border-color:var(--color-border-strong);color:var(--color-text)}.btn--secondary[data-v-c284c893]:hover:not(:disabled){background-color:var(--color-surface-raised)}.btn--ghost[data-v-c284c893]{background-color:transparent;color:var(--color-text-secondary)}.btn--ghost[data-v-c284c893]:hover:not(:disabled){background-color:var(--color-surface-raised);color:var(--color-text)}.btn--danger[data-v-c284c893]{background-color:var(--color-error);color:#fff}.btn--danger[data-v-c284c893]:hover:not(:disabled){background-color:#b91c1c}.btn--full[data-v-c284c893]{width:100%}.btn__spinner[data-v-c284c893]{width:1em;height:1em;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-c284c893 .6s linear infinite;flex-shrink:0}@keyframes spin-c284c893{to{transform:rotate(360deg)}}.card[data-v-d4bd02bd]{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.card--elevated[data-v-d4bd02bd]{box-shadow:var(--shadow-md);border-color:transparent}.card--hoverable[data-v-d4bd02bd]{transition:box-shadow var(--duration-normal) var(--ease-default)}.card--hoverable[data-v-d4bd02bd]:hover{box-shadow:var(--shadow-lg)}.card--pad-none>.card__body[data-v-d4bd02bd],.card--pad-none>.card__header[data-v-d4bd02bd],.card--pad-none>.card__footer[data-v-d4bd02bd]{padding:0}.card__header[data-v-d4bd02bd]{padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border)}.card__body[data-v-d4bd02bd]{padding:var(--space-6)}.card--pad-sm .card__body[data-v-d4bd02bd]{padding:var(--space-4)}.card--pad-md .card__body[data-v-d4bd02bd]{padding:var(--space-6)}.card--pad-lg .card__body[data-v-d4bd02bd]{padding:var(--space-8)}.card__footer[data-v-d4bd02bd]{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);background-color:var(--color-bg-subtle)}.datatable__scroll[data-v-3dea4785]{overflow-x:auto}.datatable__table[data-v-3dea4785]{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.datatable__th[data-v-3dea4785]{padding:var(--space-3) var(--space-4);text-align:left;font-weight:var(--weight-semibold);color:var(--color-text-secondary);border-bottom:2px solid var(--color-border);white-space:nowrap}.datatable__th--center[data-v-3dea4785]{text-align:center}.datatable__th--right[data-v-3dea4785]{text-align:right}.datatable__row[data-v-3dea4785]:hover{background-color:var(--color-bg-subtle)}.datatable__td[data-v-3dea4785]{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);color:var(--color-text);vertical-align:middle}.datatable__td--center[data-v-3dea4785]{text-align:center}.datatable__td--right[data-v-3dea4785]{text-align:right}.datatable__loading[data-v-3dea4785],.datatable__empty[data-v-3dea4785]{padding:var(--space-12);text-align:center;color:var(--color-text-muted)}.datatable__spinner[data-v-3dea4785]{display:inline-block;width:1.5rem;height:1.5rem;border:2px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin-3dea4785 .7s linear infinite}.datatable__pagination[data-v-3dea4785]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-4) 0}.datatable__pagination-info[data-v-3dea4785]{font-size:var(--text-sm);color:var(--color-text-muted)}.datatable__pagination-controls[data-v-3dea4785]{display:flex;gap:var(--space-1)}.datatable__page-btn[data-v-3dea4785]{min-width:2rem;height:2rem;padding:0 var(--space-2);border:1px solid var(--color-border);border-radius:var(--radius-md);background:transparent;color:var(--color-text);font-size:var(--text-sm);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default)}.datatable__page-btn[data-v-3dea4785]:hover:not(:disabled){background-color:var(--color-surface-raised)}.datatable__page-btn--active[data-v-3dea4785]{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-fg)}.datatable__page-btn[data-v-3dea4785]:disabled{opacity:.4;cursor:not-allowed}@keyframes spin-3dea4785{to{transform:rotate(360deg)}}.field[data-v-5eefa918]{display:flex;flex-direction:column;gap:var(--space-1)}.field__label[data-v-5eefa918]{font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--color-text)}.field__required[data-v-5eefa918]{color:var(--color-error);margin-left:var(--space-1)}.field__input[data-v-5eefa918]{height:2.5rem;padding:0 var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background-color:var(--color-surface);color:var(--color-text);font-size:var(--text-sm);transition:border-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default)}.field__input[data-v-5eefa918]::placeholder{color:var(--color-text-muted)}.field__input[data-v-5eefa918]:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.field__input[data-v-5eefa918]:disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-surface-raised)}.field--error .field__input[data-v-5eefa918]{border-color:var(--color-error)}.field--error .field__input[data-v-5eefa918]:focus{box-shadow:0 0 0 3px var(--color-error-light)}.field__error[data-v-5eefa918]{font-size:var(--text-xs);color:var(--color-error)}.field__hint[data-v-5eefa918]{font-size:var(--text-xs);color:var(--color-text-muted)}.modal-overlay[data-v-fe5e97ab]{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4)}.modal[data-v-fe5e97ab]{background-color:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-2xl);display:flex;flex-direction:column;max-height:calc(100vh - var(--space-8));width:100%;overflow:hidden}.modal--sm[data-v-fe5e97ab]{max-width:400px}.modal--md[data-v-fe5e97ab]{max-width:560px}.modal--lg[data-v-fe5e97ab]{max-width:720px}.modal--xl[data-v-fe5e97ab]{max-width:960px}.modal__header[data-v-fe5e97ab]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-6);border-bottom:1px solid var(--color-border);flex-shrink:0}.modal__title[data-v-fe5e97ab]{font-size:var(--text-lg);font-weight:var(--weight-semibold);color:var(--color-text)}.modal__close[data-v-fe5e97ab]{display:flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:none;background:transparent;color:var(--color-text-muted);cursor:pointer;border-radius:var(--radius-md);font-size:var(--text-sm);transition:background-color var(--duration-fast) var(--ease-default)}.modal__close[data-v-fe5e97ab]:hover{background-color:var(--color-surface-raised);color:var(--color-text)}.modal__body[data-v-fe5e97ab]{padding:var(--space-6);overflow-y:auto;flex:1}.modal__footer[data-v-fe5e97ab]{padding:var(--space-4) var(--space-6);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);flex-shrink:0}.modal-enter-active[data-v-fe5e97ab],.modal-leave-active[data-v-fe5e97ab]{transition:opacity var(--duration-normal) var(--ease-default)}.modal-enter-active .modal[data-v-fe5e97ab],.modal-leave-active .modal[data-v-fe5e97ab]{transition:transform var(--duration-normal) var(--ease-out)}.modal-enter-from[data-v-fe5e97ab],.modal-leave-to[data-v-fe5e97ab]{opacity:0}.modal-enter-from .modal[data-v-fe5e97ab],.modal-leave-to .modal[data-v-fe5e97ab]{transform:scale(.95) translateY(-8px)}.sidebar[data-v-8c5348cd]{display:flex;flex-direction:column;width:var(--sidebar-width);height:100%;background-color:var(--color-surface);border-right:1px solid var(--color-border);transition:width var(--duration-normal) var(--ease-default);overflow:hidden;flex-shrink:0}.sidebar--collapsed[data-v-8c5348cd]{width:var(--sidebar-width-collapsed)}.sidebar__header[data-v-8c5348cd]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border);min-height:64px}.sidebar__logo[data-v-8c5348cd]{width:32px;height:32px;object-fit:contain;flex-shrink:0}.sidebar__app-name[data-v-8c5348cd]{font-weight:var(--weight-bold);font-size:var(--text-base);color:var(--color-text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__toggle[data-v-8c5348cd]{background:transparent;border:none;cursor:pointer;color:var(--color-text-muted);padding:var(--space-1);border-radius:var(--radius-sm);font-size:var(--text-sm);flex-shrink:0;margin-left:auto}.sidebar__toggle[data-v-8c5348cd]:hover{color:var(--color-text)}.sidebar__nav[data-v-8c5348cd]{flex:1;overflow-y:auto;padding:var(--space-2) 0}.sidebar__list[data-v-8c5348cd]{list-style:none}.sidebar__item[data-v-8c5348cd]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);cursor:pointer;border-radius:var(--radius-md);margin:2px var(--space-2);color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-medium);transition:background-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default)}.sidebar__item[data-v-8c5348cd]:hover{background-color:var(--color-surface-raised);color:var(--color-text)}.sidebar__item--active[data-v-8c5348cd]{background-color:var(--color-primary-light);color:var(--color-primary)}.sidebar__icon[data-v-8c5348cd]{font-size:var(--text-lg);flex-shrink:0;width:1.5rem;text-align:center}.sidebar__label[data-v-8c5348cd]{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar__badge[data-v-8c5348cd]{background-color:var(--color-primary);color:var(--color-primary-fg);font-size:var(--text-xs);font-weight:var(--weight-bold);padding:2px var(--space-2);border-radius:var(--radius-full);flex-shrink:0}.skeleton[data-v-692c0579]{display:inline-block;background:linear-gradient(90deg,var(--color-surface-raised) 25%,var(--color-border) 50%,var(--color-surface-raised) 75%);background-size:200% 100%;animation:shimmer-692c0579 1.5s infinite;border-radius:var(--radius-sm)}.skeleton--rounded[data-v-692c0579]{border-radius:var(--radius-full)}.skeleton--circle[data-v-692c0579]{border-radius:50%}@keyframes shimmer-692c0579{0%{background-position:200% 0}to{background-position:-200% 0}}.toast-container[data-v-f4919e26]{position:fixed;bottom:var(--space-6);right:var(--space-6);z-index:2000;pointer-events:none}.toast-list[data-v-f4919e26]{display:flex;flex-direction:column;gap:var(--space-2)}.toast[data-v-f4919e26]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);font-size:var(--text-sm);max-width:400px;pointer-events:auto;border-left:4px solid transparent}.toast--success[data-v-f4919e26]{background-color:var(--color-success-light);color:var(--color-success);border-left-color:var(--color-success)}.toast--error[data-v-f4919e26]{background-color:var(--color-error-light);color:var(--color-error);border-left-color:var(--color-error)}.toast--warning[data-v-f4919e26]{background-color:var(--color-warning-light);color:var(--color-warning);border-left-color:var(--color-warning)}.toast--info[data-v-f4919e26]{background-color:var(--color-info-light);color:var(--color-info);border-left-color:var(--color-info)}.toast__icon[data-v-f4919e26]{font-size:var(--text-base);flex-shrink:0}.toast__message[data-v-f4919e26]{flex:1;font-weight:var(--weight-medium)}.toast__close[data-v-f4919e26]{background:transparent;border:none;cursor:pointer;color:currentColor;opacity:.6;font-size:var(--text-xs);padding:0;line-height:1}.toast__close[data-v-f4919e26]:hover{opacity:1}.toast-enter-active[data-v-f4919e26],.toast-leave-active[data-v-f4919e26]{transition:opacity var(--duration-normal) var(--ease-default),transform var(--duration-normal) var(--ease-out)}.toast-enter-from[data-v-f4919e26],.toast-leave-to[data-v-f4919e26]{opacity:0;transform:translate(100%)}:root{--color-primary: #4f46e5;--color-primary-hover: #4338ca;--color-primary-light: #e0e7ff;--color-primary-fg: #ffffff;--color-accent: #f59e0b;--color-accent-hover: #d97706;--color-accent-fg: #ffffff;--color-success: #16a34a;--color-success-light: #dcfce7;--color-warning: #d97706;--color-warning-light: #fef3c7;--color-error: #dc2626;--color-error-light: #fee2e2;--color-info: #0284c7;--color-info-light: #e0f2fe;--color-bg: #ffffff;--color-bg-subtle: #f8fafc;--color-surface: #ffffff;--color-surface-raised: #f1f5f9;--color-border: #e2e8f0;--color-border-strong: #94a3b8;--color-text: #0f172a;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-text-disabled: #cbd5e1;--color-text-inverse: #ffffff;--color-letter-correct: #16a34a;--color-letter-present: #d97706;--color-letter-absent: #64748b;--color-letter-empty: #e2e8f0}[data-theme=dark]{--color-primary: #818cf8;--color-primary-hover: #a5b4fc;--color-primary-light: #1e1b4b;--color-bg: #0f172a;--color-bg-subtle: #1e293b;--color-surface: #1e293b;--color-surface-raised: #334155;--color-border: #334155;--color-border-strong: #64748b;--color-text: #f1f5f9;--color-text-secondary: #94a3b8;--color-text-muted: #475569;--color-text-disabled: #334155}:root{--font-sans: "Inter", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;--font-game: var(--font-sans);--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--weight-regular: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--tracking-tight: -.025em;--tracking-normal: 0;--tracking-wide: .025em;--tracking-widest: .1em}:root{--space-px: 1px;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--sidebar-width: 240px;--sidebar-width-collapsed: 64px}:root{--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25);--shadow-none: none;--focus-ring: 0 0 0 3px var(--color-primary-light)}:root{--duration-fast: .1s;--duration-normal: .2s;--duration-slow: .3s;--ease-default: cubic-bezier(.4, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img,svg{display:block;max-width:100%}button,input,select,textarea{font:inherit}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased}.app-shell{display:flex;height:100vh;overflow:hidden}.app-shell__content{flex:1;display:flex;flex-direction:column;overflow:hidden}.app-shell__topbar{display:flex;align-items:center;height:56px;padding:0 var(--space-6);border-bottom:1px solid var(--color-border);background-color:var(--color-surface);flex-shrink:0}.app-shell__topbar-spacer{flex:1}.app-shell__user{display:flex;align-items:center;gap:var(--space-3)}.app-shell__user-name{font-size:var(--text-sm);color:var(--color-text-secondary)}.app-shell__logout{font-size:var(--text-sm);color:var(--color-text-muted);background:none;border:none;cursor:pointer;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm)}.app-shell__logout:hover{color:var(--color-danger)}.app-shell__main{flex:1;overflow-y:auto;padding:var(--space-8)}
