/* Betriebsportal - schlichtes, funktionales Layout */

:root {
    --color-bg: #f4f5f7;
    --color-surface: #ffffff;
    --color-border: #dfe2e7;
    --color-text: #1f2430;
    --color-text-muted: #5b6474;
    --color-primary: #1d5f8a;
    --color-primary-dark: #164a6c;
    --color-success-bg: #e6f4ea;
    --color-success-text: #1e6b34;
    --color-error-bg: #fbe7e7;
    --color-error-text: #a23030;
    --color-info-bg: #e8f1fb;
    --color-info-text: #1d5f8a;
    --color-warn-bg: #fff4e0;
    --color-warn-text: #8a5a10;
    --radius: 6px;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: "Segoe UI", Arial, Helvetica, sans-serif;
    background: var(--color-bg);
    color: var(--color-text);
    line-height: 1.5;
}

a { color: var(--color-primary); }

/* --- Anmelde-/Fehlerseiten --- */
.auth-page {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 100vh;
    padding: 20px;
}

.auth-box {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 32px;
    width: 100%;
    max-width: 380px;
}

.auth-logo { display: block; max-width: 100%; height: auto; margin: 0 0 18px; }
.auth-box h1 { margin: 0 0 20px; font-size: 1.1rem; font-weight: 600; color: var(--color-text-muted); }
.auth-hint { margin-top: 16px; font-size: 0.85rem; color: var(--color-text-muted); }

/* --- Topbar --- */
.topbar {
    background: var(--color-surface);
    border-bottom: 1px solid var(--color-border);
}
.topbar-inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
    display: flex;
    align-items: center;
    gap: 24px;
    height: 60px;
}
.brand { display: flex; align-items: center; text-decoration: none; }
.brand-logo { height: 36px; width: auto; display: block; }
.main-nav { display: flex; gap: 18px; flex: 1; }
.main-nav a { color: var(--color-text-muted); text-decoration: none; font-size: 0.92rem; font-weight: 500; }
.main-nav a:hover { color: var(--color-primary); }
.user-menu { display: flex; align-items: center; gap: 14px; font-size: 0.85rem; }
.user-menu a { color: var(--color-text-muted); text-decoration: none; }
.user-menu a:hover { color: var(--color-primary); }
.user-name { color: var(--color-text); font-weight: 600; }

/* --- Inhalt --- */
.content-box {
    max-width: 1100px;
    margin: 24px auto;
    padding: 0 20px 40px;
}
.content-box h1 { font-size: 1.5rem; margin-bottom: 20px; }
.content-box h2 { font-size: 1.15rem; margin-top: 32px; }

.panel {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 20px;
    margin-bottom: 20px;
}

/* --- Formulare --- */
form label { display: block; margin-top: 14px; margin-bottom: 4px; font-size: 0.88rem; font-weight: 600; }
form input[type="text"], form input[type="email"], form input[type="password"],
form select, form textarea {
    width: 100%;
    padding: 9px 10px;
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    font-size: 0.95rem;
    font-family: inherit;
}
form textarea { min-height: 220px; resize: vertical; }
.field-hint { font-size: 0.8rem; color: var(--color-text-muted); margin-top: 6px; }

.inline-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px; }
.inline-form label { margin-top: 0; }
.inline-form > div, .inline-form input, .inline-form select { width: auto; }

button, .button {
    display: inline-block;
    background: var(--color-primary);
    color: #fff;
    border: none;
    padding: 10px 18px;
    border-radius: var(--radius);
    font-size: 0.92rem;
    cursor: pointer;
    text-decoration: none;
    margin-top: 16px;
}
button:hover, .button:hover { background: var(--color-primary-dark); }
.button-secondary { background: var(--color-text-muted); }
.link-button {
    background: none; border: none; color: var(--color-primary);
    text-decoration: underline; cursor: pointer; padding: 0; margin: 0; font-size: 0.85rem;
}
.row-form { display: inline-block; margin-right: 8px; }

.action-row { display: flex; gap: 12px; margin: 20px 0; }

/* --- Meldungen --- */
.alert { padding: 12px 14px; border-radius: var(--radius); margin-bottom: 16px; font-size: 0.9rem; }
.alert-error { background: var(--color-error-bg); color: var(--color-error-text); }
.alert-success { background: var(--color-success-bg); color: var(--color-success-text); }
.alert-info { background: var(--color-info-bg); color: var(--color-info-text); }

/* --- Tabellen --- */
.data-table { width: 100%; border-collapse: collapse; margin-top: 12px; font-size: 0.9rem; }
.data-table th, .data-table td { text-align: left; padding: 9px 10px; border-bottom: 1px solid var(--color-border); }
.data-table th { color: var(--color-text-muted); font-weight: 600; font-size: 0.82rem; text-transform: uppercase; }
.row-actions { white-space: nowrap; }

.badge { display: inline-block; padding: 2px 8px; border-radius: 12px; font-size: 0.75rem; margin-right: 4px; }
.badge-ok { background: var(--color-success-bg); color: var(--color-success-text); }
.badge-off { background: var(--color-error-bg); color: var(--color-error-text); }
.badge-warn { background: var(--color-warn-bg); color: var(--color-warn-text); }

.empty-hint { color: var(--color-text-muted); font-style: italic; }

/* --- Statistik-Kacheln --- */
.stat-cards { display: flex; gap: 16px; margin-bottom: 8px; }
.stat-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 18px 22px;
    min-width: 160px;
}
.stat-value { display: block; font-size: 1.8rem; font-weight: 700; color: var(--color-primary-dark); }
.stat-label { font-size: 0.82rem; color: var(--color-text-muted); }

/* --- Newsletter-Vorschau --- */
.newsletter-preview {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius);
    padding: 20px;
}

@media (max-width: 640px) {
    .topbar-inner { flex-wrap: wrap; height: auto; padding: 10px 16px; }
    .main-nav { order: 3; width: 100%; }
    .stat-cards { flex-direction: column; }
}
