.bkbg-hrc-app {
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    -webkit-font-smoothing: antialiased;
}
.bkbg-hrc-card {
    margin: 0 auto;
    padding: 36px 32px;
    box-shadow: 0 4px 32px rgba(0,0,0,0.08);
    border-radius: 16px;
}
/* heading specificity (0,2,0) beats editor theme h2 rules */
.bkbg-hrc-card h2.bkbg-hrc-title {
    text-align:       center;
    font-family:      var(--bkbg-hrc-tt-font-family, inherit);
    font-size:        var(--bkbg-hrc-tt-font-size-d, 28px);
    font-weight:      var(--bkbg-hrc-tt-font-weight, 800);
    line-height:      var(--bkbg-hrc-tt-line-height-d, 1.2);
    font-style:       var(--bkbg-hrc-tt-font-style, normal);
    text-transform:   var(--bkbg-hrc-tt-text-transform, none);
    text-decoration:  var(--bkbg-hrc-tt-text-decoration, none);
    letter-spacing:   var(--bkbg-hrc-tt-letter-spacing-d);
    word-spacing:     var(--bkbg-hrc-tt-word-spacing-d);
    margin:           0 0 8px;
}
.bkbg-hrc-subtitle {
    text-align:       center;
    font-family:      var(--bkbg-hrc-st-font-family, inherit);
    font-size:        var(--bkbg-hrc-st-font-size-d, 15px);
    font-weight:      var(--bkbg-hrc-st-font-weight, 400);
    line-height:      var(--bkbg-hrc-st-line-height-d, 1.5);
    font-style:       var(--bkbg-hrc-st-font-style, normal);
    text-transform:   var(--bkbg-hrc-st-text-transform, none);
    text-decoration:  var(--bkbg-hrc-st-text-decoration, none);
    letter-spacing:   var(--bkbg-hrc-st-letter-spacing-d);
    word-spacing:     var(--bkbg-hrc-st-word-spacing-d);
    margin:           0 0 28px;
}
/* Controls */
.bkbg-hrc-controls {
    display: flex;
    gap: 20px;
    padding: 20px 24px;
    border-radius: 12px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}
.bkbg-hrc-control-group {
    flex: 1;
    min-width: 200px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.bkbg-hrc-label {
    font-size: 14px;
    font-weight: 700;
}
.bkbg-hrc-slider {
    width: 100%;
    height: 6px;
    border-radius: 3px;
    cursor: pointer;
    -webkit-appearance: none;
    appearance: none;
    background: #e5e7eb;
    outline: none;
}
.bkbg-hrc-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: currentColor;
    cursor: pointer;
    border: 3px solid #fff;
    box-shadow: 0 0 0 2px currentColor, 0 2px 8px rgba(0,0,0,0.15);
}
.bkbg-hrc-select {
    width: 100%;
    padding: 10px 14px;
    font-size: 14px;
    border: 1.5px solid #e5e7eb;
    border-radius: 8px;
    cursor: pointer;
    outline: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b7280' d='M6 8L0 0h12z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    padding-right: 32px;
}
/* Max HR display */
.bkbg-hrc-maxhr {
    text-align: center;
    border: 2px solid;
    border-radius: 14px;
    padding: 24px;
    margin-bottom: 28px;
}
.bkbg-hrc-maxhr-label {
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.bkbg-hrc-maxhr-val {
    font-size: 72px;
    font-weight: 900;
    line-height: 1;
    margin-bottom: 4px;
}
.bkbg-hrc-maxhr-unit {
    font-size: 14px;
    font-weight: 600;
}
/* Zone rows */
.bkbg-hrc-zones {
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.bkbg-hrc-zone-row {
    display: flex;
    align-items: center;
    gap: 14px;
    border-radius: 10px;
    padding: 14px 18px;
    border-left-width: 6px;
    border-left-style: solid;
    transition: transform 0.12s;
}
.bkbg-hrc-zone-row:hover {
    transform: translateX(3px);
}
.bkbg-hrc-zone-left {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    min-width: 88px;
}
.bkbg-hrc-zone-badge {
    font-size: 12px;
    font-weight: 800;
    padding: 4px 10px;
    border-radius: 99px;
    white-space: nowrap;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}
.bkbg-hrc-zone-name {
    font-size: 13px;
    font-weight: 700;
    color: #374151;
    text-align: center;
}
.bkbg-hrc-zone-center {
    flex: 1;
    padding: 0 8px;
}
.bkbg-hrc-zone-purpose {
    font-size: 13px;
    color: #6b7280;
    line-height: 1.4;
}
.bkbg-hrc-zone-right {
    text-align: right;
    min-width: 100px;
}
.bkbg-hrc-zone-bpm {
    font-size: 20px;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 3px;
}
.bkbg-hrc-zone-pct {
    font-size: 11px;
    color: #9ca3af;
    font-weight: 600;
}
@media (max-width: 540px) {
    .bkbg-hrc-card { padding: 24px 14px; }
    .bkbg-hrc-maxhr-val { font-size: 52px; }
    .bkbg-hrc-zone-row { flex-wrap: wrap; }
    .bkbg-hrc-zone-left { flex-direction: row; min-width: auto; }
    .bkbg-hrc-zone-right { text-align: left; min-width: auto; }
}

/* ── Responsive typography ────────────────────────────────── */
@media (max-width: 1024px) {
    .bkbg-hrc-card h2.bkbg-hrc-title {
        font-size:       var(--bkbg-hrc-tt-font-size-t, var(--bkbg-hrc-tt-font-size-d, 28px));
        line-height:     var(--bkbg-hrc-tt-line-height-t, var(--bkbg-hrc-tt-line-height-d, 1.2));
        letter-spacing:  var(--bkbg-hrc-tt-letter-spacing-t, var(--bkbg-hrc-tt-letter-spacing-d));
        word-spacing:    var(--bkbg-hrc-tt-word-spacing-t, var(--bkbg-hrc-tt-word-spacing-d));
    }
    .bkbg-hrc-subtitle {
        font-size:       var(--bkbg-hrc-st-font-size-t, var(--bkbg-hrc-st-font-size-d, 15px));
        line-height:     var(--bkbg-hrc-st-line-height-t, var(--bkbg-hrc-st-line-height-d, 1.5));
        letter-spacing:  var(--bkbg-hrc-st-letter-spacing-t, var(--bkbg-hrc-st-letter-spacing-d));
        word-spacing:    var(--bkbg-hrc-st-word-spacing-t, var(--bkbg-hrc-st-word-spacing-d));
    }
}
@media (max-width: 767px) {
    .bkbg-hrc-card h2.bkbg-hrc-title {
        font-size:       var(--bkbg-hrc-tt-font-size-m, var(--bkbg-hrc-tt-font-size-t, var(--bkbg-hrc-tt-font-size-d, 28px)));
        line-height:     var(--bkbg-hrc-tt-line-height-m, var(--bkbg-hrc-tt-line-height-t, var(--bkbg-hrc-tt-line-height-d, 1.2)));
        letter-spacing:  var(--bkbg-hrc-tt-letter-spacing-m, var(--bkbg-hrc-tt-letter-spacing-t, var(--bkbg-hrc-tt-letter-spacing-d)));
        word-spacing:    var(--bkbg-hrc-tt-word-spacing-m, var(--bkbg-hrc-tt-word-spacing-t, var(--bkbg-hrc-tt-word-spacing-d)));
    }
    .bkbg-hrc-subtitle {
        font-size:       var(--bkbg-hrc-st-font-size-m, var(--bkbg-hrc-st-font-size-t, var(--bkbg-hrc-st-font-size-d, 15px)));
        line-height:     var(--bkbg-hrc-st-line-height-m, var(--bkbg-hrc-st-line-height-t, var(--bkbg-hrc-st-line-height-d, 1.5)));
        letter-spacing:  var(--bkbg-hrc-st-letter-spacing-m, var(--bkbg-hrc-st-letter-spacing-t, var(--bkbg-hrc-st-letter-spacing-d)));
        word-spacing:    var(--bkbg-hrc-st-word-spacing-m, var(--bkbg-hrc-st-word-spacing-t, var(--bkbg-hrc-st-word-spacing-d)));
    }
}
