.visual-preferences{border:0;padding:0;margin:0;min-width:0}
.preference-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0}
.preference-option{display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--line,#cfc6b8);border-radius:12px;background:#faf7ef;cursor:pointer;min-width:0}
.preference-option img{width:100%;aspect-ratio:3/2;object-fit:cover;display:block}
.preference-option>span{display:flex;align-items:center;gap:10px;padding:16px;font-weight:600;line-height:1.3;flex:1}
.preference-option input{width:20px;height:20px;min-width:20px;margin:0;accent-color:#705536}
.preference-option.selected{border-color:#705536;box-shadow:inset 0 0 0 1px #705536;background:#eae1d3}
.visual-single .preference-options{grid-template-columns:1fr}
.preference-other[hidden]{display:none}
.preference-ranking{display:flex;flex-direction:column;gap:12px;margin:24px 0;outline:none}
.rank-item{display:flex;align-items:center;gap:12px;padding:16px 12px;border:1px solid #cfc6b8;background:#faf7ef;border-radius:12px;outline:none;min-width:0}
.rank-grip{padding:8px;min-width:36px;cursor:grab;font-size:24px;border:0;background:transparent;touch-action:none}
.rank-number{font-size:14px;color:#776950}
.rank-item img{width:56px;height:56px;object-fit:cover;border-radius:6px}
.rank-item strong{flex:1;min-width:0;font-size:16px;overflow-wrap:anywhere}
.rank-actions{display:flex;flex-direction:column;gap:6px}
.rank-actions button{padding:8px 12px;min-height:40px}
.rank-item[data-dragging]{opacity:.45}
.react-aria-DropIndicator[data-drop-target]{height:3px;background:#705536;border-radius:3px}
body.keyboard .rank-item[data-focus-visible],body.keyboard .rank-grip:focus-visible{outline:2px solid #705536;outline-offset:3px}
.voice-answer{margin-top:24px;padding-top:24px;border-top:1px solid #cfc6b8}
.voice-control{display:flex;align-items:center;gap:16px}
.voice-control button{min-height:48px;padding:12px 20px}
.voice-playback{display:grid;gap:12px;margin-top:20px}
.voice-playback audio,.attachment audio{max-width:100%;width:100%;min-width:0}
.attachment:has(audio){flex-wrap:wrap}
.attachment:has(audio)>audio{flex-basis:100%}
@media(min-width:600px){.preference-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.visual-single .preference-options{grid-template-columns:repeat(2,minmax(0,1fr))}.rank-actions{flex-direction:row}.rank-item{padding:16px 20px}.rank-item img{width:72px;height:64px}}

body.keyboard .preference-option:focus-within{outline:2px solid #705536;outline-offset:3px}

/* Door and finish photos retain their full profile. Wood samples fill their cards. */
.style_4 .preference-option img,.style_3 .preference-option img{object-fit:contain;background:#f6f3ec;height:210px;aspect-ratio:auto}
.photo-sources{font-size:13px;text-decoration:underline;padding:4px 0}
.photo-credit-list{padding-left:20px;display:grid;gap:20px}
@media(min-width:600px){.style_4 .preference-option img,.style_3 .preference-option img{height:240px}}

.choice-description{display:block;padding:0 16px 16px;color:var(--muted,#665b4c);font-size:13px;line-height:1.5}

.bundle-field{margin:0 0 28px;min-width:0}.bundle-field h2{font:600 17px/1.4 system-ui;margin:0 0 12px}.bundle-field .capture-label{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}.bundle-field .field{margin:0}.bundle-field fieldset{min-width:0}.bundle-field .visual-preferences{margin:0}.bundle-field .preference-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bundle-field .preference-option{min-height:58px}.optional-details{padding:12px 0;text-decoration:underline;text-underline-offset:4px}.reuse-controls{display:flex;gap:12px;flex-wrap:wrap;margin:0 0 24px}.reuse-controls:empty{display:none}.reuse-controls p{width:100%;margin:0}.reuse-address{margin:0 0 14px;white-space:normal;text-align:left}.bundle-field textarea{min-height:100px}
@media(min-width:700px){.bundle-field .preference-options{grid-template-columns:repeat(3,minmax(0,1fr))}}

.bundle-field .preference-options{margin:0}.bundle-field .radio-options{margin:0}

.bundle-field .radio-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bundle-field .radio-options label{min-width:0;white-space:normal;min-height:52px;padding:12px}

/* Contractor setup and jobs share participant spacing and controls. */
.company-start {padding-block:24px 40px}
.company-start .primary {margin-top:24px;min-height:48px}
.company-start .meta {margin-top:20px}
.setup-preview {list-style:none;padding:0;display:grid;gap:20px;margin:32px 0}
.setup-preview li {display:flex;align-items:center;gap:16px}
.setup-preview span,.company-setup-map li>span {display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line,#cec5b6);border-radius:50%;flex-shrink:0}
.company-setup-map {max-width:900px;margin:0 auto 32px}
.company-setup-map ol {list-style:none;padding:0;display:flex;gap:20px;justify-content:space-between}
.company-setup-map li {display:flex;align-items:center;gap:8px;font-size:14px}
.company-setup-map .current>span {background:#705637;color:#fff;border-color:#705637}
.contractor-dashboard .headrow {gap:16px;flex-wrap:wrap}
.job-totals {display:flex;flex-wrap:wrap;gap:16px 28px;padding:20px 0 28px}
.job-totals span {display:flex;align-items:baseline;gap:8px}
.job-totals strong {font-size:24px}
.job-section {margin-bottom:32px}
.job-section>h2 {font:600 20px system-ui;margin:0 0 20px}
.contractor-jobs {display:grid;gap:20px}
.contractor-job {padding:24px;border:1px solid #d1c8b9;border-radius:14px;background:#f8f5ef;min-width:0}
.job-card-title {display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;align-items:start}
.job-card-title h3 {font:600 22px system-ui;margin:0 0 8px;overflow-wrap:anywhere}
.job-card-title p {margin:0}
.job-progress {margin:24px 0 12px}
.job-progress progress {width:100%;height:7px;accent-color:#705637}
.job-progress p {margin:8px 0}
.job-next {padding:20px;border-radius:10px;background:#eee7dc;margin:20px 0}
.job-next>span {font-size:13px;color:#685d4f}
.job-next h4 {font:600 18px system-ui;margin:8px 0 20px}
.job-next button {min-height:48px;width:100%}
.contractor-job>.text-button {margin-top:8px;display:inline-block}
.history-link {margin:12px 0 0 16px;font-size:13px}
.dashboard-note {margin:28px 0 0;max-width:780px;line-height:1.6}
@media(min-width:800px){.contractor-jobs{grid-template-columns:repeat(2,minmax(0,1fr))}.contractor-job{padding:28px}.job-next button{width:auto}}
@media(max-width:480px){.company-setup-map ol{gap:8px}.company-setup-map li{font-size:12px;gap:6px}.company-setup-map li>span{width:24px;height:24px}.contractor-job{padding:20px}.job-next{padding:16px}.history-link{display:block;margin-left:0}.job-totals{gap:12px 20px}.contractor-dashboard .headrow h1{margin-bottom:0}}
.company-details {margin:0 0 28px;display:grid;gap:20px}
.company-details dt {font-size:13px;color:var(--muted);margin-bottom:6px}
.company-details dd {margin:0;overflow-wrap:anywhere}
@media(min-width:700px){.company-details{grid-template-columns:repeat(2,minmax(0,1fr))}}

.job-progress progress{appearance:none;-webkit-appearance:none;border:0;border-radius:8px;overflow:hidden;background:#ded5c6}
.job-progress progress::-webkit-progress-bar{background:#ded5c6;border-radius:8px}
.job-progress progress::-webkit-progress-value{background:#705637;border-radius:8px}
.job-progress progress::-moz-progress-bar{background:#705637;border-radius:8px}
@media(max-width:480px){.contractor-job>.history-link{display:block;margin:12px 0 0}}
