:root{--navy: #0d1b2a;--navy-light: #1b2d45;--navy-surface: #162236;--navy-hover: #243654;--silver: #c8cdd4;--silver-bright: #e8ecf0;--silver-muted: #7a8694;--gold: #d4a843;--gold-hover: #e5b94e;--gold-glow: rgba(212, 168, 67, .2);--border: #2a3a50;--border-light: #344a64;--shadow: rgba(0, 0, 0, .3);--danger: #ef4444;--success-bg: #0d2818;--success-border: #166534;--success-text: #86efac;--error-bg: #2d1215;--error-border: #7f1d1d;--error-text: #fca5a5;--heading: "Outfit", "Inter", sans-serif;--sans: "Inter", "Segoe UI", sans-serif;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 10px;--radius-pill: 20px}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--sans);background:var(--navy);color:var(--silver);min-height:100vh;display:flex;flex-direction:column}main{max-width:800px;width:100%;margin:0 auto;padding:2rem 1.5rem 4rem}.auth-loading{display:flex;align-items:center;justify-content:center;min-height:100vh}.loading-spinner{width:36px;height:36px;border:3px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:600px){main{padding:1.5rem 1rem 3rem}}header{padding:1rem 2rem;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#101e30 0%,var(--navy) 100%);position:relative;display:flex;justify-content:center;align-items:center}.header-brand{text-align:center;display:flex;align-items:center}.header-logo{width:100%;max-width:480px;height:auto}header h1{font-family:var(--heading);font-size:1.8rem;font-weight:700;color:var(--silver-bright);letter-spacing:.03em;margin-bottom:.15rem}.header-brand p{font-family:var(--sans);font-size:.85rem;font-weight:400;color:var(--silver-muted);letter-spacing:.05em;text-transform:uppercase}.header-user{position:absolute;top:1rem;right:1.5rem;display:flex;align-items:center;gap:.75rem}.header-user-name{font-size:.85rem;color:var(--silver-muted)}.header-signout{font-family:var(--sans);font-size:.8rem;font-weight:500;color:var(--gold);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.3rem .6rem;cursor:pointer;transition:background .15s}.header-signout:hover{background:var(--navy-light)}@media(max-width:600px){header{padding:1rem}header h1{font-size:1.4rem}}.login-hero{text-align:center;margin:2rem auto 0;max-width:480px}.login-banner{width:100%;max-width:480px;height:auto;border-radius:var(--radius-xl)}.login-card{max-width:420px;margin:1.5rem auto 3rem;padding:2rem;background:var(--navy-surface);border:1px solid var(--border);border-radius:var(--radius-xl);box-shadow:0 4px 24px var(--shadow);text-align:center}.login-title{font-family:var(--heading);font-size:1.5rem;font-weight:700;color:var(--silver-bright);margin-bottom:.5rem}.login-subtitle{font-family:var(--sans);font-size:.9rem;color:var(--silver-muted);margin-bottom:1.5rem}.google-btn{display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%;padding:.7rem 1rem;font-family:var(--sans);font-size:.95rem;font-weight:500;color:var(--silver-bright);background:var(--navy-light);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:background .2s,border-color .2s}.google-btn:hover{background:var(--navy-hover);border-color:var(--silver-muted)}.auth-divider{display:flex;align-items:center;gap:1rem;margin:1.25rem 0;color:var(--silver-muted);font-size:.85rem}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:var(--border)}.email-form{display:flex;flex-direction:column;gap:.75rem}.auth-input{font-family:var(--sans);font-size:.95rem;padding:.7rem .85rem;border:1.5px solid var(--border);border-radius:var(--radius-md);background:var(--navy);color:var(--silver-bright);transition:border-color .2s,box-shadow .2s}.auth-input::placeholder{color:var(--silver-muted)}.auth-input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-glow)}.password-field{position:relative}.password-field .auth-input{width:100%;padding-right:3.5rem}.show-password-btn{position:absolute;right:.6rem;top:50%;transform:translateY(-50%);font-family:var(--sans);font-size:.8rem;font-weight:500;color:var(--silver-muted);background:none;border:none;cursor:pointer;padding:.2rem .3rem}.show-password-btn:hover{color:var(--gold)}.auth-hint{font-size:.8rem;color:var(--silver-muted);margin-top:-.25rem}.auth-hint-error{color:var(--error-text)}.auth-input-error{border-color:var(--danger)}.forgot-password{align-self:flex-end;font-family:var(--sans);font-size:.8rem;color:var(--gold);background:none;border:none;cursor:pointer;padding:0;margin-top:-.25rem}.forgot-password:hover{text-decoration:underline}.auth-error{font-size:.85rem;color:var(--error-text);background:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius-sm);padding:.5rem .75rem}.auth-message{font-size:.85rem;color:var(--success-text);background:var(--success-bg);border:1px solid var(--success-border);border-radius:var(--radius-sm);padding:.5rem .75rem}.auth-submit{font-family:var(--sans);font-weight:600;font-size:.95rem;padding:.7rem;background:var(--gold);color:var(--navy);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .2s}.auth-submit:hover:not(:disabled){background:var(--gold-hover)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-toggle{margin-top:1rem;font-size:.85rem;color:var(--silver-muted)}.auth-toggle button{font-family:var(--sans);font-size:.85rem;font-weight:600;color:var(--gold);background:none;border:none;cursor:pointer;padding:0}.auth-toggle button:hover{text-decoration:underline}.profile-dropdown{position:absolute;top:1.25rem;right:1.5rem}.profile-btn{border:1px solid var(--border);border-radius:var(--radius-pill);height:40px;padding:0 .25rem 0 .85rem;display:flex;align-items:center;gap:.5rem;background:none;color:var(--silver-muted);cursor:pointer;font-family:var(--sans);transition:background .2s,color .2s,border-color .2s}.profile-btn:hover{background:var(--navy-light);color:var(--silver-bright);border-color:var(--silver-muted)}.profile-btn-name{font-size:.85rem;font-weight:500;white-space:nowrap;max-width:120px;overflow:hidden;text-overflow:ellipsis}.profile-avatar{width:32px;height:32px;border-radius:50%;background:var(--gold);color:var(--navy);font-family:var(--heading);font-size:1rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0}.profile-panel{position:absolute;top:calc(100% + .5rem);right:0;width:260px;background:var(--navy-surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:0 4px 24px var(--shadow);padding:.5rem 0;animation:fadeIn .15s ease;z-index:100}.profile-panel-header{padding:.75rem 1rem .5rem}.profile-panel-name{display:block;font-family:var(--heading);font-weight:700;font-size:1rem;color:var(--silver-bright)}.profile-panel-role{display:block;font-size:.8rem;color:var(--silver-muted);margin-top:.15rem}.profile-panel-divider{height:1px;background:var(--border);margin:.25rem 0}.profile-panel-item{display:block;width:100%;text-align:left;font-family:var(--sans);font-size:.9rem;padding:.55rem 1rem;background:none;border:none;color:var(--silver);cursor:pointer;transition:background .15s}.profile-panel-item:hover{background:var(--navy-light)}.profile-panel-signout{color:var(--gold)}.profile-panel-back{display:block;font-family:var(--sans);font-size:.85rem;color:var(--gold);background:none;border:none;cursor:pointer;padding:.5rem 1rem;transition:text-decoration .15s}.profile-panel-back:hover{text-decoration:underline}.profile-edit-form{padding:.5rem 1rem .75rem;display:flex;flex-direction:column;gap:.5rem}.profile-edit-label{font-size:.8rem;font-weight:600;color:var(--silver-muted)}@media(max-width:600px){.profile-dropdown{top:.75rem;right:.75rem}.profile-btn-name{display:none}.profile-btn{border:none;padding:0}.profile-panel{width:240px}}.analyze-page{max-width:600px}.analyze-heading{font-family:var(--heading);font-size:1.5rem;font-weight:700;color:var(--silver-bright);margin-bottom:.5rem}.analyze-instructions{color:var(--silver-muted);font-size:.95rem;margin-bottom:1.5rem}.upload-form{display:flex;flex-direction:column;gap:1rem}.upload-file-area{display:flex;flex-direction:column;gap:.5rem}.upload-file-area input[type=file]{font-family:var(--sans);font-size:.9rem;color:var(--silver)}.upload-file-area input[type=file]::file-selector-button{font-family:var(--sans);font-size:.85rem;font-weight:500;padding:.45rem 1rem;margin-right:.75rem;background:var(--navy-light);color:var(--silver-bright);border:1px solid var(--border-light);border-radius:var(--radius-md);cursor:pointer;transition:background .2s}.upload-file-area input[type=file]::file-selector-button:hover{background:var(--navy-hover)}.upload-btn{font-family:var(--sans);font-weight:600;font-size:.95rem;padding:.65rem 1.25rem;background:var(--gold);color:var(--navy);border:none;border-radius:var(--radius-md);cursor:pointer;transition:background .2s;align-self:flex-start}.upload-btn:hover:not(:disabled){background:var(--gold-hover)}.upload-btn:disabled{opacity:.6;cursor:not-allowed}.upload-progress{list-style:none;margin-top:1.25rem;display:flex;flex-direction:column;gap:.5rem}.upload-progress-item{display:flex;align-items:center;gap:.75rem;font-size:.9rem;color:var(--silver);padding:.5rem .75rem;background:var(--navy-surface);border:1px solid var(--border);border-radius:var(--radius-sm)}.upload-progress-msg{flex:1;color:var(--silver-muted)}.upload-progress-spinner{width:16px;height:16px;border:2px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}.upload-error{margin-top:1rem;padding:.85rem 1rem;background:var(--error-bg);border:1px solid var(--error-border);border-radius:var(--radius-md);color:var(--error-text);font-size:.9rem}.analyze-preview{margin:1rem 0;text-align:center}.analyze-preview-img{max-width:100%;max-height:400px;border-radius:var(--radius-md);border:1px solid var(--border)}.analyze-result{margin-top:1.25rem;padding:1.25rem;background:var(--success-bg);border:1px solid var(--success-border);border-radius:var(--radius-md)}.analyze-result h3{font-family:var(--heading);font-size:1.15rem;font-weight:700;color:var(--success-text);margin-bottom:1rem}.analyze-text{font-family:var(--sans);font-size:.95rem;line-height:1.6;color:var(--silver);white-space:pre-wrap;margin:1rem 0}.admin-page{max-width:900px;width:100%;margin:0 auto;padding:2rem 1.5rem 4rem}.admin-heading{font-family:var(--heading);font-size:1.5rem;font-weight:700;color:var(--silver-bright);margin-bottom:1.5rem}.admin-loading{display:flex;justify-content:center;padding:3rem 0}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:.9rem}.admin-table th{text-align:left;font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--gold);padding:.6rem .75rem;border-bottom:2px solid var(--border-light)}.admin-table td{padding:.65rem .75rem;border-bottom:1px solid var(--border);color:var(--silver)}.admin-table tbody tr:hover{background:var(--navy-light)}.admin-role-select{font-family:var(--sans);font-size:.85rem;padding:.25rem .5rem;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--navy);color:var(--silver);cursor:pointer}.admin-role-select:disabled{opacity:.6;cursor:not-allowed}.admin-you{font-size:.75rem;color:var(--silver-muted);margin-left:.5rem}.admin-empty{text-align:center;padding:2rem;color:var(--silver-muted)}.customers-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.customers-header .admin-heading{margin-bottom:0}.customers-add-btn{font-family:var(--sans);font-size:.85rem;font-weight:600;padding:.5rem 1rem;border:1px solid var(--gold);border-radius:var(--radius-md);background:transparent;color:var(--gold);cursor:pointer;transition:background .15s,color .15s}.customers-add-btn:hover{background:var(--gold);color:var(--navy)}.customers-form{background:var(--navy-surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:1rem 1.25rem;margin-bottom:1.5rem}.customers-form-row{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.customers-input{font-family:var(--sans);font-size:.9rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius-md);background:var(--navy);color:var(--silver-bright);flex:1;min-width:200px}.customers-input:focus{outline:none;border-color:var(--gold)}.customers-checkbox-label{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--silver);white-space:nowrap;cursor:pointer}.customers-save-btn{font-family:var(--sans);font-size:.85rem;font-weight:600;padding:.5rem 1.25rem;border:none;border-radius:var(--radius-md);background:var(--gold);color:var(--navy);cursor:pointer;transition:background .15s}.customers-save-btn:hover{background:var(--gold-hover)}.customers-save-btn:disabled{opacity:.5;cursor:not-allowed}.customers-row{cursor:pointer}.customers-row:hover td{color:var(--gold)}.customers-back-btn{font-family:var(--sans);font-size:.85rem;background:none;border:none;color:var(--gold);cursor:pointer;padding:0;margin-bottom:1rem}.customers-back-btn:hover{color:var(--gold-hover)}.customer-detail-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem}.customer-detail-header .admin-heading{margin-bottom:0}.customers-badge{font-size:.75rem;font-weight:600;padding:.2rem .6rem;border-radius:var(--radius-pill);border:1px solid var(--border);color:var(--silver-muted)}.customers-badge-rewards{border-color:var(--gold);color:var(--gold);background:var(--gold-glow)}.customer-section-heading{font-family:var(--heading);font-size:1.1rem;font-weight:600;color:var(--silver);margin-bottom:1rem}.vehicle-card{border:1px solid var(--border);border-radius:var(--radius-lg);margin-bottom:.75rem;overflow:hidden}.vehicle-card-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;cursor:pointer;transition:background .15s}.vehicle-card-header:hover{background:var(--navy-light)}.vehicle-card-info{display:flex;flex-direction:column;gap:.2rem}.vehicle-card-title{font-weight:600;color:var(--silver-bright);font-size:.95rem}.vehicle-card-plate{font-size:.8rem;font-weight:600;color:var(--gold);letter-spacing:.05em}.vehicle-card-meta{display:flex;align-items:center;gap:.75rem}.vehicle-card-visits{font-size:.8rem;color:var(--silver-muted)}.vehicle-card-chevron{color:var(--silver-muted);font-size:.85rem}.vehicle-card-body{padding:.75rem 1rem 1rem;border-top:1px solid var(--border);background:var(--navy-surface)}.vehicle-detail{font-size:.85rem;color:var(--silver);margin-bottom:.4rem}.vehicle-detail.muted{color:var(--silver-muted)}.vehicle-detail-label{font-size:.8rem;font-weight:600;color:var(--silver-muted);text-transform:uppercase;letter-spacing:.04em;margin:.75rem 0 .4rem}.vehicle-features-list{margin:0;padding-left:1.25rem;font-size:.85rem;color:var(--silver)}.vehicle-features-list li{margin-bottom:.2rem}.visits-table{font-size:.85rem}.visit-photo-link{color:var(--gold);text-decoration:none;font-weight:600;font-size:.8rem}.visit-photo-link:hover{color:var(--gold-hover)}.match-panel{margin-top:1.5rem;padding:1.25rem;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--navy-surface)}.match-panel-loading{display:flex;align-items:center;gap:.75rem;color:var(--silver-muted);font-size:.9rem}.match-heading{font-family:var(--heading);font-size:1.1rem;font-weight:600;color:var(--silver-bright);margin:0 0 .5rem}.match-subtext{font-size:.85rem;color:var(--silver-muted);margin:0 0 1rem}.match-success{background:var(--success-bg);border:1px solid var(--success-border);color:var(--success-text);padding:.75rem 1rem;border-radius:var(--radius-md);font-size:.9rem;margin-bottom:1rem}.match-vehicle-info{font-size:.9rem;color:var(--silver);margin-bottom:1rem}.match-score{display:inline-block;font-size:.75rem;font-weight:600;color:var(--gold);margin-left:.75rem;padding:.15rem .5rem;border:1px solid var(--gold);border-radius:var(--radius-pill)}.match-candidates{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1rem}.match-candidate{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .15s}.match-candidate:hover{border-color:var(--border-light)}.match-candidate-info{display:flex;flex-direction:column;gap:.15rem}.match-candidate-info strong{color:var(--silver-bright);font-size:.9rem}.match-candidate-vehicle{font-size:.85rem;color:var(--silver)}.match-candidate-plate{font-size:.8rem;color:var(--gold);letter-spacing:.05em}.match-confirm-btn{font-family:var(--sans);font-size:.8rem;font-weight:600;padding:.4rem 1rem;border:1px solid var(--gold);border-radius:var(--radius-md);background:transparent;color:var(--gold);cursor:pointer;transition:background .15s,color .15s}.match-confirm-btn:hover{background:var(--gold);color:var(--navy)}.match-confirm-btn:disabled{opacity:.5;cursor:not-allowed}.match-divider{border-top:1px solid var(--border);margin:1rem 0}.match-none-btn{font-family:var(--sans);font-size:.85rem;background:none;border:none;color:var(--silver-muted);cursor:pointer;padding:0}.match-none-btn:hover{color:var(--silver)}.match-choose{display:flex;gap:.75rem;flex-wrap:wrap}.match-option-btn{font-family:var(--sans);font-size:.85rem;font-weight:600;padding:.6rem 1.25rem;border:1px solid var(--border-light);border-radius:var(--radius-md);background:var(--navy-light);color:var(--silver-bright);cursor:pointer;transition:border-color .15s,background .15s}.match-option-btn:hover{border-color:var(--gold);background:var(--navy-hover)}.match-assign-form{display:flex;flex-direction:column;gap:.75rem}.match-form-actions{display:flex;gap:.75rem;align-items:center}.match-vehicle-select{display:flex;flex-direction:column;gap:.4rem}.match-vehicle-label{font-size:.8rem;font-weight:600;color:var(--silver-muted);text-transform:uppercase;letter-spacing:.04em}.match-cancel-btn{font-family:var(--sans);font-size:.85rem;background:none;border:none;color:var(--silver-muted);cursor:pointer;padding:0}.match-cancel-btn:hover{color:var(--silver)}
