/* === State Electrologist Organization — Public Styles === */
.seo-directory, .seo-portal { max-width:900px; margin:0 auto; font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif; color:#333; line-height:1.5; }
.seo-directory *, .seo-portal * { box-sizing:border-box; }

.seo-field { margin-bottom:16px; }
.seo-field label { display:block; font-weight:600; margin-bottom:4px; font-size:14px; color:#444; }
.seo-field input, .seo-field select, .seo-field textarea { width:100%; padding:10px 12px; border:1px solid #ccc; border-radius:6px; font-size:15px; transition:border-color 0.2s; }
.seo-field input:focus, .seo-field select:focus { border-color:#2271b1; outline:none; box-shadow:0 0 0 2px rgba(34,113,177,0.15); }

.seo-btn { display:inline-block; padding:10px 24px; border:none; border-radius:6px; font-size:15px; font-weight:600; cursor:pointer; text-decoration:none; transition:background 0.2s; }
.seo-btn-primary { background:#2271b1; color:#fff; }
.seo-btn-primary:hover { background:#1a5a8e; }
.seo-btn-secondary { background:#f0f0f0; color:#333; }
.seo-btn-secondary:hover { background:#ddd; }

.seo-checkbox { display:inline-flex; align-items:center; gap:6px; font-weight:400!important; cursor:pointer; }
.seo-checkbox input { width:auto!important; }

.seo-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 20px; }
.seo-field-full { grid-column:1/-1; }
@media(max-width:600px) { .seo-form-grid { grid-template-columns:1fr; } }

/* Portal */
.seo-portal-card { background:#fff; border:1px solid #e0e0e0; border-radius:10px; padding:30px; margin-bottom:20px; box-shadow:0 2px 8px rgba(0,0,0,0.04); }
.seo-portal-login .seo-portal-card { max-width:400px; margin:40px auto; }
.seo-portal-login h2 { margin-top:0; text-align:center; }
.seo-portal-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }
.seo-portal-header h2 { margin:0; }

/* Dashboard */
.seo-dashboard-grid {
    display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:16px; margin-top:24px;
}
.seo-dashboard-card {
    display:flex; align-items:flex-start; gap:16px; padding:24px;
    background:#fff; border:1px solid #e0e0e0; border-radius:10px;
    text-decoration:none; color:#333; transition:box-shadow 0.2s, border-color 0.2s;
}
.seo-dashboard-card:hover { box-shadow:0 4px 12px rgba(0,0,0,0.08); border-color:#2271b1; }
.seo-dashboard-icon { font-size:32px; flex-shrink:0; line-height:1; }
.seo-dashboard-card strong { font-size:16px; display:block; margin-bottom:4px; }
.seo-dashboard-card p { margin:0; font-size:13px; color:#666; line-height:1.4; }

.seo-portal-message { padding:12px 16px; border-radius:6px; margin-bottom:16px; font-size:14px; }
.seo-portal-message.success { background:#d4edda; color:#155724; border:1px solid #c3e6cb; }
.seo-portal-message.error { background:#f8d7da; color:#721c24; border:1px solid #f5c6cb; }

.seo-login-links { margin-top:16px; text-align:center; display:flex; flex-direction:column; gap:8px; }
.seo-login-links a { color:#2271b1; font-size:14px; text-decoration:none; }
.seo-login-links a:hover { text-decoration:underline; }

/* Tabs */
.seo-tabs { display:flex; gap:4px; border-bottom:2px solid #e0e0e0; margin-bottom:20px; flex-wrap:wrap; }
.seo-tab { padding:10px 20px; background:none; border:none; border-bottom:2px solid transparent; margin-bottom:-2px; cursor:pointer; font-size:14px; font-weight:600; color:#666; transition:color 0.2s, border-color 0.2s; }
.seo-tab:hover { color:#2271b1; }
.seo-tab.active { color:#2271b1; border-bottom-color:#2271b1; }
.seo-tab-content { display:none; }
.seo-tab-content.active { display:block; }
.seo-portal-actions { margin-top:20px; padding-top:16px; border-top:1px solid #eee; }

/* Directory */
.seo-directory-search { background:#f8f9fa; border:1px solid #e0e0e0; border-radius:10px; padding:30px; margin-bottom:30px; }
.seo-directory-search h1 { margin-top:0; margin-bottom:20px; font-size:24px; color:#1a1a1a; }
.seo-search-grid { display:grid; grid-template-columns:1fr 1fr 1fr auto; gap:16px; align-items:end; }
.seo-field-submit { display:flex; gap:8px; padding-bottom:16px; }
@media(max-width:768px) { .seo-search-grid { grid-template-columns:1fr; } .seo-field-submit { padding-bottom:0; } }
.seo-results-count { color:#666; font-style:italic; margin-bottom:20px; }
.seo-no-results { text-align:center; color:#666; padding:40px; }

/* Practitioner cards */
.seo-results-grid { display:grid; gap:20px; }
.seo-practitioner-card { background:#fff; border:1px solid #e0e0e0; border-radius:10px; padding:24px; transition:box-shadow 0.2s; }
.seo-practitioner-card:hover { box-shadow:0 4px 12px rgba(0,0,0,0.08); }
.seo-practitioner-header { display:flex; gap:14px; align-items:flex-start; margin-bottom:12px; }
.seo-practitioner-photo { width:80px; height:80px; border-radius:8px; object-fit:cover; flex-shrink:0; }
.seo-practitioner-name { font-size:18px; font-weight:700; display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.seo-modality-tag { font-size:12px; font-weight:600; padding:2px 10px; background:#e8f0fe; color:#1a73e8; border-radius:20px; }
.seo-business-location { padding:12px 0; border-top:1px solid #f0f0f0; }
.seo-business-location:first-of-type { border-top:none; }
.seo-biz-firm { font-weight:600; margin-bottom:4px; }
.seo-biz-addr, .seo-biz-citystate { color:#555; font-size:14px; }
.seo-biz-phone, .seo-biz-email, .seo-biz-web { font-size:14px; margin-top:4px; }
.seo-biz-phone a, .seo-biz-email a, .seo-biz-web a { color:#2271b1; text-decoration:none; }
.seo-biz-phone a:hover, .seo-biz-email a:hover, .seo-biz-web a:hover { text-decoration:underline; }

/* State/city groups */
.seo-state-group { margin-bottom:40px; }
.seo-state-heading { font-size:24px; font-weight:700; color:#1a1a1a; padding:12px 0; border-bottom:3px solid #2271b1; margin-bottom:20px; margin-top:0; }
.seo-city-group { margin-bottom:24px; margin-left:16px; }
.seo-city-heading { font-size:18px; font-weight:600; color:#444; padding-bottom:8px; border-bottom:1px solid #ddd; margin-bottom:14px; margin-top:0; }

/* SEO content blocks */
.seo-modality-info { background:#f8f9fa; border:1px solid #e0e0e0; border-radius:10px; padding:24px 28px; margin-bottom:24px; }
.seo-modality-info h2 { font-size:18px; margin:0 0 10px; color:#333; }
.seo-modality-info p { color:#555; font-size:15px; line-height:1.7; margin:0; }
.seo-local-context { margin-bottom:24px; }
.seo-local-context p { color:#444; font-size:15px; line-height:1.7; }

/* Pagination */
.seo-pagination { margin-top:30px; text-align:center; display:flex; justify-content:center; gap:6px; }
.seo-page-link, .seo-page-current { display:inline-block; padding:8px 14px; border-radius:6px; text-decoration:none; font-size:14px; }
.seo-page-link { background:#f0f0f0; color:#333; }
.seo-page-link:hover { background:#ddd; }
.seo-page-current { background:#2271b1; color:#fff; font-weight:600; }
