:root {
    color-scheme: light;
    --ink: #111214;
    --muted: #5b6066;
    --line: #e3e4e7;
    --paper: #f7f7f5;
    --chip: #ffffff;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

body {
    font-family: "IBM Plex Mono", monospace;
    background: var(--paper);
    color: var(--ink);
    min-height: 100vh;
}

.app {
    max-width: 760px;
    margin: 0 auto;
    padding: 48px 20px 64px;
    display: grid;
    gap: 24px;
}

.hero {
    display: grid;
    gap: 8px;
}

.label {
    font-size: 0.8rem;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    color: var(--muted);
}

.hero h1 {
    font-size: clamp(2.1rem, 4vw, 3rem);
    font-weight: 600;
}

.meta {
    color: var(--muted);
    font-size: 0.95rem;
}

.panel {
    border: 1px solid var(--line);
    background: #ffffff;
    border-radius: 16px;
    padding: 20px;
    display: grid;
    gap: 16px;
    min-height: 200px;
}

.counter {
    font-size: 1rem;
    color: var(--muted);
}

.counter span {
    color: var(--ink);
    font-weight: 600;
}

.prime-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.prime-chip {
    border: 1px solid var(--line);
    border-radius: 999px;
    padding: 4px 10px;
    font-size: 0.9rem;
    background: var(--chip);
    min-width: 44px;
    text-align: center;
    display: inline-flex;
    justify-content: center;
    align-items: center;
}

@media (max-width: 600px) {
    .panel {
        padding: 16px;
    }
}
