/* v2.0.524 – Opt-in templates, scoped away from all legacy configurators. */
.jh-tpl-admin nav { margin: 16px 0 24px; }
.jh-tpl-field { display: grid; grid-template-columns: minmax(130px,1fr) minmax(100px,1fr) auto; gap: 12px; align-items: center; margin: 12px 0; }
.jh-tpl-field input,.jh-tpl-field select { box-sizing: border-box; width: 100%; min-width: 0; padding: 10px; border: 1px solid #c9d8e6; border-radius: 5px; background: white; }
.jh-tpl-field input[type=checkbox] { width: 20px; }
.jh-tpl-field em { font-style: normal; }
.jh-tpl-admin .jh-tpl-field { max-width: 950px; }
.jh-tpl-table-wrap { overflow-x: auto; margin: 10px 0; }
.jh-tpl-table-wrap input,.jh-tpl-table-wrap select { width: 100%; min-width: 100px; }
.jh-tpl-table-wrap input[type=checkbox] { width: 18px; min-width: 18px; }
.jh-tpl-admin h3 { margin-top: 28px; }
.jh-tpl-admin [type=submit],.jh-tpl-admin .button-primary { margin: 24px 0; }
.jh-tpl-source { max-height: 420px; overflow: auto; background: #fff; padding: 16px; }
/* Template results use the existing frontend components and styles. */
[data-template-mode="1"] [data-jh-pc-cart-form], [data-template-mode="1"] [data-reset-variation] { display: none !important; }
[data-template-mode="1"] [data-template-status][data-state=invalid], [data-template-mode="1"] [data-template-status][data-state=data] { color: #954b00; }
[data-template-mode="1"] [data-template-status], [data-template-mode="1"] [data-product-selection-message], [data-template-mode="1"] [data-auto-selection-status] { white-space: pre-line; }
[data-template-mode="1"] .jh-tpl-selected { border-color: #008f81; }
/* v2.0.538 – Ein Drehmomentbereich, eine Kennung; Min/Max bleiben nebeneinander. */
.jh-pc .jh-pc-clamp-selection .jh-pc-range-controls { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto; gap:10px; align-items:center; grid-column:3 / -1; min-width:0; }
.jh-pc .jh-pc-range-controls label { display:grid; grid-template-columns:auto minmax(0,1fr); gap:6px; align-items:center; min-width:0; margin:0; }
.jh-pc .jh-pc-clamp-selection > .jh-pc-range-field input { width:100%; min-width:0; box-sizing:border-box; grid-column:auto; }
@media(max-width:640px) { .jh-pc .jh-pc-clamp-selection .jh-pc-range-controls { grid-column:1 / -1; } }

/* v2.0.539 – Gemeinsame Spalten für Drehmoment/Schrauber, Beschriftungen über den Zahlen. */
.jh-pc[data-template-mode="1"] .jh-pc-calculation-fields-left > .jh-pc-global-input-field,
.jh-pc[data-template-mode="1"] .jh-pc-clamp-selection > .jh-pc-global-input-field {
    grid-template-columns:60px minmax(0,1fr) minmax(120px,180px) 32px;
}
.jh-pc[data-template-mode="1"] .jh-pc-global-input-field > strong { justify-self:start; white-space:nowrap !important; }
.jh-pc[data-template-mode="1"] .jh-pc-calculation-fields-left + .jh-pc-clamp-selection { margin-top:10px; }
.jh-pc[data-template-mode="1"] .jh-pc-clamp-selection > .jh-pc-range-field,
.jh-pc[data-template-mode="1"] .jh-pc-clamp-selection > div.jh-pc-clamp-tile {
    grid-template-columns:60px minmax(100px,1fr) minmax(240px,370px) 32px;
}
.jh-pc[data-template-mode="1"] .jh-pc-clamp-selection .jh-pc-range-controls,
.jh-pc[data-template-mode="1"] .jh-pc-clamp-selection .jh-pc-clamp-controls {
    grid-column:3; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px;
}
.jh-pc[data-template-mode="1"] .jh-pc-range-controls label { grid-template-columns:minmax(0,1fr); gap:4px; }
.jh-pc[data-template-mode="1"] .jh-pc-range-field > em { align-self:end; padding-bottom:8px; }
.jh-pc[data-template-mode="1"] .jh-pc-clamp-controls select { min-width:0; width:100%; }
@media(max-width:640px) {
    .jh-pc[data-template-mode="1"] .jh-pc-calculation-fields-left > .jh-pc-global-input-field,
    .jh-pc[data-template-mode="1"] .jh-pc-clamp-selection > .jh-pc-global-input-field { grid-template-columns:60px minmax(0,1fr) 32px; }
    .jh-pc[data-template-mode="1"] .jh-pc-global-input-field > span { grid-column:2 / -1; }
    .jh-pc[data-template-mode="1"] .jh-pc-calculation-fields-left > .jh-pc-global-input-field > input,
    .jh-pc[data-template-mode="1"] .jh-pc-clamp-selection > .jh-pc-global-input-field > select { grid-column:1 / 3; width:100%; }
    .jh-pc[data-template-mode="1"] .jh-pc-clamp-selection .jh-pc-range-controls,
    .jh-pc[data-template-mode="1"] .jh-pc-clamp-selection .jh-pc-clamp-controls { grid-column:1 / 3; }
    .jh-pc[data-template-mode="1"] .jh-pc-clamp-controls select { grid-column:auto; }
}

/* v2.0.557 Manual component choices fit existing product panels. */
.jh-pc-override-choice { padding: 16px; }
.jh-pc-override-choice label { display: flex; align-items: center; gap: 12px; }
.jh-pc-override-choice select { flex: 1; min-width: 0; width: 100%; padding: 10px; border: 1px solid #cbd8e5; border-radius: 5px; background: white; color: #00549a; }

/* v2.0.562 Full-width manual choices within existing bundle cards. */
.jh-pc[data-template-mode="1"] .jh-pc-override-choice { grid-column: 1 / -1; width: auto; min-width: 0; box-sizing: border-box; }
.jh-pc[data-template-mode="1"] .jh-pc-manual-replaced-attributes { display: none !important; }

/* v2.0.565 More room for long screwdriver model names on desktop. */
@media (min-width:641px) {
    .jh-pc[data-template-mode="1"] .jh-pc-clamp-selection > div.jh-pc-clamp-tile {
        grid-template-columns:60px minmax(100px,1fr) minmax(280px,500px) 32px;
    }
    .jh-pc[data-template-mode="1"] .jh-pc-clamp-selection .jh-pc-clamp-controls {
        grid-template-columns:minmax(0,2fr) minmax(0,3fr);
    }
}

/* v2.0.566 Distinguish incompatible choices from valid larger alternatives. */
.jh-pc[data-template-mode="1"] .jh-pc-override-choice p[data-state="invalid"],
.jh-pc[data-template-mode="1"] [data-template-status][data-state="invalid"] { background:#fdecea; color:#a4262c; }
.jh-pc[data-template-mode="1"] .jh-pc-override-choice p[data-state="warning"],
.jh-pc[data-template-mode="1"] [data-template-status][data-state="warning"],
.jh-pc[data-template-mode="1"] .jh-pc-auto-selection-status.is-warning { background:#fff3df; color:#8a4b00; }

/* v2.0.573 Image-based screw-case selection */
.jh-pc-case-selection {display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:20px;}
.jh-pc-case-card {display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px;background:#fff;border:1px solid #d5e2ea;border-radius:8px;color:#00569e;text-align:center;}
.jh-pc-case-card img {width:100%;height:130px;object-fit:contain;}
.jh-pc-case-card[aria-current],.jh-pc-case-card:focus-visible {outline:2px solid #008d82;outline-offset:2px;}

/* v2.0.579: Gestapelter Schrauberblock hat Vorrang vor der bisherigen Zweispaltenregel. */
.jh-pc[data-template-mode="1"] .jh-pc-clamp-selection .jh-pc-clamp-controls.jh-pc-tool-stack { grid-template-columns:minmax(0,1fr); }

/* v2.0.601: Eingaben richten sich nach der verfügbaren Spaltenbreite. */
.jh-pc[data-template-mode="1"] .jh-pc-position-list {
    grid-template-columns: minmax(0, 1fr);
    container-type: inline-size;
    container-name: jh-pc-inputs;
}
.jh-pc[data-template-mode="1"] .jh-pc-position-list > *,
.jh-pc[data-template-mode="1"] .jh-pc-global-input-field > span {
    min-width: 0;
}
.jh-pc[data-template-mode="1"] .jh-pc-position-list label.jh-pc-global-input-field {
    grid-template-columns: 60px minmax(0, 1fr) minmax(120px, 180px) 32px;
}
.jh-pc[data-template-mode="1"] .jh-pc-position-list label.jh-pc-global-input-field > input,
.jh-pc[data-template-mode="1"] .jh-pc-position-list label.jh-pc-global-input-field > select {
    min-width: 0;
    max-width: 100%;
    width: 100%;
    box-sizing: border-box;
}
@container jh-pc-inputs (max-width: 600px) {
    .jh-pc[data-template-mode="1"] .jh-pc-position-list .jh-pc-global-input-field {
        grid-template-columns: 44px minmax(0, 1fr) 32px;
    }
    .jh-pc[data-template-mode="1"] .jh-pc-position-list label.jh-pc-global-input-field {
        grid-template-columns: 44px minmax(0, 1fr) 32px;
    }
    .jh-pc[data-template-mode="1"] .jh-pc-position-list .jh-pc-global-input-field > strong { grid-column: 1; grid-row: 1; }
    .jh-pc[data-template-mode="1"] .jh-pc-position-list .jh-pc-global-input-field > span { grid-column: 2 / -1; grid-row: 1; }
    .jh-pc[data-template-mode="1"] .jh-pc-position-list label.jh-pc-global-input-field > input { grid-column: 2; grid-row: 2; }
    .jh-pc[data-template-mode="1"] .jh-pc-position-list label.jh-pc-global-input-field > select { grid-column: 2 / -1; grid-row: 2; }
    .jh-pc[data-template-mode="1"] .jh-pc-position-list .jh-pc-global-input-field > em { grid-column: 3; grid-row: 2; }
    .jh-pc[data-template-mode="1"] .jh-pc-position-list .jh-pc-global-input-field > em:empty { display: none; }
    .jh-pc[data-template-mode="1"] .jh-pc-clamp-selection > div.jh-pc-clamp-tile { grid-template-columns: 44px minmax(0, 1fr) 32px; }
    .jh-pc[data-template-mode="1"] .jh-pc-clamp-selection .jh-pc-clamp-tile > .jh-pc-clamp-controls { grid-column: 2 / -1; grid-row: 2; }
}

/* v2.0.625 – Einheit liegt in derselben Rasterzelle wie die Zahl. */
.jh-pc[data-template-mode="1"] .jh-pc-position-list label.jh-pc-global-input-field:has(>input):has(>em:not(:empty))>input,
.jh-pc[data-template-mode="1"] .jh-pc-position-list label.jh-pc-global-input-field:has(>input):has(>em:not(:empty))>em {grid-column:3/-1;grid-row:1;}
@container jh-pc-inputs (max-width:600px){
.jh-pc[data-template-mode="1"] .jh-pc-position-list label.jh-pc-global-input-field:has(>input):has(>em:not(:empty))>input,
.jh-pc[data-template-mode="1"] .jh-pc-position-list label.jh-pc-global-input-field:has(>input):has(>em:not(:empty))>em {grid-column:2/-1;grid-row:2;}
}

/* v2.0.627 – Automatically required accessories awaiting concrete product assignment. */
.jh-pc-required-accessories { grid-column: 1 / -1; width: 100%; }
.jh-pc-required-accessories[hidden] { display: none !important; }
.jh-pc-required-accessory { padding: 18px 20px; border: 1px solid #b7d9d5; border-radius: 8px; background: #eef8f7; color: #244559; }
.jh-pc-required-accessory label { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 18px; }
.jh-pc-required-accessory input[type="checkbox"] { appearance: auto; width: 18px; height: 18px; margin: 0; accent-color: #008d83; }
.jh-pc-required-accessory-state { display: block; margin: 8px 0; font-weight: 600; color: #006f66; }
.jh-pc-required-accessory p { margin: 6px 0; }
.jh-pc-required-accessory small { display: block; margin-top: 8px; }
/* v2.0.634 - Complete export at the end of the configuration. */
.jh-pc-total-export{margin:24px 0;padding:24px;border:1px solid #cbdde8;border-radius:8px;background:#f4f8fb}
.jh-pc-total-export h3{margin:0 0 12px;color:#00549a}
.jh-pc-total-export p{margin:12px 0}
.jh-pc-total-export button{max-width:100%;white-space:normal}

.jh-pc:has([data-point-workflow]:not([data-step="3"])) .jh-pc-total-export{display:none !important}

/* v2.0.637 - Grouped downloads and complete ZIP at the end of the configuration. */
.jh-pc-total-downloads{margin-top:24px;padding-top:24px;border-top:1px solid #cbdde8}
.jh-pc-download-actions{display:flex;flex-wrap:wrap;gap:12px}
.jh-pc-download-actions button{max-width:100%;white-space:normal}
.jh-pc-download-groups{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:16px;margin-top:16px}
.jh-pc-download-groups[hidden]{display:none}
.jh-pc-download-group{min-width:0;padding:18px;border:1px solid #cbdde8;border-radius:8px;background:#fff}
.jh-pc-download-group h4{font-size:16px;line-height:1.4;margin:0 0 12px;color:#00549a;overflow-wrap:anywhere}
.jh-pc-download-group ul{padding-left:20px;margin:0}
.jh-pc-download-group li{margin:10px 0;overflow-wrap:anywhere}
.jh-pc-download-group a{text-decoration:underline}
.jh-pc-download-group small{display:block;margin-top:4px;color:#4b6270;line-height:1.4}

/* v2.0.680 – Compact shared export toolbar; explanations on demand. */
.jh-pc .jh-pc-total-export{margin:20px 0;padding:14px 16px;}
.jh-pc-export-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;}
.jh-pc-export-toolbar .jh-pc-download-actions{display:contents;}
.jh-pc .jh-pc-export-toolbar button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;width:auto;max-width:100%;margin:0;padding:10px 16px;border:1px solid #c1d8e8;border-radius:5px;background:#fff;color:#00549a;font-family:inherit;font-size:15px;font-weight:600;line-height:1.35;cursor:pointer;white-space:normal;box-shadow:none;}
.jh-pc .jh-pc-export-toolbar .jh-pc-config-quote-button{background:#008f85;color:#fff;border-color:#008f85;}
.jh-pc .jh-pc-export-toolbar button:hover:not(:disabled){filter:brightness(.95);}
.jh-pc .jh-pc-export-toolbar button:focus-visible{outline:2px solid #00549a;outline-offset:3px;}
.jh-pc .jh-pc-export-toolbar button:disabled{opacity:.5;cursor:not-allowed;}
.jh-pc .jh-pc-export-toolbar .jh-pc-export-info{flex:0 0 36px;width:36px;min-height:36px;padding:0;margin-left:auto;border-radius:50%;font-family:Georgia,serif;font-size:20px;}
.jh-pc .jh-pc-total-export .jh-pc-total-downloads{margin:0;padding:0;border:0;}
.jh-pc .jh-pc-total-export p[role="status"]{margin:10px 0 0;font-size:14px;line-height:1.4;}
.jh-pc .jh-pc-total-export p[role="status"]:empty{display:none;}
.jh-pc-export-help[hidden]{display:none;}
.jh-pc-export-help{margin-top:14px;padding:14px 16px;background:#fff;border:1px solid #d7e5ed;border-radius:5px;}
.jh-pc .jh-pc-export-help h3{font-size:16px;line-height:1.4;letter-spacing:normal;margin:14px 0 4px;}
.jh-pc .jh-pc-export-help h3:first-child{margin-top:0;}
.jh-pc .jh-pc-export-help p{font-size:14px;line-height:1.5;margin:0;}
@media(max-width:540px){.jh-pc .jh-pc-total-export{padding:12px;}.jh-pc-export-toolbar{gap:8px;}.jh-pc .jh-pc-export-toolbar button{padding:10px 12px;font-size:14px;}}

/* v2.0.685 – Hand ergonomics: compact inputs and persistent non-blocking notice. */
.jh-pc [data-ergonomics-fields] > label{display:flex;flex-direction:column;gap:5px;margin:12px 0;color:#244559;font-size:14px}
.jh-pc [data-ergonomics-fields] input[type=number]{width:100%;min-width:0;box-sizing:border-box;padding:9px;border:1px solid #bcd6e7;border-radius:6px;background:white;color:#00549a}
.jh-pc [data-ergonomics-fields] > label:has(input[type=checkbox]){flex-direction:row;align-items:center;gap:9px;font-weight:600}
.jh-pc [data-ergonomics-fields] p,.jh-pc [data-ergonomics-fields] small,.jh-pc [data-ergonomics-fields] details{font-size:13px;line-height:1.45}
.jh-pc [data-ergonomics-fields] details{margin:12px 0}.jh-pc [data-ergonomics-fields] button{margin-top:8px;font-size:13px}
.jh-pc [data-ergonomics-warning]{padding:12px 16px;margin:10px 0;border:1px solid #dfaf4a;border-left:4px solid #c98b15;background:#fff8e9;color:#785300;border-radius:6px;font-size:15px;line-height:1.5}
.jh-pc [data-ergonomics-warning][data-zone=red]{border-color:#c94b4b;background:#fff1ef;color:#8e2525}
.jh-pc [data-ergonomics-warning][hidden]{display:none!important}

/* v2.0.697 – Compact, wrapping arm result in both workspaces. */
.jh-pc .jh-pc-arm-summary .jh-pc-formula-breakdown {padding:12px 0 0;border:0;background:transparent;box-shadow:none;margin:0;}
.jh-pc .jh-pc-arm-summary .jh-pc-formula-breakdown-row {display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:8px 0;min-width:0;}
.jh-pc .jh-pc-arm-summary .jh-pc-formula-breakdown-row > strong,
.jh-pc .jh-pc-arm-summary .jh-pc-formula-breakdown-row > span {width:100%;max-width:none;white-space:normal;overflow:visible;text-overflow:clip;text-align:left;overflow-wrap:anywhere;}
.jh-pc .jh-pc-arm-summary .jh-pc-formula-breakdown-row > span {font-weight:600;}
.jh-pc .jh-pc-arm-summary .jh-pc-arm-note {font-size:13px;line-height:1.45;margin:8px 0 0;white-space:normal;}
.jh-pc .jh-pc-arm-summary [data-product-selection-message] {line-height:1.45;white-space:pre-line;overflow-wrap:anywhere;}
.jh-pc .jh-pc-arm-summary .jh-pc-calculation-main > span {white-space:normal;overflow:visible;text-overflow:clip;max-width:none;}
.jh-pc .jh-pc-arm-summary p.jh-pc-arm-note {background:transparent;border:0;color:#526c7a;font-weight:400;padding:0;}
.jh-pc .jh-pc-arm-summary.is-ok [data-product-selection-message] {display:none;}

/* v2.0.709 – Download overview uses the same icon/file tiles as product details. */
.jh-pc-download-group .jh-pc-download-tiles{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.jh-pc-download-group .jh-pc-download-tiles>li{list-style:none;padding:0;margin:0;min-width:0}
.jh-pc-download-group a.jh-pc-download-tile{display:block;padding:8px;text-decoration:none;min-width:0}
.jh-pc-download-group .jh-pc-download-tile .jh-pc-download-title{white-space:normal;overflow-wrap:anywhere;text-overflow:clip}
.jh-pc-download-group a.jh-pc-download-tile:hover{border-color:#008c82;background:#f4faf9}
.jh-pc-download-group a.jh-pc-download-tile:focus-visible{outline:2px solid #008c82;outline-offset:2px}

/* v2.0.713 – Offene Pflichtfelder: ruhige blaue Orientierung, kein Blinken. */
.jh-pc input.jh-pc-needs-input,
.jh-pc select.jh-pc-needs-input,
.jh-pc textarea.jh-pc-needs-input {
    background-color: #eef7ff !important;
    border-color: #639fd2 !important;
    box-shadow: 0 0 0 3px rgba(34, 117, 184, .10);
}
.jh-pc .jh-pc-required-hint {
    display: block;
    flex-basis: 100%;
    color: #195d91;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
    margin: 5px 0 0;
    letter-spacing: normal;
}
.jh-pc .jh-pc-required-hint[hidden] { display: none !important; }

.jh-pc .jh-pc-global-input-field > .jh-pc-required-hint { grid-column: 1 / -1; grid-row: auto; }

/* v2.0.744 — Actual selected rotary-assembly products. */
.jh-pc-assembly-products{display:grid;gap:12px;margin-top:16px}
.jh-pc-assembly-product{display:flex;align-items:center;gap:16px;padding:16px;background:#fff;border:1px solid #d5e2e9;border-radius:6px}
.jh-pc-assembly-product>img{width:100px;height:100px;object-fit:contain;flex-shrink:0}
.jh-pc-assembly-product>div{min-width:0;flex:1}
.jh-pc-assembly-product strong{display:block;overflow-wrap:anywhere}
.jh-pc-assembly-product p{margin:6px 0}
.jh-pc-assembly-product .jh-pc-more-button{display:inline-block;margin-left:16px}
