:root {
    --fa-primary: #1f5a36;
    --fa-primary-dark: #163f26;
    --fa-accent: #8fbf3d;
    --fa-sand: #f3f0e7;
    --fa-surface: #ffffff;
    --fa-bg: #f7f7f2;
    --fa-border: rgba(24, 51, 33, 0.10);
    --fa-text: #1e2d22;
    --fa-muted: #6b7a70;
    --fa-danger: #8f2d2d;
    --fa-warning: #a96d00;
    --fa-shadow: 0 18px 38px rgba(24, 51, 33, 0.08);
}

body {
    background: linear-gradient(180deg, #f8faf6 0%, var(--fa-bg) 100%);
    color: var(--fa-text);
}

.fa-navbar {
    background: linear-gradient(135deg, var(--fa-primary-dark), var(--fa-primary));
    box-shadow: 0 10px 24px rgba(20, 53, 33, 0.18);
}

.navbar-toggler {
    border-color: rgba(255,255,255,.25);
}

.navbar-toggler:focus { box-shadow: none; }

.brand-mark {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--fa-accent), #b6d86a);
    color: #173a24;
    font-weight: 800;
    letter-spacing: 0.02em;
}

.nav-link, .navbar-brand, .nav-user { color: #fff; }
.nav-link:hover, .navbar-brand:hover { color: #f1ffe8; }
.nav-user { font-size: .92rem; }

.fa-footer {
    border-top: 1px solid var(--fa-border);
    background: #f1f3eb;
    color: var(--fa-muted);
}

.shadow-card {
    border: 1px solid var(--fa-border);
    border-radius: 1.2rem;
    box-shadow: var(--fa-shadow);
    background: var(--fa-surface);
}

.btn-fa {
    background: linear-gradient(135deg, var(--fa-primary), #2d7345);
    color: #fff;
    border: none;
}

.btn-fa:hover,
.btn-fa:focus {
    background: linear-gradient(135deg, #19462a, #255d38);
    color: #fff;
}

.stat-card .stat-label {
    color: var(--fa-muted);
    font-size: .92rem;
    margin-bottom: .25rem;
}

.stat-card .stat-value {
    font-size: clamp(1.8rem, 4vw, 2.6rem);
    line-height: 1;
    font-weight: 800;
}

.progress {
    height: .7rem;
    border-radius: 999px;
    background: #ebefe6;
}

.progress-bar {
    background: linear-gradient(90deg, var(--fa-primary), var(--fa-accent));
}

.timeline-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.timeline-item {
    padding-left: 1rem;
    border-left: 4px solid #dce6d6;
}

.tree-card .card-footer,
.card-footer.bg-transparent {
    border-top: 1px solid transparent;
}

.chip {
    display: inline-flex;
    align-items: center;
    gap: .25rem;
    border-radius: 999px;
    padding: .4rem .8rem;
    background: #eef4ea;
    color: #314637;
    font-size: .88rem;
}

.status-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .45rem .8rem;
    font-size: .85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}

.status-neu { background: #e7f1ff; color: #1f4b7a; }
.status-ok { background: #e4f6e8; color: #1b6b2e; }
.status-beobachten { background: #fff3d8; color: #8a6200; }
.status-pflege_noetig { background: #ffe7c7; color: #a65f00; }
.status-kritisch, .status-gesperrt { background: #fbe0e0; color: var(--fa-danger); }
.status-gefaellt, .status-archiviert { background: #ececeb; color: #5f655f; }

.detail-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 1rem;
}

.detail-grid span {
    display: block;
    color: var(--fa-muted);
    font-size: .85rem;
    margin-bottom: .15rem;
}

.detail-grid strong { font-size: 1rem; }

.grid-board {
    display: grid;
    grid-template-columns: repeat(8, minmax(90px, 1fr));
    gap: .75rem;
}

.grid-cell {
    border-radius: 1rem;
    border: 1px solid var(--fa-border);
    min-height: 92px;
    padding: .9rem;
    background: linear-gradient(180deg, #fcfdf9, #eef4ea);
    color: var(--fa-text);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.grid-cell:hover {
    transform: translateY(-2px);
    box-shadow: var(--fa-shadow);
}

.grid-code { font-weight: 800; font-size: 1.15rem; }
.grid-count { color: var(--fa-muted); font-size: .9rem; }

.text-bg-success-subtle {
    background: #e7f5df !important;
    color: #24542a !important;
}

@media (max-width: 992px) {
    .grid-board {
        grid-template-columns: repeat(2, minmax(120px, 1fr));
    }
}

.measure-card {
    overflow: hidden;
}

.measure-actions {
    min-width: 180px;
}

.measure-priority-hoch {
    background: #fbe0e0;
    color: #8f2d2d;
}

.measure-priority-mittel {
    background: #ffe7c7;
    color: #8b5e00;
}

.measure-priority-niedrig {
    background: #e7f1ff;
    color: #1f4b7a;
}

.measure-status-offen {
    background: #fff3d8;
    color: #8a6200;
}

.measure-status-in_bearbeitung {
    background: #e7f1ff;
    color: #1f4b7a;
}

.measure-status-zur_pruefung {
    background: #ece6ff;
    color: #5d3d9c;
}

.measure-status-erledigt {
    background: #e4f6e8;
    color: #1b6b2e;
}

.measure-status-verworfen {
    background: #ececeb;
    color: #5f655f;
}


.photo-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:1rem; }
.photo-grid-inline { grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); }
.photo-card { border:1px solid var(--fa-border); border-radius:1rem; overflow:hidden; color:var(--fa-text); background:#fff; box-shadow:var(--fa-shadow); }
.photo-card img { width:100%; height:160px; object-fit:cover; display:block; background:#eef4ea; }
.photo-card-inline img { height:110px; }
.photo-meta { display:flex; flex-direction:column; gap:.2rem; padding:.75rem; }
.photo-meta small { color:var(--fa-muted); }
.battle-grid-wrap { min-width: 760px; }
.battle-grid { display:grid; grid-template-columns:56px repeat(8, minmax(82px, 1fr)); gap:.45rem; align-items:stretch; }
.battle-head { display:flex; align-items:center; justify-content:center; font-weight:800; color:var(--fa-primary); min-height:56px; }
.battle-corner { background:transparent; }
.battle-cell { border:1px solid var(--fa-border); border-radius:1rem; background:linear-gradient(180deg,#fcfdf9,#eef4ea); min-height:82px; color:var(--fa-text); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:.2rem; }
.battle-code { font-weight:800; }
.battle-dot { width:10px; height:10px; border-radius:50%; background:#cfd8c9; display:inline-block; }
.battle-dot.has-trees { background:var(--fa-primary); }
.nav-pills .nav-link.active { background:linear-gradient(135deg, var(--fa-primary), #2d7345); }
@media (max-width: 992px) { .battle-grid-wrap { min-width: 680px; } }


.tone-danger .stat-value{color:var(--fa-danger)}
.tone-warning .stat-value{color:#8a6200}
.tone-success .stat-value{color:#1b6b2e}
.compact-timeline .timeline-item{padding-left:.85rem;border-left-width:3px}
.compact-cards .card-body{padding:1rem 1rem .75rem}
.compact-card .chip{padding:.3rem .65rem;font-size:.8rem}
.compact-meta-grid{display:flex;flex-wrap:wrap;gap:.5rem}
.compact-row{border:1px solid var(--fa-border);border-radius:1rem;padding:1rem;background:#fff}
.compact-table td,.compact-table th{padding:.75rem .85rem;vertical-align:top}
.chip-danger{background:#fbe0e0;color:var(--fa-danger)}
.is-overdue{border-color:#efb1b1!important;box-shadow:0 0 0 1px rgba(143,45,45,.08),var(--fa-shadow)}
.modal-content{border-radius:1.25rem;border:1px solid var(--fa-border)}
.qr-label-page .label-sheet{display:flex;justify-content:center}.qr-label-page .label-card{width:100%;max-width:840px;border:1px dashed #8aa17f;border-radius:1.25rem;padding:1.5rem;display:grid;grid-template-columns:1fr 220px;gap:1.5rem;align-items:center;background:#fff}.qr-box{display:flex;align-items:center;justify-content:center;border:1px solid var(--fa-border);border-radius:1rem;padding:1rem;background:#f9fbf7}.qr-box img{max-width:100%;height:auto}.table form.row{min-width:220px}@media (max-width: 992px){.measure-actions{min-width:0}.compact-table td,.compact-table th{white-space:normal}.qr-label-page .label-card{grid-template-columns:1fr}.nav-user{display:none}}@media print{.fa-navbar,.fa-footer,.no-print,.btn,.alert{display:none!important}main{padding:0!important}.qr-label-page .label-card{border:1px solid #000}}