/* Color Code Converter — Tool Styles (~1.6KB) */

/* Top section: swatch + inputs */
.clr__top {
    display: flex;
    gap: 16px;
    margin-bottom: 12px
}

.clr__swatch-wrap {
    display: flex;
    flex-direction: column;
    gap: 6px;
    flex: 0 0 180px
}

.clr__swatch {
    width: 180px;
    height: 140px;
    border-radius: var(--radius);
    border: 1px solid var(--c-border);
    background: #FF5733;
    transition: background .1s;
}

.clr__swatch-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 4px
}

.clr__inputs {
    flex: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px
}

/* Fields */
.clr__field {
    display: flex;
    flex-direction: column;
    gap: 2px
}

.clr__label {
    font-size: .625rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: var(--c-text-2)
}

.clr__input-row {
    display: flex;
    gap: 3px;
    align-items: center
}

.clr__prefix {
    font-size: .8125rem;
    color: var(--c-text-2);
    font-weight: 600
}

.clr__input {
    width: 100%;
    padding: 5px 8px;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    font-size: .8125rem;
    font-family: inherit;
    background: var(--c-surface);
    color: var(--c-text);
}

.clr__input--sm {
    width: 52px;
    text-align: center;
    padding: 5px 4px
}

.clr__input:focus {
    border-color: var(--c-accent);
    outline: none
}

input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none
}

input[type=number] {
    -moz-appearance: textfield
}

.clr__copy {
    background: none;
    border: none;
    cursor: pointer;
    font-size: .75rem;
    padding: 2px;
    opacity: .5;
    transition: opacity .15s;
}

.clr__copy:hover {
    opacity: 1
}

/* Sliders */
.clr__sliders {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-bottom: 16px;
    padding: 10px 12px;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    background: var(--c-surface)
}

.clr__slider-label {
    font-size: .6875rem;
    color: var(--c-text-2);
    display: flex;
    justify-content: space-between
}

.clr__range {
    width: 100%;
    height: 8px;
    -webkit-appearance: none;
    border-radius: 4px;
    outline: none;
    cursor: pointer
}

.clr__range::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: #fff;
    border: 2px solid var(--c-text);
    cursor: pointer
}

.clr__range--hue {
    background: linear-gradient(to right, #f00, #ff0, #0f0, #0ff, #00f, #f0f, #f00)
}

.clr__range--sat {
    background: linear-gradient(to right, #888, var(--c-accent))
}

.clr__range--lit {
    background: linear-gradient(to right, #000, #888, #fff)
}

/* Sections */
.clr__section {
    margin-bottom: 16px
}

.clr__section-title {
    font-size: .875rem;
    font-weight: 600;
    margin-bottom: 8px
}

/* Contrast checker */
.clr__contrast {
    display: flex;
    gap: 12px;
    align-items: stretch;
    padding: 12px;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    background: var(--c-surface)
}

.clr__contrast-preview {
    flex: 0 0 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius);
    font-size: 1.125rem;
    font-weight: 600;
    min-height: 60px;
}

.clr__contrast-info {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 6px
}

.clr__contrast-bg-row {
    display: flex;
    align-items: center;
    gap: 6px
}

.clr__contrast-ratio {
    font-size: 1.5rem;
    font-weight: 700
}

.clr__contrast-badges {
    display: flex;
    gap: 6px;
    flex-wrap: wrap
}

.clr__badge {
    font-size: .6875rem;
    padding: 2px 8px;
    border-radius: var(--radius);
    font-weight: 600;
}

.clr__badge--pass {
    background: #dcfce7;
    color: #166534
}

.clr__badge--fail {
    background: #fef2f2;
    color: #991b1b
}

/* Palette */
.clr__palette-tabs {
    display: flex;
    gap: 4px;
    margin-bottom: 8px
}

.clr__ptab {
    font-size: .6875rem;
    padding: 4px 10px;
    border: 1px solid var(--c-border);
    border-radius: var(--radius);
    background: var(--c-bg);
    color: var(--c-text-2);
    cursor: pointer;
    font-family: inherit;
    transition: all .15s;
}

.clr__ptab:hover {
    border-color: var(--c-accent);
    color: var(--c-accent)
}

.clr__ptab--active {
    background: var(--c-accent);
    color: #fff;
    border-color: var(--c-accent)
}

.clr__palette {
    display: flex;
    gap: 4px;
    flex-wrap: wrap
}

.clr__pal-chip {
    width: 56px;
    height: 48px;
    border-radius: var(--radius);
    border: 1px solid var(--c-border);
    cursor: pointer;
    position: relative;
    transition: transform .15s;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding-bottom: 3px;
}

.clr__pal-chip:hover {
    transform: scale(1.08)
}

.clr__pal-chip span {
    font-size: .5rem;
    color: #fff;
    text-shadow: 0 0 3px rgba(0, 0, 0, .7);
    font-weight: 600
}

@media(max-width:768px) {
    .clr__top {
        flex-direction: column
    }

    .clr__swatch-wrap {
        flex: none
    }

    .clr__swatch {
        width: 100%;
        height: 100px
    }

    .clr__inputs {
        grid-template-columns: 1fr
    }

    .clr__contrast {
        flex-direction: column
    }

    .clr__contrast-preview {
        flex: none
    }
}