.visual-assist{margin:18px 0;padding:20px;border:1px solid #1f4f73;border-radius:18px;background:linear-gradient(180deg,#07111b,#0b1724)}
.visual-head{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;margin-bottom:14px}.visual-head h3{margin:.2rem 0;font-size:1.35rem}.visual-head p{margin:.35rem 0;color:#aab6c5}.ai-pill{white-space:nowrap;padding:7px 10px;border-radius:999px;background:#173c59;color:#78c8ff;font-weight:700;font-size:.8rem}
.visual-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.visual-card{position:relative;border:1px solid #273649;border-radius:14px;background:#0f1927;color:#fff;overflow:hidden;min-height:132px;padding:0;cursor:pointer;text-align:left}.visual-card .art{height:82px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#122a42,#0b1826);font-size:44px}.visual-card .label{display:block;padding:11px 12px;font-weight:800}.visual-card .sub{display:block;padding:0 12px 12px;color:#96a5b8;font-size:.78rem}.visual-card.selected{border-color:#f4bf37;box-shadow:0 0 0 2px rgba(244,191,55,.15)}.visual-card.suggested:after{content:'AI suggestion';position:absolute;top:8px;right:8px;background:#2f7d5b;color:white;border-radius:999px;padding:4px 7px;font-size:.68rem;font-weight:800}
.photo-tools{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:16px}.photo-picker{display:grid;gap:7px}.photo-picker input{padding:10px;background:#0e1724;border:1px solid #2b3b50;border-radius:10px;color:#fff}.photo-picker small{color:#8d9bac}.photo-previews{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px}.photo-previews figure{margin:0;border:1px solid #26384d;border-radius:12px;overflow:hidden;background:#0e1724}.photo-previews img{width:100%;height:82px;object-fit:cover;display:block}.photo-previews figcaption{padding:6px;font-size:.68rem;color:#a9b5c5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ai-result{margin-top:12px;padding:12px;border-radius:12px;background:#0c2232;border-left:3px solid #2aa8ff;color:#b9d8ec}.ai-result.success{border-color:#42c486;background:#0d281f;color:#b9ecd5}.ai-result.warn{border-color:#efb93f;background:#2b2411;color:#f2dfac}
@media(max-width:720px){.visual-head{display:block}.ai-pill{display:inline-block;margin-top:6px}.visual-choices{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-tools{grid-template-columns:1fr}.photo-previews{grid-template-columns:repeat(3,1fr)}}
@media(max-width:420px){.visual-choices{grid-template-columns:1fr 1fr}.visual-card{min-height:120px}.photo-previews{grid-template-columns:repeat(2,1fr)}}


.ai-brief-box{margin-top:16px;padding:18px;border:1px solid #376a8f;border-radius:12px;background:linear-gradient(145deg,#091521,#071018)}
.ai-brief-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.ai-brief-head strong{display:block;font-size:17px;color:#fff}.ai-brief-head small{display:block;color:#aeb9c7;margin-top:5px;line-height:1.45}.concept-label{white-space:nowrap;border:1px solid #e9b83f;color:#e9b83f;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700}.voice-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin:10px 0}.voice-state{font-size:12px;color:#aeb9c7}.voice-state.recording{color:#ffcf62;font-weight:700}.transcript-box{padding:10px 12px;margin:10px 0;border-left:3px solid #58b5ff;background:#0d1925;border-radius:5px;color:#d9e4ef;line-height:1.5;font-size:13px}.hidden{display:none!important}.ai-generate{width:100%;text-align:center;margin-top:8px}.concept-preview{margin-top:14px;border:1px solid #33475b;border-radius:12px;overflow:hidden;background:#050b11}.concept-preview img{display:block;width:100%;max-height:430px;object-fit:cover;background:#111}.concept-warning{display:flex;flex-direction:column;gap:4px;padding:12px 14px;color:#dbe4ec}.concept-warning strong{color:#e9b83f}.concept-warning span{font-size:12px;color:#aeb9c7;line-height:1.45}.concept-actions{display:flex;gap:10px;padding:0 14px 14px;flex-wrap:wrap}.concept-actions .btn{flex:1;text-align:center;min-width:150px}
@media(max-width:600px){.ai-brief-head{flex-direction:column}.concept-label{align-self:flex-start}.voice-row .btn{padding:10px 12px}.concept-actions{flex-direction:column}.concept-actions .btn{width:100%}}

/* V16.2 mobile/dark-theme contrast fix */
.booking-form .btn.outline,
.visual-assist .btn.outline,
#lookupAddress.btn.outline,
#voiceStartBtn.btn.outline,
#voiceStopBtn.btn.outline,
#aiAnalyzeBtn.btn.outline {
  color:#f7fbff !important;
  -webkit-text-fill-color:#f7fbff;
  background:#0b1420 !important;
  border-color:#d2a436 !important;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.02);
}
.booking-form .btn.outline:hover,
.visual-assist .btn.outline:hover,
#lookupAddress.btn.outline:hover {
  background:#132235 !important;
  border-color:#ffd76a !important;
}
.booking-form .btn.outline:disabled,
.visual-assist .btn.outline:disabled,
#voiceStopBtn.btn.outline:disabled,
#aiAnalyzeBtn.btn.outline:disabled {
  color:#9aa7b7 !important;
  -webkit-text-fill-color:#9aa7b7;
  background:#0a1018 !important;
  border-color:#344255 !important;
  opacity:1 !important;
  cursor:not-allowed;
}
.photo-picker input[type="file"]{
  color:#e8edf4 !important;
  background:#0e1724 !important;
}
.photo-picker input[type="file"]::file-selector-button{
  margin-right:10px;
  padding:9px 12px;
  border:1px solid #718096;
  border-radius:6px;
  background:#e7e9ed;
  color:#171a1f;
  font-weight:700;
  cursor:pointer;
}
.photo-picker input[type="file"]::-webkit-file-upload-button{
  margin-right:10px;
  padding:9px 12px;
  border:1px solid #718096;
  border-radius:6px;
  background:#e7e9ed;
  color:#171a1f;
  font-weight:700;
}
.booking-form input,
.booking-form select,
.booking-form textarea,
.ai-brief-box textarea{
  border-color:#44546a;
}
.booking-form input:focus,
.booking-form select:focus,
.booking-form textarea:focus,
.ai-brief-box textarea:focus{
  border-color:#58b5ff;
  box-shadow:0 0 0 2px rgba(88,181,255,.16);
  outline:none;
}

/* V16.3 calculator visual selector */
.calc-visual-wrap{display:grid;gap:10px;padding:14px;border:1px solid #24384d;border-radius:12px;background:#08111c}
.calc-visual-head{display:flex;justify-content:space-between;align-items:end;gap:10px}.calc-visual-head strong{font-size:1rem}.calc-visual-head span{font-size:.78rem;color:#91a1b5}
.calc-visual-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.calc-choice{border:1px solid #2c4055;border-radius:12px;background:#0f1927;color:#fff;padding:0;overflow:hidden;cursor:pointer;text-align:left;min-height:118px}
.calc-choice .thumb{display:grid;place-items:center;height:72px;background:linear-gradient(145deg,#17324d,#0a1522);overflow:hidden}.calc-choice .thumb svg{width:92%;height:64px}
.calc-choice .thumb.emoji{font-size:38px}
.calc-choice b{display:block;padding:9px 10px 3px;font-size:.86rem}.calc-choice small{display:block;padding:0 10px 10px;color:#92a4b7;font-size:.7rem;line-height:1.3}
.calc-choice.selected{border-color:#f4bf37;box-shadow:0 0 0 2px rgba(244,191,55,.16)}
@media(max-width:720px){.calc-visual-choices{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* V16.4 richer visual galleries for all service types */
.visual-card .art.art-svg{height:92px;padding:0;background:#08131f}
.visual-card .art.art-svg svg{width:100%;height:100%;display:block}
.calc-choice .thumb{height:84px;background:#08131f}
.calc-choice .thumb svg{width:100%;height:84px;display:block}
.visual-card,.calc-choice{transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.visual-card:active,.calc-choice:active{transform:scale(.985)}
.visual-card.selected,.calc-choice.selected{box-shadow:0 0 0 2px rgba(244,191,55,.19),0 10px 24px rgba(0,0,0,.22)}
@media(max-width:520px){.visual-card .art.art-svg{height:78px}.calc-choice .thumb,.calc-choice .thumb svg{height:76px}}

/* V17.4 touch/selection clarity fix */
.visual-card,.calc-choice{
  -webkit-tap-highlight-color:transparent;
  touch-action:manipulation;
  transform:none !important;
}
.visual-card:active,.calc-choice:active{
  transform:none !important;
  border-color:#52657a;
  background:#111d2c;
}
.visual-card.selected,.calc-choice.selected{
  position:relative;
  border-color:#f4bf37 !important;
  box-shadow:0 0 0 2px rgba(244,191,55,.28),0 10px 24px rgba(0,0,0,.24) !important;
}
.visual-card.selected::before,.calc-choice.selected::before{
  content:'✓';
  position:absolute;
  top:8px;
  left:8px;
  z-index:4;
  width:26px;
  height:26px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#f4bf37;
  color:#071018;
  font-weight:900;
  font-size:16px;
  box-shadow:0 4px 12px rgba(0,0,0,.35);
}
.visual-card.suggested::after{right:8px}
@media (hover:hover){
  .visual-card:hover,.calc-choice:hover{border-color:#52657a}
  .visual-card.selected:hover,.calc-choice.selected:hover{border-color:#f4bf37}
}
