    .pk-rt-textarea {
        width: 100%;
        min-height: 160px;
        background: rgba(255,255,255,0.04);
        border: 1px solid rgba(255,255,255,0.10);
        border-radius: 12px;
        padding: 12px 14px;
        color: var(--pk-fg);
        font-family: inherit;
        font-size: 0.95rem;
        line-height: 1.5;
        resize: vertical;
    }
    .pk-rt-textarea:focus {
        outline: none;
        border-color: var(--calc-accent);
        box-shadow: 0 0 0 3px rgba(92, 221, 210, 0.16);
    }
    .pk-rt-slider {
        width: 100%;
        accent-color: var(--calc-accent);
    }
    .pk-rt-slider-row {
        display: flex;
        align-items: center;
        gap: 10px;
        font-variant-numeric: tabular-nums;
    }
    .pk-rt-slider-row span { font-weight: 600; color: var(--calc-accent); min-width: 64px; text-align: right; }
    /* Preset buttons are real <button>s (not radios), so the chip ":has(input:checked)"
       active state never matches — we drive them with a JS-toggled .is-current. */
    #rt-presets button.is-current {
        background: linear-gradient(135deg, var(--calc-accent-2), var(--calc-accent));
        border-color: transparent;
        color: #04102B;
    }
    #rt-presets button { color: var(--pk-fg); }
