.qcp-wrap {
    max-width: 720px;
    margin: 18px auto;
    padding: 0 12px
}

.qcp-frame {
    border: 2px solid #000;
    border-radius: 12px;
    padding: 16px;
    background: #fff;
    color: #000;
    box-shadow: 0 10px 30px rgba(0,0,0,.08)
}

.qcp-title {
    font-weight: 800;
    font-size: 18px;
    margin: 0 0 8px
}

.qcp-label {
    display: block;
    font-weight: 700;
    margin: 10px 0 6px
}

.qcp-input {
    width: 100%;
    border: 1px solid rgba(0,0,0,.2);
    border-radius: 10px;
    padding: 12px 12px;
    font: 16px/1.4 ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;
    outline: none
}

.qcp-input:focus {
    border-color: #000;
    box-shadow: 0 0 0 3px rgba(0,0,0,.08)
}

.qcp-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    flex-wrap: wrap;
    margin-top: 10px
}

.qcp-btn {
    background: #d10000;
    color: #fff !important;
    font-weight: 800;
    border: none;
    border-radius: 10px;
    padding: 10px 14px;
    cursor: pointer
}

.qcp-btn:active {
    transform: translateY(1px)
}

.qcp-hint {
    font-size: 13px;
    opacity: .75
}

.qcp-result {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 2px dashed rgba(0,0,0,.25)
}

.qcp-result-label {
    font-weight: 800;
    margin-bottom: 6px
}

.qcp-result-value {
    font-weight: 900;
    font-size: 22px;
    letter-spacing: .2px
}

.qcp-error {
    margin-top: 6px;
    color: #b00020;
    font-size: 13px;
    font-weight: 700;
    min-height: 18px
}