.directory-hero{padding:var(--space-lg) 0 var(--space-sm)}.directory-hero .container{max-width:1400px;margin:0 auto;padding:0 var(--space-lg);box-sizing:border-box}.directory-hero .section-header{margin-bottom:0;text-align:left}.directory-hero .section-title{font-size:clamp(1.25rem,2.5vw,1.75rem);margin-bottom:var(--space-xs)}.directory-hero .section-description{font-size:14px;margin-bottom:0;margin-left:0;margin-right:0;max-width:none}.directory-main{padding:0 0 var(--space-3xl)}.directory-layout{display:grid;grid-template-columns:420px 1fr;gap:var(--space-lg);max-width:1400px;margin:0 auto;padding:0 var(--space-lg);box-sizing:border-box;min-height:600px}.directory-sidebar{display:flex;flex-direction:column;gap:var(--space-md);max-height:calc(100vh - 200px);overflow-y:auto;padding-right:var(--space-sm)}.directory-search{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md)}.search-row{display:flex;gap:var(--space-sm)}.search-row-split{display:grid;grid-template-columns:120px 1fr;gap:var(--space-sm)}.search-input,.search-select{width:100%;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-size:0.9375rem;font-family:var(--font-sans);transition:border-color var(--transition-fast)}.search-input:focus,.search-select:focus{outline:none;border-color:var(--color-accent)}.search-input-plz{text-align:center;letter-spacing:1px}.search-services{display:flex;flex-wrap:wrap;gap:6px}.service-checkbox{display:inline-flex;align-items:center;gap:4px;font-size:0.8125rem;cursor:pointer;user-select:none}.service-checkbox input{width:14px;height:14px;accent-color:var(--color-accent)}.search-btn{width:100%}.directory-results-header{font-size:0.875rem;color:var(--color-text-secondary);padding:0 var(--space-xs)}.installer-list{display:flex;flex-direction:column;gap:var(--space-sm)}.installer-card{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.installer-card:hover,.installer-card.highlighted{border-color:var(--color-accent);box-shadow:var(--shadow-md)}.installer-card-header{margin-bottom:var(--space-sm)}.installer-card-name{font-size:1rem;font-weight:600;margin:0;color:var(--color-text)}.installer-card-name a{color:inherit;text-decoration:none}.installer-card-name a:hover{text-decoration:underline}.installer-card-location{font-size:0.8125rem;color:var(--color-text-secondary)}.installer-card-description{font-size:0.8125rem;color:var(--color-text-secondary);margin:0 0 var(--space-sm);line-height:1.4}.installer-card-services{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:var(--space-sm)}.installer-card-footer{display:flex;justify-content:space-between;align-items:center;font-size:0.8125rem}.installer-card-distance{color:var(--color-text-secondary)}.installer-card-link{color:var(--color-accent);text-decoration:none;font-weight:500}.installer-card-link:hover{text-decoration:underline}.service-tag{display:inline-block;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:0.75rem;padding:2px 8px;border-radius:var(--radius-full);white-space:nowrap}.service-tag-lg{font-size:0.875rem;padding:4px 12px}.verified-badge{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;background:var(--color-accent);color:#fff;border-radius:50%;font-size:0.625rem;font-weight:700;margin-left:4px;vertical-align:middle}.verified-badge-lg{width:24px;height:24px;font-size:0.75rem}.directory-map-container{position:sticky;top:var(--space-lg);height:calc(100vh - 200px);min-height:400px;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border)}.directory-map{width:100%;height:100%}.map-popup{font-family:var(--font-sans);font-size:0.8125rem;line-height:1.5}.map-popup strong{font-size:0.875rem}.map-popup a{color:var(--color-accent)}.directory-pagination{display:flex;align-items:center;justify-content:center;gap:var(--space-md);padding:var(--space-md) 0;font-size:0.875rem}.pagination-link{color:var(--color-accent);text-decoration:none;font-weight:500}.pagination-info{color:var(--color-text-secondary)}.directory-cta{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg);text-align:center;margin-top:var(--space-md)}.directory-cta h3{font-size:1.125rem;margin:0 0 var(--space-sm)}.directory-cta p{font-size:0.875rem;color:var(--color-text-secondary);margin:0 0 var(--space-md)}.no-results{text-align:center;padding:var(--space-2xl) var(--space-lg);color:var(--color-text-secondary)}.no-results a{color:var(--color-accent)}.profile-breadcrumb{padding:var(--space-md) var(--space-lg);font-size:0.8125rem;color:var(--color-text-secondary)}.profile-breadcrumb a{color:var(--color-accent);text-decoration:none}.profile-section{padding:var(--space-lg) var(--space-lg) var(--space-4xl)}.profile-layout{display:grid;grid-template-columns:1fr 400px;gap:var(--space-2xl);max-width:1100px;margin:0 auto}.profile-header{margin-bottom:var(--space-xl)}.profile-name{font-size:clamp(1.5rem,3vw,2rem);font-weight:700;margin:0 0 var(--space-xs)}.profile-location{font-size:1rem;color:var(--color-text-secondary)}.profile-description,.profile-services,.profile-contact{margin-bottom:var(--space-xl)}.profile-description h2,.profile-services h2,.profile-contact h2{font-size:1.125rem;font-weight:600;margin:0 0 var(--space-md)}.profile-description p{color:var(--color-text-secondary);line-height:1.6}.service-tags{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.contact-grid{display:flex;flex-direction:column;gap:var(--space-md)}.contact-item{display:flex;flex-direction:column;gap:2px}.contact-label{font-size:0.75rem;text-transform:uppercase;letter-spacing:0.5px;color:var(--color-text-tertiary);font-weight:500}.contact-item a{color:var(--color-accent);text-decoration:none}.contact-item a:hover{text-decoration:underline}.profile-actions{margin-top:var(--space-xl);display:flex;gap:var(--space-md);align-items:center}.profile-map-container{position:sticky;top:var(--space-lg);height:400px;border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-border)}.profile-map{width:100%;height:100%}.form-section{padding:var(--space-4xl) var(--space-lg) var(--space-3xl)}.container-narrow{max-width:640px;margin:0 auto}.directory-form{display:flex;flex-direction:column;gap:var(--space-xl);margin-top:var(--space-xl)}.form-fieldset{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg)}.form-fieldset legend{font-weight:600;font-size:1rem;padding:0 var(--space-sm);color:var(--color-text)}.form-group{margin-bottom:var(--space-md)}.form-group:last-child{margin-bottom:0}.form-group label{display:block;font-size:0.875rem;font-weight:500;margin-bottom:6px;color:var(--color-text)}.form-group input,.form-group textarea,.form-group select{width:100%;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-size:0.9375rem;font-family:var(--font-sans);transition:border-color var(--transition-fast)}.form-group input:focus,.form-group textarea:focus,.form-group select:focus{outline:none;border-color:var(--color-accent)}.form-group textarea{resize:vertical;min-height:80px}.form-row{display:grid;grid-template-columns:120px 1fr;gap:var(--space-md)}.form-help{font-size:0.8125rem;color:var(--color-text-secondary);margin:0 0 var(--space-md)}.service-checkboxes{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.service-checkbox-form{display:inline-flex;align-items:center;gap:6px;font-size:0.875rem;cursor:pointer;user-select:none;padding:6px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--transition-fast),background var(--transition-fast)}.service-checkbox-form:has(input:checked){border-color:var(--color-accent);background:rgba(52,199,89,0.08)}.service-checkbox-form input{width:16px;height:16px;accent-color:var(--color-accent)}.form-login-hint{text-align:center;font-size:0.875rem;color:var(--color-text-secondary);margin-top:var(--space-md)}.form-login-hint a{color:var(--color-accent);text-decoration:none;font-weight:500}.form-login-hint a:hover{text-decoration:underline}.form-hint{display:block;font-size:0.75rem;color:var(--color-text-tertiary);margin-top:4px}.password-wrapper{position:relative}.password-wrapper input{width:100%;padding-right:44px}.password-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;cursor:pointer;color:var(--color-text-tertiary);padding:4px;display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast)}.password-toggle:hover{color:var(--color-text)}.form-submit{width:100%}.form-actions{display:flex;gap:var(--space-md)}.form-actions .btn{flex:1;text-align:center}.admin-section{padding:var(--space-4xl) var(--space-lg) var(--space-3xl)}.admin-section h1{font-size:1.5rem;margin-bottom:var(--space-sm)}.admin-table{width:100%;border-collapse:collapse;margin-top:var(--space-lg);font-size:0.875rem}.admin-table th,.admin-table td{padding:var(--space-sm) var(--space-md);text-align:left;border-bottom:1px solid var(--color-border)}.admin-table th{font-weight:600;color:var(--color-text-secondary);font-size:0.75rem;text-transform:uppercase;letter-spacing:0.5px}.admin-table a{color:var(--color-accent);text-decoration:none}.admin-actions{display:flex;gap:var(--space-sm)}.btn-sm{padding:4px 10px;font-size:0.75rem;border-radius:var(--radius-sm)}.status-active{color:var(--color-accent);font-weight:500}.status-inactive{color:var(--color-text-tertiary)}.dashboard-section{padding:var(--space-4xl) var(--space-lg) var(--space-3xl)}.dashboard-header{margin-bottom:var(--space-2xl)}.dashboard-header h1{font-size:clamp(1.5rem,3vw,2rem);font-weight:700;margin:0 0 var(--space-xs)}.dashboard-subtitle{color:var(--color-text-secondary);font-size:1rem}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-lg);max-width:1000px}.dashboard-card{background:var(--color-bg-secondary);border-radius:var(--radius-lg);padding:var(--space-lg)}.dashboard-card h2{font-size:0.875rem;font-weight:600;text-transform:uppercase;letter-spacing:0.5px;color:var(--color-text-secondary);margin:0 0 var(--space-md)}.status-list{display:flex;flex-direction:column;gap:var(--space-md)}.status-item{display:flex;justify-content:space-between;align-items:center;font-size:0.9375rem}.status-label{color:var(--color-text-secondary)}.dashboard-actions{display:flex;flex-direction:column;gap:var(--space-sm)}.dashboard-action-btn{display:block;padding:var(--space-md);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-decoration:none;color:var(--color-text);transition:border-color var(--transition-fast),background var(--transition-fast)}.dashboard-action-btn:hover{border-color:var(--color-accent);background:rgba(52,199,89,0.04)}.action-title{display:block;font-weight:600;font-size:0.9375rem;margin-bottom:2px}.action-desc{display:block;font-size:0.8125rem;color:var(--color-text-secondary)}.form-footer{text-align:center;margin-top:var(--space-xl);font-size:0.875rem;color:var(--color-text-secondary)}.form-footer a{color:var(--color-accent);text-decoration:none;font-weight:500}.form-footer a:hover{text-decoration:underline}@media (max-width:1024px){.directory-layout{grid-template-columns:1fr}.directory-sidebar{max-height:none;overflow:visible}.directory-map-container{position:relative;top:0;height:350px;order:-1}.profile-layout{grid-template-columns:1fr}.profile-map-container{position:relative;top:0;order:-1}}@media (max-width:640px){.directory-hero{padding:var(--space-md) var(--space-md) var(--space-sm)}.directory-main{padding:0 var(--space-md) var(--space-2xl)}.directory-search{padding:var(--space-md)}.search-row-split{grid-template-columns:100px 1fr}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}}.inbox-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background:#e53e3e;color:#fff;border-radius:9px;font-size:0.6875rem;font-weight:600;margin-left:4px;line-height:1}.inbox-filters{display:flex;gap:var(--space-sm);margin-bottom:var(--space-lg);flex-wrap:wrap}.inbox-filter-btn{padding:6px 16px;border:1px solid var(--color-border);border-radius:var(--radius-full);font-size:0.8125rem;font-weight:500;text-decoration:none;color:var(--color-text-secondary);transition:all var(--transition-fast)}.inbox-filter-btn:hover{border-color:var(--color-text-secondary);color:var(--color-text)}.inbox-filter-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.inbox-list{display:flex;flex-direction:column;gap:var(--space-sm)}.inbox-card{display:block;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md);text-decoration:none;color:var(--color-text);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.inbox-card:hover{border-color:var(--color-accent);box-shadow:var(--shadow-md)}.inbox-card--unread{border-left:3px solid var(--color-accent);background:rgba(52,199,89,0.03)}.inbox-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-sm)}.inbox-card-meta{display:flex;gap:var(--space-md);font-size:0.8125rem;color:var(--color-text-secondary)}.inbox-card-plz{font-weight:600;color:var(--color-text)}.inbox-card-body{display:flex;justify-content:space-between;align-items:center}.inbox-card-specs{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.inbox-spec{display:inline-block;background:var(--color-bg-secondary);color:var(--color-text-secondary);font-size:0.75rem;padding:2px 8px;border-radius:var(--radius-full)}.inbox-card-distance{font-size:0.8125rem;color:var(--color-text-secondary);white-space:nowrap}.inbox-card-expired{margin-top:var(--space-sm);font-size:0.75rem;color:var(--color-text-tertiary);font-style:italic}.inbox-status-badge{display:inline-block;padding:2px 10px;border-radius:var(--radius-full);font-size:0.75rem;font-weight:500;white-space:nowrap}.inbox-status-badge--new{background:rgba(52,199,89,0.15);color:var(--color-accent)}.inbox-status-badge--read{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.inbox-status-badge--replied{background:rgba(59,130,246,0.15);color:#3b82f6}.inbox-status-badge--declined{background:rgba(239,68,68,0.1);color:#ef4444}.inbox-status-badge--active{background:rgba(52,199,89,0.15);color:var(--color-accent)}.inbox-status-badge--closed{background:var(--color-bg-secondary);color:var(--color-text-secondary)}.inbox-status-badge--expired{background:rgba(239,68,68,0.1);color:#ef4444}.inbox-detail-layout{max-width:800px}.inbox-detail-main{display:flex;flex-direction:column;gap:var(--space-lg)}.inbox-detail-specs .status-item{padding:var(--space-xs) 0;border-bottom:1px solid var(--color-border)}.inbox-detail-specs .status-item:last-child{border-bottom:none}.inbox-customer-message{margin-top:var(--space-lg);padding:var(--space-md);background:var(--color-bg);border-radius:var(--radius-sm);border-left:3px solid var(--color-accent)}.inbox-customer-message p{margin:var(--space-xs) 0 0;color:var(--color-text-secondary);line-height:1.5}.inbox-contact-card{border-left:3px solid var(--color-accent)}.inbox-contact-locked{opacity:0.7}.inbox-locked-hint{font-size:0.875rem;color:var(--color-text-secondary);font-style:italic}.inbox-messages{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg)}.inbox-msg{padding:var(--space-md);border-radius:var(--radius-md);max-width:85%}.inbox-msg--customer{background:rgba(52,199,89,0.08);align-self:flex-end;border-bottom-right-radius:4px}.inbox-msg--installer{background:var(--color-bg-secondary);align-self:flex-start;border-bottom-left-radius:4px}.inbox-msg-header{display:flex;justify-content:space-between;align-items:center;gap:0.5rem;margin-bottom:var(--space-xs);font-size:0.75rem}.inbox-msg-sender{font-weight:600;color:var(--color-text)}.inbox-msg-time{color:var(--color-text-tertiary)}.inbox-msg-body{font-size:0.9375rem;line-height:1.5;color:var(--color-text);white-space:pre-wrap}.inbox-no-messages{color:var(--color-text-tertiary);font-size:0.875rem;font-style:italic}.inbox-reply-form textarea{width:100%;padding:10px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-bg);color:var(--color-text);font-size:0.9375rem;font-family:var(--font-sans);resize:vertical;min-height:80px;transition:border-color var(--transition-fast)}.inbox-reply-form textarea:focus{outline:none;border-color:var(--color-accent)}.inbox-reply-actions{display:flex;gap:var(--space-sm);margin-top:var(--space-sm)}.inbox-decline-btn{color:#ef4444!important;border-color:#ef4444!important}.inbox-decline-btn:hover{background:rgba(239,68,68,0.08)!important}.inbox-expired-notice{color:var(--color-text-tertiary);font-style:italic;font-size:0.875rem}.quote-summary{margin-bottom:var(--space-md)}.quote-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-sm)}.quote-summary-item{display:flex;justify-content:space-between;padding:var(--space-xs) var(--space-sm);background:var(--color-bg-secondary);border-radius:var(--radius-sm);font-size:0.875rem}.quote-summary-label{color:var(--color-text-secondary)}.quote-requests-list{display:flex;flex-direction:column;gap:var(--space-md)}.quote-request-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-md)}.quote-request-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-xs);font-size:0.875rem;font-weight:500}.quote-request-card-info{display:flex;justify-content:space-between;font-size:0.8125rem;color:var(--color-text-secondary)}.quote-replied-list{display:flex;flex-direction:column;gap:4px;margin-top:var(--space-sm)}.quote-replied-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:var(--space-sm) var(--space-md);background:var(--color-bg-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;font-size:0.8125rem;font-family:var(--font-sans);color:var(--color-text);text-align:left;transition:border-color var(--transition-fast)}.quote-replied-item:hover{border-color:var(--color-accent)}.quote-installer-contact{padding:var(--space-md);background:rgba(52,199,89,0.06);border-left:3px solid var(--color-accent);border-radius:var(--radius-sm);margin-bottom:var(--space-md);font-size:0.875rem;line-height:1.6}.quote-installer-contact a{color:var(--color-accent);text-decoration:none}.quote-installer-contact a:hover{text-decoration:underline}.modal--wide{max-width:700px}@media (max-width:640px){.inbox-card-body{flex-direction:column;align-items:flex-start;gap:var(--space-xs)}.inbox-msg{max-width:95%}.inbox-reply-actions{flex-direction:column}.quote-summary-grid{grid-template-columns:1fr}}.project-status-badge{display:inline-block;padding:2px 10px;border-radius:var(--radius-full);font-size:0.75rem;font-weight:500;white-space:nowrap}.project-status-badge--new{background:rgba(59,130,246,0.15);color:#3b82f6}.project-status-badge--in_progress{background:rgba(245,158,11,0.15);color:#d97706}.project-status-badge--completed{background:rgba(52,199,89,0.15);color:var(--color-accent)}.project-status-badge--on_hold{background:rgba(107,114,128,0.15);color:#6b7280}.badge{display:inline-block;padding:1px 8px;border-radius:var(--radius-full);font-size:0.6875rem;font-weight:500;white-space:nowrap}.badge--private{background:rgba(99,102,241,0.12);color:#6366f1}.badge--business{background:rgba(245,158,11,0.12);color:#d97706}.project-detail-layout{display:grid;grid-template-columns:1fr 320px;gap:var(--space-lg);max-width:1100px}.project-detail-sidebar{display:flex;flex-direction:column;gap:var(--space-md)}.project-detail-sidebar .dashboard-card{position:sticky;top:var(--space-lg)}.project-detail-sidebar .dashboard-card:first-child{position:static}@media (max-width:1024px){.project-detail-layout{grid-template-columns:1fr}.project-detail-sidebar{order:-1}.project-detail-sidebar .dashboard-card{position:static}}.quote-image-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px}.quote-image-thumb{aspect-ratio:1;border-radius:var(--radius-sm,8px);overflow:hidden;cursor:pointer;background:var(--color-bg-secondary,#f3f4f6);transition:transform 0.15s,box-shadow 0.15s}.quote-image-thumb:hover{transform:scale(1.04);box-shadow:0 4px 12px rgba(0,0,0,0.12)}.quote-image-thumb img{width:100%;height:100%;object-fit:cover;display:block}.image-lightbox{position:fixed;inset:0;z-index:9999;background:rgba(0,0,0,0.85);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px}.image-lightbox img{max-width:90vw;max-height:80vh;border-radius:8px;object-fit:contain;box-shadow:0 8px 32px rgba(0,0,0,0.4)}.image-lightbox-close{position:absolute;top:16px;right:20px;background:none;border:none;color:#fff;font-size:2rem;cursor:pointer;line-height:1;padding:4px 10px;border-radius:8px;transition:background 0.15s}.image-lightbox-close:hover{background:rgba(255,255,255,0.15)}.image-lightbox-caption{color:rgba(255,255,255,0.8);font-size:0.875rem;margin-top:12px;text-align:center}@media (max-width:640px){.quote-image-gallery{grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px}}