.status-running { color: var(--pico-color-amber-500); font-weight: bold; animation: pulse 1.5s ease-in-out infinite; }
.status-completed { color: var(--pico-color-green-500); font-weight: bold; }
.status-failed { color: var(--pico-color-red-500); font-weight: bold; }
.status-cancelled { color: var(--pico-color-zinc-500); font-weight: bold; }

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

.flash-error { background: var(--pico-color-red-100); color: var(--pico-color-red-700); padding: 0.75rem; border-radius: var(--pico-border-radius); }
.flash-success { background: var(--pico-color-green-100); color: var(--pico-color-green-700); padding: 0.75rem; border-radius: var(--pico-border-radius); }

article dl { display: grid; grid-template-columns: auto 1fr; gap: 0.25rem 1rem; }
article dl dt { font-weight: bold; }
article dl dd { margin: 0; }

#log-output { background: var(--pico-color-zinc-900); color: var(--pico-color-zinc-100); padding: 1rem; }

.crawling-indicator { display: inline-flex; align-items: center; gap: 0.5rem; }
.crawling-indicator::before {
    content: "";
    display: inline-block;
    width: 0.75rem;
    height: 0.75rem;
    border-radius: 50%;
    background: var(--pico-color-amber-500);
    animation: pulse 1.5s ease-in-out infinite;
}

.log-loading { text-align: center; padding: 2rem; color: var(--pico-color-zinc-400); }
.log-loading::after {
    content: "";
    display: block;
    width: 2rem;
    height: 2rem;
    margin: 1rem auto 0;
    border: 3px solid var(--pico-color-zinc-700);
    border-top-color: var(--pico-color-amber-500);
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}
