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}.loading-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh}.loading-spinner{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffff1a;border:1px solid #fff3;border-radius:8px;color:#fff;font-size:1.1rem}.loading-spinner:after{animation:dots 1.5s steps(4) infinite;content:"..."}.loading-spinner-alt{animation:spin 1s ease-in-out infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:20px;margin-right:10px;width:20px}@keyframes spin{to{transform:rotate(1turn)}}.loading-dots:after{animation:dots 1.5s infinite;content:""}@keyframes dots{0%,20%{content:"."}40%{content:".."}60%{content:"..."}80%,to{content:""}}:root{--primary:#2563eb;--light:#f8fafc;--gray:#64748b}.login-container{align-items:center;background-color:#f8fafc;background-color:var(--light);display:flex;justify-content:center;min-height:100vh;padding:1rem}.login-card{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000000d;max-width:400px;padding:2rem;width:100%}.login-header{margin-bottom:2rem;text-align:center}.login-header h2{color:#2563eb;color:var(--primary);font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.login-header p{color:#64748b;color:var(--gray);font-size:.9rem}.login-form{gap:1.5rem}.input-group,.login-form{display:flex;flex-direction:column}.input-group{gap:.5rem}.input-group label{color:#64748b;color:var(--gray);font-size:.9rem}.input-group input{border:1px solid #e2e8f0;border-radius:4px;font-size:1rem;padding:.75rem}.input-group input:focus{border-color:#2563eb;border-color:var(--primary);outline:none}.button{background-color:#2563eb;background-color:var(--primary);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:1rem;padding:.75rem;transition:background-color .2s;width:100%}.button:hover{background-color:#1d4ed8}.button:disabled{background-color:#93c5fd;cursor:not-allowed}.alert{border-radius:4px;font-size:.9rem;margin-bottom:1rem;padding:.75rem}.alert-danger{background-color:#fee2e2;border-left:3px solid #ef4444;border-left:3px solid var(--danger);color:#ef4444;color:var(--danger)}.dashboard-container{padding:1.5rem}.stats-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}:root{--primary-light:#eff6ff;--danger:#ef4444;--text:#1e293b;--text-light:#64748b;--radius:8px;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 6px #0000001a}.card{background:#fff;border-radius:8px;border-radius:var(--radius);box-shadow:0 1px 3px #0000001a;box-shadow:var(--shadow-sm);padding:1.5rem;transition:all .2s ease;transition:var(--transition)}.card:hover{box-shadow:0 4px 6px #0000001a;box-shadow:var(--shadow-md)}.stat-card{align-items:center;display:flex;gap:1.25rem}.stat-icon{background:#eff6ff;background:var(--primary-light);border-radius:50%;color:#3b82f6;color:var(--primary);padding:.75rem}.loading-spinner,.stat-icon{align-items:center;display:flex;justify-content:center}.loading-spinner{color:#64748b;height:200px}.page-title{color:#1e293b;color:var(--text);font-size:1.75rem;font-weight:600;margin-bottom:2rem}.section-title{font-weight:500;margin-bottom:1rem}.filter-select{min-width:160px}.membership-badge{border-radius:1rem;color:#fff;display:inline-block;font-size:.75rem;font-weight:500;padding:.25rem .75rem}.status.active{color:var(--success)}.status.inactive{color:var(--danger)}.checkins-count{font-weight:500;text-align:center}.users-container{padding:1.5rem}.user-count{color:var(--text-light);font-size:.875rem;margin-left:.5rem}.search-group{align-items:center;display:flex;gap:.5rem;position:relative}.search-input{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);min-width:250px;padding:.5rem .5rem .5rem 2rem}.search-icon{color:var(--text-light);left:.75rem;position:absolute}.filter-select,.role-select{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);min-width:160px;padding:.5rem}.export-btn{align-items:center;background:var(--success);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;display:flex;gap:.5rem;padding:.5rem 1rem;transition:var(--transition)}.export-btn:hover{background:var(--success-dark)}.stats-cards{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:1.5rem}.stat-card{background:#fff;border-radius:var(--radius);box-shadow:0 1px 3px #0000001a;padding:1.5rem;text-align:center}.stat-value{color:var(--primary);font-size:2rem;font-weight:700}.stat-label{color:var(--text-light);font-size:.875rem}.user-info{gap:.75rem}.user-avatar{align-items:center;background:var(--primary);border-radius:50%;color:#fff;display:flex;font-size:.875rem;font-weight:700;height:40px;justify-content:center;width:40px}.user-name{font-weight:500}.user-email{color:var(--text-light);font-size:.875rem}.user-joined{color:var(--text-light);font-size:.75rem}.user-inactive{background:#f8f9fa;opacity:.6}.status-container{align-items:center;display:flex;gap:.5rem}.status-toggle{background:none;border:none;border-radius:var(--radius);cursor:pointer;padding:.25rem;transition:var(--transition)}.status-toggle.active{color:var(--success)}.status-toggle.inactive{color:var(--danger)}.status-toggle:hover{background:#0000001a}.activity-info{font-size:.875rem}.activity-info div{margin-bottom:.25rem}.checkins-badge{background:var(--primary);border-radius:1rem;color:#fff;padding:.25rem .5rem}.checkins-badge,.expiry-warning{font-size:.75rem;font-weight:500}.expiry-warning{color:var(--danger);margin-top:.25rem}.action-buttons{gap:.5rem}.delete-btn,.view-btn{border:none;border-radius:var(--radius);cursor:pointer;padding:.5rem;transition:var(--transition)}.view-btn{background:var(--primary);color:#fff}.view-btn:hover{background:var(--primary-dark)}.delete-btn{background:var(--danger);color:#fff}.delete-btn:hover{background:var(--danger-dark)}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal-content{background:#fff;border-radius:var(--radius);max-height:80vh;max-width:500px;overflow-y:auto;padding:2rem;width:90%}.user-details{display:flex;flex-direction:column;gap:1rem;margin:1.5rem 0}.detail-row{border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;padding:.5rem 0}.detail-label{color:var(--text-light);font-weight:500}.close-btn{background:var(--primary);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;padding:.75rem;transition:var(--transition);width:100%}.close-btn:hover{background:var(--primary-dark)}.permission-notice{align-items:center;background:#fff3cd;border:1px solid #ffeaa7;border-radius:var(--radius);color:#856404;display:flex;font-size:.875rem;gap:.5rem;margin-bottom:1rem;padding:.75rem 1rem}.lock-icon{color:#856404}.lock-icon-small{color:var(--text-light);font-size:.75rem;margin-left:.25rem}.role-display{align-items:center;display:flex;gap:.5rem}.role-badge{border-radius:1rem;font-size:.75rem;font-weight:500;padding:.25rem .75rem;text-transform:capitalize}.role-badge.user{background:#e2e8f0;color:#4a5568}.role-badge.car_wash_staff{background:#bee3f8;color:#2c5282}.role-badge.admin{background:#fed7d7;color:#c53030}.admin-lock-icon{color:#c53030;font-size:.875rem}.role-select:disabled{background:#f7fafc;color:#a0aec0;cursor:not-allowed}.checkins-container{padding:1.5rem}.page-header{flex-direction:column;gap:1rem}@media (min-width:768px){.page-header{align-items:center;flex-direction:row;justify-content:space-between}}.filter-controls{flex-wrap:wrap;gap:1rem}.filter-controls,.filter-group{align-items:center;display:flex}.filter-group{gap:.5rem}.filter-icon{color:#6b7280}.date-filter{background:#fff;border:1px solid #e2e8f0;border-radius:6px;border-radius:var(--radius);padding:.5rem}.toggle-switch{align-items:center;cursor:pointer;display:flex;gap:.5rem;position:relative}.toggle-switch input{height:0;opacity:0;width:0}.slider{background-color:#e2e8f0;border-radius:11px;height:22px;position:relative;width:42px}.slider,.slider:before{transition:.3s ease;transition:var(--transition)}.slider:before{background-color:#fff;border-radius:50%;bottom:2px;content:"";height:18px;left:2px;position:absolute;width:18px}input:checked+.slider{background-color:#3b82f6;background-color:var(--primary)}input:checked+.slider:before{transform:translateX(20px)}.status{align-items:center;display:flex;font-size:.875rem;gap:.25rem}.status.validated{color:#10b981;color:var(--success)}.status.pending{color:#f59e0b;color:var(--warning)}.stats-bar{background:#f8fafc;background:var(--card-bg);border-radius:8px;display:flex;font-size:14px;gap:20px;margin-bottom:15px;padding:10px}.user-info{align-items:center;display:flex;gap:8px}.user-icon{color:#6b7280;color:var(--text-light)}.user-email{font-weight:500}.time-info .time-ago,.username{color:#6b7280;color:var(--text-light);font-size:12px}.time-info .time-ago{margin-top:4px}.action-buttons{display:flex;gap:8px}.delete-btn,.refresh-btn,.reset-btn,.validate-btn{align-items:center;border:none;border-radius:4px;color:#fff;cursor:pointer;display:flex;font-size:12px;gap:4px;padding:6px 12px;transition:all .2s}.validate-btn{background:#10b981;background:var(--success)}.validate-btn:hover{background:#059669;background:var(--success-dark)}.reset-btn{background:#f59e0b;background:var(--warning)}.reset-btn:hover{background:#d97706;background:var(--warning-dark)}.delete-btn{background:#ef4444;background:var(--error)}.delete-btn:hover{background:#dc2626;background:var(--error-dark)}.refresh-btn{background:#3b82f6;background:var(--primary);padding:8px 16px}.refresh-btn:hover{background:#2563eb;background:var(--primary-dark)}.no-action{color:#6b7280;color:var(--text-light)}.loading-spinner,.no-results{color:#6b7280;color:var(--text-light);padding:2rem;text-align:center}:root{--success:#10b981;--success-dark:#059669;--warning:#f59e0b;--warning-dark:#d97706;--error:#ef4444;--error-dark:#dc2626;--primary-dark:#2563eb;--text-light:#6b7280;--card-bg:#f8fafc;--radius:6px;--transition:0.3s ease}.carwashes-container{padding:1.5rem}.page-header{justify-content:space-between;margin-bottom:1.5rem}.filter-control,.page-header{align-items:center;display:flex}.filter-control{gap:.5rem}.filter-icon{color:var(--text-light)}.filter-select{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);padding:.5rem}.table-container{overflow-x:auto}.data-table{border-collapse:initial;border-spacing:0;width:100%}.data-table th{background:var(--primary-light);color:var(--primary);font-weight:500;padding:1rem;text-align:left}.data-table td{border-bottom:1px solid #f1f5f9;padding:1rem}.table-input{border:1px solid #e2e8f0;border-radius:var(--radius);padding:.5rem;transition:var(--transition);width:100%}.table-input:focus{border-color:var(--primary);outline:none}.status-badges{display:flex;gap:.5rem}.badge{align-items:center;border-radius:1rem;display:flex;font-size:.75rem;gap:.25rem;padding:.25rem .5rem}.badge.active{background:#ecfdf5;color:var(--success)}.badge.inactive{background:#fef2f2;color:var(--danger)}.badge.open{background:#f0f9ff;color:var(--primary)}.badge.closed{background:#f8fafc;color:var(--text-light)}.map-link{align-items:center;color:var(--primary);display:flex;gap:.25rem;text-decoration:none}.map-link:hover{text-decoration:underline}.settings-container{padding:1.5rem}.settings-card{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);max-width:600px;padding:1.5rem}.settings-section{display:flex;flex-direction:column;gap:1.25rem}.section-title{font-size:1.25rem;margin-bottom:.5rem}.section-description{color:var(--text-light);margin-bottom:1rem}.settings-form{gap:1.5rem}.form-group,.settings-form{display:flex;flex-direction:column}.form-group{gap:.5rem}.input-icon{color:var(--text-light)}.form-input{border:1px solid #e2e8f0;border-radius:var(--radius);padding:.75rem;transition:var(--transition)}.form-input:focus{border-color:var(--primary);outline:none}.message{align-items:center;border-radius:var(--radius);display:flex;gap:.5rem;margin-top:1rem;padding:.75rem 1rem}.message.success{background:#ecfdf5;color:var(--success)}.message.error{background:#fef2f2;color:var(--danger)}.message-icon{flex-shrink:0}.support-container{padding:1.5rem}.page-header{margin-bottom:2rem}.page-title{align-items:center;display:flex;gap:.5rem}.support-form-container{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);margin-bottom:2rem;padding:1.5rem}.support-form{display:flex;flex-direction:column;gap:1.25rem}.form-row{display:flex;gap:1rem}@media (max-width:768px){.form-row{flex-direction:column}}.form-group{flex:1 1}.form-label{color:var(--text);font-weight:500;gap:.5rem;margin-bottom:.5rem}.form-label,.label-icon{align-items:center;display:flex}.label-icon{color:var(--text-light)}.form-input,.form-select{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);padding:.75rem;transition:var(--transition);width:100%}.form-input:focus,.form-select:focus{border-color:var(--primary);outline:none}.form-textarea{background:#fff;border:1px solid #e2e8f0;border-radius:var(--radius);min-height:120px;padding:.75rem;resize:vertical;transition:var(--transition);width:100%}.form-textarea:focus{border-color:var(--primary);outline:none}.submit-btn{align-items:center;align-self:flex-start;background:var(--primary);border:none;border-radius:var(--radius);color:#fff;cursor:pointer;display:flex;gap:.5rem;padding:.75rem 1.5rem;transition:var(--transition)}.submit-btn:hover{background:var(--primary-dark)}.submit-btn:disabled{background:var(--text-light);cursor:not-allowed}.logs-section{background:#fff;border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:1.5rem}.section-title{align-items:center;display:flex;gap:.5rem;margin-bottom:1.5rem}.logs-list{display:flex;flex-direction:column;gap:1rem}.log-card{border:1px solid #f1f5f9;border-radius:var(--radius);padding:1.25rem;transition:var(--transition)}.log-card:hover{border-color:#e2e8f0;box-shadow:var(--shadow-sm)}.log-header{flex-wrap:wrap;gap:1rem;margin-bottom:.75rem}.log-header,.log-type{align-items:center;display:flex}.log-type{border-radius:1rem;font-size:.875rem;font-weight:500;gap:.25rem;padding:.25rem .75rem}.log-type.user{background:#f0f9ff;color:var(--primary)}.log-type.carwash{background:#f0fdf4;color:var(--success)}.log-id,.log-time{color:var(--text-light);font-size:.875rem}.log-time{margin-left:auto}.log-content{line-height:1.6}.no-logs{color:var(--text-light);padding:2rem;text-align:center}:root{--sidebar-bg:#1a1f2b;--sidebar-text:#e2e8f0;--sidebar-active:#2d3748;--sidebar-hover:#2d3748;--content-bg:#f8fafc;--content-text:#1e293b;--primary:#3b82f6;--border-radius:8px;--transition:all 0.2s ease}.admin-container{display:flex;font-family:Inter,sans-serif;min-height:100vh}.admin-sidebar{background:#1a1f2b;background:var(--sidebar-bg);color:#e2e8f0;color:var(--sidebar-text);display:flex;flex-direction:column;padding:1.5rem 1rem;transition:all .2s ease;transition:var(--transition);width:240px}.sidebar-header{border-bottom:1px solid #ffffff1a;padding:0 .5rem 1.5rem}.logo{color:#fff;font-size:1.5rem;font-weight:700;margin:0}.sidebar-nav{display:flex;flex-direction:column;flex-grow:1;gap:.5rem;margin-top:1.5rem}.nav-item{align-items:center;border-radius:8px;border-radius:var(--border-radius);color:#e2e8f0;color:var(--sidebar-text);display:flex;gap:.75rem;padding:.75rem 1rem;text-decoration:none;transition:all .2s ease;transition:var(--transition)}.nav-item:hover{background:#2d3748;background:var(--sidebar-hover)}.nav-item.active{background:#2d3748;background:var(--sidebar-active);color:#fff}.nav-icon{font-size:1.1rem}.logout-btn{align-items:center;background:#0000;border:none;border-radius:8px;border-radius:var(--border-radius);color:#e2e8f0;color:var(--sidebar-text);cursor:pointer;display:flex;gap:.75rem;margin-top:auto;padding:.75rem 1rem;transition:all .2s ease;transition:var(--transition)}.logout-btn:hover{background:#ffffff1a}.admin-content{background:#f8fafc;background:var(--content-bg);color:#1e293b;color:var(--content-text);flex-grow:1;overflow-y:auto;padding:2rem}.content-header{margin-bottom:2rem}.content-header h3{font-size:1.5rem;font-weight:600;margin:0}.content-body{background:#fff;border-radius:8px;border-radius:var(--border-radius);box-shadow:0 1px 3px #0000001a;padding:1.5rem}.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-header{align-items:center;background-color:#282c34;color:#fff;display:flex;flex-direction:column;font-size:calc(10px + 2vmin);justify-content:center;min-height:100vh}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}
/*# sourceMappingURL=main.451411cc.css.map*/