.pulse-red {
    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7);
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.7); }
    70% { transform: scale(1); box-shadow: 0 0 0 10px rgba(239, 68, 68, 0); }
    100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(239, 68, 68, 0); }
}

.prose strong { font-weight: 800; color: #1e40af; }
.prose ul { list-style-type: disc; margin-left: 1.25rem; margin-bottom: 0.5rem; }
.prose p { margin-bottom: 0.5rem; line-height: 1.4; }

.website-readme summary::-webkit-details-marker { display: none; }
.website-readme .readme-toggle::before { font-size: 0.625rem; }
.website-readme[open] .readme-toggle::before { content: "Weniger"; }
.website-readme[open] .readme-toggle { font-size: 0; }
.website-readme:not([open]) .readme-toggle::before { content: "Mehr"; }
.website-readme:not([open]) .readme-toggle { font-size: 0; }
.readme-body h2 {
    margin-top: 1rem;
    margin-bottom: 0.35rem;
    color: #3730a3;
    font-size: 0.72rem;
    font-weight: 900;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}
.readme-body p { margin-bottom: 0.55rem; }
.readme-body ul {
    margin: 0 0 0.7rem 1rem;
    list-style: disc;
}
.readme-body li { margin-bottom: 0.25rem; }
.readme-body strong { color: #1e40af; font-weight: 900; }
.readme-body code {
    padding: 0.05rem 0.25rem;
    border-radius: 0.35rem;
    background: #eef2ff;
    color: #3730a3;
    font-size: 0.68rem;
    font-weight: 700;
}
.readme-body pre {
    overflow-x: auto;
    margin: 0.5rem 0 0.7rem;
    padding: 0.75rem;
    border-radius: 0.75rem;
    background: #0f172a;
    color: #e2e8f0;
}
.readme-body pre code {
    padding: 0;
    background: transparent;
    color: inherit;
    font-size: 0.66rem;
    font-weight: 600;
}
.privacy-details summary::-webkit-details-marker { display: none; }
.privacy-details summary::after {
    content: "Mehr";
    float: right;
    color: #059669;
}
.privacy-details[open] summary::after { content: "Weniger"; }
.privacy-body p { margin-bottom: 0.45rem; }
.privacy-body p:last-child { margin-bottom: 0; }
.privacy-body strong { color: #047857; font-weight: 900; }
.privacy-body code {
    padding: 0.05rem 0.2rem;
    border-radius: 0.3rem;
    background: #ecfdf5;
    color: #047857;
    font-size: 0.62rem;
    font-weight: 800;
}

.slide-in { animation: slideIn 0.4s ease-out forwards; }

@keyframes slideIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

.btn-loading { position: relative; color: transparent !important; }

.btn-loading::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    top: 50%;
    left: 50%;
    margin: -10px 0 0 -10px;
    border: 3px solid rgba(255,255,255,0.3);
    border-top-color: white;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

@keyframes spin { to { transform: rotate(360deg); } }
