/* Hallmark · component: configurator · theme: studied-DNA (KBF REY)
 * States: default, hover, focus, active, disabled, loading, error, selected success.
 */
.kbf-tadao-ui { color: var(--color-ink); font-size: 15px; min-width: 0; }
.kbf-tadao-ui .kbf-tadao-title { font-size: 24px; margin: 22px 0 18px; font-style: normal; }
.kbf-tadao-ui .kbf-tadao-step { padding: 0; border: 0; margin: 0 0 22px; min-width: 0; }
.kbf-tadao-ui .kbf-tadao-step legend,
.kbf-tadao-ui .fpf-field legend,
.kbf-tadao-ui .fpf-field .form-row > label { font-size: 16px; font-weight: 700; margin-bottom: 10px; width: 100%; }
.kbf-tadao-ui .kbf-tadao-cards { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.kbf-tadao-ui .kbf-tadao-card { cursor: pointer; position: relative; margin: 0; min-width: 0; }
.kbf-tadao-ui .kbf-tadao-card > span { display: flex; align-items: center; gap: 10px; min-height: 62px; padding: 11px; border: 1px solid var(--color-border); border-radius: var(--radius-control); background: var(--color-paper); }
.kbf-tadao-ui .kbf-tadao-card strong,
.kbf-tadao-ui .kbf-tadao-card small { display: block; }
.kbf-tadao-ui .kbf-tadao-card small { color: var(--color-muted); margin-top: var(--space-xs); font-size: 13px; }
.kbf-tadao-ui .kbf-tadao-card img { width: 54px; height: 54px; object-fit: contain; border-radius: var(--radius-control); }
.kbf-tadao-ui .kbf-tadao-card input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.kbf-tadao-ui .kbf-tadao-card input:checked + span,
.kbf-tadao-ui .fpf-radio-images input:checked + label,
.kbf-tadao-ui .kbf-rt-fabric-swatch[aria-pressed="true"] { border-color: var(--color-accent); outline: 1px solid var(--color-accent); outline-offset: -2px; }
.kbf-tadao-ui .kbf-tadao-card input:checked + span strong::after { content: ' — wybrano'; color: var(--color-focus); font-size: 11px; font-weight: 500; }
.kbf-tadao-ui .kbf-tadao-card input:focus-visible + span,
.kbf-tadao-ui .fpf-radio-images input:focus-visible + label,
.kbf-tadao-ui button:focus-visible,
.kbf-tadao-ui select:focus-visible,
.kbf-tadao-ui input:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
.kbf-tadao-ui .kbf-tadao-card:hover > span,
.kbf-tadao-ui .kbf-rt-fabric-swatch:hover { border-color: var(--color-focus); }
.kbf-tadao-ui .kbf-tadao-card:active > span { background: var(--color-soft); }
.kbf-tadao-ui .kbf-tadao-card input:disabled + span { color: var(--color-muted); background: var(--color-soft); cursor: not-allowed; }
.kbf-tadao-ui table.kbf-tadao-native,
.kbf-tadao-ui .fpf-heading,

.kbf-tadao-ui .optional { display: none !important; }
.kbf-tadao-ui .fpf-fields { margin: 0; padding: 0; border: 0; }
.kbf-tadao-ui .fpf-field { margin-bottom: 22px; }
.kbf-tadao-ui .fpf-field .form-row { margin: 0; padding: 0; }
.kbf-tadao-ui .fpf-radio-images .woocommerce-input-wrapper { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.kbf-tadao-ui .fpf-radio-images .woocommerce-input-wrapper > input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.kbf-tadao-ui .fpf-radio-images .woocommerce-input-wrapper > label { margin: 0; padding: 11px; min-height: 62px; width: auto !important; border: 1px solid var(--color-border); border-radius: var(--radius-control); display: flex; align-items: center; gap: 10px; background: var(--color-paper); cursor: pointer; }
.kbf-tadao-ui .fpf-radio-images label img { width: 54px !important; height: 54px !important; object-fit: contain; margin: 0; }
.kbf-tadao-ui .fpf-radio-images label span { color: var(--color-ink); font-size: 14px; }
.kbf-tadao-ui select,
.kbf-tadao-ui input[type="search"],
.kbf-tadao-ui input[type="number"] { min-height: 44px; border: 1px solid var(--color-border); border-radius: var(--radius-control); width: 100%; background: var(--color-paper); }
.kbf-tadao-ui .kbf-rt-fabric-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.kbf-tadao-ui .kbf-rt-fabric-swatch { background: var(--color-paper); color: var(--color-ink); padding: 7px; border: 1px solid var(--color-border); border-radius: var(--radius-control); box-shadow: none; transform: none; transition: none; }
.kbf-tadao-ui .kbf-rt-fabric-swatch[hidden] { display: none; }
.kbf-tadao-ui .kbf-rt-fabric-swatch span { font-size: 12px; font-weight: 500; }
.kbf-tadao-ui .kbf-rt-fabric-swatch img { aspect-ratio: 1; object-fit: cover; width: 100%; }
.kbf-tadao-ui .kbf-rt-fabric-status,
.kbf-tadao-ui .kbf-tadao-hint { color: var(--color-muted); background: transparent; padding: 0; font-size: 14px; }
.kbf-tadao-ui .kbf-tadao-error,
.kbf-tadao-ui .is-error { color: var(--color-error); }
.kbf-tadao-ui .kbf-tadao-total { display: flex; justify-content: space-between; gap: 20px; align-items: center; margin: 24px 0 14px; padding: 14px 16px; border-radius: var(--radius-control); background: var(--color-soft); }
.kbf-tadao-ui .kbf-tadao-total strong { font-size: 21px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.kbf-tadao-ui .kbf-tadao-reset { background: transparent; color: var(--color-muted); padding: 0; min-height: 44px; text-decoration: underline; text-underline-offset: 3px; }
.kbf-tadao-ui .kbf-tadao-search { margin-bottom: var(--space-md); }
.kbf-tadao-ui [aria-busy="true"] { cursor: progress; }
@media(max-width:680px) {
    .kbf-tadao-ui .kbf-tadao-cards,
    .kbf-tadao-ui .fpf-radio-images .woocommerce-input-wrapper { grid-template-columns: minmax(0,1fr); }
    .kbf-tadao-ui .kbf-rt-fabric-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .kbf-tadao-ui .kbf-tadao-total { flex-wrap: wrap; gap: var(--space-sm); }
}

.kbf-tadao-ui .kbf-tadao-total[hidden] { display: none; }

/* FPF checks visibility when calculating prices: keep native controls measurable. */
.kbf-tadao-ui select.kbf-tadao-native,
.kbf-tadao-ui .fpf-totals { position: absolute !important; width: 1px !important; height: 1px !important; min-height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip-path: inset(50%); white-space: nowrap; border: 0 !important; }
.kbf-tadao-ui .fpf-fields { background: transparent; }
