.contractor-shell{max-width:1400px}.contractor-shell .portal-heading{gap:20px;flex-wrap:wrap}.contractor-shell .actions,.contractor-dialog .actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.contractor-filters{display:flex;flex-wrap:wrap;gap:18px;align-items:end}.contractor-filters>label:first-child{flex:2 1 220px}.contractor-filters>label:nth-child(2){flex:1 1 220px}.contractor-filters label,.contractor-fields>label,.contractor-services>label,.contractor-raw label{display:flex;flex-direction:column;gap:8px;font-weight:650;font-size:14px}.contractor-shell input,.contractor-shell select,.contractor-dialog input:not([type=checkbox]),.contractor-dialog textarea,.contractor-dialog select{width:100%;min-width:0;min-height:46px;border:1px solid var(--line);border-radius:9px;padding:11px 12px;background:var(--white);color:var(--ink);font-size:16px;line-height:1.45}.contractor-dialog textarea{resize:vertical}.contractor-toggle{display:flex!important;flex-direction:row!important;align-items:center;gap:8px!important;font-size:14px;font-weight:550!important;line-height:1.5}.contractor-toggle input{width:19px!important;min-height:19px!important;height:19px;accent-color:var(--blue);flex-shrink:0}.contractor-list-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;font-size:14px;color:var(--muted)}.contractor-list-heading strong{color:var(--ink)}.contractor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:18px}.contractor-card{padding:24px;min-width:0}.contractor-card h2{font-size:21px;line-height:1.3;margin:0 0 8px;overflow-wrap:anywhere}.contractor-card p{font-size:15px;line-height:1.6;margin:8px 0;overflow-wrap:anywhere}.contractor-card-heading{display:flex;align-items:flex-start;gap:10px;justify-content:space-between}.contractor-card-heading .badge{flex-shrink:0}.contractor-tags{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.contractor-tags>span,.contractor-service-tag{padding:6px 10px;border-radius:8px;font-size:12px;line-height:1.5;background:var(--mint);color:var(--deep);border:1px solid var(--line)}.contractor-tags .sub{background:none;border:0;padding:0;color:var(--muted);font-size:14px}.contractor-service-tag{font-size:14px;min-height:40px;cursor:pointer}.contractor-card .actions{border-top:1px solid var(--line);padding-top:16px;margin-top:18px}.contractor-card .btn{min-height:42px;text-decoration:none}.contractor-break{overflow-wrap:anywhere}.contractor-empty{grid-column:1/-1;padding:40px;text-align:center}.contractor-dialog{background:var(--white);color:var(--ink);border:1px solid var(--line);border-radius:20px;width:min(900px,calc(100% - 30px));max-height:90dvh;padding:28px;overscroll-behavior:contain}.contractor-dialog::backdrop{background:#051323b8;backdrop-filter:blur(3px)}.contractor-modal-heading{display:flex;gap:15px;align-items:start;justify-content:space-between;margin-bottom:22px}.contractor-modal-heading h2{font-size:25px;margin:12px 0 0;overflow-wrap:anywhere}.contractor-capture{padding:18px;border-radius:12px;border:1px solid var(--line);background:var(--paper);margin-bottom:24px}.contractor-capture p{font-size:14px;line-height:1.65;margin-top:0}.contractor-capture [role=status]{margin:14px 0 0;color:var(--deep);font-weight:600}.contractor-photos{display:flex;gap:10px;flex-wrap:wrap}.contractor-photos img{max-width:calc(50% - 5px);max-height:200px;object-fit:contain;border:1px solid var(--line);border-radius:8px;margin-top:12px}.contractor-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.contractor-fields .full{grid-column:1/-1}.contractor-services>.actions{margin-top:8px;flex-wrap:nowrap}.contractor-services>.actions input{flex:1}.contractor-services>.actions button{flex-shrink:0}.contractor-raw{margin:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:18px 0}.contractor-raw summary{font-size:15px;font-weight:650;cursor:pointer}.contractor-raw p{font-size:14px;line-height:1.6}.contractor-raw>.actions{margin-top:15px;align-items:end}.contractor-raw label{flex:1 1 190px;min-width:0}.contractor-duplicate-note{padding:16px;border:1px solid #d1a35c;background:#fff4dd;color:#644319;border-radius:10px;line-height:1.6;margin:18px 0}.contractor-duplicate-note label{margin-top:10px}.contractor-dialog [hidden]{display:none!important}.contractor-dialog .btn.primary,.contractor-shell .btn.primary{background:#4160d5;border-color:#4160d5;color:#fff}.contractor-dialog .btn.primary:hover,.contractor-shell .btn.primary:hover{background:#344fb5;border-color:#344fb5}.contractor-dialog .btn:disabled{opacity:.55;cursor:wait}.contractor-dialog form>.sub{font-size:13px;line-height:1.6}.contractor-dialog #contractor-save{width:100%;min-height:50px;margin-top:8px}#contractor-error{color:#b4432d;line-height:1.6}#contractor-error:empty,#contractor-status:empty{display:none}
@media screen{[data-theme=dark] .contractor-dialog{background:#121212;color:#fff}[data-theme=dark] .contractor-duplicate-note{background:#302613;color:#ffdb9d;border-color:#6c5329}[data-theme=dark] #contractor-error{color:#ffb39a}}
@media(max-width:640px){.contractor-shell .portal-heading>.actions{width:100%}.contractor-shell .portal-heading>.actions .btn{flex:1;text-align:center;white-space:normal;min-height:48px}.contractor-filters{gap:14px;padding:18px}.contractor-filters>label:first-child,.contractor-filters>label:nth-child(2){flex-basis:100%}.contractor-list-heading{align-items:start;flex-direction:column;gap:6px;margin-bottom:16px}.contractor-card{padding:20px}.contractor-card-heading{flex-wrap:wrap}.contractor-dialog{padding:20px 16px;border-radius:16px;width:calc(100% - 16px);max-height:94dvh}.contractor-fields{grid-template-columns:1fr;gap:16px}.contractor-modal-heading h2{font-size:22px}.contractor-capture{padding:15px}.contractor-capture .actions .btn{flex:1;white-space:normal;min-height:48px}.contractor-photos img{max-height:150px}.contractor-empty{padding:28px 20px}.contractor-modal-heading .btn{flex-shrink:0}}

#contractor-save-error{padding:14px 16px;border:1px solid #b4432d;border-radius:10px;background:#fff0eb;color:#8b2b18;line-height:1.6;margin:16px 0}.contractor-dialog [aria-invalid=true]{border-color:#b4432d!important;outline:1px solid #b4432d}.contractor-services .form-note{font-size:13px;line-height:1.6;margin:10px 0;color:var(--muted)}
@media screen{[data-theme=dark] #contractor-save-error{background:#341d18;border-color:#ffb39a;color:#ffb39a}}

.contractor-shell [hidden]{display:none!important}.contractor-filters>label{min-width:0}.contractor-list-heading{flex-wrap:wrap}

/* Compact, alphabetical contact directory. */
.directory-types{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0 18px}.directory-pill{font:inherit;font-size:14px;font-weight:600;border:1px solid var(--line);color:var(--ink);background:var(--white);border-radius:999px;padding:10px 16px;min-height:44px;cursor:pointer}.directory-pill:hover{border-color:var(--blue)}.directory-pill.selected{background:#4160d5;color:#fff;border-color:#4160d5}.directory-types .directory-pill.selected{box-shadow:inset 0 -3px #76be43}.directory-categories{margin:24px 0}.directory-category-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.directory-pills{display:flex;gap:8px;flex-wrap:wrap;max-height:none}.directory-pills.expanded{max-height:none}.directory-alphabet{display:flex;flex-wrap:wrap;gap:5px;padding:15px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.directory-alphabet a,.directory-alphabet span{width:36px;min-height:44px;display:grid;place-items:center;border-radius:7px;font-weight:700;font-size:14px;text-decoration:none}.directory-alphabet a{background:var(--white);color:var(--blue);border:1px solid var(--line)}.directory-alphabet a:hover{background:#4160d5;color:#fff}.directory-alphabet span{color:var(--muted);opacity:.45}.directory-letter-group{scroll-margin-top:24px;margin:28px 0}.directory-letter{display:flex;align-items:center;gap:12px;font-size:26px;color:var(--blue);margin:0 0 12px}.directory-letter:after{content:'';height:1px;background:var(--line);flex:1}.directory-letter span{font-size:12px;color:var(--muted);font-weight:500}.directory-row{background:var(--white);border:1px solid var(--line);border-radius:12px;margin-bottom:10px;overflow:hidden}.directory-row summary{display:flex;align-items:center;gap:16px;padding:20px;cursor:pointer;list-style:none}.directory-row summary::-webkit-details-marker{display:none}.directory-avatar{display:grid;place-items:center;flex:0 0 48px;height:48px;border-radius:12px;background:var(--mint);color:var(--deep);font-weight:800;font-size:18px}.directory-identity{flex:1;min-width:0}.directory-identity strong{display:block;font-size:18px;line-height:1.4;overflow-wrap:anywhere}.directory-identity>span{display:block;color:var(--muted);font-size:14px;line-height:1.6;margin-top:4px;overflow-wrap:anywhere}.directory-kind{font-size:12px;font-weight:650;color:var(--blue);flex-shrink:0}.directory-chevron{font-size:24px;color:var(--muted)}.directory-row details[open] .directory-chevron{transform:rotate(180deg)}.directory-expanded{border-top:1px solid var(--line);background:var(--paper)}.directory-expanded .card{box-shadow:none;border:0;background:transparent;border-radius:0}.directory-expanded .contractor-card-heading{display:none}.directory-notes{padding:0 24px 24px;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.6}.directory-quick{display:flex;gap:8px;padding:0 20px 16px 84px;flex-wrap:wrap}.directory-quick:empty{display:none}.directory-quick .btn{min-height:44px}.directory-row:focus-within{border-color:var(--blue)}.directory-pill:focus-visible,.directory-row summary:focus-visible,.directory-alphabet a:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
@media(max-width:640px){.directory-row summary{padding:16px;gap:10px;flex-wrap:wrap}.directory-avatar{flex-basis:40px;height:40px;font-size:15px}.directory-identity{flex-basis:calc(100% - 90px)}.directory-identity strong{font-size:16px}.directory-kind{margin-left:50px}.directory-chevron{margin-left:auto}.directory-quick{padding:0 16px 16px 66px}.directory-quick .btn span{display:none}.directory-alphabet{gap:3px}.directory-alphabet a,.directory-alphabet span{width:32px}.directory-types{gap:6px}.directory-types .directory-pill{flex:1 1 40%;text-align:center}.directory-category-heading{font-size:14px}.directory-notes{padding:0 20px 20px}}

.directory-industry{margin:0 0 26px}.directory-industry h3{font-size:19px;margin:16px 0 10px;color:var(--text,#213845)}.directory-industry h3 span{font-size:12px;font-weight:500;opacity:.7;margin-left:8px}.directory-letter-group{scroll-margin-top:90px}
