.countdown-clock {
    display: block;
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
    padding: 1.5rem;
    border-radius: 14px;
    background: radial-gradient(circle at 10% 10%, rgba(255, 255, 255, 0.07), transparent 30%), var(--cc-panel, #252045);
}

.cc-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(120px, 1fr));
    gap: 1.4rem;
    align-items: center;
    justify-items: center;
}

.countdown-clock * {
    box-sizing: border-box;
}

.cc-unit {
    position: relative;
    width: clamp(140px, 20vw, var(--cc-unit-size, 220px));
    aspect-ratio: 1 / 1;
}

.cc-ring {
    position: absolute;
    inset: 0;
    border-radius: 50%;
    border: var(--cc-ring-thickness, 8px) solid var(--cc-track, #4c486f);
    transform: rotate(-90deg);
}

.cc-ring::before {
    content: "";
    position: absolute;
    inset: calc((var(--cc-progress-thickness, 11px) - var(--cc-ring-thickness, 8px)) / -2 - 2px);
    border-radius: 50%;
    background: conic-gradient(var(--cc-accent, #ff5a2a) calc(var(--p, 0) * 1%), transparent 0);
    -webkit-mask: radial-gradient(
        farthest-side,
        transparent calc(100% - var(--cc-progress-thickness, 11px)),
        #000 calc(100% - var(--cc-progress-thickness, 11px) + 1px)
    );
    mask: radial-gradient(
        farthest-side,
        transparent calc(100% - var(--cc-progress-thickness, 11px)),
        #000 calc(100% - var(--cc-progress-thickness, 11px) + 1px)
    );
}

.countdown-clock.cc-panel-transparent {
    background: transparent;
}

.cc-content {
    position: absolute;
    inset: 0;
    display: grid;
    place-content: center;
    text-align: center;
    color: var(--cc-text, #f5f7ff);
    font-family: "Arial", sans-serif;
    letter-spacing: 0.02em;
}

.cc-label {
    font-size: clamp(0.8rem, 1.2vw, var(--cc-digital-label-size, 22px));
    font-weight: 700;
    opacity: 0.95;
}

.cc-value {
    font-size: clamp(1.8rem, 4vw, var(--cc-digital-value-size, 56px));
    line-height: 1;
    font-weight: 800;
    margin-top: 0.35rem;
}

.cc-complete {
    margin-top: 1rem;
    text-align: center;
    color: var(--cc-text, #f5f7ff);
}

.cc-complete-message {
    margin: 0;
    font-size: clamp(1rem, 2vw, 1.4rem);
    font-weight: 700;
}

.cc-complete-button {
    display: inline-block;
    margin-top: 0.75rem;
    background: var(--cc-accent, #ff5a2a);
    color: #ffffff;
    text-decoration: none;
    padding: 0.65rem 1rem;
    border-radius: 999px;
    font-weight: 700;
}

.cc-display-digital .cc-unit {
    aspect-ratio: auto;
    width: 100%;
    max-width: 230px;
    min-height: 100px;
}

.cc-display-digital .cc-ring {
    display: none;
}

.cc-display-digital .cc-content {
    position: relative;
    border-radius: 12px;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.06);
}

.cc-is-complete .cc-grid {
    opacity: 0.35;
}

@media (max-width: 900px) {
    .cc-grid {
        grid-template-columns: repeat(2, minmax(140px, 1fr));
    }
}

@media (max-width: 480px) {
    .cc-grid {
        grid-template-columns: 1fr;
    }

    .countdown-clock {
        padding: 1.2rem;
    }

    .cc-unit {
        width: min(78vw, 240px);
    }
}
