:root{--gecko-primary: #10B981;--gecko-primary-dark: #059669;--gecko-primary-light: #34D399;--gecko-primary-hover: #0D9488;--gecko-gray-900: #111827;--gecko-gray-800: #1F2937;--gecko-gray-700: #374151;--gecko-gray-600: #4B5563;--gecko-gray-500: #6B7280;--gecko-gray-400: #9CA3AF;--gecko-gray-300: #D1D5DB;--gecko-gray-200: #E5E7EB;--gecko-gray-100: #F3F4F6;--gecko-gray-50: #F9FAFB;--gecko-success: #10B981;--gecko-warning: #F59E0B;--gecko-error: #EF4444;--gecko-info: #3B82F6;--gecko-strength-weak: #EF4444;--gecko-strength-medium: #F59E0B;--gecko-strength-strong: #10B981;--font-primary: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Courier New", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--font-regular: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .2s cubic-bezier(.4, 0, .2, 1);--transition-slow: .3s cubic-bezier(.4, 0, .2, 1);--bg-primary: var(--gecko-gray-900);--bg-secondary: var(--gecko-gray-800);--bg-tertiary: var(--gecko-gray-700);--text-primary: #FFFFFF;--text-secondary: var(--gecko-gray-400);--text-tertiary: var(--gecko-gray-500);--border-color: var(--gecko-gray-700);font-family:var(--font-primary);line-height:var(--leading-normal);font-weight:var(--font-regular);color-scheme:light dark;color:var(--text-primary);background-color:var(--bg-primary);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme: light){:root{--bg-primary: #FFFFFF;--bg-secondary: var(--gecko-gray-50);--bg-tertiary: var(--gecko-gray-100);--text-primary: var(--gecko-gray-900);--text-secondary: var(--gecko-gray-600);--text-tertiary: var(--gecko-gray-500);--border-color: var(--gecko-gray-300);color:var(--text-primary);background-color:var(--bg-primary)}}*{box-sizing:border-box}body{margin:0;padding:0;display:flex;place-items:center;min-width:320px;min-height:100vh;font-family:var(--font-primary);background-color:var(--bg-primary);color:var(--text-primary)}#root{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{font-weight:var(--font-semibold);line-height:var(--leading-tight);margin:0}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}p{margin:0;line-height:var(--leading-normal)}a{font-weight:var(--font-medium);color:var(--gecko-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--gecko-primary-dark)}a:focus-visible{outline:2px solid var(--gecko-primary);outline-offset:2px;border-radius:var(--radius-sm)}button{font-family:var(--font-primary);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);border:none;outline:none}button:disabled{cursor:not-allowed;opacity:.6}button:focus-visible{outline:2px solid var(--gecko-primary);outline-offset:2px}input,textarea,select{font-family:var(--font-primary);font-size:var(--text-base);line-height:var(--leading-normal)}input:focus,textarea:focus,select:focus{outline:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus-visible{outline:2px solid var(--gecko-primary);outline-offset:2px}::selection{background-color:var(--gecko-primary);color:#fff}.vault-sidebar{width:280px;background:#f8f9fa;border-right:1px solid #e9ecef;height:100%;overflow-y:auto;padding:20px 0}.sidebar-section{margin-bottom:32px}.sidebar-section:last-child{margin-bottom:0}.sidebar-title{font-size:14px;font-weight:600;color:#495057;text-transform:uppercase;letter-spacing:.5px;margin:0 0 12px 20px}.sidebar-header{display:flex;align-items:center;justify-content:space-between;margin:0 20px 12px}.sidebar-header .sidebar-title{margin:0}.sidebar-add-btn{width:24px;height:24px;border:none;background:#007bff;color:#fff;border-radius:50%;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .2s}.sidebar-add-btn:hover{background:#0056b3;transform:scale(1.1)}.sidebar-list{display:flex;flex-direction:column}.sidebar-item{display:flex;align-items:center;padding:12px 20px;border:none;background:none;text-align:left;cursor:pointer;transition:all .2s;color:#495057;text-decoration:none}.sidebar-item:hover{background:#e9ecef}.sidebar-item.active{background:#007bff;color:#fff}.sidebar-item.active .sidebar-count{background:#fff3;color:#fff}.sidebar-icon{font-size:16px;margin-right:12px;flex-shrink:0}.sidebar-label{flex:1;font-size:14px;font-weight:500}.sidebar-count{background:#e9ecef;color:#6c757d;font-size:12px;font-weight:500;padding:2px 8px;border-radius:12px;min-width:20px;text-align:center}.sidebar-folder-item{position:relative;display:flex;align-items:center}.sidebar-folder-item .sidebar-item{flex:1}.sidebar-delete-btn{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:20px;height:20px;border:none;background:none;color:#6c757d;cursor:pointer;border-radius:50%;font-size:14px;display:none;align-items:center;justify-content:center;transition:all .2s}.sidebar-folder-item:hover .sidebar-delete-btn{display:flex}.sidebar-delete-btn:hover{background:#dc3545;color:#fff}.sidebar-add-form{padding:8px 20px}.sidebar-input{width:100%;padding:8px 12px;border:2px solid #007bff;border-radius:4px;font-size:14px;outline:none;margin-bottom:8px}.sidebar-form-actions{display:flex;gap:8px}.sidebar-save-btn,.sidebar-cancel-btn{width:28px;height:28px;border:none;border-radius:4px;cursor:pointer;font-size:12px;display:flex;align-items:center;justify-content:center;transition:all .2s}.sidebar-save-btn{background:#28a745;color:#fff}.sidebar-save-btn:hover{background:#1e7e34}.sidebar-cancel-btn{background:#6c757d;color:#fff}.sidebar-cancel-btn:hover{background:#545b62}.sidebar-modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.sidebar-modal{background:#fff;border-radius:8px;padding:24px;max-width:400px;width:90%;box-shadow:0 4px 12px #00000026}.sidebar-modal h4{margin:0 0 16px;color:#333}.sidebar-modal p{margin:0 0 20px;color:#666;line-height:1.5}.sidebar-modal-actions{display:flex;flex-direction:column;gap:8px}.sidebar-modal-btn{padding:10px 16px;border:none;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.sidebar-modal-btn.primary{background:#007bff;color:#fff}.sidebar-modal-btn.primary:hover{background:#0056b3}.sidebar-modal-btn.secondary{background:#6c757d;color:#fff}.sidebar-modal-btn.secondary:hover{background:#545b62}.sidebar-modal-select{padding:10px 12px;border:2px solid #e9ecef;border-radius:4px;font-size:14px;cursor:pointer}.sidebar-modal-select:focus{outline:none;border-color:#007bff}.entry-list{flex:1;display:flex;flex-direction:column;background:#fff;border-right:1px solid #e9ecef;height:100%;min-width:350px}.entry-list.loading{align-items:center;justify-content:center}.entry-list-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e9ecef;background:#f8f9fa}.entry-list-header h2{margin:0;font-size:18px;font-weight:600;color:#333}.add-entry-btn{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.add-entry-btn:hover{background:#0056b3;transform:translateY(-1px)}.add-icon{font-size:16px;font-weight:700}.entry-list-content{flex:1;overflow-y:auto}.loading-spinner{font-size:24px;animation:spin 1s linear infinite}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;padding:40px;text-align:center;color:#6c757d}.empty-icon{font-size:48px;margin-bottom:16px;opacity:.6}.empty-state h3{margin:0 0 8px;font-size:20px;color:#495057}.empty-state p{margin:0 0 24px;font-size:14px;line-height:1.5}.empty-add-btn{padding:12px 24px;background:#007bff;color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.empty-add-btn:hover{background:#0056b3}.entry-items{display:flex;flex-direction:column}.entry-item{display:flex;align-items:flex-start;padding:16px 24px;border-bottom:1px solid #f1f3f5;cursor:pointer;transition:all .2s;position:relative}.entry-item:hover{background:#f8f9fa}.entry-item.selected{background:#e3f2fd;border-left:4px solid #007bff}.entry-item-icon{width:32px;height:32px;margin-right:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.entry-favicon{width:24px;height:24px;border-radius:4px}.entry-default-icon{font-size:20px;color:#6c757d}.entry-item-content{flex:1;min-width:0}.entry-item-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:8px}.entry-title{margin:0;font-size:16px;font-weight:500;color:#333;display:flex;align-items:center;gap:8px}.entry-favorite{font-size:14px}.entry-meta{font-size:12px;color:#6c757d;flex-shrink:0;margin-left:16px}.entry-date{white-space:nowrap}.entry-item-details{margin-bottom:8px}.entry-detail{display:flex;align-items:center;margin-bottom:4px;font-size:13px}.entry-detail:last-child{margin-bottom:0}.entry-detail-label{color:#6c757d;margin-right:8px;min-width:60px;flex-shrink:0}.entry-detail-value{color:#495057;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.entry-folder{font-weight:500}.entry-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.entry-tag{background:#e9ecef;color:#495057;padding:2px 8px;border-radius:12px;font-size:11px;font-weight:500}.entry-item-actions{display:flex;flex-direction:column;gap:4px;opacity:0;transition:opacity .2s;margin-left:12px}.entry-item:hover .entry-item-actions{opacity:1}.entry-action-btn{width:32px;height:32px;border:none;background:#f8f9fa;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:14px;transition:all .2s;color:#6c757d}.entry-action-btn:hover{background:#e9ecef;color:#495057;transform:scale(1.1)}.entry-action-btn:disabled{opacity:.5;cursor:not-allowed}.entry-action-btn:disabled:hover{background:#f8f9fa;color:#6c757d;transform:none}.copy-username:hover{background:#cce5ff;color:#0056b3}.copy-password:hover{background:#d4edda;color:#155724}.open-url:hover{background:#fff3cd;color:#856404}@media (max-width: 768px){.entry-list{min-width:300px}.entry-item{padding:12px 16px}.entry-item-actions{flex-direction:row;opacity:1}.entry-action-btn{width:28px;height:28px}}.entry-details{width:400px;background:#fff;border-left:1px solid #e9ecef;height:100%;display:flex;flex-direction:column}.entry-details-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid #e9ecef;background:#f8f9fa}.entry-details-header h2{margin:0;font-size:18px;font-weight:600;color:#333}.close-btn{width:32px;height:32px;border:none;background:none;cursor:pointer;border-radius:6px;font-size:16px;color:#6c757d;display:flex;align-items:center;justify-content:center;transition:all .2s}.close-btn:hover{background:#e9ecef;color:#495057}.entry-details-content{flex:1;overflow-y:auto;padding:24px}.form-group{margin-bottom:20px}.form-group:last-child{margin-bottom:0}.form-group label{display:block;margin-bottom:6px;font-weight:500;color:#333;font-size:14px}.form-input,.form-select,.form-textarea{width:100%;padding:10px 12px;border:2px solid #e1e5e9;border-radius:6px;font-size:14px;transition:border-color .2s;box-sizing:border-box}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:#007bff}.form-textarea{resize:vertical;min-height:80px;font-family:inherit}.input-with-action{position:relative;display:flex;align-items:center}.input-with-action .form-input{flex:1;padding-right:48px}.input-action-btn{position:absolute;right:8px;width:32px;height:32px;border:none;background:none;cursor:pointer;border-radius:4px;font-size:16px;color:#6c757d;display:flex;align-items:center;justify-content:center;transition:all .2s}.input-action-btn:hover{background:#f8f9fa;color:#495057}.password-input-group{display:flex;flex-direction:column;gap:8px}.password-actions{position:absolute;right:8px;display:flex;gap:4px}.password-generator-actions{display:flex;gap:8px}.generate-btn,.generator-btn{padding:8px 12px;border:1px solid #e9ecef;background:#fff;cursor:pointer;border-radius:4px;font-size:12px;color:#495057;transition:all .2s}.generate-btn:hover,.generator-btn:hover{background:#f8f9fa;border-color:#007bff;color:#007bff}.password-strength{margin-top:8px}.strength-bar{height:4px;background:#e1e5e9;border-radius:2px;overflow:hidden;margin-bottom:6px}.strength-fill{height:100%;transition:all .3s}.strength-fill.strength-very-weak{background:#dc3545}.strength-fill.strength-weak{background:#fd7e14}.strength-fill.strength-fair{background:#ffc107}.strength-fill.strength-good{background:#20c997}.strength-fill.strength-strong{background:#28a745}.strength-info{display:flex;justify-content:space-between;align-items:center;font-size:12px}.strength-label{font-weight:500}.strength-label.strength-very-weak{color:#dc3545}.strength-label.strength-weak{color:#fd7e14}.strength-label.strength-fair{color:#ffc107}.strength-label.strength-good{color:#20c997}.strength-label.strength-strong{color:#28a745}.password-generator-options{background:#f8f9fa;border:1px solid #e9ecef;border-radius:6px;padding:16px;margin-top:8px}.password-generator-options h4{margin:0 0 12px;font-size:14px;color:#333}.generator-suggestions{display:flex;flex-direction:column;gap:4px}.password-suggestion{padding:8px 12px;border:1px solid #e9ecef;background:#fff;cursor:pointer;border-radius:4px;font-size:13px;font-family:Courier New,monospace;text-align:left;transition:all .2s}.password-suggestion:hover{background:#e7f3ff;border-color:#007bff}.tags-input{border:2px solid #e1e5e9;border-radius:6px;padding:8px;min-height:44px;transition:border-color .2s}.tags-input:focus-within{border-color:#007bff}.current-tags{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:8px}.tag{background:#007bff;color:#fff;padding:4px 8px;border-radius:12px;font-size:12px;display:flex;align-items:center;gap:4px}.tag-remove{background:none;border:none;color:#fff;cursor:pointer;font-size:14px;width:16px;height:16px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.tag-remove:hover{background:#fff3}.add-tag{display:flex;gap:8px;align-items:center}.tag-input{flex:1;border:none;outline:none;padding:4px 0;font-size:14px}.add-tag-btn{padding:4px 8px;border:1px solid #007bff;background:#007bff;color:#fff;cursor:pointer;border-radius:4px;font-size:12px;transition:all .2s}.add-tag-btn:hover:not(:disabled){background:#0056b3}.add-tag-btn:disabled{opacity:.5;cursor:not-allowed}.checkbox-group{margin-bottom:24px}.checkbox-label{display:flex;align-items:center;cursor:pointer;font-size:14px}.checkbox-label input{margin-right:8px}.checkbox-text{color:#495057}.form-errors{background:#f8d7da;border:1px solid #f5c6cb;border-radius:6px;padding:12px;margin-bottom:20px}.form-error{color:#721c24;font-size:14px;margin-bottom:4px}.form-error:last-child{margin-bottom:0}.form-actions{display:flex;gap:12px;padding-top:20px;border-top:1px solid #e9ecef;margin-top:20px}.save-btn,.delete-btn,.cancel-btn{padding:10px 20px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s}.save-btn{background:#007bff;color:#fff;flex:1}.save-btn:hover:not(:disabled){background:#0056b3}.save-btn:disabled{background:#6c757d;cursor:not-allowed}.delete-btn{background:#dc3545;color:#fff}.delete-btn:hover{background:#c82333}.cancel-btn{background:#6c757d;color:#fff}.cancel-btn:hover{background:#545b62}@media (max-width: 768px){.entry-details{width:100%;position:fixed;inset:0;z-index:1000}.form-actions,.password-generator-actions{flex-direction:column}}.search-bar{position:relative;display:flex;align-items:center;background:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;padding:0 12px;transition:all .2s;min-width:250px}.search-bar.focused{border-color:#007bff;background:#fff}.search-icon{color:#6c757d;margin-right:8px;flex-shrink:0}.search-input{flex:1;border:none;background:none;outline:none;padding:10px 0;font-size:14px;color:#333}.search-input::placeholder{color:#6c757d}.search-clear{background:none;border:none;color:#6c757d;cursor:pointer;padding:4px;border-radius:4px;font-size:12px;flex-shrink:0;margin-left:8px;transition:all .2s}.search-clear:hover{background:#e9ecef;color:#495057}.onboarding-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:var(--gecko-gray-900);padding:var(--space-4);width:100%}@media (prefers-color-scheme: light){.onboarding-container{background:linear-gradient(135deg,#f9fafb,#e5e7eb)}}.onboarding-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);padding:var(--space-10);max-width:480px;width:100%;animation:slideUp .3s cubic-bezier(.4,0,.2,1)}@media (prefers-color-scheme: dark){.onboarding-card{background:var(--gecko-gray-800);border:1px solid var(--gecko-gray-700)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.onboarding-card{padding:var(--space-6)}}.onboarding-header{text-align:center;margin-bottom:var(--space-8)}.onboarding-header h1{font-size:var(--text-3xl);font-weight:var(--font-bold);margin:0 0 var(--space-2) 0;color:var(--gecko-gray-900);display:flex;align-items:center;justify-content:center;gap:var(--space-3)}@media (prefers-color-scheme: dark){.onboarding-header h1{color:#fff}}.onboarding-header h1 svg{color:var(--gecko-primary)}.onboarding-header p{color:var(--gecko-gray-600);margin:0;font-size:var(--text-base);font-weight:var(--font-regular)}@media (prefers-color-scheme: dark){.onboarding-header p{color:var(--gecko-gray-400)}}.form-toggle{display:flex;margin-bottom:var(--space-6);border:2px solid var(--gecko-gray-200);border-radius:var(--radius-md);overflow:hidden;background:var(--gecko-gray-50)}@media (prefers-color-scheme: dark){.form-toggle{border-color:var(--gecko-gray-700);background:var(--gecko-gray-900)}}.toggle-btn{flex:1;padding:var(--space-3) var(--space-4);border:none;background:transparent;color:var(--gecko-gray-600);font-weight:var(--font-medium);font-size:var(--text-base);cursor:pointer;transition:all var(--transition-fast);position:relative}@media (prefers-color-scheme: dark){.toggle-btn{color:var(--gecko-gray-400)}}.toggle-btn.active{background:var(--gecko-primary);color:#fff;font-weight:var(--font-semibold)}.toggle-btn:hover:not(.active){background:var(--gecko-gray-100);color:var(--gecko-gray-900)}@media (prefers-color-scheme: dark){.toggle-btn:hover:not(.active){background:var(--gecko-gray-800);color:#fff}}.toggle-btn:focus-visible{outline:2px solid var(--gecko-primary);outline-offset:-2px;z-index:1}.form-section{margin-bottom:var(--space-5)}.form-section label{display:block;margin-bottom:var(--space-2);font-weight:var(--font-medium);font-size:var(--text-sm);color:var(--gecko-gray-900)}@media (prefers-color-scheme: dark){.form-section label{color:var(--gecko-gray-300)}}.password-input-group{position:relative}.form-input{width:100%;padding:var(--space-3) var(--space-4);padding-right:var(--space-12);border:2px solid var(--gecko-gray-300);border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-regular);transition:all var(--transition-fast);box-sizing:border-box;background:#fff;color:var(--gecko-gray-900);font-family:var(--font-mono)}@media (prefers-color-scheme: dark){.form-input{background:var(--gecko-gray-900);border-color:var(--gecko-gray-700);color:#fff}}.form-input:focus{outline:none;border-color:var(--gecko-primary);box-shadow:0 0 0 3px #10b9811a}.form-input.error{border-color:var(--gecko-error)}.form-input.error:focus{box-shadow:0 0 0 3px #ef44441a}.form-input:disabled{opacity:.6;cursor:not-allowed;background:var(--gecko-gray-100)}@media (prefers-color-scheme: dark){.form-input:disabled{background:var(--gecko-gray-800)}}.form-input::placeholder{color:var(--gecko-gray-400);font-family:var(--font-primary)}.password-toggle{position:absolute;right:var(--space-3);top:50%;transform:translateY(-50%);border:none;background:none;cursor:pointer;color:var(--gecko-gray-500);padding:var(--space-2);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:all var(--transition-fast)}.password-toggle:hover{color:var(--gecko-primary);background:var(--gecko-gray-100)}@media (prefers-color-scheme: dark){.password-toggle{color:var(--gecko-gray-400)}.password-toggle:hover{background:var(--gecko-gray-800)}}.password-toggle:focus-visible{outline:2px solid var(--gecko-primary);outline-offset:2px}.password-toggle:disabled{opacity:.4;cursor:not-allowed}.password-strength{margin-top:var(--space-3)}.strength-bar{height:4px;background:var(--gecko-gray-200);border-radius:var(--radius-sm);overflow:hidden;margin-bottom:var(--space-2)}@media (prefers-color-scheme: dark){.strength-bar{background:var(--gecko-gray-700)}}.strength-fill{height:100%;transition:all var(--transition-base);border-radius:var(--radius-sm)}.strength-fill.strength-very-weak{background:var(--gecko-error);width:20%}.strength-fill.strength-weak{background:var(--gecko-warning);width:40%}.strength-fill.strength-fair{background:var(--gecko-warning);width:60%}.strength-fill.strength-good{background:var(--gecko-primary-light);width:80%}.strength-fill.strength-strong{background:var(--gecko-primary);width:100%}.strength-info{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-xs);margin-bottom:var(--space-2)}.strength-label{font-weight:var(--font-semibold);text-transform:uppercase;letter-spacing:.025em}.strength-label.strength-very-weak{color:var(--gecko-error)}.strength-label.strength-weak,.strength-label.strength-fair{color:var(--gecko-warning)}.strength-label.strength-good{color:var(--gecko-primary-light)}.strength-label.strength-strong{color:var(--gecko-primary)}.strength-score{color:var(--gecko-gray-500);font-weight:var(--font-medium)}@media (prefers-color-scheme: dark){.strength-score{color:var(--gecko-gray-400)}}.strength-feedback{list-style:none;padding:0;margin:0;font-size:var(--text-xs);color:var(--gecko-gray-600)}@media (prefers-color-scheme: dark){.strength-feedback{color:var(--gecko-gray-400)}}.strength-feedback li{margin-bottom:var(--space-1);padding-left:var(--space-4);position:relative}.strength-feedback li:before{content:"•";position:absolute;left:0;color:var(--gecko-gray-400)}.security-notice{background:#fffbeb;border:2px solid #FDE68A;border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-5)}@media (prefers-color-scheme: dark){.security-notice{background:#f59e0b1a;border-color:#f59e0b4d}}.notice-header{display:flex;align-items:center;margin-bottom:var(--space-3);color:#92400e;font-weight:var(--font-semibold)}@media (prefers-color-scheme: dark){.notice-header{color:#fcd34d}}.notice-icon{margin-right:var(--space-2);display:flex;flex-shrink:0}.notice-list{margin:0 0 var(--space-4) 0;padding-left:var(--space-5);color:#78350f;font-size:var(--text-sm);line-height:var(--leading-relaxed)}@media (prefers-color-scheme: dark){.notice-list{color:#fde68a}}.notice-list li{margin-bottom:var(--space-1)}.checkbox-label{display:flex;align-items:flex-start;font-size:var(--text-sm);color:#78350f;cursor:pointer;gap:var(--space-2)}@media (prefers-color-scheme: dark){.checkbox-label{color:#fde68a}}.checkbox-label input[type=checkbox]{margin:0;cursor:pointer;width:16px;height:16px;accent-color:var(--gecko-primary);flex-shrink:0}.checkbox-label input[type=checkbox]:focus-visible{outline:2px solid var(--gecko-primary);outline-offset:2px}.form-error{color:var(--gecko-error);font-size:var(--text-sm);margin-top:var(--space-2);font-weight:var(--font-medium);display:flex;align-items:center;gap:var(--space-1)}.form-error-box{display:flex;align-items:flex-start;background:#fee2e2;border:2px solid #FECACA;border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-5);color:#991b1b;font-size:var(--text-sm);gap:var(--space-2)}@media (prefers-color-scheme: dark){.form-error-box{background:#ef44441a;border-color:#ef44444d;color:#fca5a5}}.error-icon{flex-shrink:0;display:flex;color:var(--gecko-error)}.error-close{margin-left:auto;border:none;background:none;cursor:pointer;color:inherit;padding:var(--space-1);display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm);transition:background var(--transition-fast);flex-shrink:0}.error-close:hover{background:#0000001a}.error-close:focus-visible{outline:2px solid var(--gecko-error);outline-offset:2px}.submit-btn{width:100%;padding:var(--space-4) var(--space-5);border:none;border-radius:var(--radius-md);font-size:var(--text-base);font-weight:var(--font-semibold);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-primary);min-height:44px}.submit-btn.enabled{background:var(--gecko-primary);color:#fff;box-shadow:0 1px 3px #10b9814d}.submit-btn.enabled:hover{background:var(--gecko-primary-dark);box-shadow:0 4px 6px -1px #10b9814d;transform:translateY(-1px)}.submit-btn.enabled:active{transform:translateY(0);box-shadow:0 1px 2px #10b9814d}.submit-btn.disabled{background:var(--gecko-gray-200);color:var(--gecko-gray-500);cursor:not-allowed}@media (prefers-color-scheme: dark){.submit-btn.disabled{background:var(--gecko-gray-800);color:var(--gecko-gray-600)}}.submit-btn:focus-visible{outline:2px solid var(--gecko-primary);outline-offset:2px}.loading-spinner{animation:spin 1s linear infinite;display:flex}.demo-notice{margin-top:var(--space-6);padding:var(--space-4);background:#dbeafe;border:2px solid #BFDBFE;border-radius:var(--radius-md);font-size:var(--text-sm);color:#1e40af;text-align:center}@media (prefers-color-scheme: dark){.demo-notice{background:#3b82f61a;border-color:#3b82f64d;color:#93c5fd}}.demo-notice p{margin:0;line-height:var(--leading-relaxed)}.demo-notice strong{font-weight:var(--font-semibold);color:#1e3a8a}@media (prefers-color-scheme: dark){.demo-notice strong{color:#dbeafe}}@media (max-width: 768px){.onboarding-header h1{font-size:var(--text-2xl)}.onboarding-header p{font-size:var(--text-sm)}.toggle-btn{font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.form-section{margin-bottom:var(--space-4)}.submit-btn{padding:var(--space-3) var(--space-4)}}@media (max-width: 768px){.password-toggle,.error-close{min-width:44px;min-height:44px}}@media (prefers-contrast: high){.form-input{border-width:3px}.form-input:focus{outline:3px solid var(--gecko-primary);outline-offset:2px}.submit-btn.enabled{border:2px solid var(--gecko-primary-dark)}}@media (prefers-contrast: more){.password-toggle,.error-close,.toggle-btn{opacity:1!important}}.onboarding-footer{margin-top:var(--space-8);padding-top:var(--space-6);border-top:1px solid var(--gecko-gray-200);text-align:center}@media (prefers-color-scheme: dark){.onboarding-footer{border-top-color:var(--gecko-gray-700)}}.footer-links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-4);margin-bottom:var(--space-4)}.footer-link{color:var(--gecko-gray-600);text-decoration:none;font-size:var(--text-sm);font-weight:var(--font-medium);transition:color var(--transition-fast)}@media (prefers-color-scheme: dark){.footer-link{color:var(--gecko-gray-400)}}.footer-link:hover{color:var(--gecko-primary)}.footer-link:focus-visible{outline:2px solid var(--gecko-primary);outline-offset:2px;border-radius:var(--radius-sm)}.footer-attribution{margin:0;font-size:var(--text-xs);color:var(--gecko-gray-500)}@media (prefers-color-scheme: dark){.footer-attribution{color:var(--gecko-gray-500)}}.footer-link-gecko{color:var(--gecko-primary);text-decoration:none;font-weight:var(--font-medium);transition:color var(--transition-fast)}.footer-link-gecko:hover{color:var(--gecko-primary-dark);text-decoration:underline}.footer-link-gecko:focus-visible{outline:2px solid var(--gecko-primary);outline-offset:2px;border-radius:var(--radius-sm)}@media (max-width: 768px){.footer-links{flex-direction:column;align-items:center;gap:var(--space-3)}.footer-link{font-size:var(--text-xs)}.footer-attribution{font-size:11px}}.vault-app{height:100vh;display:flex;flex-direction:column;background:#f8f9fa;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.vault-header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:#fff;border-bottom:1px solid #e9ecef;box-shadow:0 1px 3px #0000001a;z-index:100}.vault-header-left{display:flex;align-items:center;gap:24px}.vault-header-left h1{margin:0;font-size:20px;font-weight:600;color:#333}.vault-header-right{display:flex;align-items:center;gap:12px}.btn{display:flex;align-items:center;gap:8px;padding:8px 16px;border:none;border-radius:6px;cursor:pointer;font-size:14px;font-weight:500;transition:all .2s;text-decoration:none}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#545b62;transform:translateY(-1px)}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333;transform:translateY(-1px)}.vault-main{flex:1;display:flex;height:calc(100vh - 60px);overflow:hidden}.error-toast{position:fixed;bottom:20px;right:20px;background:#dc3545;color:#fff;padding:12px 16px;border-radius:8px;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;gap:12px;z-index:1000;max-width:400px}.error-toast button{background:none;border:none;color:#fff;cursor:pointer;font-size:16px;padding:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.error-toast button:hover{background:#fff3}.loading-overlay{position:fixed;inset:0;background:#fffc;display:flex;align-items:center;justify-content:center;z-index:1000}.loading-spinner{font-size:32px;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.vault-header{padding:12px 16px;flex-wrap:wrap;gap:12px}.vault-header-left{gap:16px}.vault-header-left h1{font-size:18px}.vault-header-right{gap:8px}.btn{padding:6px 12px;font-size:13px}.vault-main{flex-direction:column;height:auto}.error-toast{bottom:16px;right:16px;left:16px;max-width:none}}@media (max-width: 480px){.vault-header{padding:8px 12px}.vault-header-left h1{font-size:16px}.btn{padding:6px 10px;font-size:12px}}@media (prefers-color-scheme: dark){.vault-app{background:#1a1a1a;color:#fff}.vault-header{background:#2d2d2d;border-bottom-color:#404040}.vault-header h1{color:#fff}.loading-overlay{background:#1a1a1acc}}#root{max-width:1280px;margin:0 auto;padding:2rem;text-align:center}.logo{height:6em;padding:1.5em;will-change:filter;transition:filter .3s}.logo:hover{filter:drop-shadow(0 0 2em #646cffaa)}.logo.react:hover{filter:drop-shadow(0 0 2em #61dafbaa)}@keyframes logo-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (prefers-reduced-motion: no-preference){a:nth-of-type(2) .logo{animation:logo-spin infinite 20s linear}}.card{padding:2em}.read-the-docs{color:#888}
