/* Edge-Importer (/importer) + ScaffoldEntityDialog.
   The definition/mapping/filter fields and the scaffold review grid use native
   <input>/<select>/<textarea> elements — theme them via the Radzen CSS variables (same pattern as
   .forge-report-prop-row in report-designer.css) so light AND dark mode render correctly.
   Checkboxes stay native; Radzen components theme themselves. */

.forge-importer input:not([type="checkbox"]),
.forge-importer select,
.forge-importer textarea,
.forge-importer-scaffold input:not([type="checkbox"]),
.forge-importer-scaffold select,
.forge-importer-scaffold textarea {
    padding: 0.25rem 0.4rem;
    font-size: 0.82rem;
    border: 1px solid var(--rz-input-border-color, var(--rz-border));
    border-radius: 4px;
    background: var(--rz-input-background-color, var(--rz-base-100));
    color: var(--rz-text-color, inherit);
}

.forge-importer input:not([type="checkbox"]):focus,
.forge-importer select:focus,
.forge-importer textarea:focus,
.forge-importer-scaffold input:not([type="checkbox"]):focus,
.forge-importer-scaffold select:focus,
.forge-importer-scaffold textarea:focus {
    outline: none;
    border-color: var(--rz-primary, #1565c0);
}

/* Dropdown popups otherwise keep the OS default (white) in dark mode. */
.forge-importer select option,
.forge-importer-scaffold select option {
    background: var(--rz-base-100);
    color: var(--rz-text-color, inherit);
}

.forge-importer input::placeholder,
.forge-importer textarea::placeholder,
.forge-importer-scaffold input::placeholder,
.forge-importer-scaffold textarea::placeholder {
    color: var(--rz-text-disabled-color, var(--rz-text-tertiary-color));
}

/* Section headings of the three importer panes. */
.forge-importer-h {
    margin: 0 0 0.5rem;
    font-size: 0.8rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--rz-text-secondary-color);
}

/* Sticky table heads (scaffold grid + preview) — opaque themed background while scrolling. */
.forge-importer thead tr,
.forge-importer-scaffold thead tr {
    background: var(--rz-base-100);
}

/* Target-entity dropdown: Branch/Core group tag per option (Radzen DropDown has no
   native grouping — ordered list + tag chips carry the grouping instead). */
.forge-importer-target-tag {
    display: inline-block;
    min-width: 3.4rem;
    text-align: center;
    padding: 0 0.3rem;
    margin-right: 0.35rem;
    font-size: 0.68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-radius: 8px;
    background: var(--mod-entity, #61afef);
    color: #fff;
}

.forge-importer-target-tag.is-core {
    background: var(--mod-erd, #d19a66);
}

/* ── Raw-data preview dialog ("Rohdaten") ────────────────────────────────── */

/* Column headers are click targets for the direct column → target-field assignment. */
.forge-raw-col {
    padding: 0.25rem 0.5rem;
    vertical-align: top;
    cursor: pointer;
    user-select: none;
}

.forge-raw-col:hover {
    background: var(--rz-base-200, var(--rz-base-100));
}

.forge-raw-col.selected {
    background: var(--rz-primary-lighter, var(--rz-base-200));
    box-shadow: inset 0 -2px 0 var(--rz-primary, #1565c0);
}

/* "→ Feld" chip on a directly mapped column; click removes the mapping. */
.forge-raw-map-chip {
    display: inline-block;
    margin: 0.15rem 0.2rem 0 0;
    padding: 0 0.4rem;
    font-size: 0.72rem;
    font-weight: 600;
    border-radius: 8px;
    background: var(--mod-importer, #4db6ac);
    color: #fff;
    cursor: pointer;
}

.forge-raw-map-chip:hover {
    text-decoration: line-through;
    opacity: 0.85;
}

/* Marks a column referenced inside an expression/template mapping (non-direct). */
.forge-raw-expr-hint {
    margin-left: 0.25rem;
    font-size: 0.75rem;
    font-style: italic;
    color: var(--rz-info, #4d9fec);
    cursor: help;
}

/* Assignment bar above the table while a column is selected. */
.forge-raw-assignbar {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.35rem 0.5rem;
    border: 1px solid var(--rz-primary, #1565c0);
    border-radius: 4px;
    background: var(--rz-base-100);
}

.forge-raw-assignbar code {
    font-family: ui-monospace, Consolas, monospace;
    background: var(--rz-base-200, var(--rz-base-100));
    border-radius: 3px;
    padding: 0 0.25rem;
}

/* ── FK-lookup config line under a mapping row ───────────────────────────── */

.forge-importer-lookup {
    display: flex;
    align-items: center;
    gap: 0.3rem;
    margin-top: 0.25rem;
    font-size: 0.78rem;
}

.forge-importer-lookup select {
    max-width: 34%;
    flex: 1;
    min-width: 0;
}

/* ── Auto-map review dialog ──────────────────────────────────────────────── */

/* FK proposal badge under the proposed column ("Lookup: Country.Code"). */
.forge-automap-lookup {
    font-family: var(--rz-font-family);
    font-size: 0.75rem;
    color: var(--rz-info, #4d9fec);
}

/* Confidence chips: High green / Medium amber / Low gray (reason in the tooltip). */
.forge-automap-chip {
    display: inline-block;
    min-width: 6.5rem;
    text-align: center;
    padding: 0 0.4rem;
    font-size: 0.72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-radius: 8px;
    color: #fff;
    cursor: help;
}

.forge-automap-chip.is-high {
    background: var(--rz-success-dark, #2e7d32);
}

.forge-automap-chip.is-medium {
    background: var(--rz-warning-dark, #b28704);
}

.forge-automap-chip.is-low {
    background: var(--rz-text-tertiary-color, #757575);
}

/* ── Quick column picker ("Schnellauswahl") ──────────────────────────────── */

/* One clickable column row: name left (mono), sample value right (ellipsized). */
.forge-quickpick-row {
    display: flex;
    align-items: baseline;
    gap: 0.75rem;
    padding: 0.25rem 0.5rem;
    border-bottom: 1px solid var(--rz-border);
    cursor: pointer;
    font-size: 0.85rem;
}

.forge-quickpick-row:hover {
    background: var(--rz-base-200, var(--rz-base-100));
}

.forge-quickpick-row.current {
    background: var(--rz-primary-lighter, var(--rz-base-200));
    box-shadow: inset 2px 0 0 var(--rz-primary, #1565c0);
}

.forge-quickpick-name {
    flex: 0 0 auto;
    font-family: ui-monospace, Consolas, monospace;
    font-weight: 600;
}

.forge-quickpick-value {
    flex: 1;
    min-width: 0;
    text-align: right;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--rz-text-secondary-color);
}

.forge-quickpick-value.is-null {
    color: var(--rz-text-tertiary-color);
}

/* ── Assisted mapping editor ─────────────────────────────────────────────── */

/* Per-row "open editor" button next to the inline source input. */
.forge-mapping-assist {
    flex: 0 0 auto;
    padding: 0.2rem 0.3rem;
}

/* Click-to-insert palettes (raw columns + operators). Scrolls — legacy tables bring 200+
   columns; the filter input above narrows the set. */
.forge-mapping-palette {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    max-height: 9rem;
    overflow: auto;
}

.forge-mapping-chip {
    padding: 0.1rem 0.45rem;
    font-size: 0.78rem;
    font-family: ui-monospace, Consolas, monospace;
    border: 1px solid var(--rz-border);
    border-radius: 10px;
    background: var(--rz-base-100);
    color: var(--rz-text-color, inherit);
    cursor: pointer;
}

.forge-mapping-chip:hover {
    border-color: var(--rz-primary, #1565c0);
    color: var(--rz-primary, #1565c0);
}

.forge-mapping-chip--op {
    background: var(--rz-base-200, var(--rz-base-100));
}

/* Syntax reference inside the dialog. */
.forge-mapping-help {
    font-size: 0.82rem;
    color: var(--rz-text-secondary-color);
    padding: 0.4rem 0.2rem 0;
}

.forge-mapping-help p {
    margin: 0 0 0.4rem;
}

.forge-mapping-help code {
    background: var(--rz-base-100);
    border: 1px solid var(--rz-border);
    border-radius: 3px;
    padding: 0 0.25rem;
}
