.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#667eea,#764ba2)}.login-box{background:#fff;padding:2rem;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:400px}.login-box h1{text-align:center;margin-bottom:2rem;color:#333}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#555;font-weight:500}.form-group input{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .3s}.form-group input:focus{outline:none;border-color:#667eea}.error-message{color:#e74c3c;margin-bottom:1rem;padding:.5rem;background-color:#fee;border-radius:4px;font-size:.9rem}.login-button{width:100%;padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .3s}.login-button:hover:not(:disabled){opacity:.9}.login-button:disabled{opacity:.6;cursor:not-allowed}.date-range-picker{display:flex;gap:1rem;align-items:center;margin-bottom:1.5rem}.date-input-group{display:flex;flex-direction:column;gap:.5rem}.date-input-group label{font-weight:500;color:#555;font-size:.9rem}.date-input{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .3s}.date-input:focus{outline:none;border-color:#667eea}.data-table-container{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;margin-top:2rem}.data-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.data-table-header h2{margin:0;color:#333}.refresh-button{padding:.5rem 1rem;background-color:#667eea;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .3s}.refresh-button:hover{background-color:#5568d3}.data-table-wrapper{overflow-x:auto}.data-table{width:100%;border-collapse:collapse;font-size:.9rem}.data-table thead{background-color:#f8f9fa}.data-table th{padding:.75rem;text-align:left;font-weight:600;color:#555;border-bottom:2px solid #dee2e6}.data-table td{padding:.75rem;border-bottom:1px solid #dee2e6}.data-table tbody tr:hover{background-color:#f8f9fa}.no-data{text-align:center;color:#999;padding:2rem!important}.data-table-loading,.data-table-error{text-align:center;padding:2rem;color:#666}.data-table-error{color:#e74c3c}.data-table-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid #dee2e6;color:#666;font-size:.9rem}.data-table-actions{display:flex;gap:.5rem}.add-button{padding:.5rem 1rem;background-color:#28a745;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .3s}.add-button:hover{background-color:#218838}.add-form{margin-bottom:1rem;padding:1rem;background:#f8f9fa;border-radius:6px;border:1px solid #e9ecef}.add-form-fields{display:flex;gap:.5rem;flex-wrap:wrap}.add-form-input{flex:1;min-width:140px;padding:.5rem .75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;transition:border-color .3s}.add-form-input:focus{outline:none;border-color:#667eea}.add-form-input:disabled{opacity:.6;cursor:not-allowed}.add-form-submit{padding:.5rem 1.25rem;background:linear-gradient(135deg,#28a745,#20c997);color:#fff;border:none;border-radius:4px;cursor:pointer;font-weight:600;font-size:.9rem;transition:opacity .3s}.add-form-submit:hover:not(:disabled){opacity:.9}.add-form-submit:disabled{opacity:.6;cursor:not-allowed}.add-form-error{margin-top:.5rem;color:#e74c3c;font-size:.85rem}.row-disabled{opacity:.45;background-color:#f8f9fa}.row-disabled td{text-decoration:line-through;color:#999}.row-disabled td:first-child,.row-disabled td:last-child{text-decoration:none}.toggle-switch-sm{position:relative;display:inline-block;width:36px;height:20px}.toggle-switch-sm input{opacity:0;width:0;height:0}.toggle-slider-sm{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.3s;border-radius:20px}.toggle-slider-sm:before{position:absolute;content:"";height:14px;width:14px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggle-switch-sm input:checked+.toggle-slider-sm{background-color:#28a745}.toggle-switch-sm input:checked+.toggle-slider-sm:before{transform:translate(16px)}.delete-row-button{background:none;border:1px solid #dc3545;color:#dc3545;width:26px;height:26px;border-radius:4px;cursor:pointer;font-size:.75rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.delete-row-button:hover{background-color:#dc3545;color:#fff}.log-viewer{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;margin-top:2rem}.log-viewer h3{margin:0 0 1rem;color:#333}.log-viewer-loading{text-align:center;padding:1rem;color:#666}.log-viewer-success{color:#333}.log-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:1rem}.log-stat{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.85rem;color:#666;font-weight:500}.stat-value{font-size:1.1rem;font-weight:600;color:#333}.stat-success{color:#27ae60}.stat-info{color:#3498db}.log-viewer-error{color:#e74c3c}.error-message{font-weight:600;margin-bottom:.5rem}.error-details{font-size:.9rem;color:#999;margin-top:.5rem}.keitaro-logs-viewer{padding:20px;background:#f5f5f5;border-radius:8px;margin:20px 0}.logs-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.logs-header h2{margin:0;color:#333}.refresh-button{padding:8px 16px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:14px}.refresh-button:hover:not(:disabled){background:#0056b3}.refresh-button:disabled{background:#ccc;cursor:not-allowed}.logs-filters{display:flex;gap:15px;margin-bottom:20px;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:5px}.filter-group label{font-size:12px;font-weight:600;color:#555}.filter-group select,.filter-group input{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px}.logs-table-container{overflow-x:auto;background:#fff;border-radius:4px;box-shadow:0 2px 4px #0000001a}.logs-table{width:100%;border-collapse:collapse}.logs-table thead{background:#f8f9fa}.logs-table th{padding:12px;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;color:#666;border-bottom:2px solid #dee2e6}.logs-table td{padding:10px 12px;border-bottom:1px solid #dee2e6;font-size:14px}.logs-table tbody tr:hover{background:#f8f9fa}.logs-table tbody tr.log-found{border-left:3px solid #28a745}.logs-table tbody tr.log-not-found{border-left:3px solid #ffc107}.method-badge{display:inline-block;padding:4px 8px;border-radius:3px;font-size:11px;font-weight:600;text-transform:uppercase}.method-badge.method-get{background:#d4edda;color:#155724}.method-badge.method-post{background:#cce5ff;color:#004085}.found-badge{display:inline-block;padding:4px 8px;border-radius:3px;font-size:12px;font-weight:600}.found-badge.found-yes{background:#d4edda;color:#155724}.found-badge.found-no{background:#fff3cd;color:#856404}.source-cell{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.view-details-button{padding:4px 8px;background:#17a2b8;color:#fff;border:none;border-radius:3px;cursor:pointer;font-size:12px}.view-details-button:hover{background:#138496}.logs-pagination{display:flex;justify-content:space-between;align-items:center;margin-top:20px;padding:15px;background:#fff;border-radius:4px}.logs-pagination button{padding:8px 16px;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer}.logs-pagination button:hover:not(:disabled){background:#0056b3}.logs-pagination button:disabled{background:#ccc;cursor:not-allowed}.log-details-modal{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px}.log-details-content{background:#fff;border-radius:8px;max-width:900px;max-height:90vh;width:100%;display:flex;flex-direction:column;box-shadow:0 4px 6px #0000001a}.log-details-header{display:flex;justify-content:space-between;align-items:center;padding:20px;border-bottom:1px solid #dee2e6}.log-details-header h3{margin:0;color:#333}.close-button{background:none;border:none;font-size:28px;cursor:pointer;color:#999;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.close-button:hover{color:#333}.log-details-body{padding:20px;overflow-y:auto;flex:1}.detail-section{margin-bottom:25px}.detail-section h4{margin:0 0 15px;color:#007bff;font-size:16px;border-bottom:2px solid #007bff;padding-bottom:5px}.detail-item{margin-bottom:15px}.detail-item strong{display:block;margin-bottom:5px;color:#555;font-size:13px}.detail-item pre{background:#f8f9fa;padding:10px;border-radius:4px;overflow-x:auto;font-size:12px;margin:5px 0 0;border:1px solid #dee2e6;max-height:300px;overflow-y:auto}.error-message{padding:12px;background:#f8d7da;color:#721c24;border-radius:4px;margin-bottom:20px;border:1px solid #f5c6cb}.database-viewer{padding:20px;background:#f5f5f5;border-radius:8px;margin:20px 0}.db-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.db-header h2{margin:0;color:#333}.db-table-tabs{display:flex;gap:8px;margin-bottom:16px;flex-wrap:wrap}.db-table-tab{padding:8px 16px;background:#fff;border:1px solid #dee2e6;border-radius:4px;cursor:pointer;font-size:14px;font-weight:500;color:#555;display:flex;align-items:center;gap:8px;transition:all .15s ease}.db-table-tab:hover{background:#e9ecef;border-color:#adb5bd}.db-table-tab.active{background:#007bff;color:#fff;border-color:#007bff}.db-row-count{display:inline-flex;align-items:center;justify-content:center;min-width:24px;height:20px;padding:0 6px;background:#0000001a;border-radius:10px;font-size:11px;font-weight:600}.db-table-tab.active .db-row-count{background:#ffffff40}.db-table-info{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;flex-wrap:wrap}.db-schema{display:flex;align-items:center;gap:6px;flex-wrap:wrap;flex:1}.db-info-label{font-size:12px;font-weight:600;color:#555;margin-right:4px}.db-column-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;background:#fff;border:1px solid #dee2e6;border-radius:3px;font-size:12px;font-weight:500;color:#333}.db-column-badge.pk{border-color:#ffc107;background:#fff8e1}.db-col-type{font-size:10px;color:#999;text-transform:uppercase}.db-search input{padding:6px 10px;border:1px solid #ddd;border-radius:4px;font-size:14px;min-width:200px}.db-data-container{overflow-x:auto;background:#fff;border-radius:4px;box-shadow:0 2px 4px #0000001a}.db-data-table{width:100%;border-collapse:collapse}.db-data-table thead{background:#f8f9fa;position:sticky;top:0;z-index:1}.db-data-table th{padding:10px 12px;text-align:left;font-weight:600;font-size:12px;text-transform:uppercase;color:#666;border-bottom:2px solid #dee2e6;white-space:nowrap}.db-data-table td{padding:8px 12px;border-bottom:1px solid #dee2e6;font-size:13px;max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Consolas,Monaco,monospace}.db-data-table tbody tr:hover{background:#f8f9fa}.db-data-table tbody tr:nth-child(2n){background:#fafafa}.db-data-table tbody tr:nth-child(2n):hover{background:#f0f0f0}.db-null{color:#ccc;font-style:italic}.db-footer{display:flex;justify-content:space-between;align-items:center;margin-top:12px;padding:10px 15px;background:#fff;border-radius:4px;font-size:13px;color:#666}.loading-cell,.empty-cell{text-align:center;padding:40px!important;color:#999}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a}.app-header h1{margin:0;font-size:1.5rem}.logout-button{padding:.5rem 1rem;background-color:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .3s}.logout-button:hover{background-color:#ffffff4d}.app-main{flex:1;padding:2rem;max-width:1400px;width:100%;margin:0 auto}.control-panel{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 2px 4px #0000001a;margin-bottom:1rem}.process-button{width:100%;padding:.75rem;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:opacity .3s;margin-top:1rem}.process-button:hover:not(:disabled){opacity:.9}.process-button:disabled{opacity:.6;cursor:not-allowed}.error-message{margin-top:1rem;padding:.75rem;background-color:#fee;color:#e74c3c;border-radius:4px;font-size:.9rem}.tabs-container{display:flex;gap:10px;padding:15px 20px;background:#fff;border-bottom:2px solid #dee2e6}.tab-button{padding:10px 20px;background:#f8f9fa;border:1px solid #dee2e6;border-bottom:none;border-radius:4px 4px 0 0;cursor:pointer;font-size:14px;font-weight:500;color:#666;transition:all .2s}.tab-button:hover{background:#e9ecef;color:#333}.tab-button.active{background:#fff;color:#007bff;border-color:#007bff;border-bottom:2px solid white;margin-bottom:-2px;font-weight:600}.auto-refresh-controls{margin:1.5rem 0;padding:1rem;background:#f8f9fa;border-radius:6px;border:1px solid #e9ecef}.auto-refresh-toggle{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.toggle-switch{position:relative;display:inline-block;width:50px;height:26px}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#ccc;transition:.3s;border-radius:26px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggle-switch input:checked+.toggle-slider{background-color:#667eea}.toggle-switch input:checked+.toggle-slider:before{transform:translate(24px)}.toggle-switch input:disabled+.toggle-slider{opacity:.5;cursor:not-allowed}.toggle-label{font-weight:500;color:#555;font-size:.95rem}.interval-selector{display:flex;flex-direction:column;gap:.5rem;padding-left:.5rem;border-left:3px solid #667eea}.interval-selector label{font-weight:500;color:#555;font-size:.9rem}.interval-select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem;background:#fff;cursor:pointer;transition:border-color .3s;max-width:200px}.interval-select:focus{outline:none;border-color:#667eea}.interval-select:disabled{opacity:.6;cursor:not-allowed}.next-refresh-info{font-size:.85rem;color:#666;font-style:italic;margin-top:.25rem}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f5}#root{min-height:100vh}
