/* PV Valorador Inmobiliario v1.2.0 */

.pv-valorador { max-width: 860px; margin: 0 auto; font-family: 'League Spartan', sans-serif; }

/* Pasos */
.pv-val-steps { display: flex; border: 1px solid #E5E5E5; border-radius: 8px; overflow: hidden; margin-bottom: 1.75rem; }
.pv-val-step { flex: 1; padding: 10px 6px; font-size: 12px; text-align: center; background: #F8F4F0; color: #888780; border-right: 1px solid #E5E5E5; transition: background .2s, color .2s; }
.pv-val-step:last-child { border-right: none; }
.pv-val-step.active { background: #fff; color: #2C3E50; font-weight: 600; }
.pv-val-step.done   { background: #EAF3DE; color: #3B6D11; }

/* Paneles */
.pv-val-panel { display: none; }
.pv-val-panel.active { display: block; }

/* Campos */
.pv-val-field { margin-bottom: 1.1rem; }
.pv-val-field label { display: block; font-size: 13px; color: #555; margin-bottom: 5px; font-weight: 500; }
.pv-val-field input,
.pv-val-field select,
.pv-val-field textarea { width: 100%; padding: 10px 12px; border: 1px solid #E5E5E5; border-radius: 6px; font-size: 15px; font-family: 'League Spartan', sans-serif; background: #fff; color: #2C3E50; transition: border-color .2s; box-sizing: border-box; }
.pv-val-field textarea { resize: vertical; min-height: 80px; }
.pv-val-field input:focus, .pv-val-field select:focus, .pv-val-field textarea:focus { outline: none; border-color: #6FAE70; }
.pv-required { color: #D85A30; }
.pv-optional { font-size: 11px; color: #888780; font-weight: 400; }
.pv-val-hint  { font-size: 12px; color: #888780; margin: -4px 0 12px; }

.pv-val-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 600px) { .pv-val-grid2 { grid-template-columns: 1fr; } }

/* Autocomplete */
.pv-val-addr-wrap { position: relative; }
.pv-val-sug { position: absolute; top: calc(100% + 3px); left: 0; right: 0; background: #fff; border: 1px solid #E5E5E5; border-radius: 8px; z-index: 100; max-height: 220px; overflow-y: auto; box-shadow: 0 4px 16px rgba(0,0,0,.08); display: none; }
.pv-val-sug-item { padding: 10px 14px; cursor: pointer; border-bottom: 1px solid #F0F0F0; font-size: 14px; line-height: 1.4; }
.pv-val-sug-item:last-child { border-bottom: none; }
.pv-val-sug-item:hover, .pv-val-sug-item.selected { background: #F8F4F0; }
.pv-val-sug-main { font-weight: 500; color: #2C3E50; }
.pv-val-sug-sub  { font-size: 11px; color: #888780; margin-top: 1px; }

/* Tarjeta Catastro */
.pv-val-cat-card { background: #F8F4F0; border: 1px solid #E5E5E5; border-radius: 8px; padding: 14px 16px; margin: 14px 0; display: none; }
.pv-val-cat-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.pv-val-cat-title { font-size: 13px; font-weight: 600; color: #2C3E50; }
.pv-val-pill { font-size: 11px; font-weight: 600; padding: 2px 10px; border-radius: 99px; background: #EAF3DE; color: #3B6D11; }
.pv-val-pill.loading { background: #F8F4F0; color: #888780; }
.pv-val-pill.warn    { background: #FAEEDA; color: #854F0B; }
.pv-val-cat-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pv-val-cat-item label { font-size: 10px; color: #888780; text-transform: uppercase; letter-spacing: .05em; display: block; margin-bottom: 2px; }
.pv-val-cat-item span  { font-size: 14px; font-weight: 500; color: #2C3E50; }

/* Extras */
.pv-val-extras { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.pv-val-extras label { display: flex; align-items: center; gap: 6px; font-size: 14px; color: #2C3E50; cursor: pointer; font-weight: 400; }

/* Info box */
.pv-val-info-box { background: #EAF3DE; border-radius: 8px; padding: 14px 16px; margin-bottom: 1.25rem; font-size: 14px; color: #3B6D11; line-height: 1.55; }
.pv-val-info-box strong { font-weight: 600; }

/* Botones */
.pv-val-actions { display: flex; gap: 12px; margin-top: 1.5rem; }
.pv-val-btn { flex: 1; padding: 12px 20px; border: none; border-radius: 6px; font-size: 15px; font-family: 'League Spartan', sans-serif; font-weight: 600; cursor: pointer; transition: opacity .2s; }
.pv-val-btn:disabled { opacity: .45; cursor: not-allowed; }
.pv-val-btn-pri { background: #6FAE70; color: #fff; flex: 2; }
.pv-val-btn-pri:hover:not(:disabled) { background: #5a9961; }
.pv-val-btn-sec { background: #F8F4F0; color: #2C3E50; }
.pv-val-btn-sec:hover { background: #EEEDEA; }

/* Error */
.pv-val-error { background: #FBEAF0; color: #72243E; padding: 10px 14px; border-radius: 6px; font-size: 13px; margin-bottom: 1rem; display: none; }

/* Spinner */
.pv-val-spin { display: inline-block; width: 12px; height: 12px; border: 2px solid #E5E5E5; border-top-color: #888780; border-radius: 50%; animation: pv-spin .7s linear infinite; margin-right: 5px; vertical-align: -1px; }
@keyframes pv-spin { to { transform: rotate(360deg); } }

/* Confirmación */
.pv-val-confirm { text-align: center; padding: 2rem 1rem; }
.pv-val-confirm-icon { font-size: 48px; color: #6FAE70; margin-bottom: 16px; }
.pv-val-confirm h3 { font-size: 24px; font-weight: 600; color: #2C3E50; margin-bottom: 12px; font-family: 'League Spartan', sans-serif; }
.pv-val-confirm p { font-size: 16px; color: #555; line-height: 1.6; }

/* Loading overlay envío */
.pv-val-sending { opacity: .6; pointer-events: none; }
