/**
 * Datei: /assets/app.css
 */
:root {
    --app-primary: #214761;
    --app-primary-dark: #173347;
    --app-accent: #d8b35c;
    --app-bg: #f3f5f7;
    --app-radius: .55rem;
}

html { min-height: 100%; }
body {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    background: var(--app-bg);
    color: #24313a;
}
.app-main { flex: 1 0 auto; }
.app-navbar { background: linear-gradient(135deg, var(--app-primary-dark), var(--app-primary)); }
.app-navbar .nav-link { border-radius: .35rem; }
.app-navbar .nav-link.active { background: rgba(255,255,255,.14); }
.app-brand-mark {
    display: inline-grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    border-radius: 50%;
    background: var(--app-accent);
    color: #1f2c33;
    font-weight: 800;
}
.app-brand-mark-large { width: 3.5rem; height: 3.5rem; font-size: 1.65rem; }
.card, .modal-content, .form-control, .form-select, .btn, .alert { border-radius: var(--app-radius); }
.card-header:first-child { border-radius: var(--app-radius) var(--app-radius) 0 0; }
.metric-card { border-left: .25rem solid var(--app-primary) !important; }
.metric-label { color: #63727d; font-size: .84rem; text-transform: uppercase; letter-spacing: .035em; }
.metric-value { margin-top: .2rem; font-size: clamp(1.45rem, 3vw, 2rem); font-weight: 700; line-height: 1.1; }
.metric-value-money { font-size: clamp(1.15rem, 2.5vw, 1.65rem); }
.table > :not(caption) > * > * { padding: .75rem; }
.table thead th { background: #eef2f4; color: #485863; font-size: .82rem; text-transform: uppercase; letter-spacing: .025em; border-bottom-width: 1px; }
.status-badge { display: inline-block; padding: .25rem .5rem; border-radius: 999px; font-size: .78rem; font-weight: 600; white-space: nowrap; }
.status-erfasst { background: #e9ecef; color: #495057; }
.status-vorgelegt { background: #fff3cd; color: #664d03; }
.status-beschlossen { background: #d1e7dd; color: #0f5132; }
.status-abgelehnt { background: #f8d7da; color: #842029; }
.auth-shell { min-height: calc(100vh - 7rem); display: grid; place-items: center; padding: 1rem; }
.auth-card { width: min(100%, 29rem); }
.app-footer { background: #fff; }
.last-border-0:last-child { border-bottom: 0 !important; }
address { font-style: normal; }
.modal-footer.sticky-bottom { z-index: 2; border-top: 1px solid var(--bs-border-color); }
.print-heading { margin-bottom: 1rem; }

@media (max-width: 767.98px) {
    .app-main { padding-left: .65rem !important; padding-right: .65rem !important; }
    .table > :not(caption) > * > * { padding: .6rem; }
    .modal-dialog { margin: .4rem; }
}

@media print {
    body { background: #fff; font-size: 10pt; }
    .app-main { padding: 0 !important; }
    .card, .print-card { box-shadow: none !important; border: 0 !important; }
    .table { font-size: 9pt; }
    .table thead th { background: #eee !important; color: #000 !important; }
    a { color: #000 !important; text-decoration: none !important; }
    @page { size: A4 landscape; margin: 12mm; }
}
