body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(180deg,#0f1419,#1a1f3a);color:#e4e4e7;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.App,body{min-height:100vh}.App{display:flex;flex-direction:column}.app-header{padding:2rem 1rem;text-align:center}.hero-section h1{color:#fff;font-size:3rem;font-weight:700;margin-bottom:.5rem;text-shadow:0 2px 4px #0000004d}.hero-section p{color:#ffffffe6;font-size:1.2rem;font-weight:300}.app-main{flex:1 1;padding:0 1rem 2rem}.layout{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:350px 1fr;margin:0 auto;max-width:1400px}.sidebar{display:flex;flex-direction:column;gap:1.5rem}.status-card{background:#0f1419;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:1.5rem;transition:transform .2s ease}.status-card:hover{transform:translateY(-2px)}.status-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.status-header h3{color:#f1f5f0;font-size:1.1rem}.refresh-btn{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1.2rem;padding:.25rem;transition:background-color .2s}.refresh-btn:hover{background-color:#334155}.status-indicator{align-items:center;display:flex;gap:.5rem;margin-bottom:.75rem}.indicator{border-radius:50%;display:inline-block;height:12px;width:12px}.indicator.green{background-color:#27ae60;box-shadow:0 0 6px #27ae6066}.indicator.red{background-color:#e74c3c;box-shadow:0 0 6px #e74c3c66}.metric{font-size:.9rem;margin-bottom:1rem}.qb-list{font-size:.85rem}.qb-names{display:flex;flex-wrap:wrap;gap:.25rem;margin-top:.5rem}.qb-tag{background:#3498db;border-radius:12px;color:#fff;font-weight:500;padding:.2rem .5rem}.more,.qb-tag{font-size:.75rem}.more{color:#7f8c8d;font-style:italic}.error-msg{background:#fdf2f2;border-left:3px solid #e74c3c;border-radius:4px;color:#e74c3c;font-size:.85rem;padding:.5rem}.examples-section{background:#0f1419;border-radius:12px;box-shadow:0 4px 20px #0000001a;padding:1.5rem}.examples-section h3{color:#e1e8ed;font-size:1.1rem;margin-bottom:1rem}.examples-grid{display:flex;flex-direction:column;gap:.5rem}.example-btn{background:#38444d;border:1px solid #38444d;border-radius:8px;color:#e1e8ed;cursor:pointer;font-size:.85rem;padding:.75rem;text-align:left;transition:all .2s ease}.example-btn:hover:not(:disabled){background:#15202b;border-color:#8b98a5;transform:translateY(-1px)}.example-btn:disabled{cursor:not-allowed;opacity:.6}.main-content{background:#0f1419;border-radius:12px;box-shadow:0 4px 20px #0000001a;min-height:600px;padding:2rem}.query-form{margin-bottom:2rem}.input-group{align-items:center;display:flex;gap:1rem}.query-input{text-color:#fff;background-color:#3b3b3b;border:2px solid #38444d;border-radius:8px;flex:1 1;font-size:1rem;padding:1rem;transition:border-color .2s ease}::placeholder{color:#fff}.query-input:focus{border-color:#3498db;color:#fff;outline:none}.query-input:disabled{background-color:#0f1419;color:#fff}.query-btn{background:linear-gradient(135deg,#15202b,#38444d);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;min-width:120px;padding:1rem 1.5rem;transition:all .2s ease}.query-btn:hover:not(:disabled){background:linear-gradient(135deg,#2980b9,#21618c);transform:translateY(-1px)}.query-btn:disabled{background:#bdc3c7;cursor:not-allowed;transform:none}.loading-message{color:#7f8c8d;padding:3rem;text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:40px;margin:0 auto 1rem;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.error-message{background:#fdf2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:1.5rem;padding:1.5rem}.error-message h3{color:#dc2626;margin-bottom:.5rem}.error-message p{color:#b91c1c}.results-section{margin-bottom:2rem}.results-header{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-bottom:1rem}.results-header h3{color:#f1f5f9}.results-actions{align-items:center;display:flex;flex-wrap:wrap;gap:1rem}.download-btn{background:#27ae60;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:.9rem;padding:.5rem 1rem;transition:background-color .2s}.download-btn:hover{background:#229954}.table-container{border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow-x:auto}.results-table{background:#0f1419;border-collapse:collapse;width:100%}.results-table th{background:#15202b;color:#fff;font-size:.85rem;font-weight:600;padding:1rem .75rem;text-align:left;white-space:nowrap}.results-table td{border-bottom:1px solid #15202b;font-size:.9rem;padding:.75rem}.results-table tr:hover{background-color:#1e293b}.results-table tr:last-child td{border-bottom:none}.no-results{color:#7f8c8d;padding:3rem;text-align:center}.no-results h3{color:#5d6d7e;margin-bottom:.5rem}.sql-section{margin-top:1.5rem}.sql-toggle{background:#334155;border:1px solid #475569;border-radius:6px;cursor:pointer;font-size:.9rem;margin-bottom:1rem;padding:.5rem 1rem;transition:background-color .2s}.sql-toggle:hover{background:#475569}.sql-code{background:#f8f9fa;border:1px solid #dee2e6;border-radius:6px;color:#495057;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.85rem;overflow-x:auto;padding:1rem}.app-footer{color:#fffc;font-size:.9rem;padding:2rem;text-align:center}@media (max-width:1024px){.layout{gap:1.5rem;grid-template-columns:300px 1fr}.hero-section h1{font-size:2.5rem}}@media (max-width:768px){.layout{gap:1rem;grid-template-columns:1fr}.sidebar{order:2}.main-content{order:1;padding:1.5rem}.hero-section h1{font-size:2rem}.input-group{align-items:stretch;flex-direction:column}.query-btn{width:100%}.results-header{align-items:flex-start;flex-direction:column}.timing-info{flex-direction:column;gap:.5rem}}@media (max-width:480px){.app-main{padding:0 .5rem 1rem}.main-content{padding:1rem}.results-table{font-size:.8rem}.results-table td,.results-table th{padding:.5rem}}.model-selector{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.model-selector h3{color:#2c3e50;font-size:1.1rem;margin-bottom:1rem}.model-options{display:flex;flex-direction:column;gap:.75rem}.model-option{border:2px solid #e9ecef;border-radius:8px;overflow:hidden;transition:all .2s ease}.model-option:hover{border-color:#3498db}.model-option:has(input:checked){background:#f8fafc;border-color:#3498db}.model-label{cursor:pointer;display:block;padding:1rem;width:100%}.model-label.unavailable{background:#f8f9fa;cursor:not-allowed;opacity:.6}.model-label input[type=radio]{margin-right:.75rem;transform:scale(1.2)}.model-info{display:flex;flex-direction:column;gap:.25rem}.model-name{align-items:center;color:#2c3e50;display:flex;font-weight:600;gap:.5rem}.unavailable-tag{background:#e74c3c;border-radius:12px;color:#fff;font-size:.7rem;font-weight:500;padding:.1rem .5rem}.model-description{color:#7f8c8d;font-size:.85rem}.model-cost{color:#27ae60;font-size:.8rem;font-weight:500}.loading-message p{font-size:1.1rem;margin-top:.5rem}@media (max-width:768px){.model-selector{padding:1rem}.model-label{padding:.75rem}.model-name{font-size:.9rem}.model-description{font-size:.8rem}}.model-option{animation:fadeIn .3s ease-in}.timing-info{color:#7f8c8d;display:flex;flex-wrap:wrap;font-size:.85rem;gap:1rem}.timing-info span{white-space:nowrap}.error-message,.loading-message,.results-section{animation:fadeIn .3s ease-in}.auth-section{margin-top:1.5rem}.user-info{align-items:center;background:#ffffff1a;border-radius:8px;display:flex;gap:1rem;justify-content:center;padding:.75rem}.user-info span{color:#fff;font-size:1rem}.auth-buttons{display:flex;gap:1rem;justify-content:center}.login-btn,.logout-btn,.register-btn{border:none;border-radius:6px;cursor:pointer;font-size:.95rem;font-weight:600;padding:.75rem 1.5rem;transition:all .3s}.login-btn{background:#fff;color:#007bff}.login-btn:hover{background:#f0f0f0;transform:translateY(-2px)}.register-btn{background:#007bff;color:#fff}.register-btn:hover{background:#0056b3;transform:translateY(-2px)}.logout-btn{background:#dc3545;color:#fff}.logout-btn:hover{background:#c82333;transform:translateY(-2px)}.auth-modal-overlay{align-items:center;animation:fadeIn .2s ease-in;background-color:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.auth-modal-content{animation:slideUp .3s ease-out;background:#fff;border-radius:12px;box-shadow:0 10px 40px #0000004d;max-height:90vh;max-width:450px;overflow-y:auto;padding:2rem;position:relative;width:90%}@keyframes slideUp{0%{opacity:0;transform:translateY(50px)}to{opacity:1;transform:translateY(0)}}.auth-close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;position:absolute;right:1rem;top:1rem;transition:all .2s;width:32px}.auth-close-btn:hover{background:#f0f0f0;color:#333}.auth-header{margin-bottom:2rem;text-align:center}.auth-header h2{color:#1a1a1a;font-size:1.75rem;margin:0 0 .5rem}.auth-header p{color:#666;font-size:.95rem;margin:0}.auth-form{gap:1.25rem}.auth-form,.form-group{display:flex;flex-direction:column}.form-group{gap:.5rem}.form-group label{color:#333;font-size:.9rem;font-weight:600}.form-group input{border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;padding:.75rem;transition:all .2s}.form-group input:focus{border-color:#007bff;box-shadow:0 0 0 3px #007bff1a;outline:none}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-group small{color:#666;font-size:.85rem}.auth-error{background-color:#fee;border:1px solid #fcc;border-radius:6px;color:#c33;font-size:.9rem;padding:.75rem}.auth-submit-btn{background:linear-gradient(135deg,#007bff,#0056b3);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-top:.5rem;padding:.875rem;transition:all .3s}.auth-submit-btn:hover:not(:disabled){box-shadow:0 4px 12px #007bff66;transform:translateY(-2px)}.auth-submit-btn:active:not(:disabled){transform:translateY(0)}.auth-submit-btn:disabled{background:#ccc;cursor:not-allowed;transform:none}.auth-footer{border-top:1px solid #e0e0e0;margin-top:1.5rem;padding-top:1.5rem;text-align:center}.auth-footer p{color:#666;font-size:.9rem;margin:0}.auth-switch-btn{background:none;border:none;color:#007bff;cursor:pointer;font-size:.9rem;font-weight:600;padding:0;text-decoration:underline}.auth-switch-btn:hover:not(:disabled){color:#0056b3}.auth-switch-btn:disabled{color:#ccc;cursor:not-allowed}@media (max-width:480px){.auth-modal-content{padding:1.5rem;width:95%}.auth-header h2{font-size:1.5rem}}.saved-queries-section{background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a;margin-bottom:1.5rem;padding:1.5rem}.saved-queries-header{align-items:center;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;margin-bottom:1rem;padding-bottom:.5rem}.saved-queries-header h3{color:#333;font-size:1.2rem;margin:0}.saved-queries-header .refresh-btn{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1.2rem;padding:.25rem .5rem;transition:background-color .2s}.saved-queries-header .refresh-btn:hover{background-color:#f0f0f0}.query-error{background-color:#fee;border-left:4px solid #c33;border-radius:4px;color:#c33;margin-bottom:1rem;padding:.75rem}.save-current-section{background-color:#f8f9fa;border:2px dashed #dee2e6;border-radius:6px;margin-bottom:1rem;padding:1rem}.query-name-input{border:1px solid #ced4da;border-radius:4px;font-size:1rem;margin-bottom:.5rem;padding:.75rem;width:100%}.query-name-input:focus{border-color:#4caf50;box-shadow:0 0 0 2px #4caf501a;outline:none}.save-query-btn{background-color:#4caf50;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;padding:.75rem;transition:background-color .2s;width:100%}.save-query-btn:hover:not(:disabled){background-color:#45a049}.save-query-btn:disabled{background-color:#ccc;cursor:not-allowed}.queries-loading{font-style:italic}.no-queries,.queries-loading{color:#666;padding:2rem;text-align:center}.no-queries p{margin:.5rem 0}.no-queries .hint{color:#999;font-size:.9rem}.queries-list{display:flex;flex-direction:column;gap:.75rem}.query-item{background-color:#fafafa;border:1px solid #e0e0e0;border-radius:6px;padding:1rem;transition:box-shadow .2s,transform .2s}.query-item:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.query-content{cursor:pointer;flex:1 1}.query-name{color:#333;font-size:1.05rem;font-weight:600;margin-bottom:.5rem}.query-text{color:#666;font-size:.95rem;line-height:1.4;margin-bottom:.5rem}.query-date{color:#999;font-size:.85rem}.query-actions{border-top:1px solid #e0e0e0;display:flex;gap:.5rem;margin-top:.75rem;padding-top:.75rem}.delete-btn,.edit-btn{border:none;border-radius:4px;cursor:pointer;font-size:1rem;padding:.5rem 1rem;transition:background-color .2s,transform .1s}.edit-btn{background-color:#2196f3;color:#fff}.edit-btn:hover{background-color:#0b7dda;transform:scale(1.05)}.delete-btn{background-color:#f44336;color:#fff}.delete-btn:hover{background-color:#da190b;transform:scale(1.05)}.query-edit{display:flex;flex-direction:column;gap:.5rem}.edit-input{border:2px solid #2196f3;border-radius:4px;font-size:1rem;padding:.75rem;width:100%}.edit-input:focus{box-shadow:0 0 0 2px #2196f333;outline:none}.edit-actions{display:flex;gap:.5rem}.cancel-edit-btn,.save-edit-btn{border:none;border-radius:4px;cursor:pointer;flex:1 1;font-size:1rem;font-weight:600;padding:.75rem;transition:background-color .2s}.save-edit-btn{background-color:#4caf50;color:#fff}.save-edit-btn:hover{background-color:#45a049}.cancel-edit-btn{background-color:#757575;color:#fff}.cancel-edit-btn:hover{background-color:#616161}
/*# sourceMappingURL=main.2d98b46f.css.map*/