div.treeview{padding:5px;margin-bottom:20px;margin-top:10px}.treeview,.treeview ul{margin:0;padding:0;list-style:none}.treeview ul{margin-left:1em;position:relative}.treeview ul ul{margin-left:.5em}.treeview ul:before{content:"";display:block;width:0;position:absolute;top:0;left:0;border-left:1px solid;bottom:0}.treeview ul li ul:before{bottom:20px}.treeview li{margin:0;padding:0 1em;line-height:40px;position:relative}.treeview ul li:before{content:"";display:block;width:10px;height:0;border-top:1px solid;margin-top:-1px;position:absolute;top:20px;left:0}:host{--cat-automatico:#1976d2;--cat-incluido:#2e7d32;--cat-excluido:#b71c1c;--cat-candidato:#b8860b;--cat-sin-coords:#607d8b;--cat-automatico-bg:#e3f2fd;--cat-incluido-bg:#e8f5e9;--cat-excluido-bg:#ffebee;--cat-candidato-bg:#fff8e1;--cat-sin-coords-bg:#eceff1;--fuera-radio-50:#fef3c7;--fuera-radio-300:#fcd34d;--fuera-radio-700:#b45309;--pending-amber:#f59e0b;--pending-amber-soft:rgba(245,158,11,0.18)}.ubicacion-alojamiento-mapa{min-height:620px;display:flex;flex-direction:column;gap:10px}.map-toolbar{display:flex;justify-content:space-between;align-items:stretch;gap:12px;flex-wrap:wrap}.map-filters,.map-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.map-summary{gap:8px}.map-filters label{margin:0;display:flex;align-items:center;gap:6px}.search-filter{position:relative;display:inline-flex;align-items:center}.search-filter i{position:absolute;left:9px;color:#94a3b8;font-size:12px;pointer-events:none}.map-filters select,.search-filter input[type=text]{min-width:220px;height:31px;padding:4px 8px;border:1px solid #c8d0da;border-radius:4px}.search-filter input[type=text]{padding-left:28px}.map-filters select{min-width:110px}.linked-other-location-filter{max-width:360px;color:#334155;font-size:12px;line-height:1.25}.linked-other-location-filter input[type=checkbox]{margin:0}.category,.origin-badge{display:inline-flex;align-items:center;min-height:22px;padding:2px 8px;border-radius:4px;font-size:12px;font-weight:600;background:#eef3fb;color:#24456f}.category{min-height:20px;max-width:100%;padding:2px 8px;border:1px solid transparent;border-radius:999px;font-size:11px;line-height:1.2;white-space:normal}.summary-metric{display:inline-flex;align-items:baseline;gap:5px;min-height:24px;padding:2px 8px;border:1px solid #d7dde5;border-radius:4px;background:#fff;color:#243244;font-size:12px}.summary-metric strong{color:#1d2733;font-size:14px;font-weight:700}.summary-metric strong,.tabular-nums{font-variant-numeric:tabular-nums}.summary-metric.outside{border-color:#f1d998;background:#fff8e1;color:#7a5a00}.summary-metric.outside strong{color:#6f5200}.alert-fuera{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;background:var(--fuera-radio-50);border:1px solid var(--fuera-radio-300);color:var(--fuera-radio-700);border-radius:4px;font-size:12px;font-weight:600;cursor:pointer;transition:background .12s ease,box-shadow .12s ease;user-select:none;line-height:1.4}.alert-fuera:hover{background:#fde68a}.alert-fuera i.fa-exclamation-triangle{font-size:11px;color:var(--fuera-radio-700)}.alert-fuera .alert-fuera-label{display:inline-flex;align-items:baseline;gap:4px}.alert-fuera.is-active{background:var(--fuera-radio-300);color:#78350f;box-shadow:0 0 0 2px rgba(252,211,77,.35)}.alert-fuera.is-active i.fa-exclamation-triangle{color:#78350f}.alert-fuera .clear-x{width:16px;height:16px;border-radius:50%;background:rgba(120,53,15,.15);display:inline-flex;align-items:center;justify-content:center;font-size:9px;cursor:pointer}.alert-fuera .clear-x:hover{background:rgba(120,53,15,.3)}.pending-changes{margin-left:auto;display:inline-flex;align-items:center;gap:6px;color:#b45309;font-size:12px;font-weight:600;cursor:help;user-select:none}.pending-changes .pending-dot{width:8px;height:8px;border-radius:50%;background:var(--pending-amber);box-shadow:0 0 0 3px var(--pending-amber-soft)}.pending-changes.is-clean{color:#9ca3af;font-weight:500;cursor:default}.pending-changes.is-clean .pending-dot{background:#d1d5db;box-shadow:none}.loading-spinner{width:12px;height:12px;border:2px solid #d7dde5;border-top-color:currentcolor;border-radius:50%;animation:uam-spin .7s linear infinite}@keyframes uam-spin{to{transform:rotate(1turn)}}.map-list.is-loading{opacity:.55;transition:opacity .12s ease}.map-error,.map-warning{padding:8px 10px;border-radius:4px;font-size:13px}.map-error{background:#fbe9e7;color:#9f2f20}.map-warning{background:#fff8e1;color:#7a5a00}.map-status{display:flex;align-items:center;gap:6px}.map-legend{justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid #d7dde5;border-radius:4px;background:#fff}.legend-items,.legend-main,.map-legend{display:flex;align-items:center;flex-wrap:wrap}.legend-items,.legend-main{gap:8px}.legend-title{font-weight:600;color:#1d2733}.legend-note{font-size:12px;color:#637083}.legend-items{flex:1 1 auto}.legend-item{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:2px 8px;border:1px solid #d7dde5;border-radius:4px;font-size:12px;color:#243244;cursor:pointer;font:inherit;line-height:1.2;appearance:none;-webkit-appearance:none;white-space:nowrap;transition:box-shadow .12s ease,border-color .12s ease,background-color .12s ease,opacity .12s ease}.legend-item strong{font-variant-numeric:tabular-nums}.legend-item:hover{box-shadow:0 1px 4px rgba(15,23,42,.14)}.legend-item.is-selected{border-width:2px;font-weight:600;box-shadow:0 0 0 2px hsla(0,0%,100%,.9),0 2px 8px rgba(15,23,42,.22);transform:translateY(-1px)}.legend-item:focus{outline:none;box-shadow:0 0 0 2px rgba(66,133,244,.35)}.legend-item.is-selected:focus{box-shadow:0 0 0 2px currentColor,0 0 0 4px rgba(66,133,244,.2)}.legend-check{font-size:10px;color:currentColor}.legend-item.is-selected .legend-dot{box-shadow:0 0 0 2px #fff,0 0 0 4px currentColor}.legend-item.list-only{opacity:.8}.legend-item.Automatico{background:var(--cat-automatico-bg);border-color:#bbdefb;color:#1565c0}.legend-item.IncluidoManual{background:var(--cat-incluido-bg);border-color:#c8e6c9;color:var(--cat-incluido)}.legend-item.ExcluidoManual{background:var(--cat-excluido-bg);border-color:#ffcdd2;color:var(--cat-excluido)}.legend-item.CandidatoCercano{background:var(--cat-candidato-bg);border-color:#fcd34d;color:var(--cat-candidato)}.legend-dot{width:10px;height:10px;border-radius:50%;border:1px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.12)}.map-body{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:12px;min-height:560px}.map-canvas-wrapper{position:relative;min-height:60vh;height:100%}.map-canvas{min-height:60vh;height:100%;border:1px solid #d7dde5;border-radius:4px;background:#edf1f5}.origin-chip{position:absolute;top:8px;left:8px;z-index:1;display:inline-flex;align-items:center;gap:5px;padding:3px 9px;background:hsla(0,0%,100%,.95);border:1px solid #cbd5e1;border-radius:12px;font-size:11px;color:#475569;backdrop-filter:blur(4px);pointer-events:none;user-select:none}.origin-chip i{color:#64748b;font-size:11px}.origin-chip.is-geocoding{background:rgba(255,248,225,.95);border-color:#ffd56b;color:#8a5a00}.origin-chip.is-geocoding i{color:#b45309}.map-list{min-height:560px;max-height:70vh;overflow:auto;border:1px solid #d7dde5;border-radius:4px;background:#fff;padding:8px}.save-coords{margin-bottom:8px}.empty-list,.loading{padding:12px;color:#607080;text-align:center}.hotel-row{border-bottom:1px solid #edf0f4;padding:9px 4px;cursor:pointer;transition:background .1s ease,box-shadow .1s ease}.hotel-row.selected{background:#eef5ff;box-shadow:inset 3px 0 0 #4f73d9}.hotel-row:hover{background:#f8fbff}.hotel-row.selected:hover{background:#e8f1ff}.hotel-row.category-automatico.selected,.hotel-row.category-automatico.selected:hover,.hotel-row.category-automatico:hover{background:var(--cat-automatico-bg)}.hotel-row.category-automatico.selected{box-shadow:inset 3px 0 0 var(--cat-automatico)}.hotel-row.category-incluido.selected,.hotel-row.category-incluido.selected:hover,.hotel-row.category-incluido:hover{background:var(--cat-incluido-bg)}.hotel-row.category-incluido.selected{box-shadow:inset 3px 0 0 var(--cat-incluido)}.hotel-row.category-excluido.selected,.hotel-row.category-excluido.selected:hover,.hotel-row.category-excluido:hover{background:var(--cat-excluido-bg)}.hotel-row.category-excluido.selected{box-shadow:inset 3px 0 0 var(--cat-excluido)}.hotel-row.category-candidato.selected,.hotel-row.category-candidato.selected:hover,.hotel-row.category-candidato:hover{background:var(--cat-candidato-bg)}.hotel-row.category-candidato.selected{box-shadow:inset 3px 0 0 var(--cat-candidato)}.hotel-row.category-sin-coordenadas.selected,.hotel-row.category-sin-coordenadas.selected:hover,.hotel-row.category-sin-coordenadas:hover{background:var(--cat-sin-coords-bg)}.hotel-row.category-sin-coordenadas.selected{box-shadow:inset 3px 0 0 var(--cat-sin-coords)}.hotel-row.is-fuera-radio.selected,.hotel-row.is-fuera-radio.selected:hover,.hotel-row.is-fuera-radio:hover{background:#f8fbff;box-shadow:none}.hotel-row-header{display:flex;align-items:flex-start;gap:8px}.hotel-main{display:flex;flex-direction:column;flex:1 1 auto;gap:2px;min-width:0}.hotel-main strong{font-size:13px;line-height:1.25;color:#1d2733;overflow-wrap:anywhere}.hotel-main span,.hotel-meta{font-size:12px;color:#637083}.hotel-address{line-height:1.25;overflow-wrap:anywhere}.hotel-meta{gap:6px;flex-wrap:wrap;margin-top:6px}.hotel-actions,.hotel-meta{display:flex;align-items:center}.hotel-actions{flex:0 0 auto;gap:4px;justify-content:flex-end}.action-btn{width:26px;height:24px;padding:0;border:1px solid transparent;background:transparent;border-radius:3px;cursor:pointer;color:#94a3b8;display:inline-flex;align-items:center;justify-content:center;transition:all .1s ease}.action-btn i{font-size:11px;line-height:1}.action-btn:hover:not(:disabled){border-color:#d1d5db;background:#fff}.hotel-row.selected .action-btn{border-color:#e2e8f0;background:#fff;color:#475569}.action-btn-include:hover:not(:disabled){background-color:#2e7d32;color:#fff;border-color:#2e7d32}.action-btn-edit:hover:not(:disabled){background-color:#4f73d9;color:#fff;border-color:#4f73d9}.action-btn-exclude:hover:not(:disabled){background-color:#b71c1c;color:#fff;border-color:#b71c1c}.action-btn-clear:hover:not(:disabled){background:#6b7280;color:#fff;border-color:#6b7280}.action-btn:disabled{opacity:.4;cursor:not-allowed}@media (hover:none){.action-btn{border-color:#e2e8f0;background:#fff;color:#64748b}}.outside-radius{min-height:22px;border-radius:4px;background:var(--fuera-radio-50);color:var(--fuera-radio-700);border:1px solid var(--fuera-radio-300);font-size:12px}.other-location-chip,.outside-radius{display:inline-flex;align-items:center;padding:2px 8px;font-weight:600}.other-location-chip{min-height:20px;max-width:100%;border-radius:999px;border:1px solid #d6b656;background:#fff8e1;color:#7a5a00;font-size:11px;line-height:1.2;white-space:normal}.category.Automatico,.category.category-automatico{background:var(--cat-automatico-bg);border-color:var(--cat-automatico);color:var(--cat-automatico)}.category.category-incluido,.category.IncluidoManual{background:var(--cat-incluido-bg);border-color:var(--cat-incluido);color:var(--cat-incluido)}.category.category-excluido,.category.ExcluidoManual{background:var(--cat-excluido-bg);border-color:var(--cat-excluido);color:var(--cat-excluido)}.category.CandidatoCercano,.category.category-candidato{background:var(--cat-candidato-bg);border-color:var(--cat-candidato);color:var(--cat-candidato)}.category.category-sin-coordenadas,.category.SinCoordenadas{background:var(--cat-sin-coords-bg);border-color:var(--cat-sin-coords);color:var(--cat-sin-coords)}.pagination-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 2px 2px;font-size:12px}@media (max-width:1000px){.map-body{grid-template-columns:1fr}.map-list{max-height:none}}