/**
 * Copyright © 2026 Andreas Borinsky. All rights reserved.
 * Author: Andreas Borinsky (einfach.andi@gmail.com)
 * Proprietary and confidential. Unauthorized copying is prohibited.
 */

/* src/shared/css/styles.css */
/**
 * Globale Style-Regeln (Farben, Animationen, Grafiken)
 */

:where(body) {
    font-family: var(--font-family-base);
    background: var(--color-bg-base);
    color: var(--color-text-base);
    font-size: var(--font-size-base);
    line-height: 1.6;
}

:where(footer) {
    background: var(--color-bg-surface);
    border-top-style: solid;
    border-top-color: var(--color-border);
    font-size: var(--font-size-xs);
    color: var(--color-text-muted);
}

:where(a) {
    color: var(--color-brand);
    text-decoration: none;
    transition: color var(--transition-fast);
}

:where(a:visited) {
    color: var(--color-brand);
    opacity: 0.8;
}

:where(a:hover) {
    color: var(--color-text-base);
    text-decoration: underline;
}

/* Zustands-Anzeigen Styles */
.loading {
    color: var(--color-text-muted);
    font-style: italic;
}

.loading::before {
    content: "";
    border: 2px solid var(--color-border);
    border-top-color: var(--color-brand);
    border-radius: 50%;
    animation: global-spin 1s linear infinite;
}

.error {
    color: var(--color-error);
    background: var(--color-bg-surface);
    border-radius: var(--radius-lg);
    border: 1px solid var(--color-error);
}

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

/* Hilfsklassen */
.text-muted {
    color: var(--color-text-muted);
}

:where(button, .btn, .shell-btn, [role="button"]) {
    cursor: pointer;
}

