:root{--vt-c-white: #ffffff;--vt-c-white-soft: #f8f8f8;--vt-c-white-mute: #f2f2f2;--vt-c-black: #181818;--vt-c-black-soft: #222222;--vt-c-black-mute: #282828;--vt-c-indigo: #2c3e50;--vt-c-divider-light-1: rgba(60, 60, 60, .29);--vt-c-divider-light-2: rgba(60, 60, 60, .12);--vt-c-divider-dark-1: rgba(84, 84, 84, .65);--vt-c-divider-dark-2: rgba(84, 84, 84, .48);--vt-c-text-light-1: var(--vt-c-indigo);--vt-c-text-light-2: rgba(60, 60, 60, .66);--vt-c-text-dark-1: var(--vt-c-white);--vt-c-text-dark-2: rgba(235, 235, 235, .64)}:root{--color-background: var(--vt-c-white);--color-background-soft: var(--vt-c-white-soft);--color-background-mute: var(--vt-c-white-mute);--color-border: var(--vt-c-divider-light-2);--color-border-hover: var(--vt-c-divider-light-1);--color-heading: var(--vt-c-text-light-1);--color-text: var(--vt-c-text-light-1);--section-gap: 160px}@media (prefers-color-scheme: dark){:root{--color-background: var(--vt-c-black);--color-background-soft: var(--vt-c-black-soft);--color-background-mute: var(--vt-c-black-mute);--color-border: var(--vt-c-divider-dark-2);--color-border-hover: var(--vt-c-divider-dark-1);--color-heading: var(--vt-c-text-dark-1);--color-text: var(--vt-c-text-dark-2)}}*,*:before,*:after{box-sizing:border-box;margin:0;font-weight:400}body{min-height:100vh;color:var(--color-text);background:var(--color-background);transition:color .5s,background-color .5s;line-height:1.6;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-size:15px;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;min-height:100vh}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;background:#f8f9fa}#app{width:100%;min-height:100vh;margin:0;padding:0;font-weight:400}a{text-decoration:none;transition:.3s ease}a:hover{text-decoration:underline}.icon{font-style:normal}.app-background[data-v-2c6c3b6c]{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.app-title .redis-icon[data-v-2c6c3b6c]{font-size:1.8rem;color:#dc382d}.page-container[data-v-2c6c3b6c]{max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.page-header[data-v-2c6c3b6c]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:1.5rem;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.3);margin-bottom:1.5rem}.page-header h1[data-v-2c6c3b6c],.page-header h2[data-v-2c6c3b6c]{margin:0 0 .25rem;color:#2c3e50;font-size:1.5rem;font-weight:700}.page-header p[data-v-2c6c3b6c]{margin:0;color:#6c757d;font-size:1.125rem}.btn-primary[data-v-2c6c3b6c]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 14px #667eea66}.btn-primary[data-v-2c6c3b6c]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-primary[data-v-2c6c3b6c]:not(:disabled):hover{transform:translateY(-1px)}.btn-primary[data-v-2c6c3b6c]:not(:disabled):active{transform:translateY(0)}.btn-primary[data-v-2c6c3b6c]:not(:disabled):hover{background:linear-gradient(135deg,#5a6fd8,#6b428f);box-shadow:0 6px 20px #667eea80}.btn-secondary[data-v-2c6c3b6c]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6}.btn-secondary[data-v-2c6c3b6c]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-secondary[data-v-2c6c3b6c]:not(:disabled):hover{transform:translateY(-1px)}.btn-secondary[data-v-2c6c3b6c]:not(:disabled):active{transform:translateY(0)}.btn-secondary[data-v-2c6c3b6c]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.btn-success[data-v-2c6c3b6c]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 14px #10b98166}.btn-success[data-v-2c6c3b6c]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-success[data-v-2c6c3b6c]:not(:disabled):hover{transform:translateY(-1px)}.btn-success[data-v-2c6c3b6c]:not(:disabled):active{transform:translateY(0)}.btn-success[data-v-2c6c3b6c]:not(:disabled):hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 20px #10b98180}.btn-danger[data-v-2c6c3b6c]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#dc3545;color:#fff;box-shadow:0 4px 14px #dc354566}.btn-danger[data-v-2c6c3b6c]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-danger[data-v-2c6c3b6c]:not(:disabled):hover{transform:translateY(-1px)}.btn-danger[data-v-2c6c3b6c]:not(:disabled):active{transform:translateY(0)}.btn-danger[data-v-2c6c3b6c]:not(:disabled):hover{background:#c53030;box-shadow:0 6px 20px #dc354580}.card[data-v-2c6c3b6c]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden;padding:1.5rem}.stat-card[data-v-2c6c3b6c]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden;padding:1.5rem;transition:transform .2s ease;display:flex;align-items:center;gap:1rem}.stat-card[data-v-2c6c3b6c]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.stat-card .stat-icon[data-v-2c6c3b6c]{font-size:2.5rem;background:linear-gradient(135deg,#667eea,#764ba2);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.stat-card .stat-content h3[data-v-2c6c3b6c]{margin:0;font-size:1.25rem;font-weight:700;color:#2c3e50}.stat-card .stat-content p[data-v-2c6c3b6c]{margin:0;color:#6c757d;font-size:.875rem;font-weight:500}.form-group[data-v-2c6c3b6c]{margin-bottom:1rem}.form-group label[data-v-2c6c3b6c]{display:block;margin-bottom:.5rem;color:#2c3e50;font-size:.875rem;font-weight:500}.form-group input[data-v-2c6c3b6c],.form-group select[data-v-2c6c3b6c],.form-group textarea[data-v-2c6c3b6c]{width:100%;padding:.75rem 1rem;border:2px solid #e9ecef;border-radius:8px;font-size:.875rem;background:#fff;color:#2c3e50;transition:all .2s ease}.form-group input[data-v-2c6c3b6c]:focus,.form-group select[data-v-2c6c3b6c]:focus,.form-group textarea[data-v-2c6c3b6c]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input[data-v-2c6c3b6c]:disabled,.form-group select[data-v-2c6c3b6c]:disabled,.form-group textarea[data-v-2c6c3b6c]:disabled{opacity:.6;cursor:not-allowed;background-color:#f8f9fa}.form-group input[data-v-2c6c3b6c]::placeholder,.form-group select[data-v-2c6c3b6c]::placeholder,.form-group textarea[data-v-2c6c3b6c]::placeholder{color:#6c757d}.form-group select[data-v-2c6c3b6c]{width:100%;padding:.75rem 1rem;border:2px solid #e9ecef;border-radius:8px;font-size:.875rem;background:#fff;color:#2c3e50;transition:all .2s ease}.form-group select[data-v-2c6c3b6c]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group select[data-v-2c6c3b6c]:disabled{opacity:.6;cursor:not-allowed;background-color:#f8f9fa}.form-group select[data-v-2c6c3b6c]::placeholder{color:#6c757d}.badge-success[data-v-2c6c3b6c]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#10b9811a;color:#047857}.badge-error[data-v-2c6c3b6c]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#e53e3e1a;color:#c53030}.badge-warning[data-v-2c6c3b6c]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#ffc1071a;color:#d97706}.badge-info[data-v-2c6c3b6c]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#4299e11a;color:#2c5282}.loading-spinner[data-v-2c6c3b6c]{width:1.25rem;height:1.25rem;border:2px solid rgba(102,126,234,.3);border-top:2px solid #667eea;border-radius:50%;animation:spin-2c6c3b6c 1s linear infinite}@keyframes spin-2c6c3b6c{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay[data-v-2c6c3b6c]{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content[data-v-2c6c3b6c]{background:#fff;border:1px solid #e9ecef;border-radius:12px;max-width:600px;max-height:80vh;width:90%;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000001a}.modal-content .modal-header[data-v-2c6c3b6c]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e9ecef;background:#fffc}.modal-content .modal-header h3[data-v-2c6c3b6c]{margin:0;color:#2c3e50}.modal-content .modal-header .btn-close[data-v-2c6c3b6c]{padding:.25rem .5rem;border:none;background:none;font-size:1.25rem;cursor:pointer;color:#6c757d;transition:color .2s ease}.modal-content .modal-header .btn-close[data-v-2c6c3b6c]:hover{color:#2c3e50}.modal-content .modal-body[data-v-2c6c3b6c]{padding:1.5rem;overflow-y:auto}.table[data-v-2c6c3b6c]{width:100%;border-collapse:collapse;font-size:.875rem}.table th[data-v-2c6c3b6c]{padding:.75rem;background:#fffc;border-bottom:1px solid #e9ecef;font-weight:600;text-align:left;color:#2c3e50}.table td[data-v-2c6c3b6c]{padding:.75rem;border-bottom:1px solid #e9ecef;vertical-align:top}.stats-grid[data-v-2c6c3b6c]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem;margin-bottom:1.5rem}.grid-responsive[data-v-2c6c3b6c]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.row-success[data-v-2c6c3b6c]{background:#10b9810d}.row-warning[data-v-2c6c3b6c]{background:#ffc1070d}.row-error[data-v-2c6c3b6c]{background:#e53e3e0d}.row-info[data-v-2c6c3b6c]{background:#4299e10d}.connection-status .status-indicator[data-v-2c6c3b6c]{width:10px;height:10px;border-radius:50%;animation:pulse-2c6c3b6c 2s infinite}.connection-status .status-indicator.connected[data-v-2c6c3b6c]{background:#10b981}.connection-status .status-indicator.disconnected[data-v-2c6c3b6c]{background:#e53e3e}.connection-status .status-text[data-v-2c6c3b6c]{color:#2c3e50}.user-menu .user-info[data-v-2c6c3b6c]{display:flex;align-items:center;gap:.75rem}.user-menu .user-info .user-avatar[data-v-2c6c3b6c],.user-menu .user-info .user-avatar-placeholder[data-v-2c6c3b6c]{width:40px;height:40px;border-radius:50%;border:2px solid #667eea}.user-menu .user-info .user-avatar[data-v-2c6c3b6c]{object-fit:cover}.user-menu .user-info .user-avatar-placeholder[data-v-2c6c3b6c]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.125rem}.user-menu .user-info .user-details[data-v-2c6c3b6c]{display:flex;flex-direction:column;align-items:flex-start}.user-menu .user-info .user-details .user-name[data-v-2c6c3b6c]{font-weight:600;color:#2c3e50;font-size:.875rem}.user-menu .user-info .user-details .user-email[data-v-2c6c3b6c]{font-size:.75rem;color:#6c757d}.user-menu .logout-btn[data-v-2c6c3b6c]{background:none;border:1px solid #dc3545;color:#dc3545;padding:.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.user-menu .logout-btn[data-v-2c6c3b6c]:hover{background:#dc3545;color:#fff}.user-menu .logout-btn .logout-icon[data-v-2c6c3b6c]{width:18px;height:18px}.pagination[data-v-2c6c3b6c]{display:flex;justify-content:center;align-items:center;gap:1rem;padding:1rem;border-top:1px solid #e9ecef}.pagination .btn-pagination[data-v-2c6c3b6c]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6;padding:.5rem 1rem}.pagination .btn-pagination[data-v-2c6c3b6c]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.pagination .btn-pagination[data-v-2c6c3b6c]:not(:disabled):hover{transform:translateY(-1px)}.pagination .btn-pagination[data-v-2c6c3b6c]:not(:disabled):active{transform:translateY(0)}.pagination .btn-pagination[data-v-2c6c3b6c]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.pagination .btn-pagination[data-v-2c6c3b6c]:disabled{opacity:.5;cursor:not-allowed}.pagination .page-info[data-v-2c6c3b6c]{font-size:.875rem;color:#6c757d}.error-message[data-v-2c6c3b6c]{padding:.75rem 1rem;background:#fed7d7e6;border:1px solid rgba(229,62,62,.5);border-radius:8px;color:#c53030;font-size:.875rem;margin-bottom:1.5rem;text-align:center}.access-denied[data-v-2c6c3b6c]{display:flex;justify-content:center;align-items:center;min-height:400px}.access-denied .access-denied-content[data-v-2c6c3b6c]{text-align:center;max-width:400px;padding:2rem;border:1px solid #e9ecef;border-radius:8px;background:#fffffff2}.access-denied .access-denied-content .icon[data-v-2c6c3b6c]{font-size:2rem;margin-bottom:1rem}.access-denied .access-denied-content h2[data-v-2c6c3b6c]{margin:0 0 1rem;color:#2c3e50}.access-denied .access-denied-content p[data-v-2c6c3b6c]{margin:0 0 .5rem;color:#2c3e50}.access-denied .access-denied-content p.help-text[data-v-2c6c3b6c]{color:#6c757d;font-size:.875rem}.empty-state[data-v-2c6c3b6c],.loading-state[data-v-2c6c3b6c]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.empty-state .icon[data-v-2c6c3b6c],.loading-state .icon[data-v-2c6c3b6c]{font-size:2rem;margin-bottom:1rem;opacity:.5}.empty-state h3[data-v-2c6c3b6c],.loading-state h3[data-v-2c6c3b6c]{margin:0 0 .5rem;color:#2c3e50}.empty-state p[data-v-2c6c3b6c],.loading-state p[data-v-2c6c3b6c]{margin:0;color:#6c757d}.loading-state .loading-spinner[data-v-2c6c3b6c]{margin-bottom:1rem}@media (max-width: 767px){.app-header[data-v-2c6c3b6c]{padding:1rem}.header-content[data-v-2c6c3b6c]{flex-direction:column;gap:1rem}.app-main[data-v-2c6c3b6c]{padding:1rem}.stats-grid[data-v-2c6c3b6c]{grid-template-columns:1fr}.user-menu .user-info[data-v-2c6c3b6c]{flex-direction:column;text-align:center;gap:.5rem}.user-menu .user-info .user-details[data-v-2c6c3b6c]{align-items:center}.modal-content[data-v-2c6c3b6c]{width:95%;max-height:90vh}}#app[data-v-2c6c3b6c]{min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;flex-direction:column}.app-header[data-v-2c6c3b6c]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.3);box-shadow:0 4px 20px #0000001a;padding:1rem 2rem;position:sticky;top:0;z-index:200}.header-content[data-v-2c6c3b6c]{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:2rem}.app-title[data-v-2c6c3b6c]{margin:0;color:#2c3e50;font-size:1.5rem;font-weight:700;display:flex;align-items:center;gap:.5rem;white-space:nowrap}.redis-icon[data-v-2c6c3b6c]{font-size:1.8rem;color:#dc382d}.header-middle[data-v-2c6c3b6c]{display:flex;align-items:center;gap:2rem;flex:1;justify-content:center}.connection-status[data-v-2c6c3b6c]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#ffffffb3;border-radius:25px;font-size:.875rem;font-weight:500;min-width:120px}.status-indicator[data-v-2c6c3b6c]{width:10px;height:10px;border-radius:50%;animation:pulse-2c6c3b6c 2s infinite}.status-indicator.connected[data-v-2c6c3b6c]{background:#10b981}.status-indicator.disconnected[data-v-2c6c3b6c]{background:#e53e3e}.status-text[data-v-2c6c3b6c]{color:#2c3e50}.main-nav[data-v-2c6c3b6c]{display:flex;gap:1.5rem}.nav-link[data-v-2c6c3b6c]{color:#2c3e50;text-decoration:none;font-weight:500;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease;position:relative}.nav-link[data-v-2c6c3b6c]:hover{background:#667eea1a;color:#667eea}.nav-link.router-link-active[data-v-2c6c3b6c],.nav-link.active[data-v-2c6c3b6c]{background:#667eea;color:#fff}.user-menu[data-v-2c6c3b6c]{display:flex;align-items:center;gap:1rem}.user-info[data-v-2c6c3b6c]{display:flex;align-items:center;gap:.75rem}.user-avatar[data-v-2c6c3b6c]{width:40px;height:40px;border-radius:50%;object-fit:cover;border:2px solid #667eea}.user-avatar-placeholder[data-v-2c6c3b6c]{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.125rem;border:2px solid #667eea}.user-details[data-v-2c6c3b6c]{display:flex;flex-direction:column;align-items:flex-start}.user-name[data-v-2c6c3b6c]{font-weight:600;color:#2c3e50;font-size:.875rem}.user-email[data-v-2c6c3b6c]{font-size:.75rem;color:#6c757d}.logout-btn[data-v-2c6c3b6c]{background:none;border:1px solid #dc3545;color:#dc3545;padding:.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.logout-btn[data-v-2c6c3b6c]:hover{background:#dc3545;color:#fff}.logout-icon[data-v-2c6c3b6c]{width:18px;height:18px}.app-main[data-v-2c6c3b6c]{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}@keyframes pulse-2c6c3b6c{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@media (max-width: 767px){.app-header[data-v-2c6c3b6c]{padding:1rem}.header-content[data-v-2c6c3b6c]{flex-direction:column;gap:1rem}.header-middle[data-v-2c6c3b6c]{flex-direction:column;gap:1rem;width:100%}.main-nav[data-v-2c6c3b6c]{flex-wrap:wrap;justify-content:center}.user-info[data-v-2c6c3b6c]{flex-direction:column;text-align:center;gap:.5rem}.user-details[data-v-2c6c3b6c]{align-items:center}.app-main[data-v-2c6c3b6c]{padding:1rem}}.welcome-message[data-v-59f0d7dc]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:3rem 2rem;text-align:center;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.3);max-width:600px;margin:2rem auto}.welcome-icon[data-v-59f0d7dc]{font-size:4rem;margin-bottom:1rem}h2[data-v-59f0d7dc]{color:#2c3e50;margin:0 0 1rem;font-size:2rem;font-weight:700}p[data-v-59f0d7dc]{color:#7f8c8d;font-size:1.1rem;margin:0 0 2rem;line-height:1.6}.auth-info[data-v-59f0d7dc]{display:flex;justify-content:center}.auth-indicator[data-v-59f0d7dc]{display:flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:.75rem 1.5rem;border-radius:25px;font-weight:500;font-size:.9rem}.auth-icon[data-v-59f0d7dc]{font-size:1.2rem}@media (max-width: 768px){.welcome-message[data-v-59f0d7dc]{margin:1rem;padding:2rem 1rem}h2[data-v-59f0d7dc]{font-size:1.5rem}p[data-v-59f0d7dc]{font-size:1rem}}.home[data-v-f5e6f774]{max-width:1400px;margin:0 auto}.dashboard[data-v-f5e6f774]{display:flex;flex-direction:column;gap:2rem}.overview-grid[data-v-f5e6f774],.stats-grid[data-v-f5e6f774]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem}.stat-card[data-v-f5e6f774]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:1.5rem;display:flex;align-items:center;gap:1rem;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.3);transition:transform .3s ease}.stat-card[data-v-f5e6f774]:hover{transform:translateY(-2px)}.stat-icon[data-v-f5e6f774]{font-size:2.5rem;flex-shrink:0}.stat-content[data-v-f5e6f774]{flex:1}.stat-content h3[data-v-f5e6f774]{margin:0 0 .5rem;color:#2c3e50;font-size:1rem;font-weight:600}.stat-value[data-v-f5e6f774]{margin:0 0 .25rem;color:#2c3e50;font-size:1.8rem;font-weight:700;line-height:1}.stat-label[data-v-f5e6f774]{color:#7f8c8d;font-size:.85rem;font-weight:500}.databases-section[data-v-f5e6f774]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:2rem;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.3)}.databases-section h2[data-v-f5e6f774]{margin:0 0 1.5rem;color:#2c3e50;font-size:1.5rem;font-weight:700}.database-summary[data-v-f5e6f774]{display:flex;gap:2rem;margin-bottom:2rem;padding:1rem;background:#667eea1a;border-radius:12px;flex-wrap:wrap}.summary-stat[data-v-f5e6f774]{display:flex;flex-direction:column;gap:.25rem}.summary-label[data-v-f5e6f774]{font-size:.9rem;color:#6c757d;font-weight:500}.summary-value[data-v-f5e6f774]{font-size:1.3rem;color:#2c3e50;font-weight:700}.databases-grid[data-v-f5e6f774]{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.database-card[data-v-f5e6f774]{background:#fffc;border:2px solid #e9ecef;border-radius:12px;padding:1.5rem;cursor:pointer;transition:all .3s ease}.database-card[data-v-f5e6f774]:hover{border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 20px #0000001a}.db-header[data-v-f5e6f774]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.db-header h4[data-v-f5e6f774]{margin:0;color:#2c3e50;font-size:1.1rem;font-weight:600}.db-index[data-v-f5e6f774]{background:#667eea;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.8rem;font-weight:600}.db-stats[data-v-f5e6f774]{display:flex;gap:1rem}.db-stat[data-v-f5e6f774]{display:flex;flex-direction:column;gap:.25rem}.db-stat-value[data-v-f5e6f774]{font-size:1.2rem;font-weight:700;color:#2c3e50}.db-stat-label[data-v-f5e6f774]{font-size:.8rem;color:#6c757d;font-weight:500}.quick-actions[data-v-f5e6f774]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:2rem;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.3)}.quick-actions h2[data-v-f5e6f774]{margin:0 0 1.5rem;color:#2c3e50;font-size:1.5rem;font-weight:700}.actions-grid[data-v-f5e6f774]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.action-card[data-v-f5e6f774]{display:flex;align-items:center;gap:1rem;background:#fffc;border:2px solid #e9ecef;border-radius:12px;padding:1.5rem;text-decoration:none;transition:all .3s ease}.action-card[data-v-f5e6f774]:hover{border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 20px #0000001a}.action-icon[data-v-f5e6f774]{font-size:2.5rem;flex-shrink:0}.action-content[data-v-f5e6f774]{flex:1}.action-content h3[data-v-f5e6f774]{margin:0 0 .5rem;color:#2c3e50;font-size:1.1rem;font-weight:600}.action-content p[data-v-f5e6f774]{margin:0;color:#7f8c8d;font-size:.9rem;line-height:1.4}@media (max-width: 768px){.home[data-v-f5e6f774]{margin:1rem}.dashboard[data-v-f5e6f774]{gap:1rem}.overview-grid[data-v-f5e6f774],.stats-grid[data-v-f5e6f774]{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}.stat-card[data-v-f5e6f774]{padding:1rem}.stat-icon[data-v-f5e6f774]{font-size:2rem}.stat-value[data-v-f5e6f774]{font-size:1.5rem}.databases-section[data-v-f5e6f774],.quick-actions[data-v-f5e6f774]{padding:1.5rem;margin:0}.database-summary[data-v-f5e6f774]{flex-direction:column;gap:1rem}.databases-grid[data-v-f5e6f774]{grid-template-columns:1fr}.actions-grid[data-v-f5e6f774]{grid-template-columns:1fr;gap:1rem}.action-card[data-v-f5e6f774]{padding:1rem}.action-icon[data-v-f5e6f774]{font-size:2rem}}.app-background[data-v-987b28d8]{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.app-header[data-v-987b28d8]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.3);box-shadow:0 4px 20px #0000001a;padding:1rem 2rem;position:sticky;top:0;z-index:200}.header-content[data-v-987b28d8]{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:2rem}.app-title[data-v-987b28d8]{margin:0;color:#2c3e50;font-size:1.5rem;font-weight:700;display:flex;align-items:center;gap:.5rem;white-space:nowrap}.app-title .redis-icon[data-v-987b28d8]{font-size:1.8rem;color:#dc382d}.app-main[data-v-987b28d8]{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}.page-container[data-v-987b28d8]{max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.page-header[data-v-987b28d8]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:1.5rem;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.3);margin-bottom:1.5rem}.page-header h1[data-v-987b28d8],.page-header h2[data-v-987b28d8]{margin:0 0 .25rem;color:#2c3e50;font-size:1.5rem;font-weight:700}.page-header p[data-v-987b28d8]{margin:0;color:#6c757d;font-size:1.125rem}.btn-primary[data-v-987b28d8]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 14px #667eea66}.btn-primary[data-v-987b28d8]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-primary[data-v-987b28d8]:not(:disabled):hover{transform:translateY(-1px)}.btn-primary[data-v-987b28d8]:not(:disabled):active{transform:translateY(0)}.btn-primary[data-v-987b28d8]:not(:disabled):hover{background:linear-gradient(135deg,#5a6fd8,#6b428f);box-shadow:0 6px 20px #667eea80}.btn-secondary[data-v-987b28d8]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6}.btn-secondary[data-v-987b28d8]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-secondary[data-v-987b28d8]:not(:disabled):hover{transform:translateY(-1px)}.btn-secondary[data-v-987b28d8]:not(:disabled):active{transform:translateY(0)}.btn-secondary[data-v-987b28d8]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.btn-success[data-v-987b28d8]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 14px #10b98166}.btn-success[data-v-987b28d8]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-success[data-v-987b28d8]:not(:disabled):hover{transform:translateY(-1px)}.btn-success[data-v-987b28d8]:not(:disabled):active{transform:translateY(0)}.btn-success[data-v-987b28d8]:not(:disabled):hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 20px #10b98180}.btn-danger[data-v-987b28d8]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#dc3545;color:#fff;box-shadow:0 4px 14px #dc354566}.btn-danger[data-v-987b28d8]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-danger[data-v-987b28d8]:not(:disabled):hover{transform:translateY(-1px)}.btn-danger[data-v-987b28d8]:not(:disabled):active{transform:translateY(0)}.btn-danger[data-v-987b28d8]:not(:disabled):hover{background:#c53030;box-shadow:0 6px 20px #dc354580}.card[data-v-987b28d8]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden;padding:1.5rem}.stat-card[data-v-987b28d8]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden;padding:1.5rem;transition:transform .2s ease;display:flex;align-items:center;gap:1rem}.stat-card[data-v-987b28d8]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.stat-card .stat-icon[data-v-987b28d8]{font-size:2.5rem;background:linear-gradient(135deg,#667eea,#764ba2);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.stat-card .stat-content h3[data-v-987b28d8]{margin:0;font-size:1.25rem;font-weight:700;color:#2c3e50}.stat-card .stat-content p[data-v-987b28d8]{margin:0;color:#6c757d;font-size:.875rem;font-weight:500}.form-group[data-v-987b28d8]{margin-bottom:1rem}.form-group label[data-v-987b28d8]{display:block;margin-bottom:.5rem;color:#2c3e50;font-size:.875rem;font-weight:500}.form-group input[data-v-987b28d8],.form-group select[data-v-987b28d8],.form-group textarea[data-v-987b28d8]{width:100%;padding:.75rem 1rem;border:2px solid #e9ecef;border-radius:8px;font-size:.875rem;background:#fff;color:#2c3e50;transition:all .2s ease}.form-group input[data-v-987b28d8]:focus,.form-group select[data-v-987b28d8]:focus,.form-group textarea[data-v-987b28d8]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input[data-v-987b28d8]:disabled,.form-group select[data-v-987b28d8]:disabled,.form-group textarea[data-v-987b28d8]:disabled{opacity:.6;cursor:not-allowed;background-color:#f8f9fa}.form-group input[data-v-987b28d8]::placeholder,.form-group select[data-v-987b28d8]::placeholder,.form-group textarea[data-v-987b28d8]::placeholder{color:#6c757d}.form-group select[data-v-987b28d8]{width:100%;padding:.75rem 1rem;border:2px solid #e9ecef;border-radius:8px;font-size:.875rem;background:#fff;color:#2c3e50;transition:all .2s ease}.form-group select[data-v-987b28d8]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group select[data-v-987b28d8]:disabled{opacity:.6;cursor:not-allowed;background-color:#f8f9fa}.form-group select[data-v-987b28d8]::placeholder{color:#6c757d}.badge-success[data-v-987b28d8]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#10b9811a;color:#047857}.badge-error[data-v-987b28d8]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#e53e3e1a;color:#c53030}.badge-warning[data-v-987b28d8]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#ffc1071a;color:#d97706}.badge-info[data-v-987b28d8]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#4299e11a;color:#2c5282}.loading-spinner[data-v-987b28d8]{width:1.25rem;height:1.25rem;border:2px solid rgba(102,126,234,.3);border-top:2px solid #667eea;border-radius:50%;animation:spin-987b28d8 1s linear infinite}@keyframes spin-987b28d8{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay[data-v-987b28d8]{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content[data-v-987b28d8]{background:#fff;border:1px solid #e9ecef;border-radius:12px;max-width:600px;max-height:80vh;width:90%;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000001a}.modal-content .modal-header[data-v-987b28d8]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e9ecef;background:#fffc}.modal-content .modal-header h3[data-v-987b28d8]{margin:0;color:#2c3e50}.modal-content .modal-header .btn-close[data-v-987b28d8]{padding:.25rem .5rem;border:none;background:none;font-size:1.25rem;cursor:pointer;color:#6c757d;transition:color .2s ease}.modal-content .modal-header .btn-close[data-v-987b28d8]:hover{color:#2c3e50}.modal-content .modal-body[data-v-987b28d8]{padding:1.5rem;overflow-y:auto}.table[data-v-987b28d8]{width:100%;border-collapse:collapse;font-size:.875rem}.table th[data-v-987b28d8]{padding:.75rem;background:#fffc;border-bottom:1px solid #e9ecef;font-weight:600;text-align:left;color:#2c3e50}.table td[data-v-987b28d8]{padding:.75rem;border-bottom:1px solid #e9ecef;vertical-align:top}.nav-link[data-v-987b28d8]{color:#2c3e50;text-decoration:none;font-weight:500;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease;position:relative}.nav-link[data-v-987b28d8]:hover{background:#667eea1a;color:#667eea}.nav-link.router-link-active[data-v-987b28d8],.nav-link.active[data-v-987b28d8]{background:#667eea;color:#fff}.stats-grid[data-v-987b28d8]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem;margin-bottom:1.5rem}.grid-responsive[data-v-987b28d8]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.row-success[data-v-987b28d8]{background:#10b9810d}.row-warning[data-v-987b28d8]{background:#ffc1070d}.row-error[data-v-987b28d8]{background:#e53e3e0d}.row-info[data-v-987b28d8]{background:#4299e10d}.connection-status[data-v-987b28d8]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#ffffffb3;border-radius:25px;font-size:.875rem;font-weight:500;min-width:120px}.connection-status .status-indicator[data-v-987b28d8]{width:10px;height:10px;border-radius:50%;animation:pulse-987b28d8 2s infinite}.connection-status .status-indicator.connected[data-v-987b28d8]{background:#10b981}.connection-status .status-indicator.disconnected[data-v-987b28d8]{background:#e53e3e}.connection-status .status-text[data-v-987b28d8]{color:#2c3e50}.user-menu[data-v-987b28d8]{display:flex;align-items:center;gap:1rem}.user-menu .user-info[data-v-987b28d8]{display:flex;align-items:center;gap:.75rem}.user-menu .user-info .user-avatar[data-v-987b28d8],.user-menu .user-info .user-avatar-placeholder[data-v-987b28d8]{width:40px;height:40px;border-radius:50%;border:2px solid #667eea}.user-menu .user-info .user-avatar[data-v-987b28d8]{object-fit:cover}.user-menu .user-info .user-avatar-placeholder[data-v-987b28d8]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.125rem}.user-menu .user-info .user-details[data-v-987b28d8]{display:flex;flex-direction:column;align-items:flex-start}.user-menu .user-info .user-details .user-name[data-v-987b28d8]{font-weight:600;color:#2c3e50;font-size:.875rem}.user-menu .user-info .user-details .user-email[data-v-987b28d8]{font-size:.75rem;color:#6c757d}.user-menu .logout-btn[data-v-987b28d8]{background:none;border:1px solid #dc3545;color:#dc3545;padding:.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.user-menu .logout-btn[data-v-987b28d8]:hover{background:#dc3545;color:#fff}.user-menu .logout-btn .logout-icon[data-v-987b28d8]{width:18px;height:18px}.pagination[data-v-987b28d8]{display:flex;justify-content:center;align-items:center;gap:1rem;padding:1rem;border-top:1px solid #e9ecef}.pagination .btn-pagination[data-v-987b28d8]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6;padding:.5rem 1rem}.pagination .btn-pagination[data-v-987b28d8]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.pagination .btn-pagination[data-v-987b28d8]:not(:disabled):hover{transform:translateY(-1px)}.pagination .btn-pagination[data-v-987b28d8]:not(:disabled):active{transform:translateY(0)}.pagination .btn-pagination[data-v-987b28d8]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.pagination .btn-pagination[data-v-987b28d8]:disabled{opacity:.5;cursor:not-allowed}.pagination .page-info[data-v-987b28d8]{font-size:.875rem;color:#6c757d}.error-message[data-v-987b28d8]{padding:.75rem 1rem;background:#fed7d7e6;border:1px solid rgba(229,62,62,.5);border-radius:8px;color:#c53030;font-size:.875rem;margin-bottom:1.5rem;text-align:center}.access-denied[data-v-987b28d8]{display:flex;justify-content:center;align-items:center;min-height:400px}.access-denied .access-denied-content[data-v-987b28d8]{text-align:center;max-width:400px;padding:2rem;border:1px solid #e9ecef;border-radius:8px;background:#fffffff2}.access-denied .access-denied-content .icon[data-v-987b28d8]{font-size:2rem;margin-bottom:1rem}.access-denied .access-denied-content h2[data-v-987b28d8]{margin:0 0 1rem;color:#2c3e50}.access-denied .access-denied-content p[data-v-987b28d8]{margin:0 0 .5rem;color:#2c3e50}.access-denied .access-denied-content p.help-text[data-v-987b28d8]{color:#6c757d;font-size:.875rem}.empty-state[data-v-987b28d8],.loading-state[data-v-987b28d8]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.empty-state .icon[data-v-987b28d8],.loading-state .icon[data-v-987b28d8]{font-size:2rem;margin-bottom:1rem;opacity:.5}.empty-state h3[data-v-987b28d8],.loading-state h3[data-v-987b28d8]{margin:0 0 .5rem;color:#2c3e50}.empty-state p[data-v-987b28d8],.loading-state p[data-v-987b28d8]{margin:0;color:#6c757d}.loading-state .loading-spinner[data-v-987b28d8]{margin-bottom:1rem}@keyframes pulse-987b28d8{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@media (max-width: 767px){.app-header[data-v-987b28d8]{padding:1rem}.header-content[data-v-987b28d8]{flex-direction:column;gap:1rem}.app-main[data-v-987b28d8]{padding:1rem}.stats-grid[data-v-987b28d8]{grid-template-columns:1fr}.user-menu .user-info[data-v-987b28d8]{flex-direction:column;text-align:center;gap:.5rem}.user-menu .user-info .user-details[data-v-987b28d8]{align-items:center}.modal-content[data-v-987b28d8]{width:95%;max-height:90vh}}.tree-node[data-v-987b28d8]{width:100%}.tree-node .node-content[data-v-987b28d8]{display:flex;align-items:center;gap:.25rem;padding:.25rem;border-radius:8px;cursor:pointer;transition:all .2s ease;background:#fff6;margin-bottom:2px}.tree-node .node-content[data-v-987b28d8]:hover{background:#667eea1a;transform:translate(4px)}.tree-node .node-content.is-leaf[data-v-987b28d8]{background:#fff9}.tree-node .node-content.is-leaf[data-v-987b28d8]:hover{background:#667eea26}.tree-node .node-content.is-leaf .node-label[data-v-987b28d8]{font-weight:600;color:#4c63d2}.tree-node .node-content .node-toggle[data-v-987b28d8]{width:20px;height:20px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:4px;transition:all .2s ease}.tree-node .node-content .node-toggle[data-v-987b28d8]:hover{background:#667eea33}.tree-node .node-content .node-toggle .toggle-icon[data-v-987b28d8]{font-size:.75rem;color:#667eea;font-weight:700}.tree-node .node-content .node-icon[data-v-987b28d8]{font-size:1rem;flex-shrink:0}.tree-node .node-content .node-icon .folder-icon[data-v-987b28d8]{transition:transform .2s ease}.tree-node .node-content .node-icon .folder-icon.open[data-v-987b28d8]{transform:rotate(15deg)}.tree-node .node-content .node-icon .leaf-icon[data-v-987b28d8]{color:#ffc107}.tree-node .node-content .node-label[data-v-987b28d8]{flex:1;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Consolas,Courier New,monospace;font-size:.875rem;font-weight:500;color:#2c3e50;word-break:break-all;cursor:pointer}.tree-node .node-content .node-meta[data-v-987b28d8]{display:flex;align-items:center;gap:.25rem;margin-left:auto}.tree-node .node-content .node-meta .key-type[data-v-987b28d8]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-weight:500;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.tree-node .node-content .node-meta .key-type.string[data-v-987b28d8]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#10b9811a;color:#047857}.tree-node .node-content .node-meta .key-type.hash[data-v-987b28d8]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#ffc1071a;color:#d97706}.tree-node .node-content .node-meta .key-type.list[data-v-987b28d8]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#4299e11a;color:#2c5282}.tree-node .node-content .node-meta .key-type.set[data-v-987b28d8]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#e53e3e1a;color:#c53030}.tree-node .node-content .node-meta .key-type.zset[data-v-987b28d8]{background:#e7ccf0;color:#5a1a5a;border:1px solid #6f42c1}.tree-node .node-content .node-meta .key-type.stream[data-v-987b28d8]{background:#d1ecf1;color:#0c5460;border:1px solid #17a2b8}.tree-node .node-content .node-meta .key-size[data-v-987b28d8]{font-size:.75rem;color:#6c757d;font-weight:500;background:#6c757d1a;padding:.25rem;border-radius:4px}.tree-node .node-content .node-meta .key-ttl[data-v-987b28d8]{font-size:.75rem;color:#f59e0b;font-weight:500;background:#ffc1071a;padding:.25rem;border-radius:4px}.tree-node .node-content .node-meta .key-ttl.persistent[data-v-987b28d8]{color:#059669;background:#10b9811a}.tree-node .node-content .node-actions[data-v-987b28d8]{display:flex;gap:.25rem;margin-left:.25rem}.tree-node .node-content .node-actions .action-btn[data-v-987b28d8]{display:inline-flex;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6;padding:.25rem;font-size:.75rem;display:flex;align-items:center;justify-content:center;width:28px;height:28px;transition:all .2s ease}.tree-node .node-content .node-actions .action-btn[data-v-987b28d8]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.tree-node .node-content .node-actions .action-btn[data-v-987b28d8]:not(:disabled):hover{transform:translateY(-1px)}.tree-node .node-content .node-actions .action-btn[data-v-987b28d8]:not(:disabled):active{transform:translateY(0)}.tree-node .node-content .node-actions .action-btn[data-v-987b28d8]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.tree-node .node-content .node-actions .action-btn.view[data-v-987b28d8]{background:#4299e11a;color:#3182ce;border-color:#4299e14d}.tree-node .node-content .node-actions .action-btn.view[data-v-987b28d8]:hover{background:#4299e1;color:#fff;transform:scale(1.1)}.tree-node .node-content .node-actions .action-btn.delete[data-v-987b28d8]{background:#e53e3e1a;color:#dc3545;border-color:#e53e3e4d}.tree-node .node-content .node-actions .action-btn.delete[data-v-987b28d8]:hover{background:#e53e3e;color:#fff;transform:scale(1.1)}.tree-node .node-children[data-v-987b28d8]{border-left:2px solid rgba(102,126,234,.2);margin-left:10px;padding-left:10px}.app-background[data-v-3abdf102]{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.app-header[data-v-3abdf102]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.3);box-shadow:0 4px 20px #0000001a;padding:1rem 2rem;position:sticky;top:0;z-index:200}.header-content[data-v-3abdf102]{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:2rem}.app-title[data-v-3abdf102]{margin:0;color:#2c3e50;font-size:1.5rem;font-weight:700;display:flex;align-items:center;gap:.5rem;white-space:nowrap}.app-title .redis-icon[data-v-3abdf102]{font-size:1.8rem;color:#dc382d}.app-main[data-v-3abdf102]{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}.page-container[data-v-3abdf102]{max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.btn-primary[data-v-3abdf102]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 14px #667eea66}.btn-primary[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-primary[data-v-3abdf102]:not(:disabled):hover{transform:translateY(-1px)}.btn-primary[data-v-3abdf102]:not(:disabled):active{transform:translateY(0)}.btn-primary[data-v-3abdf102]:not(:disabled):hover{background:linear-gradient(135deg,#5a6fd8,#6b428f);box-shadow:0 6px 20px #667eea80}.btn-secondary[data-v-3abdf102]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6}.btn-secondary[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-secondary[data-v-3abdf102]:not(:disabled):hover{transform:translateY(-1px)}.btn-secondary[data-v-3abdf102]:not(:disabled):active{transform:translateY(0)}.btn-secondary[data-v-3abdf102]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.btn-success[data-v-3abdf102]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 14px #10b98166}.btn-success[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-success[data-v-3abdf102]:not(:disabled):hover{transform:translateY(-1px)}.btn-success[data-v-3abdf102]:not(:disabled):active{transform:translateY(0)}.btn-success[data-v-3abdf102]:not(:disabled):hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 20px #10b98180}.btn-danger[data-v-3abdf102]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#dc3545;color:#fff;box-shadow:0 4px 14px #dc354566}.btn-danger[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-danger[data-v-3abdf102]:not(:disabled):hover{transform:translateY(-1px)}.btn-danger[data-v-3abdf102]:not(:disabled):active{transform:translateY(0)}.btn-danger[data-v-3abdf102]:not(:disabled):hover{background:#c53030;box-shadow:0 6px 20px #dc354580}.card[data-v-3abdf102]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden;padding:1.5rem}.stat-card[data-v-3abdf102]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden;padding:1.5rem;transition:transform .2s ease;display:flex;align-items:center;gap:1rem}.stat-card[data-v-3abdf102]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.stat-card .stat-icon[data-v-3abdf102]{font-size:2.5rem;background:linear-gradient(135deg,#667eea,#764ba2);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.stat-card .stat-content h3[data-v-3abdf102]{margin:0;font-size:1.25rem;font-weight:700;color:#2c3e50}.stat-card .stat-content p[data-v-3abdf102]{margin:0;color:#6c757d;font-size:.875rem;font-weight:500}.form-group[data-v-3abdf102]{margin-bottom:1rem}.form-group label[data-v-3abdf102]{display:block;margin-bottom:.5rem;color:#2c3e50;font-size:.875rem;font-weight:500}.form-group input[data-v-3abdf102],.form-group select[data-v-3abdf102],.form-group textarea[data-v-3abdf102]{width:100%;padding:.75rem 1rem;border:2px solid #e9ecef;border-radius:8px;font-size:.875rem;background:#fff;color:#2c3e50;transition:all .2s ease}.form-group input[data-v-3abdf102]:focus,.form-group select[data-v-3abdf102]:focus,.form-group textarea[data-v-3abdf102]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input[data-v-3abdf102]:disabled,.form-group select[data-v-3abdf102]:disabled,.form-group textarea[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;background-color:#f8f9fa}.form-group input[data-v-3abdf102]::placeholder,.form-group select[data-v-3abdf102]::placeholder,.form-group textarea[data-v-3abdf102]::placeholder{color:#6c757d}.form-group select[data-v-3abdf102]{width:100%;padding:.75rem 1rem;border:2px solid #e9ecef;border-radius:8px;font-size:.875rem;background:#fff;color:#2c3e50;transition:all .2s ease}.form-group select[data-v-3abdf102]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group select[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;background-color:#f8f9fa}.form-group select[data-v-3abdf102]::placeholder{color:#6c757d}.badge-success[data-v-3abdf102]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#10b9811a;color:#047857}.badge-error[data-v-3abdf102]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#e53e3e1a;color:#c53030}.badge-warning[data-v-3abdf102]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#ffc1071a;color:#d97706}.badge-info[data-v-3abdf102]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#4299e11a;color:#2c5282}.modal-content[data-v-3abdf102]{background:#fff;border:1px solid #e9ecef;border-radius:12px;max-width:600px;max-height:80vh;width:90%;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000001a}.modal-content .modal-header[data-v-3abdf102]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e9ecef;background:#fffc}.modal-content .modal-header h3[data-v-3abdf102]{margin:0;color:#2c3e50}.modal-content .modal-header .btn-close[data-v-3abdf102]{padding:.25rem .5rem;border:none;background:none;font-size:1.25rem;cursor:pointer;color:#6c757d;transition:color .2s ease}.modal-content .modal-header .btn-close[data-v-3abdf102]:hover{color:#2c3e50}.modal-content .modal-body[data-v-3abdf102]{padding:1.5rem;overflow-y:auto}.table[data-v-3abdf102]{width:100%;border-collapse:collapse;font-size:.875rem}.table th[data-v-3abdf102]{padding:.75rem;background:#fffc;border-bottom:1px solid #e9ecef;font-weight:600;text-align:left;color:#2c3e50}.table td[data-v-3abdf102]{padding:.75rem;border-bottom:1px solid #e9ecef;vertical-align:top}.nav-link[data-v-3abdf102]{color:#2c3e50;text-decoration:none;font-weight:500;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease;position:relative}.nav-link[data-v-3abdf102]:hover{background:#667eea1a;color:#667eea}.nav-link.router-link-active[data-v-3abdf102],.nav-link.active[data-v-3abdf102]{background:#667eea;color:#fff}.stats-grid[data-v-3abdf102]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem;margin-bottom:1.5rem}.grid-responsive[data-v-3abdf102]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.row-success[data-v-3abdf102]{background:#10b9810d}.row-warning[data-v-3abdf102]{background:#ffc1070d}.row-error[data-v-3abdf102]{background:#e53e3e0d}.row-info[data-v-3abdf102]{background:#4299e10d}.connection-status[data-v-3abdf102]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#ffffffb3;border-radius:25px;font-size:.875rem;font-weight:500;min-width:120px}.connection-status .status-indicator[data-v-3abdf102]{width:10px;height:10px;border-radius:50%;animation:pulse-3abdf102 2s infinite}.connection-status .status-indicator.connected[data-v-3abdf102]{background:#10b981}.connection-status .status-indicator.disconnected[data-v-3abdf102]{background:#e53e3e}.connection-status .status-text[data-v-3abdf102]{color:#2c3e50}.user-menu[data-v-3abdf102]{display:flex;align-items:center;gap:1rem}.user-menu .user-info[data-v-3abdf102]{display:flex;align-items:center;gap:.75rem}.user-menu .user-info .user-avatar[data-v-3abdf102],.user-menu .user-info .user-avatar-placeholder[data-v-3abdf102]{width:40px;height:40px;border-radius:50%;border:2px solid #667eea}.user-menu .user-info .user-avatar[data-v-3abdf102]{object-fit:cover}.user-menu .user-info .user-avatar-placeholder[data-v-3abdf102]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.125rem}.user-menu .user-info .user-details[data-v-3abdf102]{display:flex;flex-direction:column;align-items:flex-start}.user-menu .user-info .user-details .user-name[data-v-3abdf102]{font-weight:600;color:#2c3e50;font-size:.875rem}.user-menu .user-info .user-details .user-email[data-v-3abdf102]{font-size:.75rem;color:#6c757d}.user-menu .logout-btn[data-v-3abdf102]{background:none;border:1px solid #dc3545;color:#dc3545;padding:.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.user-menu .logout-btn[data-v-3abdf102]:hover{background:#dc3545;color:#fff}.user-menu .logout-btn .logout-icon[data-v-3abdf102]{width:18px;height:18px}.pagination[data-v-3abdf102]{display:flex;justify-content:center;align-items:center;gap:1rem;padding:1rem;border-top:1px solid #e9ecef}.pagination .btn-pagination[data-v-3abdf102]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6;padding:.5rem 1rem}.pagination .btn-pagination[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.pagination .btn-pagination[data-v-3abdf102]:not(:disabled):hover{transform:translateY(-1px)}.pagination .btn-pagination[data-v-3abdf102]:not(:disabled):active{transform:translateY(0)}.pagination .btn-pagination[data-v-3abdf102]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.pagination .btn-pagination[data-v-3abdf102]:disabled{opacity:.5;cursor:not-allowed}.pagination .page-info[data-v-3abdf102]{font-size:.875rem;color:#6c757d}.error-message[data-v-3abdf102]{padding:.75rem 1rem;background:#fed7d7e6;border:1px solid rgba(229,62,62,.5);border-radius:8px;color:#c53030;font-size:.875rem;margin-bottom:1.5rem;text-align:center}.access-denied[data-v-3abdf102]{display:flex;justify-content:center;align-items:center;min-height:400px}.access-denied .access-denied-content[data-v-3abdf102]{text-align:center;max-width:400px;padding:2rem;border:1px solid #e9ecef;border-radius:8px;background:#fffffff2}.access-denied .access-denied-content .icon[data-v-3abdf102]{font-size:2rem;margin-bottom:1rem}.access-denied .access-denied-content h2[data-v-3abdf102]{margin:0 0 1rem;color:#2c3e50}.access-denied .access-denied-content p[data-v-3abdf102]{margin:0 0 .5rem;color:#2c3e50}.access-denied .access-denied-content p.help-text[data-v-3abdf102]{color:#6c757d;font-size:.875rem}.empty-state[data-v-3abdf102],.no-databases[data-v-3abdf102],.no-keys[data-v-3abdf102],.loading-state[data-v-3abdf102],.loading[data-v-3abdf102]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.empty-state .icon[data-v-3abdf102],.no-databases .icon[data-v-3abdf102],.no-keys .icon[data-v-3abdf102],.loading-state .icon[data-v-3abdf102],.loading .icon[data-v-3abdf102]{font-size:2rem;margin-bottom:1rem;opacity:.5}.empty-state h3[data-v-3abdf102],.no-databases h3[data-v-3abdf102],.no-keys h3[data-v-3abdf102],.loading-state h3[data-v-3abdf102],.loading h3[data-v-3abdf102]{margin:0 0 .5rem;color:#2c3e50}.empty-state p[data-v-3abdf102],.no-databases p[data-v-3abdf102],.no-keys p[data-v-3abdf102],.loading-state p[data-v-3abdf102],.loading p[data-v-3abdf102]{margin:0;color:#6c757d}.loading-state .loading-spinner[data-v-3abdf102],.loading .loading-spinner[data-v-3abdf102]{margin-bottom:1rem}@keyframes pulse-3abdf102{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@media (max-width: 767px){.app-header[data-v-3abdf102]{padding:1rem}.header-content[data-v-3abdf102]{flex-direction:column;gap:1rem}.app-main[data-v-3abdf102]{padding:1rem}.stats-grid[data-v-3abdf102]{grid-template-columns:1fr}.user-menu .user-info[data-v-3abdf102]{flex-direction:column;text-align:center;gap:.5rem}.user-menu .user-info .user-details[data-v-3abdf102]{align-items:center}.modal-content[data-v-3abdf102]{width:95%;max-height:90vh}}.keys-view[data-v-3abdf102]{max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.page-header[data-v-3abdf102]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:1.5rem;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.3);margin-bottom:1.5rem}.page-header h1[data-v-3abdf102],.page-header h2[data-v-3abdf102]{margin:0 0 .25rem;color:#2c3e50;font-size:1.5rem;font-weight:700}.page-header p[data-v-3abdf102]{margin:0;color:#6c757d;font-size:1.125rem}.database-selector[data-v-3abdf102]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden;padding:1.5rem;margin-bottom:2rem}.database-selector .database-header[data-v-3abdf102]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.database-selector .database-header h3[data-v-3abdf102]{margin:0;color:#2c3e50;font-size:1.125rem;font-weight:600}.database-selector .database-header .refresh-btn[data-v-3abdf102]{display:inline-flex;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6;display:flex;align-items:center;gap:.25rem;font-size:.875rem}.database-selector .database-header .refresh-btn[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.database-selector .database-header .refresh-btn[data-v-3abdf102]:not(:disabled):hover{transform:translateY(-1px)}.database-selector .database-header .refresh-btn[data-v-3abdf102]:not(:disabled):active{transform:translateY(0)}.database-selector .database-header .refresh-btn[data-v-3abdf102]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.database-selector .database-grid[data-v-3abdf102]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem;gap:.75rem}.database-selector .database-card[data-v-3abdf102]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden;padding:1rem;border:2px solid #e9ecef;transition:all .2s ease;cursor:pointer}.database-selector .database-card[data-v-3abdf102]:hover{border-color:#667eea;transform:translateY(-2px);box-shadow:0 4px 20px #0000001a}.database-selector .database-card.active[data-v-3abdf102]{border-color:#667eea;background:#667eea1a}.database-selector .database-card .db-header[data-v-3abdf102]{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.database-selector .database-card .db-header h4[data-v-3abdf102]{margin:0;color:#2c3e50;font-size:1rem;font-weight:600}.database-selector .database-card .db-header .db-index[data-v-3abdf102]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-weight:500;background:#667eea;color:#fff;font-size:.75rem;font-weight:600}.database-selector .database-card .db-stats[data-v-3abdf102]{display:flex;gap:.75rem}.database-selector .database-card .db-stats .stat[data-v-3abdf102]{display:flex;flex-direction:column;gap:.25rem}.database-selector .database-card .db-stats .stat .stat-label[data-v-3abdf102]{font-size:.75rem;color:#6c757d;font-weight:500}.database-selector .database-card .db-stats .stat .stat-value[data-v-3abdf102]{font-size:1rem;font-weight:700;color:#2c3e50}.key-browser[data-v-3abdf102]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden}.key-browser .browser-header[data-v-3abdf102]{padding:1.5rem;border-bottom:1px solid #e9ecef}.key-browser .browser-header h3[data-v-3abdf102]{margin:0 0 .75rem;color:#2c3e50;font-size:1.125rem;font-weight:600}.key-browser .browser-header .browser-controls[data-v-3abdf102]{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap}.key-browser .browser-header .browser-controls .search-controls[data-v-3abdf102]{display:flex;gap:.25rem;flex:1;min-width:300px}.key-browser .browser-header .browser-controls .search-controls .search-input[data-v-3abdf102]{width:100%;padding:.75rem 1rem;border:2px solid #e9ecef;border-radius:8px;font-size:.875rem;background:#fff;color:#2c3e50;transition:all .2s ease;flex:1}.key-browser .browser-header .browser-controls .search-controls .search-input[data-v-3abdf102]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.key-browser .browser-header .browser-controls .search-controls .search-input[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;background-color:#f8f9fa}.key-browser .browser-header .browser-controls .search-controls .search-input[data-v-3abdf102]::placeholder{color:#6c757d}.key-browser .browser-header .browser-controls .search-controls .search-btn[data-v-3abdf102]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 14px #667eea66;white-space:nowrap;font-size:.875rem}.key-browser .browser-header .browser-controls .search-controls .search-btn[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.key-browser .browser-header .browser-controls .search-controls .search-btn[data-v-3abdf102]:not(:disabled):hover{transform:translateY(-1px)}.key-browser .browser-header .browser-controls .search-controls .search-btn[data-v-3abdf102]:not(:disabled):active{transform:translateY(0)}.key-browser .browser-header .browser-controls .search-controls .search-btn[data-v-3abdf102]:not(:disabled):hover{background:linear-gradient(135deg,#5a6fd8,#6b428f);box-shadow:0 6px 20px #667eea80}.key-browser .browser-header .browser-controls .view-controls[data-v-3abdf102]{display:flex;gap:.25rem;align-items:center}.key-browser .browser-header .browser-controls .view-controls .type-select[data-v-3abdf102],.key-browser .browser-header .browser-controls .view-controls .sort-select[data-v-3abdf102]{width:100%;padding:.75rem 1rem;border:2px solid #e9ecef;border-radius:8px;background:#fff;color:#2c3e50;transition:all .2s ease;font-size:.875rem}.key-browser .browser-header .browser-controls .view-controls .type-select[data-v-3abdf102]:focus,.key-browser .browser-header .browser-controls .view-controls .sort-select[data-v-3abdf102]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.key-browser .browser-header .browser-controls .view-controls .type-select[data-v-3abdf102]:disabled,.key-browser .browser-header .browser-controls .view-controls .sort-select[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;background-color:#f8f9fa}.key-browser .browser-header .browser-controls .view-controls .type-select[data-v-3abdf102]::placeholder,.key-browser .browser-header .browser-controls .view-controls .sort-select[data-v-3abdf102]::placeholder{color:#6c757d}.key-browser .browser-header .browser-controls .view-controls .sort-order-btn[data-v-3abdf102]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6;padding:.5rem;font-size:1rem;min-width:40px}.key-browser .browser-header .browser-controls .view-controls .sort-order-btn[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.key-browser .browser-header .browser-controls .view-controls .sort-order-btn[data-v-3abdf102]:not(:disabled):hover{transform:translateY(-1px)}.key-browser .browser-header .browser-controls .view-controls .sort-order-btn[data-v-3abdf102]:not(:disabled):active{transform:translateY(0)}.key-browser .browser-header .browser-controls .view-controls .sort-order-btn[data-v-3abdf102]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.key-browser .browser-header .browser-controls .view-controls .view-mode-toggle[data-v-3abdf102]{display:flex;gap:2px;background:#fffc;padding:2px;border-radius:12px;border:2px solid rgba(102,126,234,.2)}.key-browser .browser-header .browser-controls .view-controls .view-mode-toggle .view-mode-btn[data-v-3abdf102]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6;padding:.25rem .5rem;font-size:.875rem;border:1px solid rgba(102,126,234,.1);background:#ffffff80}.key-browser .browser-header .browser-controls .view-controls .view-mode-toggle .view-mode-btn[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.key-browser .browser-header .browser-controls .view-controls .view-mode-toggle .view-mode-btn[data-v-3abdf102]:not(:disabled):hover{transform:translateY(-1px)}.key-browser .browser-header .browser-controls .view-controls .view-mode-toggle .view-mode-btn[data-v-3abdf102]:not(:disabled):active{transform:translateY(0)}.key-browser .browser-header .browser-controls .view-controls .view-mode-toggle .view-mode-btn[data-v-3abdf102]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.key-browser .browser-header .browser-controls .view-controls .view-mode-toggle .view-mode-btn[data-v-3abdf102]:hover{background:#667eea1a;transform:translateY(-1px);border-color:#667eea4d}.key-browser .browser-header .browser-controls .view-controls .view-mode-toggle .view-mode-btn.active[data-v-3abdf102]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-color:#667eea;box-shadow:0 4px 15px #667eea4d}.loading-spinner[data-v-3abdf102]{width:1.25rem;height:1.25rem;border:2px solid rgba(102,126,234,.3);border-top:2px solid #667eea;border-radius:50%;animation:spin-3abdf102 1s linear infinite}@keyframes spin-3abdf102{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.no-databases .no-keys-icon[data-v-3abdf102],.no-keys .no-keys-icon[data-v-3abdf102]{font-size:2rem;margin-bottom:.75rem}.no-databases h4[data-v-3abdf102],.no-keys h4[data-v-3abdf102]{margin:0 0 .25rem;color:#2c3e50}.keys-container[data-v-3abdf102]{padding:0}.keys-container .keys-summary[data-v-3abdf102]{padding:1rem 1.5rem;background:linear-gradient(135deg,#667eea,#764ba2);border-bottom:1px solid #e9ecef}.keys-container .keys-summary .summary-stats[data-v-3abdf102]{display:flex;gap:1.5rem}.keys-container .keys-summary .summary-stats .stat[data-v-3abdf102]{background:#ffffff26;padding:.75rem;border-radius:8px;border:1px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.keys-container .keys-summary .summary-stats .stat .stat-label[data-v-3abdf102]{color:#ffffffe6!important;font-weight:600}.keys-container .keys-summary .summary-stats .stat .stat-value[data-v-3abdf102]{color:#fff!important;font-weight:700;font-size:1.125rem}.keys-list[data-v-3abdf102]{max-height:600px;overflow-y:auto}.keys-list .key-item[data-v-3abdf102]{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid #f2f2f2;cursor:pointer;transition:background .2s ease;background:#fffc;border:1px solid rgba(102,126,234,.1);color:#2c3e50}.keys-list .key-item[data-v-3abdf102]:hover{background:#667eea1a;border-color:#667eea4d}.keys-list .key-item[data-v-3abdf102]:last-child{border-bottom:none}.keys-list .key-item .key-content[data-v-3abdf102]{flex:1}.keys-list .key-item .key-content .key-header[data-v-3abdf102]{display:flex;align-items:center;gap:.75rem;margin-bottom:.25rem}.keys-list .key-item .key-content .key-header .key-name[data-v-3abdf102]{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Consolas,Courier New,monospace;font-weight:600;color:#4c63d2;font-size:1rem;word-break:break-all}.keys-list .key-item .key-content .key-header .key-type[data-v-3abdf102]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-weight:500;font-size:.75rem;font-weight:600;white-space:nowrap}.keys-list .key-item .key-content .key-header .key-type.string[data-v-3abdf102]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#10b9811a;color:#047857}.keys-list .key-item .key-content .key-header .key-type.hash[data-v-3abdf102]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#ffc1071a;color:#d97706}.keys-list .key-item .key-content .key-header .key-type.list[data-v-3abdf102]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#4299e11a;color:#2c5282}.keys-list .key-item .key-content .key-header .key-type.set[data-v-3abdf102]{background:#f3e5f5;color:#7b1fa2}.keys-list .key-item .key-content .key-header .key-type.zset[data-v-3abdf102]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#e53e3e1a;color:#c53030}.keys-list .key-item .key-content .key-header .key-type.stream[data-v-3abdf102]{background:#e0f2f1;color:#00796b}.keys-list .key-item .key-content .key-meta[data-v-3abdf102]{display:flex;gap:.75rem;font-size:.875rem;color:#6c757d}.keys-list .key-item .key-content .key-meta .key-size[data-v-3abdf102]{font-weight:500}.keys-list .key-item .key-content .key-meta .key-ttl[data-v-3abdf102]{color:#f59e0b;font-weight:500}.keys-list .key-item .key-content .key-meta .key-ttl.persistent[data-v-3abdf102]{color:#059669}.keys-list .key-item .key-actions[data-v-3abdf102]{display:flex;gap:.25rem;margin-left:.75rem}.keys-list .key-item .key-actions .action-btn[data-v-3abdf102]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6;padding:.25rem .5rem;font-size:.75rem;transition:all .2s ease}.keys-list .key-item .key-actions .action-btn[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.keys-list .key-item .key-actions .action-btn[data-v-3abdf102]:not(:disabled):hover{transform:translateY(-1px)}.keys-list .key-item .key-actions .action-btn[data-v-3abdf102]:not(:disabled):active{transform:translateY(0)}.keys-list .key-item .key-actions .action-btn[data-v-3abdf102]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.keys-list .key-item .key-actions .action-btn.view[data-v-3abdf102]{background:#4299e11a;color:#3182ce;border-color:#4299e14d}.keys-list .key-item .key-actions .action-btn.delete[data-v-3abdf102]{background:#e53e3e1a;color:#dc3545;border-color:#e53e3e4d}.keys-list .key-item .key-actions .action-btn[data-v-3abdf102]:hover{transform:scale(1.05);box-shadow:0 1px 3px #0000001a}.keys-tree[data-v-3abdf102]{max-height:600px;overflow-y:auto;background:#ffffff4d;border-radius:12px;padding:.75rem;border:2px solid rgba(102,126,234,.1)}.modal-overlay[data-v-3abdf102]{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-overlay .modal-content[data-v-3abdf102]{background:#fff;border:1px solid #e9ecef;border-radius:12px;max-width:600px;max-height:80vh;width:90%;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000001a}.modal-overlay .modal-content .modal-header[data-v-3abdf102]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e9ecef}.modal-overlay .modal-content .modal-header h3[data-v-3abdf102]{margin:0;color:#2c3e50;font-size:1.125rem;font-weight:600}.modal-overlay .modal-content .modal-header .close-btn[data-v-3abdf102]{background:none;border:none;font-size:1.25rem;cursor:pointer;color:#6c757d;padding:.25rem;border-radius:4px;transition:all .2s ease}.modal-overlay .modal-content .modal-header .close-btn[data-v-3abdf102]:hover{background:#f8f9fa;color:#2c3e50}.modal-overlay .modal-content .modal-body[data-v-3abdf102]{padding:1.5rem;max-height:60vh;overflow-y:auto}.modal-overlay .modal-content .modal-body .key-details[data-v-3abdf102]{display:flex;flex-direction:column;gap:1.5rem}.modal-overlay .modal-content .modal-body .key-details .detail-section h4[data-v-3abdf102]{margin:0 0 .75rem;color:#2c3e50;font-size:1.125rem;font-weight:700;padding-bottom:.25rem;border-bottom:2px solid #e9ecef}.modal-overlay .modal-content .modal-body .key-details .detail-section .detail-grid[data-v-3abdf102]{display:flex;flex-direction:column}.modal-overlay .modal-content .modal-body .key-details .detail-section .detail-grid .detail-item[data-v-3abdf102]{display:flex;flex-direction:column;gap:.25rem;padding:.5rem;border-radius:8px}.modal-overlay .modal-content .modal-body .key-details .detail-section .detail-grid .detail-item label[data-v-3abdf102]{font-size:.875rem;color:#2c3e50;font-weight:600;margin-bottom:.25rem}.modal-overlay .modal-content .modal-body .key-details .detail-section .detail-grid .detail-item span[data-v-3abdf102]{color:#2c3e50;font-weight:500;word-wrap:break-word;overflow-wrap:break-word}.modal-overlay .modal-content .modal-body .key-details .detail-section .detail-grid .key-meta-row[data-v-3abdf102]{display:flex;gap:1.5rem;flex-wrap:wrap}.modal-overlay .modal-content .modal-body .key-details .detail-section .detail-grid .key-meta-row .meta-field[data-v-3abdf102]{display:flex;flex-direction:column;gap:.25rem}.modal-overlay .modal-content .modal-body .key-details .detail-section .detail-grid .key-meta-row .meta-field label[data-v-3abdf102]{font-size:.875rem;color:#2c3e50;font-weight:600}.modal-overlay .modal-content .modal-body .key-details .detail-section .detail-grid .key-meta-row .meta-field span[data-v-3abdf102]{color:#2c3e50;font-weight:500}.modal-overlay .modal-content .modal-body .key-details .detail-section .detail-grid .key-name-display[data-v-3abdf102]{font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Consolas,Courier New,monospace;background:#f8f9fa;color:#2c3e50;padding:.5rem;border-radius:8px;word-break:break-all;font-weight:600;border:2px solid #e9ecef;white-space:pre-wrap;overflow-wrap:break-word;line-height:1.4}.modal-overlay .modal-content .modal-body .key-details .detail-section .value-container[data-v-3abdf102]{background:#f8f9fa;border-radius:8px;border:2px solid #e9ecef;overflow:hidden;box-shadow:0 1px 3px #0000001a}.modal-overlay .modal-content .modal-body .key-details .detail-section .value-container .value-display[data-v-3abdf102]{margin:0;padding:1rem;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,Consolas,Courier New,monospace;font-size:.875rem;line-height:1.6;background:none;color:#2c3e50;font-weight:500;white-space:pre-wrap;word-break:break-all;max-height:300px;overflow-y:auto}.modal-overlay .modal-content .modal-footer[data-v-3abdf102]{padding:1rem 1.5rem;border-top:1px solid #e9ecef;display:flex;justify-content:flex-end;gap:.75rem}.modal-overlay .modal-content .modal-footer .btn.secondary[data-v-3abdf102]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6}.modal-overlay .modal-content .modal-footer .btn.secondary[data-v-3abdf102]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.modal-overlay .modal-content .modal-footer .btn.secondary[data-v-3abdf102]:not(:disabled):hover{transform:translateY(-1px)}.modal-overlay .modal-content .modal-footer .btn.secondary[data-v-3abdf102]:not(:disabled):active{transform:translateY(0)}.modal-overlay .modal-content .modal-footer .btn.secondary[data-v-3abdf102]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}@media (max-width: 767px){.keys-view[data-v-3abdf102]{padding:.75rem;gap:.75rem}.page-header[data-v-3abdf102],.database-selector[data-v-3abdf102],.key-browser[data-v-3abdf102]{margin:0;border-radius:12px}.page-header[data-v-3abdf102],.database-selector[data-v-3abdf102]{padding:1rem}.database-selector .database-header[data-v-3abdf102]{flex-direction:column;align-items:flex-start;gap:.75rem}.database-selector .database-grid[data-v-3abdf102]{grid-template-columns:1fr}.browser-header[data-v-3abdf102]{padding:1rem}.browser-header .browser-controls[data-v-3abdf102]{flex-direction:column;align-items:stretch;gap:.75rem}.browser-header .browser-controls .search-controls[data-v-3abdf102]{min-width:auto}.browser-header .browser-controls .view-controls[data-v-3abdf102]{justify-content:space-between}.key-item[data-v-3abdf102]{flex-direction:column;align-items:flex-start;gap:.75rem;padding:.75rem}.key-item .key-actions[data-v-3abdf102]{align-self:stretch;justify-content:flex-end;margin-left:0}.summary-stats[data-v-3abdf102]{flex-direction:column;gap:.75rem}.modal-overlay[data-v-3abdf102],.modal-body[data-v-3abdf102]{padding:.75rem}.detail-grid[data-v-3abdf102]{grid-template-columns:1fr}.key-meta-row[data-v-3abdf102]{flex-direction:column;gap:.5rem}}.app-background[data-v-593bbb0e]{background:linear-gradient(135deg,#667eea,#764ba2);min-height:100vh}.app-header[data-v-593bbb0e]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.3);box-shadow:0 4px 20px #0000001a;padding:1rem 2rem;position:sticky;top:0;z-index:200}.header-content[data-v-593bbb0e]{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;gap:2rem}.app-title[data-v-593bbb0e]{margin:0;color:#2c3e50;font-size:1.5rem;font-weight:700;display:flex;align-items:center;gap:.5rem;white-space:nowrap}.app-title .redis-icon[data-v-593bbb0e]{font-size:1.8rem;color:#dc382d}.app-main[data-v-593bbb0e]{flex:1;padding:2rem;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}.page-container[data-v-593bbb0e]{max-width:1400px;margin:0 auto;display:flex;flex-direction:column;gap:2rem}.page-header[data-v-593bbb0e]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:16px;padding:1.5rem;box-shadow:0 8px 32px #0000001a;border:1px solid rgba(255,255,255,.3);margin-bottom:1.5rem}.page-header h1[data-v-593bbb0e],.page-header h2[data-v-593bbb0e]{margin:0 0 .25rem;color:#2c3e50;font-size:1.5rem;font-weight:700}.page-header p[data-v-593bbb0e]{margin:0;color:#6c757d;font-size:1.125rem}.btn-primary[data-v-593bbb0e]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 14px #667eea66}.btn-primary[data-v-593bbb0e]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-primary[data-v-593bbb0e]:not(:disabled):hover{transform:translateY(-1px)}.btn-primary[data-v-593bbb0e]:not(:disabled):active{transform:translateY(0)}.btn-primary[data-v-593bbb0e]:not(:disabled):hover{background:linear-gradient(135deg,#5a6fd8,#6b428f);box-shadow:0 6px 20px #667eea80}.btn-secondary[data-v-593bbb0e]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6}.btn-secondary[data-v-593bbb0e]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-secondary[data-v-593bbb0e]:not(:disabled):hover{transform:translateY(-1px)}.btn-secondary[data-v-593bbb0e]:not(:disabled):active{transform:translateY(0)}.btn-secondary[data-v-593bbb0e]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.btn-success[data-v-593bbb0e]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 14px #10b98166}.btn-success[data-v-593bbb0e]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-success[data-v-593bbb0e]:not(:disabled):hover{transform:translateY(-1px)}.btn-success[data-v-593bbb0e]:not(:disabled):active{transform:translateY(0)}.btn-success[data-v-593bbb0e]:not(:disabled):hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 20px #10b98180}.btn-danger[data-v-593bbb0e]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#dc3545;color:#fff;box-shadow:0 4px 14px #dc354566}.btn-danger[data-v-593bbb0e]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.btn-danger[data-v-593bbb0e]:not(:disabled):hover{transform:translateY(-1px)}.btn-danger[data-v-593bbb0e]:not(:disabled):active{transform:translateY(0)}.btn-danger[data-v-593bbb0e]:not(:disabled):hover{background:#c53030;box-shadow:0 6px 20px #dc354580}.card[data-v-593bbb0e]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden;padding:1.5rem}.stat-card[data-v-593bbb0e]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden;padding:1.5rem;transition:transform .2s ease;display:flex;align-items:center;gap:1rem}.stat-card[data-v-593bbb0e]:hover{transform:translateY(-2px);box-shadow:0 12px 40px #00000026}.stat-card .stat-icon[data-v-593bbb0e]{font-size:2.5rem;background:linear-gradient(135deg,#667eea,#764ba2);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.stat-card .stat-content h3[data-v-593bbb0e]{margin:0;font-size:1.25rem;font-weight:700;color:#2c3e50}.stat-card .stat-content p[data-v-593bbb0e]{margin:0;color:#6c757d;font-size:.875rem;font-weight:500}.form-group[data-v-593bbb0e]{margin-bottom:1rem}.form-group label[data-v-593bbb0e]{display:block;margin-bottom:.5rem;color:#2c3e50;font-size:.875rem;font-weight:500}.form-group input[data-v-593bbb0e],.form-group select[data-v-593bbb0e],.form-group textarea[data-v-593bbb0e]{width:100%;padding:.75rem 1rem;border:2px solid #e9ecef;border-radius:8px;font-size:.875rem;background:#fff;color:#2c3e50;transition:all .2s ease}.form-group input[data-v-593bbb0e]:focus,.form-group select[data-v-593bbb0e]:focus,.form-group textarea[data-v-593bbb0e]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group input[data-v-593bbb0e]:disabled,.form-group select[data-v-593bbb0e]:disabled,.form-group textarea[data-v-593bbb0e]:disabled{opacity:.6;cursor:not-allowed;background-color:#f8f9fa}.form-group input[data-v-593bbb0e]::placeholder,.form-group select[data-v-593bbb0e]::placeholder,.form-group textarea[data-v-593bbb0e]::placeholder{color:#6c757d}.form-group select[data-v-593bbb0e]{width:100%;padding:.75rem 1rem;border:2px solid #e9ecef;border-radius:8px;font-size:.875rem;background:#fff;color:#2c3e50;transition:all .2s ease}.form-group select[data-v-593bbb0e]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.form-group select[data-v-593bbb0e]:disabled{opacity:.6;cursor:not-allowed;background-color:#f8f9fa}.form-group select[data-v-593bbb0e]::placeholder{color:#6c757d}.badge-success[data-v-593bbb0e]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#10b9811a;color:#047857}.badge-error[data-v-593bbb0e]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#e53e3e1a;color:#c53030}.badge-warning[data-v-593bbb0e]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#ffc1071a;color:#d97706}.badge-info[data-v-593bbb0e]{display:inline-flex;align-items:center;gap:.25rem;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:500;background:#4299e11a;color:#2c5282}.loading-spinner[data-v-593bbb0e]{width:1.25rem;height:1.25rem;border:2px solid rgba(102,126,234,.3);border-top:2px solid #667eea;border-radius:50%;animation:spin-593bbb0e 1s linear infinite}.modal-overlay[data-v-593bbb0e]{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content[data-v-593bbb0e]{background:#fff;border:1px solid #e9ecef;border-radius:12px;max-width:600px;max-height:80vh;width:90%;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 8px 32px #0000001a}.modal-content .modal-header[data-v-593bbb0e]{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e9ecef;background:#fffc}.modal-content .modal-header h3[data-v-593bbb0e]{margin:0;color:#2c3e50}.modal-content .modal-header .btn-close[data-v-593bbb0e]{padding:.25rem .5rem;border:none;background:none;font-size:1.25rem;cursor:pointer;color:#6c757d;transition:color .2s ease}.modal-content .modal-header .btn-close[data-v-593bbb0e]:hover{color:#2c3e50}.modal-content .modal-body[data-v-593bbb0e]{padding:1.5rem;overflow-y:auto}.table[data-v-593bbb0e]{width:100%;border-collapse:collapse;font-size:.875rem}.table th[data-v-593bbb0e]{padding:.75rem;background:#fffc;border-bottom:1px solid #e9ecef;font-weight:600;text-align:left;color:#2c3e50}.table td[data-v-593bbb0e]{padding:.75rem;border-bottom:1px solid #e9ecef;vertical-align:top}.nav-link[data-v-593bbb0e]{color:#2c3e50;text-decoration:none;font-weight:500;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease;position:relative}.nav-link[data-v-593bbb0e]:hover{background:#667eea1a;color:#667eea}.nav-link.router-link-active[data-v-593bbb0e],.nav-link.active[data-v-593bbb0e]{background:#667eea;color:#fff}.stats-grid[data-v-593bbb0e]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1.5rem;margin-bottom:1.5rem}.grid-responsive[data-v-593bbb0e]{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem}.row-success[data-v-593bbb0e]{background:#10b9810d}.row-warning[data-v-593bbb0e]{background:#ffc1070d}.row-error[data-v-593bbb0e]{background:#e53e3e0d}.row-info[data-v-593bbb0e]{background:#4299e10d}.connection-status[data-v-593bbb0e]{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:#ffffffb3;border-radius:25px;font-size:.875rem;font-weight:500;min-width:120px}.connection-status .status-indicator[data-v-593bbb0e]{width:10px;height:10px;border-radius:50%;animation:pulse-593bbb0e 2s infinite}.connection-status .status-indicator.connected[data-v-593bbb0e]{background:#10b981}.connection-status .status-indicator.disconnected[data-v-593bbb0e]{background:#e53e3e}.connection-status .status-text[data-v-593bbb0e]{color:#2c3e50}.user-menu[data-v-593bbb0e]{display:flex;align-items:center;gap:1rem}.user-menu .user-info[data-v-593bbb0e]{display:flex;align-items:center;gap:.75rem}.user-menu .user-info .user-avatar[data-v-593bbb0e],.user-menu .user-info .user-avatar-placeholder[data-v-593bbb0e]{width:40px;height:40px;border-radius:50%;border:2px solid #667eea}.user-menu .user-info .user-avatar[data-v-593bbb0e]{object-fit:cover}.user-menu .user-info .user-avatar-placeholder[data-v-593bbb0e]{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:1.125rem}.user-menu .user-info .user-details[data-v-593bbb0e]{display:flex;flex-direction:column;align-items:flex-start}.user-menu .user-info .user-details .user-name[data-v-593bbb0e]{font-weight:600;color:#2c3e50;font-size:.875rem}.user-menu .user-info .user-details .user-email[data-v-593bbb0e]{font-size:.75rem;color:#6c757d}.user-menu .logout-btn[data-v-593bbb0e]{background:none;border:1px solid #dc3545;color:#dc3545;padding:.5rem;border-radius:8px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.user-menu .logout-btn[data-v-593bbb0e]:hover{background:#dc3545;color:#fff}.user-menu .logout-btn .logout-icon[data-v-593bbb0e]{width:18px;height:18px}.pagination[data-v-593bbb0e]{display:flex;justify-content:center;align-items:center;gap:1rem;padding:1rem;border-top:1px solid #e9ecef}.pagination .btn-pagination[data-v-593bbb0e]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:#fff;color:#2c3e50;border-color:#dee2e6;padding:.5rem 1rem}.pagination .btn-pagination[data-v-593bbb0e]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.pagination .btn-pagination[data-v-593bbb0e]:not(:disabled):hover{transform:translateY(-1px)}.pagination .btn-pagination[data-v-593bbb0e]:not(:disabled):active{transform:translateY(0)}.pagination .btn-pagination[data-v-593bbb0e]:not(:disabled):hover{background:#f8f9fa;border-color:#667eea}.pagination .btn-pagination[data-v-593bbb0e]:disabled{opacity:.5;cursor:not-allowed}.pagination .page-info[data-v-593bbb0e]{font-size:.875rem;color:#6c757d}.error-message[data-v-593bbb0e]{padding:.75rem 1rem;background:#fed7d7e6;border:1px solid rgba(229,62,62,.5);border-radius:8px;color:#c53030;font-size:.875rem;margin-bottom:1.5rem;text-align:center}.access-denied[data-v-593bbb0e]{display:flex;justify-content:center;align-items:center;min-height:400px}.access-denied .access-denied-content[data-v-593bbb0e]{text-align:center;max-width:400px;padding:2rem;border:1px solid #e9ecef;border-radius:8px;background:#fffffff2}.access-denied .access-denied-content .icon[data-v-593bbb0e]{font-size:2rem;margin-bottom:1rem}.access-denied .access-denied-content h2[data-v-593bbb0e]{margin:0 0 1rem;color:#2c3e50}.access-denied .access-denied-content p[data-v-593bbb0e]{margin:0 0 .5rem;color:#2c3e50}.access-denied .access-denied-content p.help-text[data-v-593bbb0e]{color:#6c757d;font-size:.875rem}.empty-state[data-v-593bbb0e],.loading-state[data-v-593bbb0e]{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;text-align:center}.empty-state .icon[data-v-593bbb0e],.loading-state .icon[data-v-593bbb0e]{font-size:2rem;margin-bottom:1rem;opacity:.5}.empty-state h3[data-v-593bbb0e],.loading-state h3[data-v-593bbb0e]{margin:0 0 .5rem;color:#2c3e50}.empty-state p[data-v-593bbb0e],.loading-state p[data-v-593bbb0e]{margin:0;color:#6c757d}.loading-state .loading-spinner[data-v-593bbb0e]{margin-bottom:1rem}@keyframes pulse-593bbb0e{0%{opacity:1}50%{opacity:.5}to{opacity:1}}@media (max-width: 767px){.app-header[data-v-593bbb0e]{padding:1rem}.header-content[data-v-593bbb0e]{flex-direction:column;gap:1rem}.app-main[data-v-593bbb0e]{padding:1rem}.stats-grid[data-v-593bbb0e]{grid-template-columns:1fr}.user-menu .user-info[data-v-593bbb0e]{flex-direction:column;text-align:center;gap:.5rem}.user-menu .user-info .user-details[data-v-593bbb0e]{align-items:center}.modal-content[data-v-593bbb0e]{width:95%;max-height:90vh}}.login-container[data-v-593bbb0e]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#2d3748,#1a202c);padding:1rem}.login-card[data-v-593bbb0e]{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3);border-radius:16px;box-shadow:0 8px 32px #0000001a;overflow:hidden;width:100%;max-width:420px}.login-header[data-v-593bbb0e]{text-align:center;padding:2.5rem 2rem 2rem}.login-header .logo[data-v-593bbb0e]{display:flex;align-items:center;justify-content:center;gap:.75rem}.login-header .logo .logo-icon[data-v-593bbb0e]{width:2.25rem;height:2.25rem;color:#495057}.login-header .logo h1[data-v-593bbb0e]{margin:0;font-size:1.5rem;font-weight:600;color:#2c3e50;letter-spacing:-.025em}.login-content[data-v-593bbb0e]{padding:0 2rem 2.5rem}.login-prompt[data-v-593bbb0e]{text-align:center;margin:0 0 2rem;color:#495057;font-size:.875rem;font-weight:500}.login-form[data-v-593bbb0e]{margin-bottom:1.5rem}.login-form .form-group[data-v-593bbb0e]{margin-bottom:1rem}.login-form .form-group .form-label[data-v-593bbb0e]{display:block;margin-bottom:.5rem;color:#2c3e50;font-size:.875rem;font-weight:500}.login-form .form-group .form-input[data-v-593bbb0e]{width:100%;padding:.75rem 1rem;border:2px solid #e9ecef;border-radius:8px;font-size:.875rem;background:#fff;color:#2c3e50;transition:all .2s ease}.login-form .form-group .form-input[data-v-593bbb0e]:focus{outline:none;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.login-form .form-group .form-input[data-v-593bbb0e]:disabled{opacity:.6;cursor:not-allowed;background-color:#f8f9fa}.login-form .form-group .form-input[data-v-593bbb0e]::placeholder{color:#6c757d}.login-form .form-group .password-input-container[data-v-593bbb0e]{position:relative}.login-form .form-group .password-input-container .password-toggle[data-v-593bbb0e]{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;padding:.25rem;color:#6c757d;transition:color .2s ease}.login-form .form-group .password-input-container .password-toggle[data-v-593bbb0e]:hover:not(:disabled){color:#2c3e50}.login-form .form-group .password-input-container .password-toggle[data-v-593bbb0e]:disabled{cursor:not-allowed;opacity:.5}.login-form .form-group .password-input-container .password-toggle .toggle-icon[data-v-593bbb0e]{width:1.25rem;height:1.25rem}.auth-btn[data-v-593bbb0e]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;width:100%;padding:1rem 1.5rem;font-size:1rem}.auth-btn[data-v-593bbb0e]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.auth-btn[data-v-593bbb0e]:not(:disabled):hover{transform:translateY(-1px)}.auth-btn[data-v-593bbb0e]:not(:disabled):active{transform:translateY(0)}.auth-btn .loading-spinner[data-v-593bbb0e]{width:1.25rem;height:1.25rem;border:2px solid rgba(102,126,234,.3);border-top:2px solid #667eea;border-radius:50%;animation:spin-593bbb0e 1s linear infinite;flex-shrink:0}@keyframes spin-593bbb0e{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.auth-btn .google-icon[data-v-593bbb0e],.auth-btn .login-icon[data-v-593bbb0e]{width:1.25rem;height:1.25rem;flex-shrink:0}.local-login-btn[data-v-593bbb0e]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:linear-gradient(135deg,#10b981,#059669);color:#fff;box-shadow:0 4px 14px #10b98166;margin-bottom:1.5rem}.local-login-btn[data-v-593bbb0e]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.local-login-btn[data-v-593bbb0e]:not(:disabled):hover{transform:translateY(-1px)}.local-login-btn[data-v-593bbb0e]:not(:disabled):active{transform:translateY(0)}.local-login-btn[data-v-593bbb0e]:not(:disabled):hover{background:linear-gradient(135deg,#059669,#047857);box-shadow:0 6px 20px #10b98180}.google-btn[data-v-593bbb0e]{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.75rem 1.5rem;border:1px solid transparent;border-radius:8px;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;text-decoration:none;outline:none;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;box-shadow:0 4px 14px #667eea66}.google-btn[data-v-593bbb0e]:disabled{opacity:.6;cursor:not-allowed;transform:none!important}.google-btn[data-v-593bbb0e]:not(:disabled):hover{transform:translateY(-1px)}.google-btn[data-v-593bbb0e]:not(:disabled):active{transform:translateY(0)}.google-btn[data-v-593bbb0e]:not(:disabled):hover{background:linear-gradient(135deg,#5a6fd8,#6b428f);box-shadow:0 6px 20px #667eea80}.divider[data-v-593bbb0e]{position:relative;text-align:center;margin:1.5rem 0}.divider[data-v-593bbb0e]:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:#e9ecef}.divider .divider-text[data-v-593bbb0e]{background:#fffffff2;padding:0 1rem;color:#6c757d;font-size:.875rem;font-weight:500}@media (max-width: 767px){.login-container[data-v-593bbb0e]{padding:1rem}.login-card[data-v-593bbb0e]{border-radius:12px;max-width:380px}.login-header[data-v-593bbb0e]{padding:2rem 1.5rem 1.5rem}.login-header .logo h1[data-v-593bbb0e]{font-size:1.25rem}.login-content[data-v-593bbb0e]{padding:0 1.5rem 2rem}.auth-btn[data-v-593bbb0e]{padding:.75rem 1rem;font-size:.875rem}}@media (max-width: 480px){.login-container[data-v-593bbb0e]{padding:.75rem}.login-card[data-v-593bbb0e]{max-width:340px}}.auth-callback-container[data-v-ac34d7c9]{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#667eea,#764ba2);padding:1rem}.auth-callback-card[data-v-ac34d7c9]{background:#fff;border-radius:12px;box-shadow:0 20px 40px #0000001a;width:100%;max-width:400px;overflow:hidden}.callback-content[data-v-ac34d7c9]{padding:3rem 2rem;text-align:center}.processing[data-v-ac34d7c9],.error[data-v-ac34d7c9],.success[data-v-ac34d7c9]{display:flex;flex-direction:column;align-items:center;gap:1rem}.spinner[data-v-ac34d7c9]{position:relative}.spinner-icon[data-v-ac34d7c9]{width:3rem;height:3rem;color:#667eea}.error-icon[data-v-ac34d7c9]{width:3rem;height:3rem;color:#e53e3e}.success-icon[data-v-ac34d7c9]{width:3rem;height:3rem;color:#38a169}h2[data-v-ac34d7c9]{margin:0;font-size:1.5rem;font-weight:600;color:#2d3748}p[data-v-ac34d7c9]{margin:0;color:#718096;line-height:1.5}.retry-btn[data-v-ac34d7c9]{display:inline-flex;align-items:center;justify-content:center;padding:.75rem 1.5rem;background:#667eea;color:#fff;text-decoration:none;border-radius:8px;font-weight:500;transition:all .2s;margin-top:.5rem}.retry-btn[data-v-ac34d7c9]:hover{background:#5a67d8;transform:translateY(-1px);box-shadow:0 4px 12px #667eea66}@media (max-width: 640px){.auth-callback-container[data-v-ac34d7c9]{padding:.5rem}.callback-content[data-v-ac34d7c9]{padding:2rem 1.5rem}h2[data-v-ac34d7c9]{font-size:1.25rem}}
