.login-root{display:flex;align-items:center;justify-content:center;min-height:100vh;width:100vw;background:radial-gradient(circle at 50% 20%,#1e293b,#0f172a);padding:1.5rem;box-sizing:border-box}.login-card{width:100%;max-width:400px;padding:2.5rem 2.25rem;background:var(--gs-surface);border-radius:var(--gs-radius-lg);box-shadow:var(--gs-shadow-lg),0 20px 25px -5px #0003;border:1px solid rgba(255,255,255,.1);display:flex;flex-direction:column;gap:1.25rem;position:relative;overflow:hidden}.login-brand{display:flex;flex-direction:column;align-items:center;gap:.75rem;margin-bottom:.5rem}.login-logo{width:52px;height:52px;border-radius:var(--gs-radius-md);background:linear-gradient(135deg,var(--gs-primary),#0369a1);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 4px 12px #0284c766}.login-title{font-size:1.625rem;font-weight:700;color:var(--gs-text);text-align:center;margin:0;letter-spacing:-.02em}.login-subtitle{font-size:.875rem;color:var(--gs-text-muted);text-align:center;margin:0}.login-error{padding:.75rem 1rem;background:var(--gs-danger-light);border:1px solid rgba(239,68,68,.3);border-radius:var(--gs-radius-md);color:var(--gs-danger-text);font-size:.875rem;display:flex;align-items:center;gap:.5rem;animation:fadeIn .2s ease-out}.login-field{display:flex;flex-direction:column;gap:.375rem}.login-field label{font-size:.8125rem;font-weight:600;color:var(--gs-text);text-transform:uppercase;letter-spacing:.04em}.login-field input{padding:.625rem .875rem;border:1px solid var(--gs-border);border-radius:var(--gs-radius-md);font-size:.9375rem;color:var(--gs-text);background:var(--gs-surface);outline:none;transition:var(--gs-transition)}.login-field input:focus{border-color:var(--gs-primary);box-shadow:0 0 0 3px #0284c726}.login-field input:disabled{background:var(--gs-surface-hover);color:var(--gs-text-muted)}.login-btn{margin-top:.5rem;padding:.75rem;background:var(--gs-primary);color:#fff;border:none;border-radius:var(--gs-radius-md);font-size:.9375rem;font-weight:600;cursor:pointer;transition:var(--gs-transition);display:flex;align-items:center;justify-content:center;gap:.5rem;box-shadow:0 2px 4px #0284c740}.login-btn:hover:not(:disabled){background:var(--gs-primary-hover);transform:translateY(-1px);box-shadow:0 4px 8px #0284c759}.login-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.login-footer{margin-top:.5rem;text-align:center;font-size:.75rem;color:var(--gs-text-muted);font-family:var(--gs-font-mono)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.sidebar{width:260px;min-width:260px;background:var(--gs-sidebar-bg);display:flex;flex-direction:column;height:100vh;border-right:1px solid var(--gs-sidebar-border);transition:width .2s cubic-bezier(.4,0,.2,1),min-width .2s cubic-bezier(.4,0,.2,1);overflow-x:hidden;-webkit-user-select:none;user-select:none}.sidebar.collapsed{width:72px;min-width:72px}.sidebar-header{padding:1.125rem 1.25rem;border-bottom:1px solid var(--gs-sidebar-border);display:flex;align-items:center;gap:.75rem;height:56px;box-sizing:border-box}.brand-logo-badge{width:32px;height:32px;min-width:32px;border-radius:var(--gs-radius-md);background:linear-gradient(135deg,#0284c7,#0369a1);display:flex;align-items:center;justify-content:center;color:#fff;box-shadow:0 2px 6px #0284c766}.sidebar-title-group{display:flex;flex-direction:column;overflow:hidden;white-space:nowrap}.sidebar-title{font-size:1.0625rem;font-weight:700;color:#f8fafc;letter-spacing:-.01em;line-height:1.2}.sidebar-subtitle{font-size:.6875rem;color:var(--gs-sidebar-text);font-weight:500}.sidebar-nav{display:flex;flex-direction:column;padding:1rem .75rem;overflow-y:auto;flex:1;gap:1.25rem}.nav-section-group{display:flex;flex-direction:column;gap:.25rem}.nav-section-title{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#64748b;padding:.35rem .625rem .25rem;white-space:nowrap}.sidebar.collapsed .nav-section-title{display:none}.nav-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;color:var(--gs-sidebar-text);text-decoration:none;font-size:.875rem;font-weight:500;border-radius:var(--gs-radius-md);transition:var(--gs-transition);white-space:nowrap}.nav-item-icon{width:18px;height:18px;min-width:18px;display:flex;align-items:center;justify-content:center;color:inherit}.nav-item-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar.collapsed .nav-item-label{display:none}.sidebar.collapsed .nav-item{justify-content:center;padding:.625rem 0}.nav-item:hover{background:var(--gs-sidebar-surface);color:var(--gs-sidebar-text-hover)}.nav-item.active{background:var(--gs-sidebar-active-bg);color:var(--gs-sidebar-active-text);font-weight:600}.nav-item.active .nav-item-icon{color:var(--gs-sidebar-active-text)}.sidebar-footer{padding:.875rem 1rem;border-top:1px solid var(--gs-sidebar-border);display:flex;align-items:center;justify-content:space-between;background:#0f172a80}.sidebar-version-badge{font-size:.75rem;color:#64748b;font-family:var(--gs-font-mono)}.sidebar.collapsed .sidebar-version-badge{display:none}.app-header{height:56px;min-height:56px;background:var(--gs-surface);border-bottom:1px solid var(--gs-border);display:flex;align-items:center;justify-content:space-between;padding:0 1.5rem;z-index:10;box-shadow:var(--gs-shadow-xs)}.header-left{display:flex;align-items:center;gap:1rem}.sidebar-toggle-btn{background:transparent;border:1px solid var(--gs-border);border-radius:var(--gs-radius-md);color:var(--gs-text-muted);cursor:pointer;padding:.35rem .5rem;display:flex;align-items:center;justify-content:center;transition:var(--gs-transition)}.sidebar-toggle-btn:hover{background:var(--gs-surface-hover);color:var(--gs-text);border-color:var(--gs-border-hover)}.header-breadcrumb{display:flex;align-items:center;gap:.5rem;font-size:.875rem;color:var(--gs-text-muted)}.breadcrumb-root{color:var(--gs-text-muted);text-decoration:none;font-weight:500;transition:var(--gs-transition)}.breadcrumb-root:hover{color:var(--gs-primary)}.breadcrumb-separator{color:var(--gs-text-light);font-size:.75rem}.breadcrumb-current{color:var(--gs-text);font-weight:600}.header-right{display:flex;align-items:center;gap:1rem}.system-status-pill{display:flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:var(--gs-radius-full);font-size:.75rem;font-weight:500;background:var(--gs-success-light);color:var(--gs-success-text);border:1px solid rgba(16,185,129,.2)}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--gs-success);box-shadow:0 0 0 2px #10b9814d}.user-profile-menu{display:flex;align-items:center;gap:.625rem;padding-left:.75rem;border-left:1px solid var(--gs-border)}.language-selector-wrapper{display:flex;align-items:center;gap:.375rem;background:var(--gs-surface-hover);border:1px solid var(--gs-border);border-radius:var(--gs-radius-md);padding:.2rem .5rem}.language-icon{font-size:.875rem;color:var(--gs-text-muted)}.language-select{background:transparent;border:none;font-size:.8125rem;font-weight:500;color:var(--gs-text);cursor:pointer;outline:none;font-family:inherit}.language-select:focus{outline:none}.user-avatar{width:32px;height:32px;border-radius:var(--gs-radius-full);background:linear-gradient(135deg,var(--gs-primary),var(--gs-accent));color:#fff;font-weight:600;font-size:.8125rem;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0284c740}.user-info{display:flex;flex-direction:column}.user-name{font-size:.8125rem;font-weight:600;color:var(--gs-text);line-height:1.2}.user-role{font-size:.7rem;color:var(--gs-text-muted)}.header-logout-btn{background:transparent;border:none;color:var(--gs-text-muted);padding:.35rem;border-radius:var(--gs-radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:var(--gs-transition);margin-left:.25rem}.header-logout-btn:hover{background:var(--gs-danger-light);color:var(--gs-danger)}.app-layout{display:flex;width:100vw;height:100vh;overflow:hidden;background:var(--gs-bg)}.main-wrapper{display:flex;flex-direction:column;flex:1;height:100vh;min-width:0;overflow:hidden}.content-area{flex:1;overflow-y:auto;padding:1.5rem 2rem;background:var(--gs-bg)}.content-container{max-width:1280px;margin:0 auto}.page-content h1{font-size:1.5rem;font-weight:700;color:var(--gs-text);margin-bottom:.5rem;letter-spacing:-.01em}.page-content p{color:var(--gs-text-muted);font-size:.9375rem}:root{--gs-primary: #0284c7;--gs-primary-hover: #0369a1;--gs-primary-light: #e0f2fe;--gs-accent: #0ea5e9;--gs-bg: #f8fafc;--gs-surface: #ffffff;--gs-surface-hover: #f1f5f9;--gs-surface-active: #e2e8f0;--gs-border: #e2e8f0;--gs-border-hover: #cbd5e1;--gs-sidebar-bg: #0f172a;--gs-sidebar-surface: #1e293b;--gs-sidebar-text: #94a3b8;--gs-sidebar-text-hover: #f8fafc;--gs-sidebar-active-bg: rgba(14, 165, 233, .15);--gs-sidebar-active-text: #38bdf8;--gs-sidebar-border: #334155;--gs-text: #0f172a;--gs-text-muted: #64748b;--gs-text-light: #94a3b8;--gs-font: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--gs-font-mono: "JetBrains Mono", "Fira Code", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--gs-success: #10b981;--gs-success-light: #d1fae5;--gs-success-text: #065f46;--gs-warning: #f59e0b;--gs-warning-light: #fef3c7;--gs-warning-text: #92400e;--gs-danger: #ef4444;--gs-danger-light: #fee2e2;--gs-danger-text: #991b1b;--gs-info: #3b82f6;--gs-info-light: #dbeafe;--gs-info-text: #1e40af;--gs-radius-sm: 4px;--gs-radius-md: 8px;--gs-radius-lg: 12px;--gs-radius-full: 9999px;--gs-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--gs-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--gs-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--gs-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--gs-transition: all .15s cubic-bezier(.4, 0, .2, 1)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--gs-font);background:var(--gs-bg);color:var(--gs-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.gs-loading-state,.gs-status-message{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-radius:var(--gs-radius-md)}.gs-status-info{background:var(--gs-info-light);color:var(--gs-info-text)}.gs-status-success{background:var(--gs-success-light);color:var(--gs-success-text)}.gs-status-error{background:var(--gs-danger-light);color:var(--gs-danger-text)}.gs-form-field{display:flex;flex-direction:column;gap:.35rem}.gs-form-error{color:var(--gs-danger-text)}.gs-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:#0f172a8c}.gs-modal{width:min(100%,36rem);max-height:calc(100vh - 2rem);overflow:auto;background:var(--gs-surface);border-radius:var(--gs-radius-lg);box-shadow:var(--gs-shadow-lg)}.gs-modal-header,.gs-modal-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding:1rem}.gs-modal-body{padding:0 1rem 1rem}.gs-modal-header button{border:0;background:transparent;font-size:1.5rem;cursor:pointer}.gs-data-table{width:100%;border-collapse:collapse}.gs-data-table th,.gs-data-table td{padding:.65rem;border-bottom:1px solid var(--gs-border);text-align:left}.gs-table-empty{color:var(--gs-text-muted);text-align:center!important}#root{display:flex;height:100vh;width:100vw;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:var(--gs-radius-full)}::-webkit-scrollbar-thumb:hover{background:#94a3b8}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.gs-spinner{animation:spin 1s linear infinite;display:inline-block}.page-content :is(.btn,.btn-primary,.btn-secondary,.btn-danger){box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;width:auto;min-height:36px;padding:.5rem .875rem;line-height:1.25;text-decoration:none;flex-shrink:0}.page-content :is(.action-btn,.table-action-btn,.btn-icon){box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;width:auto;min-width:36px;height:36px;min-height:36px;padding:.375rem .75rem;line-height:1.25;white-space:nowrap;text-decoration:none;flex-shrink:0}.page-content :is(.action-btn,.table-action-btn).icon-only,.page-content .btn-icon,.page-content .action-cell .action-btn{width:36px;padding:0}.page-content :is(.action-btn,.table-action-btn) svg{width:18px;height:18px;flex-shrink:0}.page-content :is(button,a):focus-visible{outline:2px solid var(--gs-primary);outline-offset:2px}
