/* Autocompletado de direcciones — self-contained, tematizable por tokens del host.
   Cae a defaults si el portal no define las variables. */
.dir-editor { position: relative; }
.dir-ac-wrap { position: relative; }

.dir-ac-menu {
    position: absolute; z-index: 1080; left: 0; right: 0; top: calc(100% + 4px);
    max-height: 320px; overflow-y: auto;
    background: var(--surface, #fff);
    border: 1px solid var(--border, #d0dbe2);
    border-radius: var(--r-md, 8px);
    box-shadow: 0 10px 30px rgba(16, 42, 54, .14);
}
.dir-ac-item {
    display: flex; align-items: center; gap: 8px;
    padding: 9px 12px; cursor: pointer; font-size: 13.5px;
    color: var(--ink, #102a36); line-height: 1.25;
}
.dir-ac-item i { color: var(--profint-green, #146C94); font-size: 15px; flex: 0 0 auto; }
.dir-ac-item:hover, .dir-ac-item.on { background: var(--profint-green-50, #eaf5fa); }
.dir-ac-empty { padding: 10px 12px; font-size: 13px; color: var(--muted, #5f7682); }

/* Grilla de campos del editor de dirección (responsive). */
.dir-grid { display: grid; gap: 10px 12px; grid-template-columns: repeat(12, minmax(0, 1fr)); }
.dir-grid .dir-c-calle  { grid-column: span 8; }
.dir-grid .dir-c-altura { grid-column: span 4; }
.dir-grid .dir-c-piso   { grid-column: span 3; }
.dir-grid .dir-c-depto  { grid-column: span 3; }
.dir-grid .dir-c-cp     { grid-column: span 6; }
.dir-grid .dir-c-loc    { grid-column: span 6; }
.dir-grid .dir-c-prov   { grid-column: span 6; }
.dir-grid .dir-c-search { grid-column: span 12; }
.dir-grid > :is(.dir-c-search, .dir-c-calle, .dir-c-altura, .dir-c-piso, .dir-c-depto, .dir-c-cp, .dir-c-prov, .dir-c-loc) {
    display: grid;
    grid-template-rows: minmax(15px, auto) var(--pf-control-height, 56px);
    align-content: start;
    gap: 3px;
    min-width: 0;
}
.dir-grid :is(label, .pf-field__label) {
    box-sizing: border-box;
    display: block;
    min-height: 15px;
    margin: 0;
    color: var(--pf-control-muted, #61798a);
    font-size: 12px;
    font-weight: 600;
    line-height: 15px;
}
.dir-grid .pf-field__body {
    display: flex;
    align-items: stretch;
    width: 100%;
    height: var(--pf-control-height, 56px);
    min-height: 0;
}
.dir-grid .pf-field__body > *,
.dir-grid :is(.pf-text-control, .ts-wrapper, .form-control, .form-select) {
    box-sizing: border-box;
    min-width: 0;
    width: 100%;
}
.dir-grid :is(.dir-c-search > input, .dir-c-altura > input, .dir-c-piso > input, .dir-c-depto > input, .dir-c-cp > input, .dir-c-prov > .form-select, .dir-c-loc > .form-select, .ts-wrapper > .ts-control) {
    height: var(--pf-control-height, 56px);
    min-height: var(--pf-control-height, 56px);
}
@media (max-width: 640px) {
    .dir-grid > [class*="dir-c-"] { grid-column: span 12 !important; }
}
.dir-catalog-status { grid-column: 1 / -1; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; padding: 8px 10px; border-radius: var(--pf-control-radius,14px); background: var(--bs-tertiary-bg,#f2f7f9); color: var(--pf-control-muted,#61798a); font-size: .875rem; line-height: 1.5; }
.dir-catalog-status[hidden] { display: none; }
.dir-catalog-retry { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: var(--pf-icon-action-size,44px); padding: 8px 12px; border: 1px solid var(--pf-control-border,#c5dbe6); border-radius: 9px; background: var(--pf-control-surface,#fff); color: var(--pf-control-accent,#008eaf); font: inherit; cursor: pointer; }
.dir-catalog-retry:focus-visible { outline: 3px solid var(--pf-control-accent,#008eaf); outline-offset: 2px; }
