.gkpc-configurator,
.gkpc-overview {
    color: var(--gkpc-text, #111111);
    font: inherit;
    box-sizing: border-box;
}
.gkpc-configurator *,
.gkpc-overview * { box-sizing: border-box; }

.gkpc-configurator {
    margin: 1.5rem 0 2rem;
    border: 2px solid var(--gkpc-border, #eeeeee);
    border-radius: var(--gkpc-radius, 18px);
    background: var(--gkpc-surface, #ffffff);
    overflow: hidden;
    box-shadow: 0 10px 28px rgba(0,0,0,.08);
}

/* Schaltflächen bewusst stark gekapselt, damit das Shop-Theme sie nicht blau färbt. */
.gkpc-configurator button.button,
.gkpc-configurator .button,
.gkpc-overview .button {
    appearance: none;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--gkpc-primary, #d80000) !important;
    color: #ffffff !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    padding: 12px 22px !important;
    box-shadow: 0 8px 18px rgba(216,0,0,.24);
    cursor: pointer;
    transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.gkpc-configurator button.button:hover,
.gkpc-configurator .button:hover,
.gkpc-overview .button:hover {
    background: var(--gkpc-accent, #111111) !important;
    color: #ffffff !important;
    transform: translateY(-1px);
}
.gkpc-configurator button.button:disabled,
.gkpc-configurator .button:disabled {
    opacity: .45;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.gkpc-step-nav {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    background: #ffffff;
    border-bottom: 1px solid var(--gkpc-border, #eeeeee);
}
.gkpc-step-link {
    appearance: none;
    border: 0 !important;
    border-right: 1px solid var(--gkpc-border, #eeeeee) !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    color: #333333 !important;
    min-height: 74px;
    padding: 12px 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    cursor: pointer;
    box-shadow: none !important;
}
.gkpc-step-link:last-child { border-right: 0 !important; }
.gkpc-step-link span {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: inline-grid;
    place-items: center;
    background: #f4f4f4;
    border: 2px solid #dddddd;
    color: #333333;
    font-weight: 900;
}
.gkpc-step-link.is-active {
    background: var(--gkpc-primary, #d80000) !important;
    color: #ffffff !important;
}
.gkpc-step-link.is-active span {
    background: #ffffff;
    border-color: #ffffff;
    color: var(--gkpc-primary, #d80000);
}
.gkpc-step-link.is-complete {
    background: #111111 !important;
    color: #ffffff !important;
}
.gkpc-step-link.is-complete span {
    background: #ffffff;
    border-color: #ffffff;
    color: #111111;
}

.gkpc-step-panel { display: none; padding: clamp(18px, 3vw, 36px); }
.gkpc-step-panel.is-active { display: block; }
.gkpc-section-heading { margin-bottom: 24px; }
.gkpc-section-heading h3 { margin: 3px 0 8px; font-size: clamp(1.35rem, 2.5vw, 2rem); color: #111111; font-weight: 900; }
.gkpc-section-heading p { margin: 0; max-width: 850px; color: #555555; line-height: 1.6; }
.gkpc-kicker { color: var(--gkpc-primary, #d80000); font-weight: 900; text-transform: uppercase; font-size: .78rem; letter-spacing: .08em; }

.gkpc-quantity-grid,
.gkpc-variation-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(165px, 1fr));
    gap: 16px;
}
.gkpc-quantity-card,
.gkpc-variation-card {
    appearance: none;
    width: 100%;
    min-width: 0;
    border: 2px solid var(--gkpc-border, #eeeeee) !important;
    border-radius: var(--gkpc-radius, 18px) !important;
    background: #ffffff !important;
    color: #111111 !important;
    padding: 18px !important;
    text-align: left;
    cursor: pointer;
    box-shadow: 0 8px 22px rgba(0,0,0,.07) !important;
    transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.gkpc-quantity-card:hover,
.gkpc-variation-card:hover {
    transform: translateY(-3px);
    border-color: var(--gkpc-primary, #d80000) !important;
    box-shadow: 0 13px 28px rgba(0,0,0,.12) !important;
}
.gkpc-quantity-card.is-selected,
.gkpc-variation-card.is-selected {
    border-color: var(--gkpc-primary, #d80000) !important;
    box-shadow: 0 0 0 4px rgba(216,0,0,.12), 0 12px 28px rgba(0,0,0,.10) !important;
    background: #fff7f7 !important;
}
.gkpc-quantity-card strong,
.gkpc-variation-card strong { display: block; color: #111111; font-size: 1.05rem; font-weight: 900; }
.gkpc-quantity-price,
.gkpc-variation-price { display: flex !important; flex-direction: column; gap: 2px; margin-top: 10px !important; color: #333333 !important; }
.gkpc-quantity-price b,
.gkpc-variation-price b { color: var(--gkpc-primary, #d80000); font-size: 1.25rem; line-height: 1.1; font-weight: 900; white-space: nowrap; }
.gkpc-quantity-price small,
.gkpc-variation-price small { color: #555555; font-size: .82rem; line-height: 1.2; white-space: nowrap; }
.gkpc-variation-card img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: contain; margin: 0 0 12px; border-radius: 12px; background: #fafafa; }
.gkpc-variation-card.is-disabled { opacity: .45; cursor: not-allowed; }

.gkpc-step-actions { margin-top: 26px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.gkpc-step-actions .button { min-height: 46px; }

.gkpc-designer-layout { display: grid; grid-template-columns: minmax(270px, 350px) minmax(0, 1fr); gap: 22px; align-items: start; }
.gkpc-tools { border: 1px solid var(--gkpc-border, #eeeeee); border-radius: var(--gkpc-radius, 18px); background: #f7f7f7; overflow: hidden; box-shadow: 0 8px 22px rgba(0,0,0,.06); }
.gkpc-tool-tabs { display: flex; flex-wrap: wrap; border-bottom: 1px solid var(--gkpc-border, #eeeeee); background: #ffffff; }
.gkpc-tool-tab {
    flex: 1 1 auto;
    border: 0 !important;
    border-right: 1px solid var(--gkpc-border, #eeeeee) !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    color: #111111 !important;
    padding: 13px 9px;
    cursor: pointer;
    font-weight: 900;
    box-shadow: none !important;
}
.gkpc-tool-tab:not(.is-active) { background: #ffffff !important; color: #111111 !important; border-color: var(--gkpc-border, #eeeeee) !important; }
.gkpc-tool-tab:not(.is-active):hover, .gkpc-tool-tab:not(.is-active):focus-visible { background: #f3f3f3 !important; color: #111111 !important; outline: 3px solid rgba(216,0,0,.18); outline-offset: -3px; }
.gkpc-tool-tab.is-active { background: var(--gkpc-primary, #d80000) !important; color: #ffffff !important; }
.gkpc-tool-panel { display: none; padding: 16px; }
.gkpc-tool-panel.is-active { display: block; }
.gkpc-tool-panel label { display: block; font-weight: 700; margin-bottom: 12px; color: #222222; }
.gkpc-tool-panel input[type="search"],
.gkpc-tool-panel textarea,
.gkpc-tool-panel select { width: 100%; margin-top: 5px; border: 1px solid #cccccc; border-radius: 8px; background: #ffffff; color: #111111; min-height: 42px; }
body .gkpc-configurator select.gkpc-font-family,
body .gkpc-configurator select.gkpc-font-family option {
    background-color: #ffffff !important;
    color: #111111 !important;
    -webkit-text-fill-color: #111111 !important;
    opacity: 1 !important;
    text-shadow: none !important;
}
.gkpc-inline-fields { display: grid; grid-template-columns: 1fr 82px; gap: 10px; align-items: end; }
.gkpc-text-engraving .gkpc-inline-fields { grid-template-columns: 1fr; }
.gkpc-inline-fields input[type="color"] { width: 100%; min-height: 42px; }
.gkpc-font-sample { margin: -2px 0 12px; padding: 11px 12px; border: 1px dashed #c8c8c8; border-radius: 8px; background: #ffffff; font-size: 1.15rem; color: #111111; }
.gkpc-font-picker { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; margin: 8px 0 12px; max-height: 230px; overflow: auto; }
.gkpc-font-choice { appearance: none; border: 1px solid #d8d8d8 !important; border-radius: 8px !important; background: #fff !important; color: #111 !important; padding: 9px 8px !important; min-height: 42px; font-size: 1rem; cursor: pointer; box-shadow: none !important; text-align: left; }
.gkpc-font-choice:hover { border-color: var(--gkpc-primary,#d80000) !important; }
.gkpc-font-choice.is-active { border-color: var(--gkpc-primary,#d80000) !important; box-shadow: 0 0 0 2px rgba(216,0,0,.14) !important; background: #fff6f6 !important; }
.gkpc-scale-control { display: grid; grid-template-columns: minmax(0,1fr) 82px; gap: 10px; align-items: center; }
.gkpc-scale-control input[type='number'] { width: 100%; min-height: 38px; border: 1px solid #ccc; border-radius: 8px; padding: 6px 8px; }

.gkpc-design-filters { display: flex; flex-wrap: wrap; gap: 5px; margin: 10px 0; }
.gkpc-design-filters span { background: #ffffff; border: 1px solid #dddddd; border-radius: 999px; padding: 4px 9px; font-size: .75rem; }
.gkpc-design-gallery { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; max-height: 420px; overflow: auto; }
.gkpc-design-card { border: 2px solid #eeeeee !important; border-radius: 12px !important; background: #ffffff !important; padding: 8px !important; cursor: pointer; color: #111111 !important; box-shadow: 0 4px 12px rgba(0,0,0,.05) !important; }
.gkpc-design-card:hover { border-color: var(--gkpc-primary, #d80000) !important; }
.gkpc-design-card img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; display: block; background: #ffffff; }
.gkpc-design-card span { display: block; font-size: .8rem; line-height: 1.3; margin-top: 7px; font-weight: 800; }
.gkpc-empty { grid-column: 1 / -1; color: #777777; }

.gkpc-upload-drop { border: 2px dashed #c8c8c8; border-radius: 14px; padding: 25px 14px; text-align: center; cursor: pointer; background: #ffffff; }
.gkpc-upload-drop:hover { border-color: var(--gkpc-primary, #d80000); }
.gkpc-upload-drop input { position: absolute; opacity: 0; pointer-events: none; }
.gkpc-upload-drop strong, .gkpc-upload-drop span { display: block; }
.gkpc-upload-drop span { margin-top: 5px; color: #666666; font-size: .85rem; }
.gkpc-upload-status { margin-top: 10px; font-size: .85rem; }
.gkpc-upload-status.is-warning { color: #8b1515; font-weight: 800; }

.gkpc-object-tools { border-top: 1px solid var(--gkpc-border, #eeeeee); padding: 16px; background: #ffffff; }
.gkpc-object-tools h4 { margin: 0 0 10px; color: #111111; font-weight: 900; }
.gkpc-object-tools label { display: block; margin-top: 11px; font-weight: 700; }
.gkpc-object-tools input[type="range"] { width: 100%; accent-color: var(--gkpc-primary, #d80000); }
.gkpc-object-buttons, .gkpc-history-buttons { display: flex; flex-wrap: wrap; gap: 7px; }
.gkpc-object-buttons .button, .gkpc-history-buttons .button { flex: 1 1 auto; padding: 10px 12px !important; border-radius: 10px !important; }
.gkpc-history-buttons { margin-top: 12px; }

.gkpc-stage-column { min-width: 0; }
.gkpc-surface-tabs { display: flex; gap: 7px; margin-bottom: 8px; }
.gkpc-surface-tab { border: 2px solid var(--gkpc-border, #eeeeee) !important; background: #ffffff !important; color: #111111 !important; border-radius: 999px !important; padding: 9px 16px; cursor: pointer; font-weight: 900; box-shadow: none !important; }
.gkpc-surface-tab.is-active { background: var(--gkpc-primary, #d80000) !important; color: #ffffff !important; border-color: var(--gkpc-primary, #d80000) !important; }
.gkpc-stage-wrap {
    width: 100%;
    padding: 14px;
    display: flex;
    justify-content: center;
    align-items: center;
    overflow: auto;
    background: repeating-conic-gradient(#e7e7e7 0 25%, #f7f7f7 0 50%) 50% / 22px 22px;
    border: 1px solid var(--gkpc-border, #eeeeee);
    border-radius: var(--gkpc-radius, 18px);
}
.gkpc-canvas { display: block; max-width: 100%; height: auto !important; aspect-ratio: var(--gkpc-surface-ratio, auto); border: 1px solid #999999; box-shadow: 0 5px 24px rgba(0,0,0,.14); touch-action: none; cursor: crosshair; background: transparent; }
.gkpc-canvas-loading { position: absolute; background: rgba(255,255,255,.9); padding: 10px 14px; border-radius: 8px; }
.gkpc-stage-meta { display: flex; justify-content: space-between; gap: 15px; flex-wrap: wrap; margin-top: 10px; font-size: .9rem; color: #555555; }
.gkpc-stage-options { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.gkpc-stage-options label { margin: 0; }
.gkpc-stage-options .button { padding: 8px 14px !important; }
.gkpc-second-surface-choice { margin-top: 12px; padding: 14px; border: 1px solid #dddddd; border-radius: 14px; background: #f7f7f7; }

.gkpc-summary,
.gkpc-customer-notes,
.gkpc-legal-confirmations { margin-top: 22px; border: 1px solid var(--gkpc-border, #eeeeee); border-radius: var(--gkpc-radius, 18px); padding: 18px; background: #ffffff; }
.gkpc-summary h4 { margin-top: 0; color: #111111; font-weight: 900; }
.gkpc-summary dl { margin: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.gkpc-summary dl div { background: #f7f7f7; border-radius: 12px; padding: 12px; }
.gkpc-summary dt { font-size: .75rem; text-transform: uppercase; color: #666666; }
.gkpc-summary dd { margin: 4px 0 0; font-weight: 900; color: #111111; }
.gkpc-customer-notes textarea { width: 100%; margin-top: 7px; border-radius: 8px; }
.gkpc-legal-confirmations { background: #f7f7f7; }
.gkpc-disclaimer { background: #ffffff; border-left: 6px solid var(--gkpc-primary, #d80000); padding: 14px; margin-bottom: 14px; border-radius: 8px; }
.gkpc-disclaimer p { margin: 5px 0 0; }
.gkpc-legal-confirmations > label { display: block; margin: 11px 0; font-weight: 700; }

.gkpc-status { min-height: 24px; margin-top: 12px; padding: 0; }
.gkpc-status:not(:empty) { padding: 11px 13px; border-radius: 10px; }
.gkpc-status.is-error { background: #ffe8e8; color: #8b1515; }
.gkpc-status.is-success { background: #e7f6eb; color: #146b2d; }
.gkpc-status.is-warning { background: #fff2d9; color: #7c4a00; }
.gkpc-status.is-info { background: #f0f0f0; color: #333333; }
.gkpc-cart-hint { color: #555555; font-size: .88rem; }

.gkpc-form-active .variations { display: none !important; }
.gkpc-form-active:not(.gkpc-no-quantity-step) > .quantity,
.gkpc-form-active:not(.gkpc-no-quantity-step) .woocommerce-variation-add-to-cart > .quantity { position: absolute !important; left: -9999px !important; opacity: 0 !important; pointer-events: none !important; }
body.gkpc-active-product form.cart.gkpc-form-active .single_add_to_cart_button { display: none !important; }
.gkpc-from-price { display: inline-flex; gap: 5px; align-items: baseline; color: #111111; font-weight: 900; }
.gkpc-from-price small { font-size: .65em; color: #555555; }

/* Produktvorschau */
.gkpc-product-preview-modal[hidden] { display: none !important; }
.gkpc-product-preview-modal { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; padding: 20px; }
.gkpc-product-preview-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.72); }
.gkpc-product-preview-dialog { position: relative; z-index: 1; width: min(900px, calc(100vw - 40px)); max-height: 92vh; overflow: auto; background: #ffffff; border-radius: 22px; padding: 24px; box-shadow: 0 24px 80px rgba(0,0,0,.4); }
.gkpc-product-preview-dialog h3 { margin: 0 45px 18px 0; color: #111111; font-weight: 900; }
.gkpc-product-preview-dialog > p { margin: 16px 0 0; color: #555555; line-height: 1.55; }
.gkpc-product-preview-close { position: absolute; top: 12px; right: 12px; width: 42px; height: 42px; display: grid; place-items: center; padding: 0 !important; border-radius: 999px !important; border: 0 !important; background: #111111 !important; color: #ffffff !important; font-size: 26px; line-height: 1; cursor: pointer; box-shadow: none !important; z-index: 5; overflow: visible; }
.gkpc-product-preview-stage { position: relative; width: 100%; display: inline-block; background: #f5f5f5; overflow: hidden; border-radius: 16px; }
.gkpc-product-preview-image { width: 100%; max-height: 68vh; object-fit: contain; display: block; }
.gkpc-product-preview-design { position: absolute; transform-origin: center center; pointer-events: none; }
body.gkpc-modal-open, body.gkpc-preview-open { overflow: hidden; }

/* Übersicht */
.gkpc-overview { max-width: 1180px; margin: 0 auto; padding: 18px 16px 50px; }
.gkpc-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; align-items: stretch; }
.gkpc-overview-grid.is-single { justify-content: start; }
.gkpc-overview-card { min-width: 0; border: 2px solid #eeeeee; border-radius: 24px; background: #ffffff; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 10px 28px rgba(0,0,0,.10); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.gkpc-overview-card:hover { transform: translateY(-6px); border-color: var(--gkpc-primary, #d80000); box-shadow: 0 18px 38px rgba(0,0,0,.16); }
.gkpc-overview-image { display: flex; align-items: center; justify-content: center; height: 360px; overflow: hidden; background: #ffffff; }
.gkpc-overview-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; display: block; margin: 0 !important; border-radius: 22px 22px 0 0; }
.gkpc-overview-content { padding: 24px 26px 28px; display: flex; flex-direction: column; align-items: center; text-align: center; flex: 1; }
.gkpc-overview-content h2 { margin: 0 0 12px; font-size: 1.8rem; line-height: 1.2; color: #111111; font-weight: 900; }
.gkpc-overview-content h2 a { color: #111111 !important; text-decoration: none !important; }
.gkpc-overview-content p { margin: 0 0 22px; color: #333333; line-height: 1.6; flex: 1; }
.gkpc-overview-content .button { align-self: center; }

@media (max-width: 900px) {
    .gkpc-overview-grid { grid-template-columns: 1fr; }
    .gkpc-overview-image { height: 300px; }
    .gkpc-designer-layout { grid-template-columns: 1fr; }
    .gkpc-tools { order: 2; }
    .gkpc-stage-column { order: 1; }
    .gkpc-summary dl { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
    .gkpc-step-link { min-height: 62px; padding: 8px 5px; flex-direction: column; gap: 3px; font-size: .78rem; }
    .gkpc-step-link span { width: 27px; height: 27px; }
    .gkpc-step-panel { padding: 16px 12px 22px; }
    .gkpc-quantity-grid, .gkpc-variation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .gkpc-quantity-card, .gkpc-variation-card { padding: 12px !important; }
    .gkpc-quantity-price b, .gkpc-variation-price b { font-size: 1.05rem; }
    .gkpc-stage-wrap { padding: 7px; }
    .gkpc-summary dl { grid-template-columns: 1fr; }
    .gkpc-step-actions { align-items: stretch; flex-direction: column; }
    .gkpc-step-actions .button { width: 100%; }
    .gkpc-cart-hint { order: -1; }
    .gkpc-product-preview-dialog { width: calc(100vw - 16px); padding: 18px; border-radius: 16px; }
    .gkpc-product-preview-modal { padding: 8px; }
    .gkpc-product-preview-close { top: 8px; right: 8px; }
    .gkpc-overview { padding: 12px 10px 36px; }
    .gkpc-overview-image { height: 240px; }
    .gkpc-overview-content h2 { font-size: 1.45rem; }
}

/* Beta 4 */
.gkpc-step-nav { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.gkpc-quantity-card[hidden] { display: none !important; }
.gkpc-tool-tab {
    flex: 1 1 0 !important;
    min-width: 0;
    opacity: 1 !important;
    -webkit-text-fill-color: currentColor !important;
    text-shadow: none !important;
}
.gkpc-tool-tab:not(.is-active) {
    background: #ffffff !important;
    color: #111111 !important;
    -webkit-text-fill-color: #111111 !important;
}
.gkpc-tool-tab.is-active {
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.gkpc-autosave-status {
    min-height: 22px;
    margin-top: 9px;
    font-size: .84rem;
    color: #555555;
}
.gkpc-autosave-status.is-success { color: #146b2d; }
.gkpc-autosave-status.is-warning { color: #7c4a00; }
.gkpc-autosave-status.is-info { color: #555555; }
.gkpc-review-surfaces {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 18px;
}
.gkpc-review-surface {
    margin: 0;
    padding: 16px;
    border: 1px solid var(--gkpc-border, #eeeeee);
    border-radius: var(--gkpc-radius, 18px);
    background: #ffffff;
    box-shadow: 0 8px 22px rgba(0,0,0,.06);
}
.gkpc-review-surface h4 { margin: 0 0 10px; color: #111111; font-weight: 900; }
.gkpc-review-surface canvas { display: block; width: 100%; height: auto; max-height: 420px; object-fit: contain; border: 1px solid #aaaaaa; background: transparent; }
.gkpc-review-surface p { margin: 9px 0 0; color: #555555; font-size: .88rem; }
.gkpc-production-review { background: #fff8e5; border-left: 6px solid #dba617; padding: 14px; margin-bottom: 14px; border-radius: 8px; }
.gkpc-production-review p { margin: 5px 0 0; }
.gkpc-cart-button-hint { margin: 12px 0 0; color: #555555; font-size: .88rem; text-align: right; }
body.gkpc-active-product form.cart.gkpc-form-active .single_add_to_cart_button { display: none !important; }
.gkpc-form-active.gkpc-review-active .single_add_to_cart_button { display: block !important; }
.gkpc-final-actions { justify-content: space-between; }
.gkpc-final-actions .gkpc-add-another { background: #111111 !important; }

/* Kundenkonto: Entwürfe und Wiederverwendung */
.gkpc-draft-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; margin-top: 20px; }
.gkpc-draft-card { overflow: hidden; border: 1px solid #eeeeee; border-radius: 18px; background: #ffffff; box-shadow: 0 8px 22px rgba(0,0,0,.07); }
.gkpc-draft-card > img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: contain; background: #f7f7f7; }
.gkpc-draft-card-body { padding: 15px; }
.gkpc-draft-card-body strong, .gkpc-draft-card-body small { display: block; }
.gkpc-draft-card-body small { margin-top: 5px; color: #666666; }
.gkpc-draft-actions, .gkpc-order-reuse-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.gkpc-order-reuse { margin-top: 28px; padding: 18px; border: 1px solid #eeeeee; border-radius: 18px; background: #ffffff; }

@media (max-width: 600px) {
    .gkpc-step-link strong { font-size: .68rem; }
    .gkpc-review-surfaces { grid-template-columns: 1fr; }
    .gkpc-cart-button-hint { text-align: left; }
}
.gkpc-review-details { margin: 10px 0 0; padding-left: 20px; color: #333333; font-size: .88rem; }
.gkpc-review-details li { margin: 4px 0; overflow-wrap: anywhere; }


/* Beta 5: sichere Schriftvorschau, Designsuche und Gravur-Textsteuerung */
body .gkpc-configurator .gkpc-font-choice,
body .gkpc-configurator .gkpc-font-choice:hover,
body .gkpc-configurator .gkpc-font-choice:focus,
body .gkpc-configurator .gkpc-font-choice.is-active {
    background-color: #ffffff !important;
    color: #111111 !important;
    -webkit-text-fill-color: #111111 !important;
    opacity: 1 !important;
    text-shadow: none !important;
}
body .gkpc-configurator .gkpc-font-choice.is-active {
    background-color: #fff6f6 !important;
}
.gkpc-design-search { margin-top: 0 !important; }
.gkpc-design-search-help { margin: 6px 0 8px; color: #666666; font-size: .82rem; line-height: 1.35; }
.gkpc-text-color-field[hidden],
.gkpc-engraving-text-note[hidden] { display: none !important; }
.gkpc-engraving-text-note { grid-column: 1 / -1; margin: 0 0 12px; padding: 9px 11px; border-left: 4px solid var(--gkpc-primary,#d80000); background: #f7f7f7; color: #333333; font-size: .86rem; line-height: 1.4; }

/* Beta 5.2: zweite Gestaltungsfläche, kompakte Textsteuerung und Warenkorbvorschau */
.gkpc-transform-controls[hidden] { display: none !important; }
.gkpc-transform-controls label {
    display: block;
    margin: 0 0 12px;
    color: #222222;
    font-weight: 700;
}
.gkpc-transform-controls input[type="range"] {
    width: 100%;
    accent-color: var(--gkpc-primary, #d80000);
}
.gkpc-text-transform-controls {
    margin: 2px 0 12px;
    padding: 12px;
    border: 1px solid #dddddd;
    border-radius: 12px;
    background: #ffffff;
}
.gkpc-text-transform-controls label:last-child { margin-bottom: 0; }
.gkpc-text-transform-controls input:disabled {
    opacity: .48;
    cursor: not-allowed;
}

.gkpc-surface-tabs {
    width: 100%;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    overflow: visible;
}
body .gkpc-configurator .gkpc-surface-tab,
body .gkpc-configurator .gkpc-surface-tab:not(.is-active) {
    flex: 1 1 130px;
    min-width: 0;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    background: #ffffff !important;
    color: #111111 !important;
    -webkit-text-fill-color: #111111 !important;
    opacity: 1 !important;
    text-shadow: none !important;
}
body .gkpc-configurator .gkpc-surface-tab.is-active {
    background: var(--gkpc-primary, #d80000) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    border-color: var(--gkpc-primary, #d80000) !important;
}

.gkpc-cart-design-thumb {
    display: block;
    width: 72px;
    height: 72px;
    object-fit: contain;
    border: 1px solid #dddddd;
    border-radius: 8px;
    background: #ffffff;
}
.gkpc-cart-preview-action { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin: 9px 0 4px; }
.gkpc-cart-inline-preview { display: block; width: 64px; height: 48px; object-fit: contain; border: 1px solid #dddddd; border-radius: 7px; background: #ffffff; }
.gkpc-cart-preview-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none !important;
    appearance: none;
    border: 1px solid var(--gkpc-primary, #d80000) !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: var(--gkpc-primary, #d80000) !important;
    -webkit-text-fill-color: var(--gkpc-primary, #d80000) !important;
    padding: 7px 13px !important;
    font-weight: 800;
    cursor: pointer;
    box-shadow: none !important;
}
.gkpc-cart-preview-button:hover,
.gkpc-cart-preview-button:focus-visible {
    background: var(--gkpc-primary, #d80000) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.gkpc-cart-preview-modal[hidden] { display: none !important; }
.gkpc-cart-preview-modal {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: grid;
    place-items: center;
    padding: 18px;
}
.gkpc-cart-preview-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,.72);
}
.gkpc-cart-preview-dialog {
    position: relative;
    z-index: 1;
    width: min(960px, calc(100vw - 36px));
    max-height: 92vh;
    overflow: auto;
    padding: 24px;
    border-radius: 22px;
    background: #ffffff;
    box-shadow: 0 24px 80px rgba(0,0,0,.4);
}
.gkpc-cart-preview-dialog h3 {
    margin: 0 48px 18px 0;
    color: #111111;
    font-weight: 900;
}
.gkpc-cart-preview-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: #111111 !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}
.gkpc-cart-preview-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 16px;
}
.gkpc-cart-preview-card {
    margin: 0;
    padding: 12px;
    border: 1px solid #dddddd;
    border-radius: 14px;
    background: #fafafa;
}
.gkpc-cart-preview-card img {
    display: block;
    width: 100%;
    max-height: 68vh;
    object-fit: contain;
    background: #ffffff;
}
.gkpc-cart-preview-card figcaption {
    margin-top: 8px;
    color: #333333;
    font-weight: 800;
    text-align: center;
}
body.gkpc-cart-preview-open { overflow: hidden; }

@media (min-width: 901px) {
    .gkpc-stage-column {
        position: sticky;
        top: 24px;
        align-self: start;
    }
}
@media (max-width: 900px) {
    .gkpc-stage-column { position: static; }
}
@media (max-width: 600px) {
    .gkpc-surface-tab { flex-basis: 100%; }
    .gkpc-cart-preview-modal { padding: 8px; }
    .gkpc-cart-preview-dialog {
        width: calc(100vw - 16px);
        padding: 18px;
        border-radius: 16px;
    }
    .gkpc-cart-preview-list { grid-template-columns: 1fr; }
}


/* Beta 6: aktueller Preis, große Designbibliothek, Vorlagen, Design-Service und KI */
.gkpc-current-price {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 8px 18px;
    margin: 0 0 18px;
    padding: 14px 18px;
    border: 1px solid #e3e3e3;
    border-radius: 18px;
    background: #fff;
    color: #111;
}
.gkpc-current-price::before {
    content: "Aktueller Preis";
    flex-basis: 100%;
    color: #555;
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.gkpc-current-unit-price { font-size: clamp(22px, 3vw, 30px); font-weight: 900; color: #111; }
.gkpc-current-total-price { font-size: 15px; font-weight: 800; color: #555; }

.gkpc-design-gallery[data-design-kind] {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
    gap: 12px;
}
.gkpc-design-card {
    position: relative;
    min-width: 0;
    border: 1px solid #dedede;
    border-radius: 16px;
    background: #fff;
    overflow: hidden;
    cursor: pointer;
}
.gkpc-design-card button,
button.gkpc-design-card {
    width: 100%;
    padding: 0;
    text-align: left;
    color: #111;
}
.gkpc-design-card img {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    padding: 8px;
    background: #fafafa;
}
.gkpc-design-card-title { display: block; padding: 9px 10px 11px; font-size: 13px; font-weight: 800; line-height: 1.25; }
.gkpc-design-card.is-locked { cursor: default; }
.gkpc-design-card.is-locked img { opacity: .48; filter: grayscale(.15); }
.gkpc-design-lock {
    position: absolute;
    top: 8px;
    right: 8px;
    padding: 5px 8px;
    border-radius: 999px;
    background: #111;
    color: #fff;
    font-size: 11px;
    font-weight: 800;
}
.gkpc-design-more { margin-top: 14px !important; }
.gkpc-design-more[hidden] { display: none !important; }
.gkpc-panel-intro, .gkpc-small-note { color: #555; font-size: 14px; line-height: 1.5; }

.gkpc-template-customer-fields {
    margin-top: 16px;
    padding: 14px;
    border: 1px solid #ddd;
    border-radius: 16px;
    background: #fafafa;
}
.gkpc-template-field-list { display: grid; gap: 10px; }
.gkpc-template-field-list label { display: grid; gap: 5px; color: #111; font-weight: 800; }
.gkpc-template-field-list input,
.gkpc-template-field-list textarea,
.gkpc-service-form input[type="text"],
.gkpc-service-form textarea,
.gkpc-ai-form input[type="text"],
.gkpc-ai-form textarea,
.gkpc-ai-form select {
    width: 100%;
    max-width: 100%;
    border: 1px solid #ccc;
    border-radius: 12px;
    background: #fff;
    color: #111;
    padding: 10px 12px;
}

.gkpc-service-lock,
.gkpc-ai-lock {
    padding: 16px;
    border: 1px solid #ddd;
    border-radius: 16px;
    background: #fafafa;
}
.gkpc-login-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.gkpc-login-actions a { text-decoration: none; }
.gkpc-service-form,
.gkpc-ai-form { display: grid; gap: 12px; }
.gkpc-service-form > label,
.gkpc-ai-form > label { display: grid; gap: 6px; color: #111; font-weight: 800; }
.gkpc-service-cost,
.gkpc-ai-cost {
    padding: 10px 12px;
    border-radius: 12px;
    background: #f4f4f4;
    color: #111;
    font-weight: 800;
}
.gkpc-service-status,
.gkpc-ai-status { min-height: 22px; margin-top: 8px; font-weight: 700; }
.gkpc-ai-privacy { display: flex !important; align-items: flex-start; gap: 8px !important; font-weight: 600 !important; }
.gkpc-ai-privacy input { margin-top: 4px; }
.gkpc-ai-result {
    margin-top: 14px;
    padding: 12px;
    border: 1px solid #ddd;
    border-radius: 16px;
    background: #fff;
}
.gkpc-ai-result img { display: block; width: 100%; max-height: 420px; object-fit: contain; border-radius: 10px; background: #fafafa; }
.gkpc-ai-result-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.gkpc-tool-tab[hidden], .gkpc-tool-panel[hidden] { display: none !important; }

/* Kundenkonto */
.gkpc-account-balance,
.gkpc-account-service,
.gkpc-ai-library-item,
.gkpc-points-package {
    margin: 0 0 16px;
    padding: 16px;
    border: 1px solid #ddd;
    border-radius: 16px;
    background: #fff;
}
.gkpc-account-balance > strong { display: block; font-size: 26px; color: #111; }
.gkpc-points-packages,
.gkpc-ai-library { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin-bottom: 20px; }
.gkpc-points-package { display: grid; gap: 8px; margin: 0; }
.gkpc-ai-library-item { display: grid; gap: 8px; margin: 0; }
.gkpc-ai-library-item img { width: 100%; aspect-ratio: 1 / 1; object-fit: contain; background: #fafafa; border-radius: 10px; }
.gkpc-service-account-actions textarea { width: 100%; max-width: 720px; }

@media (max-width: 600px) {
    .gkpc-current-price { border-radius: 14px; }
    .gkpc-current-total-price { flex-basis: 100%; }
    .gkpc-design-gallery[data-design-kind] { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gkpc-login-actions > * { flex: 1 1 100%; text-align: center; }
}
.gkpc-design-thumb { position: relative; display: block; }
.gkpc-lock-badge {
    position: absolute;
    left: 7px;
    right: 7px;
    bottom: 7px;
    padding: 5px 7px;
    border-radius: 999px;
    background: rgba(17,17,17,.92);
    color: #fff;
    font-size: 10px;
    font-weight: 800;
    text-align: center;
}
.gkpc-lock-badge[hidden] { display: none !important; }
.gkpc-design-card > span:last-child { display:block; padding:9px 10px 11px; font-size:13px; font-weight:800; line-height:1.25; }
.gkpc-template-customer-field { display: grid; gap: 6px; padding: 10px 0; border-bottom: 1px solid #eee; }
.gkpc-template-customer-field:last-child { border-bottom: 0; }
.gkpc-template-field-options { display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); gap: 8px; }
.gkpc-template-field-options label { font-size: 13px; font-weight: 700; }
.gkpc-template-field-options select,
.gkpc-template-field-options input[type="range"] { width: 100%; }
.gkpc-template-field-help { color: #666; font-size: 12px; }

/* Beta 6.1: verlässliche Sichtbarkeit, Zugriffslogik und KI-/Vorlagen-UX */
.gkpc-service-form[hidden],
.gkpc-ai-form[hidden],
.gkpc-service-lock[hidden],
.gkpc-ai-lock[hidden],
.gkpc-ai-form > label[hidden],
.gkpc-template-customer-fields[hidden],
.gkpc-surface-tabs[hidden],
.gkpc-product-preview-template-editor[hidden],
.gkpc-product-preview-template-box[hidden] { display: none !important; }

.gkpc-login-actions {
    justify-content: center;
    align-items: center;
    gap: 10px;
}
.gkpc-login-actions .button { text-align: center; }
.gkpc-login-actions .gkpc-benefits-link {
    background: #fff !important;
    color: var(--gkpc-primary, #d80000) !important;
    border: 2px solid var(--gkpc-primary, #d80000) !important;
}
.gkpc-ai-note-field small,
.gkpc-ai-background-field small { display: block; color: #666; font-weight: 500; line-height: 1.45; }
.gkpc-ai-background-field > span { display: flex; align-items: flex-start; gap: 8px; }
.gkpc-ai-background-field input { margin-top: 4px; }
.gkpc-buy-points { display: inline-flex !important; margin-top: 10px !important; text-decoration: none !important; }

.gkpc-product-preview-template-editor {
    margin-top: 16px;
    padding: 16px;
    border: 1px solid #ddd;
    border-radius: 16px;
    background: #fafafa;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
.gkpc-product-preview-template-editor h4,
.gkpc-product-preview-template-editor .gkpc-small-note { grid-column: 1 / -1; margin: 0; }
.gkpc-product-preview-template-editor label { display: grid; gap: 5px; font-weight: 800; }
.gkpc-product-preview-template-editor label[hidden] { display: none !important; }
.gkpc-product-preview-template-editor input,
.gkpc-product-preview-template-editor select { width: 100%; }
.gkpc-product-preview-template-box {
    position: absolute;
    z-index: 4;
    border: 2px dashed var(--gkpc-primary, #d80000);
    box-shadow: 0 0 0 1px rgba(255,255,255,.8);
    touch-action: none;
}
.gkpc-product-preview-template-box.is-movable { cursor: move; }
.gkpc-product-preview-resize {
    display: none;
    position: absolute;
    right: -8px;
    bottom: -8px;
    width: 16px;
    height: 16px;
    border: 2px solid #fff;
    border-radius: 50%;
    background: var(--gkpc-primary, #d80000);
    cursor: nwse-resize;
}
.gkpc-product-preview-template-box.is-resizable .gkpc-product-preview-resize { display: block; }

@media (min-width: 901px) {
    .gkpc-stage-column { top: 92px; }
}
@media (max-width: 600px) {
    .gkpc-product-preview-template-editor { grid-template-columns: 1fr; }
    .gkpc-login-actions { flex-direction: column; }
    .gkpc-login-actions > * { width: 100%; }
}
.gkpc-points-package-badge {
    justify-self: start;
    display: inline-flex;
    padding: 4px 9px;
    border-radius: 999px;
    background: #111;
    color: #fff;
    font-size: 12px;
    font-weight: 800;
}

/* Beta 6.1.1: Sticky-Vorschau darf nicht durch einen Overflow-Vorfahren blockiert werden. */
.gkpc-configurator { overflow: visible; }
.gkpc-step-nav { overflow: hidden; border-radius: calc(var(--gkpc-radius, 18px) - 2px) calc(var(--gkpc-radius, 18px) - 2px) 0 0; }

/* Sekundäre Vorteile-Schaltfläche: Shop-Themes dürfen die Schrift nicht weiß überschreiben. */
body .gkpc-configurator .gkpc-login-actions a.button.gkpc-benefits-link,
body .gkpc-configurator .gkpc-login-actions .gkpc-benefits-link {
    background: #fff !important;
    color: var(--gkpc-primary, #d80000) !important;
    border: 2px solid var(--gkpc-primary, #d80000) !important;
    box-shadow: none !important;
}
body .gkpc-configurator .gkpc-login-actions a.button.gkpc-benefits-link:hover,
body .gkpc-configurator .gkpc-login-actions .gkpc-benefits-link:hover {
    background: var(--gkpc-primary, #d80000) !important;
    color: #fff !important;
}

/* Große Vorschau ist ab 6.1.1 zugleich Bearbeitungsfläche. */
.gkpc-product-preview-design { pointer-events: auto; touch-action: none; cursor: crosshair; }
.gkpc-product-preview-template-editor > h4 { grid-column: 1 / -1; margin: 0; }
.gkpc-preview-object-actions { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
.gkpc-preview-object-actions .button { flex: 1 1 160px; }
.gkpc-preview-text-only[hidden], .gkpc-preview-image-only[hidden] { display: none !important; }

/* Kundenbibliotheken: Mehrfachauswahl/Sammellöschung. */
.gkpc-bulk-library-form { margin-top: 14px; }
.gkpc-bulk-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 14px; }
.gkpc-library-select { display: flex; align-items: center; gap: 7px; padding: 8px 10px; font-weight: 800; }
.gkpc-library-select input { width: 18px; height: 18px; }
.gkpc-ai-library-card { position: relative; }
.gkpc-ai-library-card .gkpc-library-select { position: absolute; z-index: 2; top: 8px; left: 8px; border-radius: 999px; background: rgba(255,255,255,.94); }

.gkpc-ai-running-note { margin: 8px 0 12px; padding: 10px 12px; border-radius: 12px; background: #fff7e6; border: 1px solid #f0c86d; color: #222; line-height: 1.45; }
.gkpc-ai-status-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }

@media (max-width: 900px) {
    .gkpc-configurator { overflow: hidden; }
    .gkpc-stage-column { position: static !important; }
}
.gkpc-ai-library-item { position: relative; }
.gkpc-ai-library-item .gkpc-library-select { position: absolute; z-index: 2; top: 8px; left: 8px; border-radius: 999px; background: rgba(255,255,255,.94); }
.gkpc-library-bulk-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 14px; }
.gkpc-ai-library-placeholder { min-height: 130px; display: grid; place-items: center; border: 1px dashed #ccc; border-radius: 14px; background: #fafafa; font-weight: 800; color: #666; }


/* Beta 6.1.2: ruhigere zweireihige Werkzeugnavigation und KI-Aktivität */
.gkpc-tool-tabs {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    padding: 1px;
    background: var(--gkpc-border, #e1e1e1);
    border-bottom: 1px solid var(--gkpc-border, #e1e1e1);
    border-radius: var(--gkpc-radius, 18px) var(--gkpc-radius, 18px) 0 0;
    overflow: hidden;
}
.gkpc-tool-tab {
    min-width: 0 !important;
    min-height: 58px;
    padding: 11px 12px !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    line-height: 1.2;
    white-space: normal;
}
.gkpc-service-rights { display:flex !important; align-items:flex-start; gap:8px !important; font-weight:600 !important; }
.gkpc-service-rights input { margin-top:4px; }
.gkpc-ai-running-note { padding:12px; border-radius:12px; background:#fff7dd; border:1px solid #ead48f; }
.gkpc-ai-running-note p { margin:8px 0 0; }
.gkpc-ai-activity { display:flex; align-items:center; gap:10px; color:#222; }
.gkpc-ai-spinner { width:22px; height:22px; border:3px solid rgba(216,0,0,.22); border-top-color:var(--gkpc-primary,#d80000); border-radius:50%; animation:gkpc-ai-spin .9s linear infinite; flex:0 0 auto; }
@keyframes gkpc-ai-spin { to { transform:rotate(360deg); } }
.gkpc-configurator.is-service-request-mode [data-editor-only],
.gkpc-configurator.is-service-request-mode [data-stage-options],
.gkpc-configurator.is-service-request-mode .gkpc-open-product-preview,
.gkpc-configurator.is-service-request-mode .gkpc-step3-next { display:none !important; }
@media (max-width: 600px) {
    .gkpc-tool-tabs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gkpc-tool-tab { min-height:56px; }
}
@media (prefers-reduced-motion: reduce) { .gkpc-ai-spinner { animation-duration:2.2s; } }

/* Beta 6.1.2: Design-Service-Versionen und robuste Hidden-Zustände */
.gkpc-tool-tab[hidden], .gkpc-tool-panel[hidden] { display:none !important; }
.gkpc-service-versions { display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr)); gap:14px; margin:16px 0; }
.gkpc-service-versions > h4 { grid-column:1/-1; margin:0; }
.gkpc-service-version-card { border:1px solid #ddd; border-radius:14px; padding:12px; background:#fff; }
.gkpc-service-version-card img { width:100%; height:auto; }
.gkpc-service-history .gkpc-admin-box { margin:10px 0; }

/* Beta 6.1.4: klare 2D/3D-Kartenreiter im bestehenden Vorschaufenster. */
.gkpc-preview-view-tabs {
    display: grid;
    grid-template-columns: 1fr;
    gap: 8px;
    margin: 0 52px 16px 0;
    padding: 5px;
    border: 1px solid var(--gkpc-border, #e1e1e1);
    border-radius: 16px;
    background: #f2f2f2;
}
.gkpc-preview-view-tab {
    min-height: 48px;
    padding: 10px 14px !important;
    border: 2px solid transparent !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    color: #111111 !important;
    font-weight: 900 !important;
    line-height: 1.2 !important;
    cursor: pointer;
    box-shadow: none !important;
}
.gkpc-preview-view-tab:hover,
.gkpc-preview-view-tab:focus-visible {
    border-color: var(--gkpc-primary, #d80000) !important;
    color: var(--gkpc-primary, #d80000) !important;
}
.gkpc-preview-view-tab.is-active {
    background: var(--gkpc-primary, #d80000) !important;
    border-color: var(--gkpc-primary, #d80000) !important;
    color: #ffffff !important;
}
.gkpc-preview-view-tab[hidden],
.gkpc-preview-view-pane[hidden],
.gkpc-product-preview-no-photo[hidden] { display: none !important; }
.gkpc-preview-view-tabs.has-3d { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.gkpc-product-preview-no-photo {
    min-height: 280px;
    display: grid;
    place-items: center;
    padding: 28px;
    text-align: center;
    color: #555;
    font-weight: 700;
    line-height: 1.5;
}
.gkpc-3d-viewer {
    display: grid;
    gap: 12px;
    padding: 12px;
    border: 1px solid var(--gkpc-border, #e1e1e1);
    border-radius: 16px;
    background: #fafafa;
}
.gkpc-product-3d-canvas {
    display: block;
    width: 100%;
    height: auto;
    max-height: 68vh;
    border-radius: 14px;
    background: #f5f5f5;
    cursor: grab;
    touch-action: none;
}
.gkpc-product-3d-canvas.is-dragging { cursor: grabbing; }
.gkpc-3d-viewer-controls {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
}
.gkpc-3d-viewer-controls .button { min-height: 42px; }
.gkpc-3d-help,
.gkpc-3d-notice { margin: 0 !important; text-align: center; line-height: 1.45; }
.gkpc-3d-help { color: #333; font-weight: 700; }
.gkpc-3d-notice { color: #666; font-size: 13px; }
@media (max-width: 600px) {
    .gkpc-preview-view-tabs { margin-right: 42px; gap: 5px; padding: 4px; }
    .gkpc-preview-view-tab { min-height: 52px; padding: 8px 9px !important; font-size: 13px !important; }
    .gkpc-3d-viewer { padding: 8px; }
    .gkpc-3d-viewer-controls .button { flex: 1 1 42%; }
}

/* Beta 6.1.4.3: große, robuste Produktvorschau mit sticky Editor und klaren Kartenreitern. */
body .gkpc-configurator .gkpc-preview-view-tabs {
    margin: 0 52px 10px 0 !important;
    background: #f2f2f2 !important;
}
body .gkpc-configurator button.gkpc-preview-view-tab,
body .gkpc-configurator .gkpc-preview-view-tab {
    background: #ffffff !important;
    color: #111111 !important;
    -webkit-text-fill-color: #111111 !important;
    opacity: 1 !important;
    text-shadow: none !important;
}
body .gkpc-configurator button.gkpc-preview-view-tab.is-active,
body .gkpc-configurator .gkpc-preview-view-tab.is-active {
    background: var(--gkpc-primary, #d80000) !important;
    color: #ffffff !important;
    -webkit-text-fill-color: #ffffff !important;
}
.gkpc-preview-info-box {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    margin: 0 0 16px;
    padding: 11px 14px;
    border: 1px solid #d9dfe7;
    border-left: 4px solid var(--gkpc-primary, #d80000);
    border-radius: 12px;
    background: #f8fafc;
    color: #2b3138;
    line-height: 1.45;
    font-size: 14px;
}
.gkpc-preview-info-box strong { flex: 0 0 auto; color: #111; }
.gkpc-product-preview-dialog {
    width: min(1380px, calc(100vw - 32px)) !important;
    max-height: 94vh !important;
    padding: 22px !important;
}
.gkpc-preview-2d-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(310px, 350px);
    gap: 18px;
    align-items: start;
}
.gkpc-preview-canvas-column { min-width: 0; }
.gkpc-product-preview-stage-wrap {
    width: 100%;
    min-height: 0;
    display: flex;
    justify-content: center;
    align-items: flex-start;
    overflow: auto;
    padding: 2px;
    border-radius: 16px;
    background: #f5f5f5;
}
.gkpc-product-preview-stage {
    position: relative !important;
    display: block !important;
    flex: 0 0 auto;
    width: auto;
    max-width: 100%;
    min-height: 0 !important;
    aspect-ratio: auto !important;
    overflow: hidden;
    background: #f5f5f5;
}
.gkpc-product-preview-image {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    max-height: none !important;
    height: auto !important;
    object-fit: contain !important;
}
.gkpc-preview-zoom-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 7px;
    margin: 0 0 10px;
}
.gkpc-preview-zoom-controls .button { min-height: 36px; }
.gkpc-preview-zoom-label { min-width: 52px; text-align: center; font-weight: 800; color: #333; }
.gkpc-product-preview-template-editor {
    position: sticky;
    top: 0;
    margin: 0 !important;
    padding: 14px !important;
    display: block !important;
    max-height: calc(94vh - 165px);
    overflow: auto;
    background: #fafafa;
    border: 1px solid #ddd;
    border-radius: 16px;
}
.gkpc-product-preview-template-editor[hidden] { display: none !important; }
.gkpc-preview-editor-head {
    display: grid;
    gap: 2px;
    margin-bottom: 12px;
    padding-bottom: 10px;
    border-bottom: 1px solid #ddd;
}
.gkpc-preview-editor-head span { color: #666; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.gkpc-preview-editor-head strong { font-size: 16px; color: #111; overflow-wrap: anywhere; }
.gkpc-product-preview-template-editor > label { display: grid; gap: 5px; margin: 0 0 12px; font-weight: 800; }
.gkpc-preview-editor-group { margin: 10px 0; border: 1px solid #dedede; border-radius: 12px; background: #fff; overflow: hidden; }
.gkpc-preview-editor-group > summary { cursor: pointer; padding: 10px 12px; font-weight: 900; color: #111; background: #f5f5f5; }
.gkpc-preview-editor-group-body { display: grid; gap: 10px; padding: 11px; }
.gkpc-preview-editor-group-body label { display: grid; gap: 5px; font-weight: 800; }
.gkpc-preview-layer-actions { grid-template-columns: repeat(2, minmax(0,1fr)); }
.gkpc-preview-layer-actions .button { white-space: normal; min-height: 38px; }
.gkpc-preview-guides-toggle { display: flex !important; grid-template-columns: none !important; align-items: center; gap: 8px !important; margin-top: 10px !important; }
.gkpc-preview-snap-line { position: absolute; z-index: 8; pointer-events: none; background: #1373d1; box-shadow: 0 0 0 1px rgba(255,255,255,.65); }
.gkpc-preview-snap-line-x { top: 0; bottom: 0; width: 1px; }
.gkpc-preview-snap-line-y { left: 0; right: 0; height: 1px; }
.gkpc-product-preview-template-box.is-locked { border-style: solid; border-color: #777; cursor: not-allowed !important; }
.gkpc-product-preview-no-photo { min-height: 240px; }
.gkpc-3d-viewer { width: 100%; }
.gkpc-product-3d-canvas { width: min(100%, 1100px); height: auto; margin-inline: auto; }

.gkpc-price-breakdown { margin-top: 12px; padding-top: 10px; border-top: 1px solid #e1e1e1; }
.gkpc-price-breakdown ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; }
.gkpc-price-breakdown li { display: flex; justify-content: space-between; gap: 12px; }
.gkpc-price-breakdown li strong { color: #111; }
.gkpc-preflight { margin: 16px 0; padding: 14px 16px; border: 1px solid #d9dfe7; border-radius: 14px; background: #f8fafc; }
.gkpc-preflight h4 { margin: 0 0 8px; }
.gkpc-preflight-list { margin: 0; padding-left: 20px; }
.gkpc-preflight-list li { margin: 5px 0; }
.gkpc-preflight.is-ok { border-color: #b8dec5; background: #f2fbf5; }
.gkpc-preflight.is-warning { border-color: #e7c980; background: #fff9ea; }
.gkpc-preflight.is-error { border-color: #e0a0a0; background: #fff3f3; }

.gkpc-draft-recovery[hidden] { display: none !important; }
.gkpc-draft-recovery { position: fixed; inset: 0; z-index: 100050; display: grid; place-items: center; padding: 20px; }
.gkpc-draft-recovery-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.68); }
.gkpc-draft-recovery-dialog { position: relative; z-index: 1; width: min(520px, calc(100vw - 32px)); padding: 24px; border-radius: 18px; background: #fff; box-shadow: 0 22px 70px rgba(0,0,0,.38); }
.gkpc-draft-recovery-dialog h3 { margin-top: 0; }
.gkpc-draft-recovery-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.gkpc-draft-recovery-actions .button { flex: 1 1 190px; text-align: center; }

@media (max-width: 980px) {
    .gkpc-preview-2d-layout { grid-template-columns: 1fr; }
    .gkpc-product-preview-template-editor { position: static; max-height: none; }
}
@media (max-width: 600px) {
    .gkpc-product-preview-dialog { width: calc(100vw - 12px) !important; padding: 14px !important; }
    .gkpc-preview-info-box { display: grid; gap: 3px; }
    .gkpc-preview-layer-actions { grid-template-columns: 1fr; }
    .gkpc-preview-zoom-controls .button { flex: 1 1 auto; }
}
/* Beta 6.1.4.3 – Preisaufschlüsselung/Preflight auf die finale DOM-Struktur abstimmen. */
.gkpc-price-breakdown > strong { display:block; margin-bottom:8px; }
.gkpc-price-breakdown > div { display:flex; align-items:baseline; justify-content:space-between; gap:12px; padding:5px 0; border-bottom:1px solid #eee; }
.gkpc-price-breakdown > div span { color:#555; }
.gkpc-price-breakdown-total { margin-top:5px; padding-top:9px !important; border-top:2px solid #ddd; border-bottom:0 !important; }
.gkpc-price-breakdown-total strong { font-size:1.08em; }
.gkpc-preflight-content ul { margin:8px 0 0; padding-left:20px; }
.gkpc-preflight-content li { margin:5px 0; }
.gkpc-preflight-content li.is-error { color:#9b1c1c; font-weight:700; }
body.gkpc-draft-recovery-open { overflow:hidden; }
/* Zoom darf die eingepasste Ausgangsbreite bewusst überschreiten; der Wrapper scrollt dann. */
.gkpc-product-preview-stage { max-width: none !important; }


/* Beta 6.1.4.4 – schlankes Zeichenwerkzeug */
.gkpc-draw-tools { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 14px; }
.gkpc-draw-tool { min-height:38px; }
.gkpc-draw-tool.is-active { border-color:var(--gkpc-primary,#d80000) !important; box-shadow:0 0 0 1px var(--gkpc-primary,#d80000); font-weight:700; }
.gkpc-draw-settings { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; align-items:end; }
.gkpc-draw-settings label { display:grid; gap:5px; font-weight:600; }
.gkpc-draw-settings input[type=range] { width:100%; }
.gkpc-draw-settings .gkpc-draw-fill-wrap { display:flex; align-items:center; gap:7px; min-height:40px; }
.gkpc-configurator.is-draw-tool-active .gkpc-canvas { cursor:crosshair; }
.gkpc-preview-add-text { margin:0 0 10px; width:100%; }
@media (max-width:720px) { .gkpc-draw-settings { grid-template-columns:1fr; } }

/* Beta 6.1.4.5: robuster rechter Vorschaueditor und Zeichnen nur in der großen Vorschau. */
.gkpc-preview-2d-layout {
    grid-template-columns: minmax(0, 1fr) minmax(360px, 390px);
}
.gkpc-product-preview-template-editor {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    scrollbar-gutter: stable;
    overscroll-behavior: contain;
}
.gkpc-product-preview-template-editor > *,
.gkpc-product-preview-template-editor details,
.gkpc-product-preview-template-editor label,
.gkpc-product-preview-template-editor .gkpc-preview-editor-group-body,
.gkpc-product-preview-template-editor .gkpc-draw-tools,
.gkpc-product-preview-template-editor .gkpc-draw-settings {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    float: none !important;
    clear: both !important;
}
.gkpc-product-preview-template-editor > label {
    width: 100% !important;
    display: grid !important;
    grid-template-columns: minmax(0,1fr) !important;
}
.gkpc-product-preview-template-editor input:not([type="checkbox"]):not([type="color"]),
.gkpc-product-preview-template-editor select,
.gkpc-product-preview-template-editor textarea {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
.gkpc-product-preview-template-editor .gkpc-preview-add-text {
    display: block !important;
    width: 100% !important;
    margin: 0 0 10px !important;
    float: none !important;
    clear: both !important;
}
.gkpc-product-preview-template-editor .gkpc-preview-current-element {
    display: block;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
    word-break: break-word;
}
.gkpc-preview-draw-group .gkpc-small-note { margin: 0 0 4px !important; }
.gkpc-preview-draw-group .gkpc-draw-tools { margin: 2px 0 10px; }
.gkpc-preview-draw-group .gkpc-draw-tool { flex: 1 1 calc(50% - 8px); min-width: 120px; }
.gkpc-preview-draw-group .gkpc-draw-settings { grid-template-columns: 1fr; }
.gkpc-preview-draw-group .gkpc-draw-fill-wrap {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start;
    gap: 8px !important;
    min-height: 34px;
}
.gkpc-preview-draw-group .gkpc-draw-fill-wrap input[type="checkbox"] { width: auto !important; margin: 0 !important; }
.gkpc-configurator.is-preview-drawing .gkpc-product-preview-design { cursor: crosshair !important; }
.gkpc-configurator.is-preview-drawing .gkpc-product-preview-template-box { pointer-events: none !important; }
.gkpc-draw-launcher { position: relative; }
.gkpc-draw-launcher::after { content: "↗"; margin-left: 5px; font-size: .85em; opacity: .65; }
@media (max-width: 1100px) {
    .gkpc-preview-2d-layout { grid-template-columns: 1fr; }
    .gkpc-product-preview-template-editor { position: static; max-height: none; overflow: visible !important; scrollbar-gutter: auto; }
}
@media (max-width: 600px) {
    .gkpc-preview-draw-group .gkpc-draw-tool { flex-basis: 100%; }
}
