.cdl-button {
    display: inline-flex;
    min-height: 3rem;
    align-items: center;
    justify-content: center;
    gap: var(--cdl-space-2);
    padding: 0 var(--cdl-space-5);
    border: 1px solid transparent;
    border-radius: var(--cdl-radius-md);
    cursor: pointer;
    font-size: var(--cdl-font-size-sm);
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    transition:
        background-color var(--cdl-duration-fast) var(--cdl-ease-standard),
        border-color var(--cdl-duration-fast) var(--cdl-ease-standard),
        box-shadow var(--cdl-duration-fast) var(--cdl-ease-standard),
        transform var(--cdl-duration-fast) var(--cdl-ease-standard);
}

.cdl-button svg {
    width: 1.125rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
    transition: transform var(--cdl-duration-base) var(--cdl-ease-enter);
}

.cdl-button:hover svg {
    transform: translateX(0.15rem);
}

.cdl-button:active {
    transform: translateY(1px) scale(0.99);
}

.cdl-button--primary {
    background: var(--cdl-accent);
    box-shadow: 0 1px 1px rgb(7 24 39 / 10%), inset 0 -1px 0 rgb(7 24 39 / 12%);
    color: var(--cdl-color-navy-950);
}

.cdl-button--primary:hover {
    background: var(--cdl-accent-hover);
    box-shadow: 0 4px 12px rgb(7 24 39 / 10%), inset 0 -1px 0 rgb(7 24 39 / 12%);
}

.cdl-button--primary:active {
    background: var(--cdl-accent-active);
}

.cdl-button--secondary {
    border-color: var(--cdl-border-strong);
    background: var(--cdl-color-white);
    box-shadow: 0 1px 2px rgb(7 24 39 / 3%);
    color: var(--cdl-color-navy-950);
}

.cdl-button--secondary:hover {
    border-color: color-mix(in srgb, var(--cdl-color-navy-950) 32%, transparent);
    background: var(--cdl-color-gray-50);
}

.cdl-icon-button {
    display: inline-grid;
    width: 3rem;
    height: 3rem;
    flex: 0 0 auto;
    place-items: center;
    border: 1px solid var(--cdl-border-strong);
    border-radius: var(--cdl-radius-md);
    background: var(--cdl-color-white);
    cursor: pointer;
    transition: background var(--cdl-duration-fast), transform var(--cdl-duration-fast);
}

.cdl-icon-button:hover {
    background: var(--cdl-color-yellow-50);
}

.cdl-icon-button:active {
    transform: scale(0.96);
}

.cdl-icon-button svg {
    width: 1.25rem;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.cdl-button-group {
    display: flex;
    flex-wrap: wrap;
    gap: var(--cdl-space-3);
}

.cdl-field {
    display: grid;
    width: 100%;
    gap: var(--cdl-space-2);
    color: var(--cdl-text-secondary);
    font-size: var(--cdl-font-size-sm);
    font-weight: 650;
}

.cdl-field__control {
    display: flex;
    min-height: 3.25rem;
    align-items: center;
    gap: var(--cdl-space-3);
    padding-inline: var(--cdl-space-4);
    border: 1px solid var(--cdl-border-strong);
    border-radius: var(--cdl-radius-md);
    background: var(--cdl-color-white);
    box-shadow: 0 1px 2px rgb(7 24 39 / 3%);
    transition:
        border-color var(--cdl-duration-fast),
        box-shadow var(--cdl-duration-fast);
}

.cdl-field__control:focus-within {
    border-color: var(--cdl-color-navy-950);
    box-shadow: 0 0 0 3px rgb(255 208 0 / 35%);
}

.cdl-field__control svg {
    width: 1.125rem;
    flex: 0 0 auto;
    fill: none;
    stroke: var(--cdl-text-secondary);
    stroke-linecap: round;
    stroke-width: 1.7;
}

.cdl-field input {
    width: 100%;
    min-width: 0;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--cdl-text-primary);
}

.cdl-field input::placeholder {
    color: var(--cdl-text-tertiary);
}

.cdl-field kbd {
    padding: 0.15rem 0.4rem;
    border: 1px solid var(--cdl-border-subtle);
    border-radius: var(--cdl-radius-xs);
    background: var(--cdl-color-gray-50);
    color: var(--cdl-text-tertiary);
    font-family: var(--cdl-font-sans);
    font-size: 0.6875rem;
    white-space: nowrap;
}

.cdl-badge {
    display: inline-flex;
    min-height: 1.75rem;
    align-items: center;
    gap: var(--cdl-space-2);
    padding: 0 var(--cdl-space-3);
    border: 1px solid transparent;
    border-radius: var(--cdl-radius-full);
    font-size: var(--cdl-font-size-xs);
    font-weight: 700;
}

.cdl-badge i {
    width: 0.375rem;
    height: 0.375rem;
    border-radius: 50%;
    background: currentColor;
}

.cdl-badge--success {
    border-color: color-mix(in srgb, var(--cdl-color-green-600) 18%, transparent);
    background: var(--cdl-color-green-50);
    color: var(--cdl-color-green-600);
}

.cdl-badge--info {
    border-color: color-mix(in srgb, var(--cdl-color-glass-500) 25%, transparent);
    background: var(--cdl-color-glass-50);
    color: var(--cdl-color-navy-800);
}

.cdl-badge--neutral {
    border-color: var(--cdl-border-subtle);
    background: var(--cdl-color-gray-50);
    color: var(--cdl-text-secondary);
}

.cdl-inline-message {
    display: flex;
    width: 100%;
    align-items: flex-start;
    gap: var(--cdl-space-3);
    padding: var(--cdl-space-4);
    border: 1px solid color-mix(in srgb, var(--cdl-color-green-600) 15%, transparent);
    border-radius: var(--cdl-radius-md);
    background: var(--cdl-color-green-50);
    color: var(--cdl-color-green-600);
}

.cdl-inline-message svg {
    width: 1.25rem;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.6;
}

.cdl-inline-message span {
    display: grid;
    gap: 0.1rem;
}

.cdl-inline-message strong {
    color: var(--cdl-color-gray-900);
    font-size: var(--cdl-font-size-sm);
    line-height: 1.35;
}

.cdl-inline-message small {
    color: var(--cdl-text-secondary);
    font-size: var(--cdl-font-size-xs);
    line-height: 1.5;
}

.cdl-toast {
    position: fixed;
    z-index: 80;
    right: var(--cdl-space-4);
    bottom: var(--cdl-space-4);
    padding: var(--cdl-space-3) var(--cdl-space-4);
    border: 1px solid rgb(255 255 255 / 12%);
    border-radius: var(--cdl-radius-md);
    background: var(--cdl-color-navy-950);
    box-shadow: var(--cdl-shadow-3);
    color: var(--cdl-color-white);
    font-size: var(--cdl-font-size-sm);
    font-weight: 650;
    opacity: 0;
    pointer-events: none;
    transform: translateY(0.75rem);
    transition:
        opacity var(--cdl-duration-base) var(--cdl-ease-enter),
        transform var(--cdl-duration-base) var(--cdl-ease-enter);
}

.cdl-toast.is-visible {
    opacity: 1;
    transform: translateY(0);
}
