:root {
    --brand: #0f6c54;
    --brand-dark: #0b4f3f;
    --ink: #12304a;
    --muted: #6f8292;
    --bg: #f4f7f8;
    --line: #e4eaee;
}
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font-family: Inter, system-ui, -apple-system, Segoe UI, sans-serif; }
a { color: inherit; }
.app-shell { min-height: 100vh; display:flex; }
.sidebar { width:245px; background:#fff; border-right:1px solid var(--line); position:fixed; inset:0 auto 0 0; z-index:1030; }
.main-content { width:100%; min-width:0; margin-left:245px; }
.content-wrap { padding:24px; padding-bottom:40px; max-width:1800px; }
.brand { display:flex; align-items:center; gap:10px; color:#0a3555; }
.brand strong { display:block; font-size:17px; line-height:1.1; }
.brand small { display:block; color:var(--muted); font-size:11px; margin-top:3px; }
.brand-mark { color:var(--brand); font-size:31px; width:38px; text-align:center; }
.brand.compact strong { font-size:14px; }.brand.compact .brand-mark { font-size:26px; width:30px; }
.sidebar .nav-link { color:#173952; border-radius:12px; padding:11px 13px; display:flex; align-items:center; gap:11px; font-weight:600; }
.sidebar .nav-link:hover, .sidebar .nav-link.active { background:#e9f4f0; color:var(--brand); }
.mobile-header { height:68px; background:#fff; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; padding:8px 14px; position:sticky; top:0; z-index:1020; }
.card-soft { background:#fff; border:1px solid var(--line); border-radius:16px; box-shadow:0 2px 12px rgba(22,46,66,.045); }
.stat-card { padding:16px; height:100%; display:flex; align-items:center; gap:13px; }
.stat-icon { width:46px; height:46px; border-radius:50%; display:grid; place-items:center; font-size:20px; background:#eaf6f1; color:var(--brand); flex:0 0 46px; }
.stat-icon.warning { background:#fff1d7; color:#e88c00; }.stat-icon.danger { background:#fde5e5; color:#c63737; }
.stat-value { font-size:26px; font-weight:800; line-height:1; }.stat-label { font-weight:700; margin-top:4px; }.stat-hint { color:var(--muted); font-size:12px; }
.page-title { font-weight:800; color:#0f3150; margin:0; }
.btn-brand { --bs-btn-bg: var(--brand); --bs-btn-border-color: var(--brand); --bs-btn-hover-bg: var(--brand-dark); --bs-btn-hover-border-color: var(--brand-dark); color:#fff; }
.map-card { overflow:hidden; }.map-toolbar { padding:12px; border-bottom:1px solid var(--line); background:#fff; }.map-lg { height:520px; }.map-sm { height:310px; }
.leaflet-container { font-family:inherit; }
.map-pin { width:34px; height:34px; border-radius:50% 50% 50% 0; transform:rotate(-45deg); display:grid; place-items:center; color:#fff; box-shadow:0 2px 7px rgba(0,0,0,.28); border:2px solid #fff; }
.map-pin i { transform:rotate(45deg); font-size:15px; }.map-pin.berghuette { background:#8c4e35; }.map-pin.hofladen { background:#169356; }.map-pin.hotel { background:#2476d4; }.map-pin.bikeshop { background:#ef8410; }.map-pin.sonstiges { background:#697b88; }.map-pin.open { box-shadow:0 0 0 4px #f7a61a, 0 2px 7px rgba(0,0,0,.28); }
.table-clean { margin:0; }.table-clean th { font-size:12px; color:#627789; background:#f8fafb; white-space:nowrap; }.table-clean td { vertical-align:middle; }.table-clean tbody tr { cursor:default; }
.location-type { display:flex; align-items:center; gap:8px; }.location-type i { color:var(--brand); }
.badge { font-weight:700; letter-spacing:.02em; }
.detail-kpis .rowline { display:flex; justify-content:space-between; gap:20px; padding:9px 0; border-bottom:1px solid var(--line); }.detail-kpis .rowline:last-child { border-bottom:0; }.detail-kpis strong { font-size:20px; }
.visit-calc { background:#eaf5ff; border-radius:12px; padding:12px 14px; }.visit-calc .big { font-size:23px; font-weight:800; }
.form-label { font-weight:700; font-size:14px; }.form-control, .form-select { border-radius:11px; min-height:46px; border-color:#dbe4ea; }.form-control:focus, .form-select:focus { border-color:#64aa93; box-shadow:0 0 0 .2rem rgba(15,108,84,.12); }
.mobile-bottom-nav { position:fixed; z-index:1040; left:0; right:0; bottom:0; height:66px; background:#fff; border-top:1px solid var(--line); display:grid; grid-template-columns:repeat(4,1fr); padding-bottom:env(safe-area-inset-bottom); }
.mobile-bottom-nav a { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:3px; text-decoration:none; color:#65798a; font-size:11px; }.mobile-bottom-nav i { font-size:20px; }.mobile-bottom-nav a.active { color:var(--brand); font-weight:700; }
.quick-filter .btn { border-radius:999px; }.empty-state { text-align:center; padding:50px 20px; color:var(--muted); }.empty-state i { font-size:42px; color:#b5c2ca; }
.status-dot { width:10px; height:10px; border-radius:50%; display:inline-block; margin-right:6px; }.status-dot.open { background:#f3a300; }.status-dot.ok { background:#15925b; }
@media (max-width: 991.98px) {
    .main-content { margin-left:0; }.content-wrap { padding:14px 12px 84px; }.map-lg { height:360px; }.desktop-only { display:none!important; }.card-soft { border-radius:14px; }.page-title { font-size:22px; }
}
@media (max-width: 575.98px) {
    .stat-card { padding:13px; gap:10px; }.stat-icon { width:40px;height:40px;flex-basis:40px; }.stat-value { font-size:22px; }.map-lg { height:340px; }.table-responsive.mobile-cards table thead { display:none; }.table-responsive.mobile-cards table,.table-responsive.mobile-cards tbody,.table-responsive.mobile-cards tr,.table-responsive.mobile-cards td { display:block; width:100%; }.table-responsive.mobile-cards tr { padding:12px 14px; border-bottom:1px solid var(--line); }.table-responsive.mobile-cards td { border:0; padding:3px 0; }.table-responsive.mobile-cards td[data-label]::before { content:attr(data-label) ': '; color:#6e8190; font-size:12px; font-weight:600; }.table-responsive.mobile-cards td.primary-cell::before { content:''; }.table-responsive.mobile-cards td.primary-cell { font-size:16px; font-weight:800; color:#113451; }
}
