/* ============================================================================
   BusinessHub Basis: Schrift, Reset, Typografie, Fokus, Bewegung
   ============================================================================ */

/* Outfit — variable Schrift, selbst gehostet (kein Google-Fonts-Request) */
@font-face {
    font-family: 'Outfit';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/outfit/outfit-latin.woff2') format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
    font-family: 'Outfit';
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
    src: url('../fonts/outfit/outfit-latin-ext.woff2') format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

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

html {
    font-family: var(--font-sans);
    -webkit-text-size-adjust: 100%;
    -webkit-tap-highlight-color: transparent;
    height: 100%;
}

body {
    font-size: var(--fs-md);          /* 15px mobil */
    line-height: var(--lh-base);
    color: var(--color-text);
    background: var(--color-bg);
    min-height: 100%;
    -webkit-font-smoothing: antialiased;
    overflow-x: clip;                 /* nie horizontal scrollen (Kanban etc. scrollen intern) */
}
@media (min-width: 769px) { body { font-size: var(--fs-base); } }

h1, h2, h3, h4, h5, h6 { line-height: var(--lh-tight); font-weight: 600; color: var(--color-text); overflow-wrap: anywhere; }
p, li, td, th, dd, dt, label { overflow-wrap: anywhere; }

a { color: var(--color-link); text-decoration: none; }
a:hover { text-decoration: underline; }
/* Links im Fließtext müssen ohne Farbe erkennbar sein (WCAG 1.4.1) */
p a:not(.btn), small a, .form-hint a, .alert a, .mail-info a, .page-subtitle a, .note-body a, .activity-meta a, .empty-state a:not(.btn) { text-decoration: underline; text-underline-offset: 2px; }

img, svg, video { display: block; max-width: 100%; }
svg.icon { display: inline-block; vertical-align: -0.15em; }

button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; }
button:disabled, .btn:disabled, .btn.is-disabled { cursor: not-allowed; opacity: 0.55; }
[hidden] { display: none !important; }
hr { border: 0; border-top: 1px solid var(--color-border); margin: var(--sp-4) 0; }
code, pre, kbd { font-family: var(--font-mono); font-size: 0.9em; }
small { font-size: var(--fs-sm); }
strong, b { font-weight: 600; }
ul[class], ol[class] { list-style: none; }
table { border-collapse: collapse; width: 100%; }

/* Fokus: sichtbar, einheitlich, nur bei Tastatur */
:focus { outline: none; }
:focus-visible {
    outline: 2px solid var(--color-ring);
    outline-offset: 2px;
    border-radius: var(--r-sm);
}

::selection { background: var(--brand-cyan-glow); }

/* Icons */
.icon { width: 1.25em; height: 1.25em; flex-shrink: 0; }
.icon-sm { width: 1em; height: 1em; }
.icon-lg { width: 1.5em; height: 1.5em; }
.icon-xl { width: 2em; height: 2em; }

/* Screenreader-only */
.sr-only {
    position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* Bewegung respektieren */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }
}

/* Utilities (schlank, ergänzen die alten d-flex/mb-4-Helfer) */
.text-muted { color: var(--color-text-muted); }
.text-faint { color: var(--color-text-faint); }
.text-right { text-align: right; }
.text-center { text-align: center; }
.text-success { color: var(--color-success); }
.text-danger { color: var(--color-danger); }
.text-warning { color: var(--color-warning); }
.text-sm { font-size: var(--fs-sm); }
.text-xs { font-size: var(--fs-xs); }
.fw-600 { font-weight: 600; }
.fw-400 { font-weight: 400; }
.d-block { display: block; }
.nowrap { white-space: nowrap; }
.tabular { font-variant-numeric: tabular-nums; }
.mb-0 { margin-bottom: 0 !important; }
.mb-2 { margin-bottom: var(--sp-2); }
.mb-3 { margin-bottom: var(--sp-3); }
.mb-4 { margin-bottom: var(--sp-4); }
.mb-6 { margin-bottom: var(--sp-6); }
.mt-2 { margin-top: var(--sp-2); }
.mt-4 { margin-top: var(--sp-4); }
.mt-6 { margin-top: var(--sp-6); }
.d-flex { display: flex; }
.d-grid { display: grid; }
.flex-wrap { flex-wrap: wrap; }
.flex-1 { flex: 1 1 0; min-width: 0; }
.justify-between { justify-content: space-between; }
.justify-end { justify-content: flex-end; }
.justify-center { justify-content: center; }
.pre-wrap { white-space: pre-wrap; }
.col-span-full { grid-column: 1 / -1; }
.self-end { align-self: end; }
.align-center { align-items: center; }
.align-start { align-items: flex-start; }
.gap-1 { gap: var(--sp-1); }
.gap-2 { gap: var(--sp-2); }
.gap-3 { gap: var(--sp-3); }
.gap-4 { gap: var(--sp-4); }
.w-100 { width: 100%; }
.min-w-0 { min-width: 0; }
.hide-mobile { }
.show-mobile { display: none !important; }
@media (max-width: 768px) {
    .hide-mobile, .hide-on-mobile, .mobile-hide { display: none !important; }
    .show-mobile, .mobile-show { display: revert !important; }
}
@media (min-width: 769px) { .hide-desktop { display: none !important; } }

.text-accent { color: var(--color-accent-text); }
.auth-brand h1 .text-accent { color: var(--color-accent-text); }
