@import url(https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap);.app-header{background:var(--color-primary);border-bottom:1px solid #ffffff1a;box-shadow:var(--shadow-sm);height:64px;left:0;position:fixed;right:0;top:0;transition:all var(--transition-base);z-index:var(--z-fixed)}.header-content{justify-content:space-between;max-width:100%;padding:0 var(--space-xl)}.header-content,.logo-container{align-items:center;display:flex;height:100%}.logo-container{transition:transform var(--transition-base)}.logo-container:hover{transform:scale(1.02)}.App-logo-stable{filter:brightness(0) invert(1);height:40px;object-fit:contain;width:auto}.header-nav{align-items:center;display:flex;gap:var(--space-lg)}.header-nav-item{border-radius:var(--radius-md);color:var(--color-white);font-size:.875rem;font-weight:500;padding:var(--space-sm) var(--space-md);position:relative;text-decoration:none;transition:all var(--transition-base)}.header-nav-item:hover{background:#ffffff1a;color:var(--color-white)}.header-nav-item.active{background:#ffffff26;color:var(--color-white);font-weight:600}.header-actions{align-items:center;gap:var(--space-md)}.user-info{align-items:center;background:#ffffff1a;border-radius:var(--radius-lg);cursor:pointer;display:flex;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);transition:all var(--transition-base)}.user-info:hover{background:#ffffff26;transform:translateY(-1px)}.user-avatar{align-items:center;background:#fff3;border-radius:50%;display:flex;font-weight:600;height:32px;justify-content:center;width:32px}.user-avatar,.user-name{color:var(--color-white);font-size:.875rem}.user-name{font-weight:500}.theme-toggle{align-items:center;background:#ffffff1a;border:1px solid #fff3;border-radius:var(--radius-md);color:var(--color-white);cursor:pointer;display:flex;height:40px;justify-content:center;padding:var(--space-sm);transition:all var(--transition-base);width:40px}.theme-toggle:hover{background:#ffffff26;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.logout-button{align-items:center;background:var(--color-error);border:none;border-radius:var(--radius-md);color:var(--text-light);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);transition:all var(--transition-base)}.logout-button:hover{background:#c53030;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.logout-button:active{transform:translateY(0)}.sidebar-wrapper{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;overflow:hidden;position:relative;transition:all var(--transition-base);width:240px}.sidebar-wrapper.collapsed{width:64px}.sidebar-header{border-bottom:1px solid var(--border-light);padding:var(--space-lg)}.sidebar-header h3{color:var(--text-primary);font-size:1rem;font-weight:600;letter-spacing:.05em;margin:0;text-transform:uppercase}.ps-sidebar-container{background:var(--bg-primary)}.ps-menu-root{background:#0000;margin:0;padding:0}.ps-menu-button,.ps-menuitem-root{border-radius:0;margin:0;transition:all var(--transition-fast)}.ps-menu-button{background:#0000;border:none;color:var(--text-secondary);font-size:.875rem;font-weight:500;overflow:hidden;padding:var(--space-md) var(--space-lg);position:relative;text-align:left;width:100%}.ps-menu-button:before{background:var(--color-primary);bottom:0;content:"";left:0;position:absolute;top:0;transform:scaleY(0);transform-origin:center;transition:all var(--transition-fast);width:3px}.ps-menu-button:hover{background:var(--bg-secondary);color:var(--text-primary);transform:translateX(2px)}.ps-menu-button:hover:before{transform:scaleY(1)}.ps-menu-button.ps-active{background:var(--bg-secondary);color:var(--color-primary);font-weight:600}.ps-menu-button.ps-active:before{transform:scaleY(1)}.ps-menu-icon{color:var(--text-secondary);font-size:1.25rem;transition:all var(--transition-base)}.ps-menu-button.ps-active .ps-menu-icon,.ps-menu-button:hover .ps-menu-icon{color:var(--color-primary);transform:scale(1.05)}.collapse-btn{background:var(--bg-secondary);border:1px solid var(--border-light);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;display:block;height:36px;left:0;padding:var(--space-sm);position:static;transition:all var(--transition-fast);width:36px;z-index:10}.ps-menu-label{font-weight:500;margin-left:var(--space-sm)}.app-footer{background:#fff;border-top:1px solid #e5e7eb;font-size:.8rem;line-height:1.2;padding:.25rem .5rem}.footer-content{color:var(--color-info);margin:0;padding:.15rem 0;text-align:center}.layout-wrapper{background:var(--bg-secondary);min-height:100vh;padding-top:64px}.layout-content{display:flex;gap:0;min-height:calc(100vh - 64px);padding:var(--space-lg)}.layout-content,.main-content{transition:all var(--transition-base)}.main-content{background:var(--bg-primary);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex:1 1;overflow:hidden;padding:0}.main-content:before{background:linear-gradient(180deg,var(--color-primary) 0,var(--color-primary-light) 100%);border-radius:0 var(--radius-md) var(--radius-md) 0;bottom:0;box-shadow:0 0 20px #286bb34d;content:"";left:0;opacity:0;position:absolute;top:0;transition:opacity var(--transition-fast);width:4px}.layout-wrapper .main-content[data-active=true]:before{opacity:1}.main-content:hover{transform:translateY(-1px)}.workspace-content{margin:0 auto;max-width:1200px;width:100%}.workspace-header{margin-bottom:var(--space-xl)}.workspace-title{color:var(--text-primary);font-size:2rem;font-weight:700;letter-spacing:-.025em;margin:0 0 var(--space-sm) 0}.workspace-subtitle{color:var(--text-secondary);font-size:1rem;font-weight:400;margin:0}.breadcrumb{align-items:center;display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);padding:var(--space-sm) 0}.breadcrumb-item{color:var(--text-secondary);font-size:.875rem;text-decoration:none;transition:color var(--transition-base)}.breadcrumb-item.active,.breadcrumb-item:hover{color:var(--text-primary)}.breadcrumb-item.active{font-weight:500}.breadcrumb-separator{color:var(--text-muted);font-size:.75rem}.content-grid{grid-gap:var(--space-xl);display:grid;gap:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:var(--space-xl)}@media (max-width:1024px){.layout-content{gap:0;padding:var(--space-md)}.content-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}}@media (max-width:768px){.layout-content{flex-direction:column;gap:0;padding:var(--space-sm)}.sidebar-wrapper{max-height:200px;overflow-y:auto;width:100%}.sidebar-wrapper.collapsed{max-height:60px;width:100%}.main-content{padding:0}.content-grid{gap:var(--space-md);grid-template-columns:1fr}.workspace-title{font-size:1.5rem}}.auth-container{align-items:center;background-color:#f5f5f5;display:flex;justify-content:center;min-height:100vh;padding:1rem}.auth-form{background:#fff;border-radius:8px;box-shadow:0 1px 2px var(--color-primary);max-width:400px;padding:2rem;width:100%}.auth-form h2{color:var(--color-primary);font-size:1.75rem;font-weight:700;letter-spacing:-.025em;line-height:1.25;margin:0 0 1rem;text-align:center}.auth-form p{color:var(--color-grey);font-size:1rem;line-height:1.5;margin:0 0 1.5rem;text-align:center}.form-group{margin-bottom:1rem}.form-group label{color:var(--color-grey-dark);display:block;margin-bottom:.5rem}.form-group input{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.5rem;width:100%}.auth-button{color:#fff;margin-top:1rem;padding:.25rem}.auth-button:hover{background-color:var(--color-primary)}.auth-links{font-size:.875rem;margin-top:1rem;text-align:center}.auth-links a{color:var(--color-primary);text-decoration:none}.auth-links a:hover{text-decoration:underline}.social-buttons{display:flex;flex-direction:column;gap:.75rem;margin:1.5rem 0}.social-button{align-items:center;background:#fff;border:1px solid #e2e8f0;border-radius:6px;box-shadow:0 1px 2px 0 #0000000d;color:#1e293b;cursor:pointer;display:flex;font-size:.9375rem;font-weight:500;gap:.75rem;justify-content:center;padding:.75rem 1rem;transition:all .2s ease;width:100%}.social-button:hover{background-color:#f8fafc;border-color:#cbd5e1;transform:translateY(-1px)}.social-button:active{background-color:#f1f5f9;transform:translateY(0)}.social-button i{font-size:1.25rem}.social-button.github,.social-button.google{color:#1f2937}.social-button.google i{color:#db4437}.social-button.github i{color:#181717}.divider{align-items:center;color:#64748b;display:flex;font-size:.875rem;letter-spacing:.05em;margin:1.5rem 0;text-align:center;text-transform:uppercase}.divider:after,.divider:before{border-bottom:1px solid #e2e8f0;content:"";flex:1 1}.divider:before{margin-right:1rem}.divider:after{margin-left:1rem}.register-link{margin-top:.5rem}.error-message{background-color:var(--color-error-bg);border-left:3px solid var(--color-error);border-radius:var(--border-radius);box-shadow:0 1px 3px #0000000d;color:var(--color-error);font-size:.9rem;line-height:1.5;margin:0 0 1.5rem;padding:.75rem 1rem}.error-message a{color:var(--color-primary);font-weight:500;text-decoration:none;transition:color .2s}.error-message a:hover{color:var(--color-primary-dark);text-decoration:underline}.error-with-link{display:flex;flex-direction:column;gap:.5rem}.unverified-account{background-color:var(--color-warning-bg);border-left:3px solid var(--color-warning);border-radius:var(--border-radius);box-shadow:0 1px 3px #0000000d;margin:0 0 1.5rem;padding:1rem;text-align:left}.unverified-message{align-items:center;color:var(--color-warning-dark);display:flex;font-weight:500;margin:0 0 .5rem}.unverified-message i{color:var(--color-warning);font-size:1.1rem;margin-right:.5rem}.unverified-account p{color:var(--color-text-secondary);font-size:.9rem;line-height:1.5;margin:0 0 1rem}.verification-actions{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}.resend-button,.verify-button{border:none;border-radius:var(--border-radius);cursor:pointer;display:inline-block;font-size:.95rem;font-weight:500;padding:.625rem 1.25rem;text-align:center;text-decoration:none;transition:all .2s ease;width:100%}.verify-button{background-color:var(--color-primary);box-shadow:0 1px 2px #0000001a;color:#fff}.verify-button:hover{background-color:var(--color-primary-dark);box-shadow:0 2px 4px #0000001a;transform:translateY(-1px)}.verify-button:active{box-shadow:0 1px 2px #0000001a;transform:translateY(0)}.resend-button{background-color:initial;border:1px solid var(--color-primary);color:var(--color-primary);padding:.5rem 1rem}.resend-button:hover{background-color:var(--color-primary-light);border-color:var(--color-primary);color:#fff}.resend-button:disabled{background-color:var(--color-grey-light);border-color:var(--color-grey);color:var(--color-grey-dark);cursor:not-allowed;opacity:.7}.success-message{background-color:#d4edda;color:var(--color-success);padding:.5rem}.auth-logo{margin-bottom:2.5rem;padding:1rem;text-align:center}.auth-logo img{height:auto;object-fit:contain;transition:all .3s;width:120px}@media (min-width:768px){.auth-logo img{height:150px;width:150px}}@media (min-width:1024px){.auth-logo img{height:180px;width:180px}}@media (max-width:480px){.auth-logo img{height:100px;width:100px}.auth-logo{margin-bottom:2rem}}.auth-logo h1{color:var(--color-grey-dark);font-size:1.75rem;font-weight:600;margin:0}.selected-plan{background:#e3f0ff;border:1.5px solid #3182ce;border-radius:4px;color:#2b6cb0;font-family:var(--font-family),"Segoe UI",Arial,sans-serif;font-size:1rem;font-weight:500;padding:.7rem 1rem;text-align:center}.admin-container,.analytics-container,.dashboard-container,.datasources-container{animation:fadeInUp .6s ease-out;padding:var(--space-xl)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.pages-header{background:var(--bg-primary);border:none;border-bottom:1px solid var(--border-light);border-radius:var(--radius-lg) var(--radius-lg) 0 0;box-shadow:none;margin-bottom:0;padding:var(--space-md) var(--space-xl)}.pages-header:hover{transform:none}.page-header-content{gap:var(--space-md)}.page-header-content h2,.page-header-content h3{color:var(--text-primary);font-size:1.75rem;font-weight:700;letter-spacing:-.025em;margin:0}.dashboard-stats{grid-gap:var(--space-xl);display:grid;gap:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(320px,1fr));margin-bottom:var(--space-xl)}.stat-card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);cursor:pointer;overflow:hidden;padding:var(--space-xl);position:relative;transition:all var(--transition-base)}.stat-card:before{background:linear-gradient(90deg,var(--color-primary) 0,var(--color-primary-light) 100%);border-radius:var(--radius-xl) var(--radius-xl) 0 0;content:"";height:4px;left:0;position:absolute;right:0;top:0;transform:scaleX(0);transform-origin:left;transition:transform var(--transition-base)}.stat-card:hover:before{transform:scaleX(1)}.stat-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.stat-card-icon{align-items:center;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-light) 100%);border-radius:var(--radius-lg);color:var(--text-light);display:flex;font-size:1.5rem;height:48px;justify-content:center;margin-bottom:var(--space-md);width:48px}.stat-card h3{color:var(--text-muted);font-size:.875rem;font-weight:600;letter-spacing:.05em;margin-bottom:var(--space-sm);text-transform:uppercase}.stat-card h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-light) 100%);-webkit-background-clip:text;background-clip:text;color:var(--text-primary);font-size:3rem;font-weight:700;line-height:1;margin:0}.stat-card-trend{align-items:center;display:flex;font-size:.75rem;font-weight:500;gap:var(--space-xs);margin-top:var(--space-sm)}.stat-card-trend.positive{color:var(--color-success)}.stat-card-trend.negative{color:var(--color-error)}.add-source-btn{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-light) 100%);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:var(--text-light);font-size:.875rem;font-weight:600;gap:var(--space-sm);overflow:hidden;padding:var(--space-sm) var(--space-lg);position:relative}.add-source-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .5s;width:100%}.add-source-btn:hover:before{left:100%}.add-source-btn:hover{box-shadow:var(--shadow-md)}.add-source-btn:hover .btn-icon{transform:rotate(90deg)}.datasources-grid{grid-gap:var(--space-xl);gap:var(--space-xl);grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.loading-container{animation:fadeInUp .4s ease-out;padding:4rem var(--space-xl)}.loading-spinner{animation:spin 1s cubic-bezier(.68,-.55,.265,1.55) infinite;border-top:4px solid var(--border-light);border:4px solid var(--border-light);border-top-color:var(--color-primary);height:48px;margin-bottom:var(--space-lg);width:48px}.error-container{border:1px solid var(--color-error);border-radius:var(--radius-lg)}.error-container,.no-data-message{animation:fadeInUp .4s ease-out;background:var(--bg-primary);box-shadow:var(--shadow-sm);padding:var(--space-2xl)}.no-data-message{border:1px solid var(--border-light);border-radius:var(--radius-lg)}.no-data-message h3{color:var(--text-secondary);margin-bottom:var(--space-md)}.no-data-message p{color:var(--text-muted);margin:0}@media (max-width:1024px){.dashboard-stats{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.datasources-grid{gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}@media (max-width:768px){.dashboard-stats{gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.datasources-grid{gap:var(--space-md);grid-template-columns:1fr}.page-header-content{align-items:flex-start;flex-direction:column;gap:var(--space-sm)}.stat-card{padding:var(--space-lg)}.stat-card h2{font-size:2.5rem}}body{padding:0}.admin-container h2,.analytics-container h2,.dashboard-container h2,.datasources-container h2{color:var(--color-grey);font-family:var(--font-family);font-size:2rem;font-weight:500;margin-bottom:1.5rem}.admin-container h3,.analytics-container h3,.dashboard-container h3,.datasources-container h3{color:var(--color-primary);font-family:var(--font-family);font-size:1.25rem;font-weight:500;margin-bottom:1rem}.admin-container,.analytics-container,.dashboard-container,.datasources-container{margin:.5em;max-width:1500px;padding:.1rem;width:100%}.pages-header{box-shadow:0 .5px 1px var(--color-primary);margin-bottom:1px;padding-left:10px;padding-right:5px}.datasources-header,.pages-header{background:#fff;border-radius:4px;transition:all var(--transition-base)}.datasources-header{box-shadow:0 1px 1px #0000001a;margin-bottom:2px;padding:.1rem}.page-header-content{align-items:center;display:flex;flex-wrap:wrap;gap:.2rem;justify-content:space-between;margin-bottom:0}.page-header-content h2{color:var(--color-primary);font-size:1.75rem;margin:.2rem}.add-source-btn{align-items:center;background-color:var(--color-primary);border:none;border-radius:6px;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:.15rem;padding:.75rem 1.25rem;transition:all var(--transition-base)}.add-source-btn:hover{background-color:var(--color-primary);transform:translateY(-2px)}.add-source-btn:active{transform:translateY(0)}.btn-icon{font-size:1.25rem;line-height:1;transition:transform var(--transition-base)}.add-source-btn:hover .btn-icon{transform:scale(1.1) rotate(90deg)}.datasources-grid{grid-gap:20px;align-items:start;display:grid;gap:20px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));padding:10px 0}.loading-container{align-items:center;animation:fadeIn .3s ease-out;display:flex;flex-direction:column;justify-content:center;padding:3rem;text-align:center}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#007bff;height:40px;margin-bottom:1rem;width:40px}.error-container{background:var(--color-white);box-shadow:0 2px 4px #0000001a;padding:2rem}.error-container,.no-data-message{animation:fadeIn .3s ease-out;border-radius:8px;text-align:center}.no-data-message{background:#fff;color:var(--color-grey);grid-column:1/-1;padding:3rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.admin-container,.analytics-container,.dashboard-container,.datasources-container{padding:0}.datasources-grid{gap:1rem;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}.page-header-content{align-items:stretch;flex-direction:column;text-align:center}.add-source-btn{justify-content:center}}@media (max-width:480px){.datasources-grid{grid-template-columns:1fr}}.datasource-card{background:#fff;border-color:var(--color-primary);border-radius:12px;box-shadow:0 .3px 2px var(--color-primary);display:flex;flex-direction:column;padding:1em;transition:transform .2s,box-shadow .2s;width:auto}.datasource-card:hover{box-shadow:0 2px 2px var(--color-primary);transform:translateY(-2px)}.card-header{justify-content:space-between;margin-bottom:.5rem}.card-header,.database-info{align-items:flex-start;display:flex}.database-info{flex:1 1;gap:1rem;min-width:0}.database-icon{flex-shrink:0;font-size:2rem}.database-details{min-width:0}.database-details h3{color:var(--color-grey-dark);font-family:var(--font-family);font-size:1.25rem;font-weight:500;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:normal}.database-type{color:var(--color-grey);font-family:var(--font-family);font-size:.875rem}.database-description{color:#6c757d;font-family:var(--font-family);font-size:.82rem;font-style:italic;line-height:1.3;margin-bottom:.2em;margin-top:.2em;word-break:break-word}.editable-field{cursor:pointer;transition:background .15s}.editable-field:hover{background:#f4f4f4}.editable-field input{border:1px solid #ccc;border-radius:4px;font-family:inherit;font-size:inherit;padding:2px 6px;width:90%}.placeholder{color:#b0b0b0;font-style:italic}.lock-edit-btn{background:none;border:none;bottom:10px;color:#aaa;cursor:pointer;font-size:1.1rem;opacity:.7;position:absolute;right:10px;z-index:2}.lock-edit-btn:hover{color:#007bff;opacity:1}.connection-status{border-radius:50%;flex-shrink:0;height:12px;margin-left:1rem;position:relative;transition:background-color .3s;width:12px}.tooltip{background-color:#f8f9fa;border-radius:4px;bottom:100%;color:#e30b0b;font-family:var(--font-family);font-size:small;font-weight:500;left:50%;opacity:.8;padding:5px;position:absolute;transform:translateX(-50%);white-space:nowrap;z-index:10}.card-content{flex:1 1;margin:.5rem 0}.connection-details{font-family:var(--font-family);font-size:.875rem}.connection-details p{align-items:center;color:var(--color-grey);display:flex;gap:.5rem;margin:.5rem 0}.connection-details strong{color:var(--color-grey-dark);font-weight:500;min-width:80px}.card-actions{border-top:1px solid #eee;display:flex;gap:.5rem;justify-content:normal;margin-top:auto;padding-top:1rem}.datasource-card .action-button{align-items:center;background-color:#f8f9fa;border:none;border-radius:6px;color:var(--color-grey);cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s;width:36px}.datasource-card .action-button:hover{background-color:#e9ecef;color:var(--color-grey-dark)}.datasource-card .action-button.edit:hover{background-color:#007bff;color:#fff}.datasource-card .action-button.delete:hover{background-color:var(--color-error);color:#fff}.datasource-card .action-button:disabled{background-color:#e9ecef;cursor:not-allowed;opacity:.7}@media (max-width:480px){.datasource-card{padding:1rem}.database-icon{font-size:1.5rem}.database-details h3{font-size:1.125rem}.datasource-card .action-button{height:32px;width:32px}}.add-db-form-overlay{align-items:center;background-color:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.add-db-form-container{background:#fff;border-radius:8px;box-shadow:0 2px 10px #0000001a;font-size:.9rem;max-height:90vh;max-width:800px;overflow-y:auto;padding:.5rem;width:100%}.add-db-form{grid-gap:.4em 2em;display:grid;gap:.4em 2em;grid-template-columns:repeat(2,1fr)}.add-db-form-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.add-db-form-header h2{color:var(--color-grey-dark);font-size:1.5rem;margin:0}.close-button{background:none;border:none;color:var(--color-grey);cursor:pointer;font-size:1.5rem}.add-db-form .form-group{margin-bottom:.5rem;width:100%}.add-db-form label{color:var(--color-grey-dark);display:block;font-weight:500;margin-bottom:.2em}.add-db-form input,.add-db-form select{border:1px solid #ddd;border-radius:4px;font-size:1rem;padding:.1rem;width:100%}.add-db-form input.error{border-color:var(--color-error)}.error-message{background-color:var(--color-white)2f0;border:1px solid #ffccc7;margin-bottom:16px;padding:12px}.error-title{color:#cf1322;font-weight:500;margin-bottom:4px}.error-details{border-top:1px solid #ffccc7;color:#595959;font-size:.9em;margin-top:4px;padding-top:4px}.submit-error{background-color:#f8d7da;border-radius:4px;margin-bottom:1rem;padding:.5rem;text-align:center}.form-actions{display:flex;gap:1rem;justify-content:flex-end;margin-top:.5rem}.cancel-button,.submit-button{border-radius:4px;cursor:pointer;font-weight:500;height:2rem;padding:.1rem .5rem}.cancel-button{background-color:#f8f9fa;border:1px solid #ddd;color:var(--color-grey-dark)}.submit-button{background-color:var(--color-primary);border:none;color:#fff}.submit-button:disabled{background-color:var(--color-grey-light);cursor:not-allowed}.cancel-button:hover{background-color:#e9ecef}.submit-button:hover:not(:disabled){background-color:#0056b3}.fa-icon{color:#1976d2;margin-right:8px;vertical-align:middle}.fa-icon.large{font-size:2rem}.admin-container{margin:0 auto;max-width:1200px;padding:2rem}.admin-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:2rem}.admin-header h2{color:var(--color-grey-dark);margin:0}.admin-section{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;margin-bottom:2rem;padding:1.5rem}.admin-section h3{color:var(--color-grey-dark);margin-bottom:1rem;margin-top:0}.admin-table{border-collapse:collapse;margin-top:1rem;width:100%}.admin-table td,.admin-table th{border-bottom:1px solid #e2e8f0;padding:.75rem;text-align:left}.admin-table th{color:var(--color-grey-dark);font-weight:600}.admin-table th,.admin-table tr:hover{background-color:#f8fafc}.admin-button{border:none;border-radius:4px;cursor:pointer;font-size:.875rem;padding:.5rem 1rem;transition:background-color .2s}.approve-button{background-color:#48bb78;color:#fff}.approve-button:hover{background-color:#38a169}.reject-button{background-color:#f56565;color:#fff}.reject-button:hover{background-color:#e53e3e}.admin-button:disabled{background-color:#cbd5e0;cursor:not-allowed}.error-message{background-color:#fff5f5;color:#e53e3e}.error-message,.success-message{border-radius:4px;margin-bottom:1rem;padding:.75rem}.success-message{background-color:#f0fff4;color:#38a169}.admin-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:2rem}.stat-card{background:#fff;border-radius:8px;box-shadow:0 1px 3px #0000001a;padding:1.5rem}.stat-card h4{color:var(--color-grey-dark);font-size:.875rem;letter-spacing:.05em;margin:0 0 .5rem;text-transform:uppercase}.stat-card p{color:var(--color-primary);font-size:1.5rem;font-weight:600;margin:0}@media (max-width:768px){.admin-container{padding:1rem}.admin-header{align-items:flex-start;flex-direction:column;gap:1rem}.admin-table{display:block;overflow-x:auto}}.plan-selection{display:flex;flex-wrap:wrap;gap:1.5rem;justify-content:center;margin:2rem 0}.plan-option{background:var(--color-white);border:1px solid var(--color-grey-light);border-radius:8px;box-shadow:0 2px 4px #0000000d;cursor:pointer;font-family:var(--font-family);max-width:300px;padding:1.5rem;position:relative;transition:all .3s ease;width:100%}.plan-option:hover{box-shadow:0 5px 15px #0000001a;transform:translateY(-5px)}.plan-option.enterprise-plan{cursor:not-allowed;opacity:.9;position:relative}.plan-option.enterprise-plan:hover{box-shadow:0 2px 4px #0000000d;transform:none}.enterprise-badge{background-color:var(--color-primary);border-radius:12px;color:#fff;display:inline-block;font-size:.7rem;font-weight:500;margin-left:.75rem;padding:.2rem .6rem;vertical-align:middle}.contact-us-indicator{margin-top:1rem;text-align:center}.contact-us-link{background-color:var(--color-primary);border-radius:4px;color:#fff;display:inline-block;font-weight:500;padding:.5rem 1rem;text-decoration:none;transition:background-color .2s ease}.contact-us-link:hover{background-color:var(--color-primary-dark);color:#fff;text-decoration:none}.plan-option.selected{background-color:#286bb30d}.plan-option h3{color:var(--color-black);font-size:1.25rem;font-weight:600;margin:0 0 .5rem}.plan-price{color:var(--color-primary);font-size:1.75rem;font-weight:700;margin:.5rem 0 1rem}.plan-description{color:var(--color-grey);line-height:1.5;margin:0 0 1rem;min-height:3em}.plan-features{list-style:none;margin:1.5rem 0;padding:0;text-align:left}.plan-features li{align-items:flex-start;color:var(--color-grey-dark);display:flex;font-size:.95rem;line-height:1.5;padding:.5rem 0}.plan-features li svg{color:var(--color-primary);flex-shrink:0;margin-right:.75rem;margin-top:.2rem}.selected-indicator{align-items:center;background:var(--color-primary);border-radius:4px;color:var(--color-white);display:flex;font-size:.75rem;font-weight:500;gap:.5rem;padding:.35rem .75rem;position:absolute;right:1rem;top:1rem}.plan-note{align-items:flex-start;background-color:#ffc1071a;border-left:4px solid var(--color-warning);border-radius:4px;color:var(--color-grey-dark);display:flex;font-size:.95rem;gap:.75rem;line-height:1.5;margin:1.5rem 0;padding:.75rem 1rem}.plan-note svg{color:var(--color-warning);font-size:1.1em;margin-top:.2rem}@media (max-width:768px){.plan-selection{align-items:stretch;flex-direction:column;gap:1.25rem}.plan-option{max-width:100%;padding:1.25rem}.plan-features li{padding:.4rem 0}}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.01)}to{transform:scale(1)}}.plan-option.selected{animation:pulse .5s ease-in-out;border-color:var(--color-primary);box-shadow:0 4px 12px #286bb326}.auth-button{background-color:var(--color-primary);border:none;border-radius:4px;color:var(--color-white);cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem 1.5rem;transition:background-color .2s ease;width:100%}.auth-button:hover{background-color:var(--color-primary-dark)}.auth-button:disabled{background-color:var(--color-grey-light);cursor:not-allowed}.pending-approval-message{background-color:#fff4e5cc;border-left:4px solid orange;border-radius:4px;margin:1.5rem 0;padding:1.25rem;text-align:left}.pending-approval-message p{color:var(--color-grey-dark);line-height:1.6;margin:.5rem 0}.pending-approval-message ul{margin:.75rem 0 .75rem 1.5rem;padding:0}.pending-approval-message li{line-height:1.5;margin-bottom:.5rem}.pending-approval-message a{color:var(--color-primary);font-weight:500;text-decoration:none}.pending-approval-message a:hover{text-decoration:underline}.pending-approval-note{align-items:flex-start;background-color:#286bb314;border-left:4px solid var(--color-primary);border-radius:4px;color:var(--color-grey-dark);display:flex;font-size:.95rem;gap:.75rem;line-height:1.5;margin:1.5rem 0;padding:.75rem 1rem}.pending-approval-note svg{color:var(--color-primary);flex-shrink:0;font-size:1.1em;margin-top:.2rem}.back-link{align-items:center;color:var(--color-primary);display:inline-flex;font-size:.95rem;gap:.5rem;margin-top:1rem;text-decoration:none;transition:color .2s ease}.back-link:hover{color:var(--color-primary-dark);text-decoration:underline}.back-link svg{font-size:.9em}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}.App-logo-stable{animation:None;display:block;width:100%}}.App-header{border-bottom:1px solid var(--color-primary);flex-direction:row;min-height:10vh}.App-content,.App-header{align-items:center;background-color:var(--color-primary);color:#fff;display:flex;font-size:calc(10px + 2vmin)}.App-content{flex-direction:column;justify-content:center;min-height:80vh}.App-footer{align-items:normal;background-color:var(--color-primary-dark);color:#fff;display:flex;flex-direction:row;font-size:calc(10px + 2vmin);justify-content:center;min-height:10vh}.App-link{color:var(--color-primary)}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.card:hover{box-shadow:0 54px 55px #00000040,0 -12px 30px #0000001f,0 4px 6px #0000001f,0 12px 13px #0000002b,0 -3px 5px #00000017}.ps-menu-label{text-align:justify}.chat-tabs-wrapper{display:flex;flex-direction:column;height:100%;width:100%}.chat-tabs-container{-ms-overflow-style:none;background-color:#f5f5f5;border-bottom:1px solid #e0e0e0;display:flex;flex-shrink:0;overflow-x:auto;padding:4px 8px 0;scrollbar-width:none}.chat-tabs-container::-webkit-scrollbar{display:none}.chat-tabs-scroll{-ms-overflow-style:none;display:flex;flex:1 1;overflow-x:auto;scrollbar-width:none}.chat-tabs-scroll::-webkit-scrollbar{display:none}.chat-tab{align-items:center;background-color:#e0e0e0;border:1px solid #ccc;border-bottom:none;border-radius:4px 4px 0 0;color:#444;cursor:pointer;display:flex;font-size:13px;margin-right:2px;max-width:150px;min-width:80px;padding:8px 24px 8px 12px;position:relative;transition:all .2s ease;white-space:nowrap}.chat-tab:hover{background-color:#e9e9e9}.chat-tab.active{background-color:#fff;border-color:#ccc #ccc #fff;color:#1a73e8;font-weight:500;margin-bottom:-1px;z-index:1}.tab-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tab-close{align-items:center;background:none;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;height:16px;justify-content:center;padding:0;position:absolute;right:4px;top:50%;transform:translateY(-50%);width:16px}.tab-close:hover{background-color:#0000001a;color:#333}.new-tab{align-items:center;background:#e8f0fe;border:1px solid #dadce0;border-radius:4px;color:#1a73e8;cursor:pointer;display:flex;flex-shrink:0;height:28px;justify-content:center;margin-left:4px;min-width:28px;padding:0;width:28px}.new-tab:hover{background:#e2e7ef;border-color:#c6c9ce}.new-tab:focus{box-shadow:0 0 0 2px #1a73e84d;outline:none}.chat-content{background:#fff;border:1px solid #e0e0e0;border-radius:0 0 4px 4px;border-top:none;display:flex;flex:1 1;flex-direction:column;overflow:hidden}.chat-frame{--chat-header-height:72px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-2xl) var(--radius-2xl) 0 0;bottom:0;box-shadow:0 -4px 18px #0f141929;height:var(--chat-header-height);left:0;overflow:hidden;position:fixed;right:0;transition:height var(--transition-base);z-index:1000}.chat-frame.open{height:clamp(380px,50vh,540px)}.chat-frame.expanded{height:clamp(520px,80vh,780px)}.chat-frame-header{align-items:center;background:var(--color-primary);box-sizing:border-box;color:#fff;cursor:pointer;display:flex;gap:var(--space-lg);height:var(--chat-header-height);justify-content:space-between;padding:0 var(--space-lg)}.chat-frame-header .header-title{font-size:medium;font-weight:700}.chat-frame-header .header-actions button{background:none;border:none;color:#fff;cursor:pointer}.chat-frame-header .header-actions button:hover{opacity:.4}.header-actions button{border-radius:4px;padding:.5rem;transition:background-color .2s}.header-actions button:hover{background-color:#fff3}.header-title{align-items:center;display:flex;font-size:1rem;font-weight:600;gap:var(--space-sm)}.header-icon{color:#0000;font-size:1rem;height:auto;max-height:20px;max-width:20px;object-fit:contain;width:100%}.header-actions{display:flex;gap:var(--space-xs)}.action-button{align-items:center;background:#0000;border:none;border-radius:4px;color:#ffffffd9;cursor:pointer;display:flex;font-size:1.05rem;justify-content:center;padding:var(--space-xs) var(--space-sm);transition:color .2s,background-color .2s}.action-button:hover{background-color:#ffffff2e;color:var(--text-light)}.chat-frame-content{display:flex;flex-direction:column;height:calc(100% - var(--chat-header-height))}.chat-messages{background:#f8f9fa;display:flex;flex:1 1;flex-direction:column;gap:8px;overflow-y:auto;padding:16px}.message{border-radius:12px;font-size:.9rem;max-width:80%;padding:8px 12px;position:relative}.message.user{align-self:flex-end;background-color:#fff;border-bottom-right-radius:4px;color:#1c1e21}.message.ai{align-self:flex-start;background-color:#2a6099;border-bottom-left-radius:4px;box-shadow:0 1px 2px #0000001a;color:#fff}.message.ai .message-avatar{height:20px;width:20px}.message-timestamp{font-size:.7rem;margin-top:4px;opacity:.7;text-align:right}.chat-input{background:var(--bg-primary);border-top:1px solid #eee;display:flex;gap:var(--space-sm);padding:var(--space-md) var(--space-lg)}.chat-input input{border:1px solid var(--border-light);border-radius:999px;flex:1 1;font-size:.9rem;outline:none;padding:var(--space-sm) var(--space-md)}.chat-input input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #286bb326}.chat-input button{align-items:center;background-color:var(--color-primary);border:none;border-radius:50%;color:var(--text-light);cursor:pointer;display:flex;height:40px;justify-content:center;transition:all var(--transition-fast);width:40px}.chat-input button:disabled{background-color:var(--border-light);color:var(--text-secondary);cursor:not-allowed}.chat-input button:hover:not(:disabled){background-color:var(--color-primary-dark);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.header-chat-input{align-items:center;display:flex;flex:1 1;gap:var(--space-sm);max-width:640px}.header-chat-input input{background:#ffffff29;border:none;border-radius:999px;color:var(--text-light);flex:1 1;font-size:.9rem;height:36px;padding:var(--space-xs) var(--space-md)}.header-chat-input input::placeholder{color:#ffffffb3}.header-chat-input input:disabled{opacity:.6}.header-chat-input button{align-items:center;background:var(--text-light);border:none;border-radius:50%;color:var(--color-primary);cursor:pointer;display:flex;height:36px;justify-content:center;transition:transform var(--transition-fast),box-shadow var(--transition-fast);width:36px}.header-chat-input button:disabled{cursor:not-allowed;opacity:.5}.header-chat-input button:hover:not(:disabled){box-shadow:0 4px 10px #0c336240;transform:translateY(-1px)}@media (max-width:768px){.chat-frame.open{height:40vh}.chat-frame.expanded{height:100vh}.chat-frame:hover{transform:none}}.message.loading{background:none!important;box-shadow:none!important}.typing-indicator{background:#e2e7ef;border-radius:12px;border-bottom-left-radius:4px;box-shadow:0 1px 2px #0000001a;display:flex;gap:4px;padding:8px 12px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.typing-indicator span{animation:typing 1.4s infinite;background:#2279d5;border-radius:50%;height:8px;opacity:.4;width:8px}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,to{transform:translateY(0)}50%{opacity:.8;transform:translateY(-4px)}}.message.error{background-color:var(--color-white)2f0;border:1px solid #ffccc7;color:#cf1322}.voice-overlay{align-items:center;background-color:#195391;color:#fff;cursor:pointer;display:flex;height:60px;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);transition:all .3s ease;width:30px;z-index:1001}.left-overlay{border-bottom-right-radius:30px;border-top-right-radius:30px;left:-15px}.right-overlay{border-bottom-left-radius:30px;border-top-left-radius:30px;right:-15px}.voice-overlay.open.left-overlay{left:0}.voice-overlay.open.right-overlay{right:0}.voice-overlay:hover{background-color:#0056b3}.overlay-handle{font-size:1rem;padding-left:5px}.right-overlay .overlay-handle{padding-left:0;padding-right:5px}:root{--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;--color-primary:#286bb3;--color-primary-dark:#1c6bc3;--color-primary-light:#3b82f6;--color-secondary:#f1f1f1;--color-white:#fff;--color-black:#000;--bg-primary:#fff;--bg-secondary:#f7fafc;--bg-tertiary:#edf2f7;--bg-dark:#1a202c;--bg-darker:#0f1419;--text-primary:#1a202c;--text-secondary:#4a5568;--text-muted:#718096;--text-light:#fff;--text-light-secondary:#cbd5e0;--border-light:#e2e8f0;--border-medium:#cbd5e0;--border-dark:#2d3748;--color-success:#38a169;--color-warning:#d69e2e;--color-error:#e53e3e;--color-info:#3182ce;--shadow-sm:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;--shadow-md:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d;--shadow-xl:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;--radius-sm:0.25rem;--radius-md:0.375rem;--radius-lg:0.5rem;--radius-xl:0.75rem;--radius-2xl:1rem;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--transition-fast:150ms cubic-bezier(0.4,0,0.2,1);--transition-base:250ms cubic-bezier(0.4,0,0.2,1);--transition-slow:350ms cubic-bezier(0.4,0,0.2,1);--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}*,body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;font-family:var(--font-family)}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#edf2f7;background:var(--bg-tertiary)}::-webkit-scrollbar-thumb,::-webkit-scrollbar-track{border-radius:.375rem;border-radius:var(--radius-md)}::-webkit-scrollbar-thumb{background:#cbd5e0;background:var(--border-medium);-webkit-transition:all .25s cubic-bezier(.4,0,.2,1);transition:all .25s cubic-bezier(.4,0,.2,1);-webkit-transition:all var(--transition-base);transition:all var(--transition-base)}::-webkit-scrollbar-thumb:hover{background:#718096;background:var(--text-muted)}::-webkit-scrollbar-corner{background:#edf2f7;background:var(--bg-tertiary)}.db-card{background:#fff;background:var(--bg-primary);border:1px solid #e2e8f0;border:1px solid var(--border-light);border-radius:.5rem;border-radius:var(--radius-lg);box-shadow:0 1px 3px 0 #0000001a,0 1px 2px 0 #0000000f;box-shadow:var(--shadow-sm);transition:all .25s cubic-bezier(.4,0,.2,1);transition:all var(--transition-base)}.db-card:hover{border-color:#cbd5e0;border-color:var(--border-medium);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md)}.db-btn-primary{background:#286bb3;background:var(--color-primary);border:none;border-radius:.375rem;border-radius:var(--radius-md);color:#fff;color:var(--text-light);cursor:pointer;font-size:.875rem;font-weight:600;padding:.5rem 1rem;padding:var(--space-sm) var(--space-md);transition:all .25s cubic-bezier(.4,0,.2,1);transition:all var(--transition-base)}.db-btn-primary:hover{background:#1c6bc3;background:var(--color-primary-dark);box-shadow:0 4px 6px -1px #0000001a,0 2px 4px -1px #0000000f;box-shadow:var(--shadow-md);transform:translateY(-1px)}.db-input{background:#fff;background:var(--bg-primary);border:1px solid #cbd5e0;border:1px solid var(--border-medium);border-radius:.375rem;border-radius:var(--radius-md);color:#1a202c;color:var(--text-primary);padding:.5rem 1rem;padding:var(--space-sm) var(--space-md);transition:all .25s cubic-bezier(.4,0,.2,1);transition:all var(--transition-base)}.db-input:focus{border-color:#286bb3;border-color:var(--color-primary);box-shadow:0 0 0 3px #db4c391a;outline:none}
/*# sourceMappingURL=main.308468b9.css.map*/