*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #2563eb;--primary-hover: #1d4ed8;--error: #dc2626;--success: #16a34a;--bg: #f8fafc;--card-bg: #ffffff;--border: #e2e8f0;--text: #1e293b;--text-muted: #64748b;--radius: 8px;--shadow: 0 1px 3px rgba(0,0,0,.1), 0 1px 2px rgba(0,0,0,.06)}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh}.page-center{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:2rem;width:100%;max-width:420px}.card-wide{max-width:900px}.card h1{font-size:1.5rem;margin-bottom:.25rem}.card .subtitle{color:var(--text-muted);font-size:.9rem;margin-bottom:1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.4rem}input,select{width:100%;padding:.6rem .75rem;border:1px solid var(--border);border-radius:var(--radius);font-size:.95rem;color:var(--text);background:var(--card-bg);transition:border-color .15s}input:focus,select:focus{outline:none;border-color:var(--primary)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.btn{width:100%;padding:.65rem 1rem;border:none;border-radius:var(--radius);font-size:.95rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background:transparent;color:var(--primary);border:1px solid var(--primary)}.btn-secondary:hover{background:#eff6ff}.alert{padding:.75rem 1rem;border-radius:var(--radius);font-size:.875rem;margin-bottom:1rem}.alert-error{background:#fef2f2;color:var(--error);border:1px solid #fecaca}.alert-success{background:#f0fdf4;color:var(--success);border:1px solid #bbf7d0}.link-btn{background:none;border:none;color:var(--primary);cursor:pointer;font-size:.875rem;text-decoration:underline}.divider{text-align:center;color:var(--text-muted);font-size:.875rem;margin:1rem 0}.navbar{background:var(--card-bg);border-bottom:1px solid var(--border);padding:.9rem 1.5rem;display:flex;align-items:center;justify-content:space-between}.navbar-brand{font-weight:700;font-size:1.2rem;color:var(--primary);text-decoration:none}.navbar-actions{display:flex;gap:.75rem;align-items:center}.navbar-email{font-size:.875rem;color:var(--text-muted)}.search-page{max-width:1000px;margin:0 auto;padding:2rem 1rem}.search-page h1{font-size:1.5rem;margin-bottom:1.5rem}.search-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1.5rem}.search-card h2{font-size:1rem;font-weight:600;margin-bottom:1rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em}.search-actions{display:flex;gap:.75rem;margin-top:1rem}.search-actions .btn{width:auto;padding:.6rem 1.5rem}.results-count{font-size:.875rem;color:var(--text-muted);margin-bottom:1rem}.provider-card{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem;box-shadow:var(--shadow)}.provider-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:.75rem}.provider-name{font-size:1.05rem;font-weight:600}.provider-rating{font-size:.875rem;color:var(--text-muted)}.provider-rating span{color:#f59e0b}.provider-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem}.tag{background:#eff6ff;color:var(--primary);border-radius:999px;padding:.2rem .65rem;font-size:.8rem;font-weight:500}.tag-green{background:#f0fdf4;color:var(--success)}.provider-details{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem;font-size:.875rem;color:var(--text-muted)}.provider-detail strong{color:var(--text)}.availability-section{margin-top:.75rem;padding-top:.75rem;border-top:1px solid var(--border)}.availability-section h4{font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.4rem}.availability-days{display:flex;flex-wrap:wrap;gap:.35rem}.day-badge{background:#f1f5f9;border-radius:4px;padding:.15rem .5rem;font-size:.8rem;color:var(--text)}.loading,.empty{text-align:center;padding:3rem;color:var(--text-muted)}
