.app-layout[data-v-45f109af]{display:grid;grid-template-columns:240px minmax(0,1fr);min-height:100vh;background:var(--color-bg-page);transition:grid-template-columns .18s ease}.app-layout--sidebar-collapsed[data-v-45f109af]{grid-template-columns:72px minmax(0,1fr)}.app-sidebar[data-v-45f109af]{position:sticky;top:0;display:flex;flex-direction:column;width:240px;height:100vh;overflow-y:auto;color:#c8d5df;background:#172b3d;transition:width .18s ease}.app-sidebar--collapsed[data-v-45f109af]{width:72px;overflow-x:hidden}.sidebar-brand[data-v-45f109af]{display:flex;align-items:center;gap:10px;padding:24px 20px;color:#fff;cursor:pointer;font-size:16px;font-weight:700;letter-spacing:.1px}.sidebar-brand__mark[data-v-45f109af]{display:grid;place-items:center;width:30px;height:30px;padding:0;border:0;border-radius:8px;color:#fff;background:var(--color-primary);cursor:pointer;font-size:16px}.sidebar-brand__mark[data-v-45f109af]:hover{background:#176ab8}.app-sidebar--collapsed .sidebar-brand[data-v-45f109af]{justify-content:center;gap:0;padding:24px 0;font-size:0}.sidebar-navigation[data-v-45f109af]{display:grid;gap:20px;padding:4px 12px 24px}.app-sidebar--collapsed .sidebar-navigation[data-v-45f109af]{gap:12px;padding:4px 12px 20px}.sidebar-section[data-v-45f109af]{display:grid;gap:3px}.sidebar-section__title[data-v-45f109af]{padding:0 10px;margin:0 0 5px;color:#8599a9;font-size:10px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.app-sidebar--collapsed .sidebar-section__title[data-v-45f109af]{display:none}.sidebar-link[data-v-45f109af]{display:flex;align-items:center;gap:10px;min-height:38px;padding:9px 10px;border-radius:7px;color:#c8d5df;font-size:13px;font-weight:500;text-decoration:none;transition:background .15s,color .15s}.app-sidebar--collapsed .sidebar-link[data-v-45f109af]{justify-content:center;gap:0;padding:9px;font-size:0}.sidebar-link[data-v-45f109af]:hover{color:#fff;background:#213d54}.sidebar-link.active[data-v-45f109af]{color:#fff;background:#294b66;font-weight:650}.sidebar-link__icon[data-v-45f109af]{width:18px;color:#91a9bc;font-size:17px;line-height:1;text-align:center}.sidebar-link.active .sidebar-link__icon[data-v-45f109af],.sidebar-link:hover .sidebar-link__icon[data-v-45f109af]{color:#bfe1ff}.sidebar-user[data-v-45f109af]{display:flex;align-items:center;gap:9px;padding:14px 16px;margin-top:auto;border-top:1px solid rgba(207,224,237,.14);background:#05141f24}.language-switcher[data-v-45f109af]{display:grid;grid-template-columns:repeat(2,1fr);gap:3px;padding:10px 16px;border-top:1px solid rgba(207,224,237,.14)}.language-switcher button[data-v-45f109af]{min-height:27px;border:1px solid rgba(191,218,238,.22);border-radius:5px;color:#b9cbd9;background:transparent;cursor:pointer;font-size:10px;font-weight:750;letter-spacing:.06em}.language-switcher button[data-v-45f109af]:hover{color:#fff;background:#89b8dc24}.language-switcher button.active[data-v-45f109af]{border-color:#4c8ab8;color:#fff;background:#285879}.app-sidebar--collapsed .sidebar-user[data-v-45f109af]{flex-direction:column;gap:8px;padding:12px}.app-sidebar--collapsed .language-switcher[data-v-45f109af]{gap:2px;padding:10px 12px}.sidebar-user__avatar[data-v-45f109af]{display:flex;flex:0 0 auto;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;color:#d9eeff;background:#285879;font-size:11px;font-weight:700}.sidebar-user__info[data-v-45f109af]{display:grid;min-width:0;gap:2px;font-size:11px}.app-sidebar--collapsed .sidebar-user__info[data-v-45f109af]{display:none}.sidebar-user__info strong[data-v-45f109af]{overflow:hidden;color:#f7fbff;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.sidebar-user__info span[data-v-45f109af]{color:#91a9bc}.sidebar-logout[data-v-45f109af]{width:28px;height:28px;padding:0;margin-left:auto;border:0;border-radius:5px;color:#bdd0df;background:transparent;font-size:18px}.app-sidebar--collapsed .sidebar-logout[data-v-45f109af]{margin-left:0}.sidebar-logout[data-v-45f109af]:hover{color:#fff;background:#e74d4d47}.app-main[data-v-45f109af]{min-width:0;padding:var(--space-2xl)}.sidebar-toggle[data-v-45f109af],.sidebar-backdrop[data-v-45f109af]{display:none}@media(max-width:1000px){.app-layout[data-v-45f109af]{display:block}.app-sidebar[data-v-45f109af]{position:fixed;z-index:200;top:0;bottom:0;left:0;transform:translate(-100%);visibility:hidden;transition:transform .2s ease,visibility 0s linear .2s;box-shadow:12px 0 28px #0c1a2533}.app-sidebar--collapsed[data-v-45f109af]{width:240px;overflow-x:visible}.app-sidebar--collapsed .sidebar-brand[data-v-45f109af]{justify-content:flex-start;gap:10px;padding:24px 20px;font-size:16px}.app-sidebar--collapsed .sidebar-navigation[data-v-45f109af]{gap:20px;padding:4px 12px 24px}.app-sidebar--collapsed .sidebar-section__title[data-v-45f109af]{display:block}.app-sidebar--collapsed .sidebar-link[data-v-45f109af]{justify-content:flex-start;gap:10px;padding:9px 10px;font-size:13px}.app-sidebar--collapsed .sidebar-user[data-v-45f109af]{flex-direction:row;gap:9px;padding:14px 16px}.app-sidebar--collapsed .language-switcher[data-v-45f109af]{padding:10px 16px}.app-sidebar--collapsed .sidebar-user__info[data-v-45f109af]{display:grid}.app-sidebar--collapsed .sidebar-logout[data-v-45f109af]{margin-left:auto}.app-sidebar--open[data-v-45f109af]{transform:translate(0);visibility:visible;transition-delay:0s}.sidebar-toggle[data-v-45f109af]{display:grid;position:fixed;z-index:190;top:12px;left:12px;place-items:center;width:36px;height:36px;border:1px solid var(--color-border);border-radius:7px;color:#fff;background:#172b3d;box-shadow:var(--shadow-card);font-size:17px}.sidebar-backdrop[data-v-45f109af]{display:block;position:fixed;z-index:180;inset:0;width:100%;height:100%;padding:0;border:0;background:#1018285c}.app-main[data-v-45f109af]{padding:64px var(--space-lg) var(--space-lg)}}.mgmt-layout[data-v-45659d92]{display:flex;gap:var(--space-2xl);align-items:flex-start;min-height:calc(100vh - var(--space-2xl) * 2)}.mgmt-sidebar[data-v-45659d92]{flex:0 0 240px;background:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:var(--space-xl) var(--space-md);position:sticky;top:var(--space-2xl)}.mgmt-sidebar-title[data-v-45659d92]{font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);padding:0 var(--space-md) var(--space-md)}.mgmt-nav[data-v-45659d92]{display:flex;flex-direction:column;gap:var(--space-xs)}.mgmt-nav-link[data-v-45659d92]{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-md);text-decoration:none;color:var(--color-text-muted);border-radius:var(--radius-lg);transition:var(--transition-fast);font-weight:500;font-size:var(--font-size-base)}.mgmt-nav-link[data-v-45659d92]:hover{background:var(--color-bg-page);color:var(--color-text)}.mgmt-nav-link.router-link-active[data-v-45659d92],.mgmt-nav-link.active[data-v-45659d92]{background:var(--color-primary-bg);color:var(--color-primary)}.mgmt-nav-icon[data-v-45659d92]{font-size:18px;width:22px;text-align:center}.mgmt-content[data-v-45659d92]{flex:1 1 auto;min-width:0}.jnl-layout[data-v-a96299cb]{display:flex;gap:var(--space-2xl);align-items:flex-start;min-height:calc(100vh - var(--space-2xl) * 2)}.jnl-sidebar[data-v-a96299cb]{flex:0 0 240px;background:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);padding:var(--space-xl) var(--space-md);position:sticky;top:var(--space-2xl)}.jnl-sidebar-title[data-v-a96299cb]{font-size:var(--font-size-sm);font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);padding:0 var(--space-md) var(--space-md)}.jnl-nav[data-v-a96299cb]{display:flex;flex-direction:column;gap:var(--space-xs)}.jnl-nav-link[data-v-a96299cb]{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-md);text-decoration:none;color:var(--color-text-muted);border-radius:var(--radius-lg);transition:var(--transition-fast);font-weight:500;font-size:var(--font-size-base)}.jnl-nav-link[data-v-a96299cb]:hover{background:var(--color-bg-page);color:var(--color-text)}.jnl-nav-link.router-link-active[data-v-a96299cb]{background:var(--color-primary-bg);color:var(--color-primary)}.jnl-nav-icon[data-v-a96299cb]{font-size:18px;width:22px;text-align:center}.jnl-content[data-v-a96299cb]{flex:1 1 auto;min-width:0}.login-page[data-v-47199182]{position:relative;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;padding:var(--space-xl)}.login-language[data-v-47199182]{position:absolute;top:20px;right:20px;display:flex;gap:4px;padding:4px;border:1px solid rgba(255,255,255,.3);border-radius:8px;background:#ffffff1f}.login-language button[data-v-47199182]{min-width:38px;min-height:30px;border:0;border-radius:5px;color:#ffffffbf;background:transparent;cursor:pointer;font-size:11px;font-weight:750;letter-spacing:.06em}.login-language button[data-v-47199182]:hover,.login-language button.active[data-v-47199182]{color:#44516e;background:#fff}.login-container[data-v-47199182]{width:100%;max-width:400px}.login-card[data-v-47199182]{background:var(--color-bg-card);border-radius:10px;padding:40px 30px;box-shadow:var(--shadow-modal)}.login-title[data-v-47199182]{text-align:center;margin:0 0 30px;color:var(--color-text);font-size:var(--font-size-2xl);font-weight:500}.login-form[data-v-47199182]{display:flex;flex-direction:column;gap:var(--space-xl)}.login-form .form-input[data-v-47199182]:focus{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}.login-btn[data-v-47199182]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:var(--radius-md);padding:14px;font-size:var(--font-size-lg);font-weight:500;cursor:pointer;transition:opacity .3s;margin-top:10px;font-family:inherit}.login-btn[data-v-47199182]:hover:not(:disabled){opacity:.9}.login-btn[data-v-47199182]:disabled{opacity:.6;cursor:not-allowed}.loading-text[data-v-47199182]{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm)}.loading-text[data-v-47199182]:after{content:"";width:16px;height:16px;border:2px solid #fff;border-top-color:transparent;border-radius:var(--radius-full);animation:spin 1s linear infinite}.error-message[data-v-47199182],.success-message[data-v-47199182]{margin-top:var(--space-xl);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-md);font-size:var(--font-size-base);text-align:center}.error-message[data-v-47199182]{background-color:var(--color-danger-bg);border:1px solid #fcc;color:var(--color-danger-text)}.success-message[data-v-47199182]{background-color:var(--color-success-bg);border:1px solid #cfc;color:var(--color-success-text)}:root{--color-primary: #2196F3;--color-primary-hover: #1976D2;--color-primary-bg: #e3f2fd;--color-primary-soft: rgba(33, 150, 243, .1);--color-success: #4CAF50;--color-success-hover: #388E3C;--color-success-bg: #e8f5e9;--color-success-text: #2e7d32;--color-danger: #f44336;--color-danger-hover: #d32f2f;--color-danger-bg: #ffebee;--color-danger-text: #c62828;--color-warning: #ff9800;--color-warning-hover: #f57c00;--color-warning-bg: #fff3e0;--color-warning-text: #e65100;--color-text: #333;--color-text-muted: #666;--color-border: #e0e0e0;--color-border-light: #f0f0f0;--color-border-input: #ddd;--color-bg-page: #f5f5f5;--color-bg-card: #ffffff;--color-bg-row-hover: #f9f9f9;--color-bg-footer: #fafafa;--color-bg-code: #2d3748;--color-bg-code-text: #e2e8f0;--font-family-base: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-mono: "Courier New", monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 13px;--font-size-base: 14px;--font-size-lg: 16px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 28px;--space-xs: 4px;--space-sm: 8px;--space-md: 12px;--space-lg: 16px;--space-xl: 20px;--space-2xl: 24px;--space-3xl: 32px;--space-4xl: 48px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-pill: 9999px;--radius-full: 50%;--shadow-card: 0 2px 8px rgba(0, 0, 0, .1);--shadow-modal: 0 10px 40px rgba(0, 0, 0, .2);--shadow-focus: 0 0 0 2px var(--color-primary-soft);--transition-fast: all .2s;--transition-base: all .3s;--z-modal: 1000}*{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;height:100%;font-family:var(--font-family-base);color:var(--color-text)}#app{width:100%;min-height:100vh}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.page{width:100%}.page-header{margin-bottom:var(--space-2xl);padding-bottom:var(--space-lg);border-bottom:1px solid var(--color-border)}.page-title{font-size:var(--font-size-3xl);font-weight:600;color:var(--color-text);margin:0 0 var(--space-sm) 0}.page-subtitle{color:var(--color-text-muted);font-size:var(--font-size-lg);margin:0 0 var(--space-xl) 0}.header-actions{display:flex;gap:var(--space-md)}.card{background:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-card)}.debug-info{margin-top:var(--space-2xl);padding:var(--space-lg);background:var(--color-bg-page);border-radius:var(--radius-lg);font-size:var(--font-size-sm)}.debug-info details{cursor:pointer}.debug-info summary{font-weight:500;color:var(--color-text-muted);margin-bottom:var(--space-sm)}.debug-info pre{margin:0;white-space:pre-wrap;word-wrap:break-word;background:var(--color-bg-code);color:var(--color-bg-code-text);padding:var(--space-md);border-radius:var(--radius-md);overflow:auto;max-height:200px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:10px var(--space-lg);border-radius:var(--radius-lg);font-size:var(--font-size-base);font-weight:500;cursor:pointer;border:none;transition:var(--transition-base);font-family:inherit}.btn:disabled{opacity:.6;cursor:not-allowed}.btn--primary{background:var(--color-success);color:#fff}.btn--primary:hover:not(:disabled){background:var(--color-success-hover)}.btn--info{background:var(--color-primary);color:#fff}.btn--info:hover:not(:disabled){background:var(--color-primary-hover)}.btn--danger{background:var(--color-danger);color:#fff}.btn--danger:hover:not(:disabled){background:var(--color-danger-hover)}.btn--warning{background:var(--color-warning);color:#fff}.btn--warning:hover:not(:disabled){background:var(--color-warning-hover)}.btn--secondary{background:var(--color-bg-page);color:var(--color-text);border:1px solid var(--color-border-input)}.btn--secondary:hover:not(:disabled){background:var(--color-border)}.btn--ghost{background:none;color:var(--color-text);border:1px solid var(--color-border-input)}.btn--ghost:hover:not(:disabled){background:var(--color-bg-page)}.btn--lg{padding:var(--space-md) var(--space-2xl);font-size:var(--font-size-lg)}.btn--sm{padding:var(--space-sm) var(--space-md);font-size:var(--font-size-md)}.btn-icon{font-size:var(--font-size-lg);line-height:1}.icon-btn{width:36px;height:36px;border:none;border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-lg);display:flex;align-items:center;justify-content:center;transition:var(--transition-fast);background:none;color:var(--color-text)}.icon-btn:hover{background:var(--color-bg-page)}.icon-btn--edit:hover{background:var(--color-primary-bg);color:var(--color-primary)}.icon-btn--delete:hover{background:var(--color-danger-bg);color:var(--color-danger)}.close-btn{background:none;border:none;font-size:var(--font-size-2xl);cursor:pointer;color:var(--color-text-muted);width:32px;height:32px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;transition:var(--transition-fast)}.close-btn:hover{background:var(--color-bg-page)}.form{display:flex;flex-direction:column;gap:var(--space-xl)}.form-group{display:flex;flex-direction:column;gap:var(--space-sm)}.form-group label,.form-label{font-size:var(--font-size-base);font-weight:500;color:var(--color-text)}.form-input,.form-select,.form-textarea{width:100%;box-sizing:border-box;padding:var(--space-md) var(--space-lg);border:1px solid var(--color-border-input);border-radius:var(--radius-lg);font-size:var(--font-size-lg);font-family:inherit;color:var(--color-text);background:var(--color-bg-card);transition:border-color .3s,box-shadow .3s}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background:var(--color-bg-page);cursor:not-allowed}.form-textarea{resize:vertical;min-height:80px}.form-hint{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-top:var(--space-xs)}.form-error{font-size:var(--font-size-sm);color:var(--color-danger);margin-top:var(--space-xs)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-md);margin-top:var(--space-xl)}.filter-bar{display:flex;flex-wrap:wrap;gap:var(--space-md);align-items:flex-end;margin-bottom:var(--space-lg)}.filter-group{display:flex;flex-direction:column;gap:var(--space-xs);min-width:160px}.filter-label{font-size:var(--font-size-xs);font-weight:500;color:var(--color-text-muted);white-space:nowrap}.filter-select,.filter-input{padding:var(--space-xs) 10px;border:1px solid var(--color-border-input);border-radius:var(--radius-md);font-size:var(--font-size-md);height:32px;background:var(--color-bg-card);color:var(--color-text);font-family:inherit}.filter-select:focus,.filter-input:focus{outline:none;border-color:var(--color-primary)}.table-container{background:var(--color-bg-card);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden}.table-header{background:var(--color-bg-page);border-bottom:1px solid var(--color-border)}.table-row{display:grid;align-items:center;min-height:56px}.table-cell{padding:var(--space-lg);font-size:var(--font-size-base);font-weight:500;color:var(--color-text)}.table-body .table-cell{font-weight:400}.table-body .table-row{border-bottom:1px solid var(--color-border-light);transition:background .2s}.table-body .table-row:hover{background:var(--color-bg-row-hover)}.table-body .table-row:last-child{border-bottom:none}.id-cell{color:var(--color-text-muted);font-family:var(--font-family-mono);font-size:var(--font-size-md)}.actions-cell{display:flex;gap:var(--space-sm)}.table-footer{padding:var(--space-lg);border-top:1px solid var(--color-border);background:var(--color-bg-footer)}.stats{color:var(--color-text-muted);font-size:var(--font-size-base)}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);padding:var(--space-xl)}.modal-content{background:var(--color-bg-card);border-radius:var(--radius-xl);width:100%;max-width:500px;max-height:90vh;overflow:auto;box-shadow:var(--shadow-modal)}.modal-content--lg{max-width:720px}.modal-content--xl{max-width:960px}.modal-header{padding:var(--space-xl) var(--space-2xl);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center}.modal-header h3{margin:0;font-size:var(--font-size-xl);color:var(--color-text)}.modal-body{padding:var(--space-2xl)}.modal-footer{padding:var(--space-lg) var(--space-2xl);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-md)}.loading-state,.error-state,.empty-state{background:var(--color-bg-card);border-radius:var(--radius-xl);padding:var(--space-4xl) var(--space-2xl);text-align:center;box-shadow:var(--shadow-card);margin-bottom:var(--space-2xl)}.loading-spinner{width:40px;height:40px;border:4px solid #f3f3f3;border-top:4px solid var(--color-primary);border-radius:var(--radius-full);animation:spin 1s linear infinite;margin:0 auto var(--space-lg)}.loading-spinner--sm{width:20px;height:20px;border-width:3px}.error-icon,.empty-icon{font-size:var(--font-size-4xl, 48px);margin-bottom:var(--space-lg)}.error-state h3,.empty-state h3,.loading-state h3{color:var(--color-text);margin:0 0 var(--space-md) 0;font-size:var(--font-size-xl)}.error-state p,.empty-state p,.loading-state p{color:var(--color-text-muted);margin:0 0 var(--space-xl) 0;max-width:500px;margin-left:auto;margin-right:auto}.retry-btn{background:var(--color-primary);color:#fff;border:none;padding:10px var(--space-xl);border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-base);font-family:inherit;transition:var(--transition-base)}.retry-btn:hover{background:var(--color-primary-hover)}.status-badge{display:inline-block;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);font-size:var(--font-size-sm);font-weight:500;line-height:1.4}.status-badge--success,.status-badge--active{background:var(--color-success-bg);color:var(--color-success-text)}.status-badge--danger,.status-badge--disabled{background:var(--color-danger-bg);color:var(--color-danger-text)}.status-badge--info{background:var(--color-primary-bg);color:var(--color-primary-hover)}.status-badge--warning{background:var(--color-warning-bg);color:var(--color-warning-text)}.status-badge--neutral{background:var(--color-bg-page);color:var(--color-text-muted)}
