/* =============================================================
   Angler-App – "Ausgeworfen"
   Mobile-App-Design mit Bottom-Navigation und echten Buttons
   ============================================================= */

:root {
    /* Farben */
    --color-primary:      #0B4F6C; /* tiefes Seeblau */
    --color-primary-dark: #073A50;
    --color-primary-light:#146C8C;
    --color-bg-app:        #EEF3F4; /* helles App-Grau */
    --color-surface:       #FFFFFF;
    --color-line:           #DEE7E9;
    --color-ink:            #16232B;
    --color-ink-muted:      #5C6B73;
    --color-accent:         #FF6B4A; /* Korallenrot/Orange für Aktionen */
    --color-accent-dark:    #E24F2E;
    --color-success:        #2E7D5B;
    --color-success-bg:     #E1F0E8;
    --color-danger:         #D14343;
    --color-danger-bg:      #FBE6E6;
    --color-moss:           #2E7D5B;

    /* Typografie */
    --font-display: 'Poppins', system-ui, sans-serif;
    --font-body:    'Inter', system-ui, sans-serif;
    --font-mono:    'JetBrains Mono', 'Courier New', monospace;

    --radius:     18px;
    --radius-btn: 12px;
    --shadow-card: 0 10px 30px -12px rgba(11, 79, 108, 0.22);
    --shadow-btn:  0 6px 16px -4px rgba(226, 79, 46, 0.45);

    --bottom-nav-height: 68px;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }

body {
    font-family: var(--font-body);
    color: var(--color-ink);
    background: var(--color-bg-app);
    -webkit-font-smoothing: antialiased;
}

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

h1, h2 { font-family: var(--font-display); }

/* -------------------------------------------------------------
   Buttons – echte, griffige Buttons statt Pillen
   ------------------------------------------------------------- */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    padding: 15px 20px;
    background: var(--color-accent);
    color: #FFFFFF;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 0.98rem;
    border: none;
    border-radius: var(--radius-btn);
    cursor: pointer;
    box-shadow: var(--shadow-btn);
    transition: transform 0.08s ease, box-shadow 0.15s ease, background 0.15s ease;
}

.btn:hover { background: var(--color-accent-dark); }

.btn:active {
    transform: translateY(2px) scale(0.99);
    box-shadow: 0 3px 8px -2px rgba(226, 79, 46, 0.4);
}

.btn:focus-visible {
    outline: 3px solid var(--color-primary-dark);
    outline-offset: 2px;
}

.btn-secondary {
    background: var(--color-surface);
    color: var(--color-primary);
    border: 2px solid var(--color-primary);
    box-shadow: none;
}

.btn-secondary:hover {
    background: var(--color-primary);
    color: #FFFFFF;
}

.btn-small {
    width: auto;
    padding: 10px 18px;
    font-size: 0.88rem;
}

/* -------------------------------------------------------------
   Auth-Seiten (Login / Registrieren)
   ------------------------------------------------------------- */
.auth-page {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 40px 20px;
    background: linear-gradient(160deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
    position: relative;
    overflow: hidden;
}

.auth-page::before {
    content: "";
    position: absolute;
    width: 480px;
    height: 480px;
    border: 1px solid rgba(255,255,255,0.10);
    border-radius: 50%;
    top: -120px;
    right: -140px;
}

.auth-page::after {
    content: "";
    position: absolute;
    width: 320px;
    height: 320px;
    border: 1px solid rgba(255,255,255,0.08);
    border-radius: 50%;
    bottom: -100px;
    left: -100px;
}

.app-icon {
    position: relative;
    z-index: 1;
    width: 76px;
    height: 76px;
    background: var(--color-accent);
    border-radius: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: var(--shadow-btn);
    margin-bottom: 18px;
}

.app-icon svg {
    width: 40px;
    height: 40px;
}

.auth-title {
    position: relative;
    z-index: 1;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 1.3rem;
    color: #FFFFFF;
    margin: 0 0 28px;
    letter-spacing: 0.01em;
}

.auth-card {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 400px;
    background: var(--color-surface);
    border-radius: var(--radius);
    box-shadow: 0 25px 60px -20px rgba(0,0,0,0.35);
    padding: 32px 28px 28px;
}

.auth-card h1 {
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0 0 4px;
    color: var(--color-ink);
}

.auth-card p.sub {
    margin: 0 0 22px;
    color: var(--color-ink-muted);
    font-size: 0.9rem;
}

.auth-footer {
    margin-top: 18px;
    text-align: center;
    font-size: 0.88rem;
    color: var(--color-ink-muted);
}

.auth-footer a { font-weight: 600; }

/* -------------------------------------------------------------
   Formulare
   ------------------------------------------------------------- */
.field { margin-bottom: 16px; }

.field label {
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: var(--color-ink-muted);
    margin-bottom: 6px;
}

.field input,
textarea {
    width: 100%;
    padding: 13px 14px;
    font-family: var(--font-body);
    font-size: 1rem;
    border: 2px solid var(--color-line);
    border-radius: 10px;
    background: #FFFFFF;
    color: var(--color-ink);
}

.field input:focus,
textarea:focus {
    outline: none;
    border-color: var(--color-primary);
}

textarea { resize: vertical; }

.inline-form {
    display: flex;
    gap: 12px;
    align-items: flex-end;
    flex-wrap: wrap;
}

/* Meldungen */
.alert {
    padding: 13px 16px;
    border-radius: 12px;
    font-size: 0.9rem;
    margin-bottom: 16px;
    font-weight: 500;
}

.alert-error   { background: var(--color-danger-bg);  color: var(--color-danger); }
.alert-success { background: var(--color-success-bg); color: var(--color-success); }

/* -------------------------------------------------------------
   App-Rahmen: Topbar + Bottom-Navigation (Handy-Stil)
   ------------------------------------------------------------- */
.app-topbar {
    background: var(--color-primary);
    color: #FFFFFF;
    padding: 18px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    position: sticky;
    top: 0;
    z-index: 10;
}

.app-topbar .topbar-icon {
    width: 34px;
    height: 34px;
    background: var(--color-accent);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.app-topbar .topbar-icon svg {
    width: 20px;
    height: 20px;
}

.app-topbar h1 {
    font-size: 1.05rem;
    font-weight: 600;
    margin: 0;
}

.app-main {
    max-width: 720px;
    margin: 0 auto;
    padding: 24px 18px calc(var(--bottom-nav-height) + 32px);
}

.lead {
    color: var(--color-ink-muted);
    margin: 0 0 24px;
}

.panel {
    background: var(--color-surface);
    border-radius: var(--radius);
    box-shadow: var(--shadow-card);
    padding: 24px;
}

.panel p { line-height: 1.6; color: var(--color-ink); }
.panel-form { margin-bottom: 20px; }
.hidden-form { display: none; margin-top: 18px; }

/* Bottom-Navigation */
.bottom-nav {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    height: var(--bottom-nav-height);
    background: var(--color-surface);
    border-top: 1px solid var(--color-line);
    display: flex;
    align-items: stretch;
    justify-content: space-around;
    box-shadow: 0 -6px 20px -8px rgba(11,79,108,0.18);
    z-index: 20;
    padding-bottom: env(safe-area-inset-bottom, 0);
}

.bottom-nav a {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    text-decoration: none;
    color: var(--color-ink-muted);
    font-size: 0.7rem;
    font-weight: 600;
    font-family: var(--font-body);
}

.bottom-nav a svg {
    width: 22px;
    height: 22px;
}

.bottom-nav a.active {
    color: var(--color-accent);
}

/* -------------------------------------------------------------
   Rollen-Badge
   ------------------------------------------------------------- */
.role-stamp {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    width: 88px;
    height: 88px;
    border-radius: 20px;
    color: #FFFFFF;
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 0.8rem;
    margin-bottom: 18px;
    box-shadow: 0 10px 22px -8px rgba(0,0,0,0.3);
}

.role-stamp span.sub {
    font-family: var(--font-mono);
    font-size: 0.55rem;
    font-weight: 400;
    letter-spacing: 0.05em;
    margin-top: 3px;
    opacity: 0.9;
}

.role-stamp.admin { background: var(--color-accent); }
.role-stamp.leser { background: var(--color-moss); }

/* -------------------------------------------------------------
   Fischarten & Köder
   ------------------------------------------------------------- */
.fish-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 14px;
}

.fish-card {
    position: relative;
    background: var(--color-surface);
    border-radius: 16px;
    box-shadow: var(--shadow-card);
    overflow: hidden;
}

.fish-card-link {
    display: block;
    text-decoration: none;
    color: var(--color-ink);
}

.fish-thumb {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    display: block;
    background: #E4EFF2;
}

.fish-thumb-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
}

.fish-name {
    display: block;
    padding: 10px 12px;
    font-family: var(--font-display);
    font-weight: 600;
    font-size: 0.92rem;
}

.fish-delete-form { position: absolute; top: 8px; right: 8px; }

.fish-delete-btn {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: none;
    background: rgba(255,255,255,0.92);
    color: var(--color-danger);
    font-weight: 700;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}

.fish-delete-btn:hover { background: var(--color-danger); color: #FFFFFF; }

.fish-detail-head {
    display: flex;
    gap: 20px;
    align-items: center;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.fish-detail-img {
    width: 120px;
    height: 120px;
    border-radius: 16px;
    object-fit: cover;
    flex-shrink: 0;
}

.fish-detail h1 { font-size: 1.5rem; margin: 0 0 6px; }
.fish-detail h2 { font-size: 1.05rem; margin: 20px 0 8px; color: var(--color-primary); }

.fish-meta { margin: 4px 0; color: var(--color-ink-muted); font-size: 0.9rem; }

.chip-list { display: flex; flex-wrap: wrap; gap: 10px; }

.chip {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--color-surface);
    border-radius: 999px;
    padding: 9px 8px 9px 16px;
    box-shadow: var(--shadow-card);
    font-weight: 600;
    font-size: 0.9rem;
}

.chip-delete {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: none;
    background: transparent;
    color: var(--color-ink-muted);
    cursor: pointer;
    font-size: 0.78rem;
}

.chip-delete:hover { background: var(--color-danger); color: #FFFFFF; }

@media (max-width: 480px) {
    .auth-card { padding: 28px 22px 24px; }
    .app-main { padding: 20px 14px calc(var(--bottom-nav-height) + 28px); }
}

/* -------------------------------------------------------------
   Angel-App v2: dunkles, outdoor-taugliches Mobile Layout
   ------------------------------------------------------------- */
:root {
    --color-primary: #063c49;
    --color-primary-dark: #052b35;
    --color-bg-app: #071b22;
    --color-surface: #0d2a33;
    --color-line: rgba(255,255,255,0.10);
    --color-ink: #eef8f6;
    --color-ink-muted: #9fb6b8;
    --color-accent: #25d6a2;
    --color-accent-dark: #16b98a;
    --color-moss: #2f8f73;
    --shadow-card: 0 18px 45px -20px rgba(0,0,0,0.75);
    --shadow-btn: 0 12px 24px -10px rgba(37,214,162,0.75);
    --bottom-nav-height: 74px;
}
body { background: radial-gradient(circle at top, #124c59 0%, #071b22 36%, #041116 100%); }
a { color: var(--color-accent); }
.app-topbar { background: rgba(5, 36, 44, .82); backdrop-filter: blur(16px); border-bottom: 1px solid var(--color-line); }
.app-topbar .topbar-icon { background: linear-gradient(145deg, var(--color-accent), #0d8fa0); }
.app-main { max-width: 760px; }
.panel, .info-card, .catch-item, .feed-card, .spot-card, .profile-card { border: 1px solid var(--color-line); }
.btn { color: #032019; min-height: 54px; }
.btn-secondary { background: transparent; color: var(--color-accent); border-color: var(--color-accent); }
.field input, textarea, .field select {
    width: 100%; padding: 14px; font-family: var(--font-body); font-size: 1rem;
    border: 1px solid var(--color-line); border-radius: 14px; background: rgba(255,255,255,0.06); color: var(--color-ink);
}
.field select option { color: #111; }
.field input:focus, textarea:focus, .field select:focus { outline: 2px solid rgba(37,214,162,.35); border-color: var(--color-accent); }
.hero-card {
    display: grid; gap: 22px; padding: 26px; margin-bottom: 18px; border-radius: 28px;
    background: linear-gradient(145deg, rgba(37,214,162,.20), rgba(13,42,51,.95)), url("data:image/svg+xml,%3Csvg width='160' height='160' viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' stroke='rgba(255,255,255,.10)' stroke-width='2'%3E%3Cpath d='M0 80c40-35 80-35 160 0M0 110c40-35 80-35 160 0M0 50c40-35 80-35 160 0'/%3E%3C/g%3E%3C/svg%3E");
    box-shadow: var(--shadow-card); border: 1px solid var(--color-line);
}
.hero-card h2, .app-section h2, .community-head h2 { margin: 4px 0 8px; font-size: 1.55rem; }
.hero-card p { margin: 0; color: var(--color-ink-muted); }
.eyebrow { margin: 0; color: #baf7e6; text-transform: uppercase; letter-spacing: .08em; font-weight: 800; font-size: .72rem; }
.eyebrow.dark { color: var(--color-accent); }
.hero-action { text-decoration: none; }
.quick-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 18px; }
.info-card { background: rgba(13,42,51,.88); border-radius: 22px; padding: 18px; box-shadow: var(--shadow-card); }
.info-card .label { color: var(--color-ink-muted); font-size: .78rem; margin: 4px 0; }
.info-card h3 { margin: 0 0 6px; font-family: var(--font-display); font-size: 1.25rem; }
.info-card p { color: var(--color-ink-muted); margin: 0; font-size: .88rem; }
.card-icon { font-size: 1.55rem; }
.section-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; margin-bottom:16px; }
.section-head h2 { margin: 2px 0 0; }
.catch-preview, .catch-item { display:flex; gap:14px; align-items:center; }
.catch-preview img, .catch-item img { width:84px; height:84px; object-fit:cover; border-radius:18px; }
.catch-preview h3, .catch-item h3 { margin:0 0 4px; }
.catch-preview p, .catch-item p { margin:0 0 4px; color: var(--color-ink-muted); font-size:.9rem; }
.catch-placeholder { width:84px; height:84px; display:grid; place-items:center; border-radius:18px; background: rgba(255,255,255,.08); font-size:2rem; }
.catch-placeholder.small { flex: 0 0 72px; width:72px; height:72px; }
.stats-row { display:grid; grid-template-columns: repeat(3,1fr); gap:12px; margin-top:18px; }
.stats-row div { background: rgba(255,255,255,.07); border:1px solid var(--color-line); border-radius:18px; padding:14px; text-align:center; }
.stats-row strong { display:block; font-family:var(--font-display); font-size:1.2rem; color:#fff; }
.stats-row span { color:var(--color-ink-muted); font-size:.72rem; }
.empty-state { padding:18px; border-radius:18px; background:rgba(255,255,255,.06); color:var(--color-ink-muted); }
.two-cols { display:grid; grid-template-columns: 1fr 1fr; gap:12px; }
.catch-list { display:grid; gap:12px; margin-top:18px; }
.catch-item { background:rgba(13,42,51,.86); border-radius:20px; padding:12px; }
.fake-map { height:260px; border-radius:24px; margin:16px 0; position:relative; overflow:hidden; background: linear-gradient(135deg, rgba(37,214,162,.18), rgba(11,79,108,.35)), repeating-linear-gradient(45deg, rgba(255,255,255,.05) 0 2px, transparent 2px 24px); }
.pin { position:absolute; font-size:2rem; filter: drop-shadow(0 8px 10px rgba(0,0,0,.5)); }
.p1{left:22%;top:28%;}.p2{left:62%;top:48%;}.p3{left:45%;top:68%;}
.spot-list { display:grid; gap:12px; margin-top:16px; }
.spot-card { display:flex; justify-content:space-between; align-items:center; gap:10px; background:rgba(255,255,255,.06); border-radius:18px; padding:14px; }
.spot-card span, .spot-card small { color:var(--color-ink-muted); }
.feed-card { background:rgba(13,42,51,.86); border-radius:24px; overflow:hidden; margin-bottom:16px; box-shadow:var(--shadow-card); }
.feed-card > img { width:100%; max-height:280px; object-fit:cover; display:block; }
.feed-body { padding:16px; }
.feed-body h3 { margin:5px 0; }
.feed-body p { color:var(--color-ink-muted); }
.feed-actions { display:flex; justify-content:space-between; gap:8px; padding-top:10px; border-top:1px solid var(--color-line); color:var(--color-accent); font-weight:700; font-size:.86rem; }
.profile-card { text-align:center; background:linear-gradient(145deg, rgba(37,214,162,.16), rgba(13,42,51,.9)); border-radius:28px; padding:28px; box-shadow:var(--shadow-card); }
.avatar { width:84px; height:84px; margin:0 auto 12px; border-radius:28px; display:grid; place-items:center; background:var(--color-accent); color:#032019; font:700 2rem var(--font-display); }
.profile-card h2 { margin:0; }.profile-card p { margin:6px 0 0; color:var(--color-ink-muted); }
.gear-list { display:flex; flex-wrap:wrap; gap:10px; }
.gear-list span { padding:10px 12px; border-radius:999px; background:rgba(255,255,255,.07); border:1px solid var(--color-line); }
.bottom-nav { background: rgba(5, 22, 28, .94); backdrop-filter: blur(18px); border-top: 1px solid var(--color-line); height: var(--bottom-nav-height); }
.bottom-nav a { color: var(--color-ink-muted); font-size:1.25rem; gap:2px; }
.bottom-nav a span { font-size:.65rem; }
.bottom-nav a.active { color: var(--color-accent); }
@media (min-width: 720px) { .hero-card { grid-template-columns: 1fr auto; align-items:end; } .hero-action { width:auto; padding-inline:24px; } }
@media (max-width: 430px) { .quick-grid, .two-cols { grid-template-columns:1fr; } .stats-row { grid-template-columns:1fr; } .section-head { display:block; } }


/* v2.1: bessere Handy-Safe-Area für Bottom-Navigation */
:root { --bottom-nav-height: 86px; }
.app-main {
    padding-bottom: calc(var(--bottom-nav-height) + env(safe-area-inset-bottom, 0px) + 28px);
}
.bottom-nav {
    min-height: var(--bottom-nav-height);
    height: calc(var(--bottom-nav-height) + env(safe-area-inset-bottom, 0px));
    padding: 8px 8px calc(10px + env(safe-area-inset-bottom, 0px));
    align-items: center;
}
.bottom-nav a {
    min-height: 58px;
    border-radius: 16px;
    font-size: 1.35rem;
}
.bottom-nav a span { font-size: .68rem; }
.bottom-nav a.active { background: rgba(37,214,162,.10); }
.location-line { margin-top: 10px !important; color: #baf7e6 !important; font-weight: 700; }
.location-panel { margin-bottom: 18px; }
.location-form { display: grid; gap: 14px; }
.location-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.hint { margin: 0; color: var(--color-ink-muted); font-size: .86rem; line-height: 1.45; }
@media (max-width: 430px) { .location-actions { grid-template-columns: 1fr; } }

/* v2.2 Benutzerverwaltung */
.admin-form-grid { display: grid; gap: 12px; }
.admin-user-list { display: grid; gap: 14px; }
.admin-user-card { display: grid; gap: 12px; padding: 14px; border: 1px solid var(--color-line); border-radius: 18px; background: rgba(255,255,255,.05); }
.admin-user-card form { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; }
.admin-user-card input, .admin-user-card select { width: 100%; padding: 12px; border: 1px solid var(--color-line); border-radius: 12px; background: rgba(255,255,255,.06); color: var(--color-ink); }
.admin-user-card select option { color: #111; }
.admin-user-card span, .admin-user-card small { color: var(--color-ink-muted); }
@media (min-width: 720px) { .admin-form-grid { grid-template-columns: 1fr 1fr 160px 180px; align-items:end; } }
@media (max-width: 520px) { .admin-user-card form { grid-template-columns: 1fr; } }

/* v2.3 WebAdmin: Fischarten und Köder */
.admin-module-grid { display:grid; gap:14px; margin-top:18px; }
.admin-module-card { display:grid; grid-template-columns:52px 1fr; gap:4px 14px; align-items:center; padding:18px; border:1px solid var(--color-line); border-radius:20px; background:rgba(255,255,255,.05); color:var(--color-ink); text-decoration:none; }
.admin-module-card > span { grid-row:1 / 3; font-size:2rem; }
.admin-module-card strong { font:700 1.05rem var(--font-display); }
.admin-module-card small { color:var(--color-ink-muted); }
.admin-back { display:inline-block; margin-bottom:14px; text-decoration:none; font-weight:700; }
.admin-create-row { display:grid; gap:12px; align-items:end; }
.admin-catalog-list { display:grid; gap:12px; }
.admin-catalog-row { display:grid; grid-template-columns:1fr auto; gap:10px; padding:12px; border:1px solid var(--color-line); border-radius:16px; background:rgba(255,255,255,.04); }
.admin-edit-form { display:grid; grid-template-columns:1fr auto; gap:10px; }
.admin-edit-form input { width:100%; padding:12px; border:1px solid var(--color-line); border-radius:12px; background:rgba(255,255,255,.06); color:var(--color-ink); }
.btn-danger { background:#b9414a; color:#fff; border-color:#b9414a; }
.admin-details { border:1px solid var(--color-line); border-radius:18px; background:rgba(255,255,255,.04); }
.admin-details summary { cursor:pointer; padding:16px; font-weight:700; color:var(--color-accent); }
.admin-details[open] summary { border-bottom:1px solid var(--color-line); }
.admin-fish-form { display:grid; gap:12px; padding:16px; }
.admin-fish-list { display:grid; gap:14px; }
.fish-admin-card { margin:0; padding:0; overflow:hidden; }
.admin-delete-form { padding:0 16px 16px; }
@media (min-width:720px) {
  .admin-module-grid { grid-template-columns:repeat(3,1fr); }
  .admin-create-row { grid-template-columns:1fr 180px; }
  .admin-fish-form { grid-template-columns:1fr 1fr; }
  .admin-wide { grid-column:1 / -1; }
}
@media (max-width:560px) {
  .admin-catalog-row, .admin-edit-form { grid-template-columns:1fr; }
  .admin-catalog-row > form:last-child .btn { width:100%; }
}


/* v2.3.2: Bilder und Fang-Detailansicht */
.catch-preview-link,
.catch-item-link {
    color: inherit;
    text-decoration: none;
}
.catch-preview-link:hover,
.catch-item-link:hover {
    border-color: var(--color-accent);
}
.detail-link {
    display: inline-block;
    margin-top: 5px;
    color: var(--color-accent);
    font-size: .8rem;
    font-weight: 700;
}
.catch-detail-card {
    padding: 0;
    overflow: hidden;
}
.catch-detail-image {
    width: 100%;
    height: min(52vw, 360px);
    min-height: 220px;
    object-fit: cover;
    border-radius: 0;
}
.catch-detail-body {
    padding: 20px;
}
.catch-detail-body h1 {
    margin: 4px 0 18px;
}
.catch-detail-body h2 {
    margin: 22px 0 8px;
    font-size: 1rem;
}
.detail-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
}
.detail-grid div {
    padding: 12px;
    border: 1px solid var(--color-line);
    border-radius: 14px;
    background: rgba(255,255,255,.04);
}
.detail-grid span,
.detail-grid strong {
    display: block;
}
.detail-grid span {
    margin-bottom: 4px;
    color: var(--color-ink-muted);
    font-size: .74rem;
}
.fish-admin-summary {
    display: flex;
    align-items: center;
    gap: 12px;
}
.fish-admin-summary img,
.fish-admin-placeholder {
    width: 52px;
    height: 52px;
    flex: 0 0 52px;
    border-radius: 12px;
    object-fit: cover;
}
.fish-admin-placeholder {
    display: grid;
    place-items: center;
    background: rgba(255,255,255,.08);
}
@media (max-width: 430px) {
    .detail-grid { grid-template-columns: 1fr; }
}

/* v2.3.3: Bilder vollständig und proportional anzeigen */
.fish-thumb,
.fish-detail-img,
.catch-preview img,
.catch-item img,
.catch-detail-image,
.fish-admin-summary img {
    object-fit: contain;
    object-position: center;
    background: rgba(255,255,255,.06);
}

.catch-detail-image {
    height: auto;
    max-height: 520px;
    min-height: 0;
}

.is-disabled{opacity:.55;filter:grayscale(.45)}
.admin-catch-list .catch-item{align-items:center}
.admin-catch-list form{margin-left:auto}

/* v2.5: Abmelden und globaler Fangfilter */
.app-topbar { gap: 10px; }
.app-topbar h1 { flex: 1; min-width: 0; }
.topbar-logout {
    display: inline-flex; align-items: center; gap: 6px; flex: 0 0 auto;
    min-height: 42px; padding: 8px 11px; border: 1px solid var(--color-line);
    border-radius: 13px; background: rgba(255,255,255,.06); color: var(--color-accent);
    text-decoration: none; font-weight: 700; font-size: .78rem;
}
.catch-filter {
    display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 10px;
    margin: 0 0 16px; padding: 12px; border: 1px solid var(--color-line);
    border-radius: 18px; background: rgba(5,36,44,.82); box-shadow: var(--shadow-card);
}
.catch-filter label span { color: var(--color-ink-muted); font-size: .78rem; font-weight: 700; }
.catch-filter select {
    width: 100%; min-height: 44px; padding: 8px 36px 8px 12px;
    border: 1px solid var(--color-line); border-radius: 12px;
    background: rgba(255,255,255,.08); color: var(--color-ink); font: 600 .9rem var(--font-body);
}
.catch-filter select option, .catch-filter select optgroup { color: #111; }
.catch-owner { color: var(--color-accent) !important; font-size: .78rem !important; font-weight: 700; }
.detail-owner { margin: -8px 0 14px; }
.profile-logout { display: inline-flex; width: auto; margin-top: 18px; }
.spot-card-link { color: inherit; text-decoration: none; }
.spot-card-link strong small { display: block; margin-top: 4px; color: var(--color-accent); font-weight: 600; }
.feed-body h3 a, .feed-actions a { color: inherit; text-decoration: none; }
.feed-actions a { color: var(--color-accent); }
@media (max-width: 480px) {
    .topbar-logout span { display: none; }
    .topbar-logout { width: 42px; justify-content: center; padding: 8px; font-size: 1.15rem; }
    .catch-filter { grid-template-columns: 1fr; gap: 6px; }
}

/* v2.6: kompakte Feed-Bilder, GPS und Wetter */
.feed-card > a:first-child {
    display: grid;
    place-items: center;
    width: 100%;
    max-height: 220px;
    overflow: hidden;
    background: rgba(255,255,255,.05);
}
.feed-card > a:first-child img {
    display: block;
    width: 100%;
    height: 220px;
    object-fit: contain;
    object-position: center;
}
.weather-meta { margin-top: 7px !important; font-size: .78rem; opacity: .82; }
.gps-catch-actions { margin: -4px 0 14px; }
.gps-catch-actions .btn { width: auto; }
@media (max-width: 480px) {
    .feed-card > a:first-child,
    .feed-card > a:first-child img { height: 170px; max-height: 170px; }
}


/* v2.7 Community, Erfolge, Solunar und PWA */
.feed-actions form{margin:0}.feed-action-btn{border:0;background:transparent;color:var(--color-ink-muted);font:inherit;cursor:pointer;padding:0}.feed-action-btn.is-liked{color:#ff7f91}.comment-list{display:grid;gap:8px;margin:14px 0}.comment-list p{margin:0;padding:9px 11px;border-radius:12px;background:rgba(255,255,255,.05);font-size:.86rem}.comment-form{display:grid;grid-template-columns:1fr auto;gap:8px}.comment-form input{min-width:0;padding:11px;border:1px solid var(--color-line);border-radius:12px;background:rgba(255,255,255,.06);color:var(--color-ink)}
.achievement-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.achievement{display:grid;gap:4px;padding:14px;border:1px solid var(--color-line);border-radius:16px;background:rgba(255,255,255,.04)}.achievement>span{font-size:1.6rem}.achievement small{color:var(--color-ink-muted)}.achievement.locked{opacity:.45;filter:grayscale(1)}.achievement.done{border-color:rgba(37,214,162,.45)}
.ranking-list{display:grid;gap:10px}.ranking-row{display:grid;grid-template-columns:48px 1fr;gap:4px 10px;padding:13px;border:1px solid var(--color-line);border-radius:15px;background:rgba(255,255,255,.04)}.ranking-row .rank{grid-row:1/3;display:grid;place-items:center;font-weight:800;color:var(--color-accent)}.ranking-row>span:last-child{color:var(--color-ink-muted);font-size:.82rem}
.bite-score{height:8px;border-radius:999px;background:rgba(255,255,255,.1);overflow:hidden;margin-top:10px}.bite-score span{display:block;height:100%;background:var(--color-accent);border-radius:inherit}
.pwa-install{position:fixed;right:14px;bottom:calc(var(--bottom-nav-height) + env(safe-area-inset-bottom,0px) + 18px);z-index:1000;padding:12px 15px;border:0;border-radius:999px;background:var(--color-accent);color:#032019;font-weight:800;box-shadow:var(--shadow-card)}
@media(max-width:480px){.comment-form{grid-template-columns:1fr}.achievement-grid{grid-template-columns:1fr 1fr}.feed-card>a:first-child,.feed-card>a:first-child img{height:140px;max-height:140px}}

/* v2.8: Live-Karte und mögliche Zielfische */
.live-map-panel { padding: 16px; }
.map-section-head { align-items: end; }
.map-location-btn { width: auto; white-space: nowrap; }
.catch-map {
    width: 100%;
    height: min(62vh, 520px);
    min-height: 340px;
    overflow: hidden;
    border: 1px solid var(--color-line);
    border-radius: 20px;
    background: rgba(255,255,255,.05);
    z-index: 1;
}
.catch-map .leaflet-popup-content-wrapper,
.catch-map .leaflet-popup-tip { background: #0d2a33; color: #fff; }
.catch-map .leaflet-popup-content a { color: var(--color-accent); font-weight: 700; }
.map-status { margin: 12px 2px 0; font-size: .86rem; color: var(--color-ink-muted); }
.possible-fish-grid { display: grid; gap: 12px; }
.possible-fish-card {
    display: grid; grid-template-columns: 76px 1fr; gap: 13px;
    padding: 12px; border: 1px solid var(--color-line); border-radius: 18px;
    background: rgba(255,255,255,.04); color: inherit; text-decoration: none;
}
.possible-fish-card:hover { border-color: var(--color-accent); }
.possible-fish-image { width: 76px; height: 76px; display: grid; place-items: center; overflow: hidden; border-radius: 14px; background: rgba(255,255,255,.06); }
.possible-fish-image img { width: 100%; height: 100%; object-fit: contain; }
.possible-fish-image span { font-size: 2rem; }
.possible-fish-content { min-width: 0; }
.possible-fish-title { display: flex; justify-content: space-between; align-items: start; gap: 8px; }
.possible-fish-title strong { font-family: var(--font-display); }
.possible-fish-title span { flex: 0 0 auto; padding: 4px 7px; border-radius: 999px; background: rgba(37,214,162,.12); color: var(--color-accent); font-size: .67rem; font-weight: 800; }
.possible-fish-content small { color: var(--color-ink-muted); }
.possible-fish-content p { margin: 6px 0 0; color: var(--color-ink-muted); font-size: .75rem; line-height: 1.4; }
.fish-disclaimer { margin-top: 14px; }
@media (min-width: 760px) {
    .possible-fish-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 480px) {
    .map-section-head { display: grid; gap: 10px; }
    .map-location-btn { width: 100%; }
    .catch-map { min-height: 310px; height: 52vh; }
    .possible-fish-card { grid-template-columns: 64px 1fr; }
    .possible-fish-image { width: 64px; height: 64px; }
    .possible-fish-title { display: grid; }
    .possible-fish-title span { justify-self: start; }
}

/* v2.9: Karte ohne GPS, Ortssuche und Kartenwahl im Fangformular */
.map-search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 10px;
    margin: 12px 0 10px;
}
.map-search-form input {
    min-width: 0;
    min-height: 48px;
    padding: 11px 13px;
    border: 1px solid var(--color-line);
    border-radius: 14px;
    background: rgba(255,255,255,.07);
    color: var(--color-ink);
    font: inherit;
}
.map-search-results { display: grid; gap: 7px; margin-bottom: 10px; }
.map-search-result {
    width: 100%; padding: 10px 12px; text-align: left; cursor: pointer;
    border: 1px solid var(--color-line); border-radius: 12px;
    background: rgba(255,255,255,.05); color: var(--color-ink);
}
.map-search-result:hover { border-color: var(--color-accent); }
.map-selection-actions {
    display: flex; justify-content: space-between; align-items: center; gap: 12px;
    margin-top: 12px; padding: 12px; border: 1px solid var(--color-line);
    border-radius: 15px; background: rgba(255,255,255,.04);
}
.map-selection-actions span { color: var(--color-ink-muted); font-size: .82rem; }
.map-selection-actions .btn[aria-disabled="true"] { opacity: .5; pointer-events: none; }
.map-button-row { display: flex; flex-wrap: wrap; gap: 8px; }
.catch-map-picker { margin-top: 12px; }
.compact-map { min-height: 290px; height: 42vh; }
@media (max-width: 560px) {
    .map-search-form { grid-template-columns: 1fr; }
    .map-search-form .btn { width: 100%; }
    .map-selection-actions { display: grid; }
    .map-selection-actions .btn { width: 100%; }
}

/* Version 3.0 – Backupverwaltung */
.backup-list{display:grid;gap:12px}.backup-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;border:1px solid rgba(118,190,177,.2);border-radius:16px;background:rgba(5,38,46,.58)}.backup-card>div:first-child{display:grid;gap:4px;min-width:0}.backup-card strong{overflow-wrap:anywhere}.backup-card small{display:block;color:var(--muted,#9fb8ba)}.backup-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.backup-actions form{margin:0}.btn-danger{background:#8f3038;color:#fff}@media(max-width:620px){.backup-card{align-items:stretch;flex-direction:column}.backup-actions .btn,.backup-actions form,.backup-actions form button{width:100%}}


/* v4.1 – intuitivere Fangort-Auswahl */
.catch-location-box { margin: 4px 0 14px; padding: 14px; border: 1px solid var(--color-border); border-radius: 16px; background: rgba(255,255,255,.025); }
.compact-head { margin-bottom: 10px; }
.compact-head h3 { margin: 2px 0 0; font-size: 1rem; }
.optional-badge { padding: 4px 8px; border-radius: 999px; background: rgba(255,255,255,.07); color: var(--color-ink-muted); font-size: .72rem; }
.location-choice-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.location-choice { border: 1px solid var(--color-border); border-radius: 12px; background: rgba(255,255,255,.04); color: var(--color-ink); min-height: 48px; padding: 9px 10px; font: inherit; font-size: .8rem; font-weight: 750; cursor: pointer; }
.location-choice:hover, .location-choice.active { border-color: var(--color-accent); background: rgba(37,214,162,.12); color: var(--color-accent); }
.gps-coordinate-summary { display: flex; justify-content: space-between; gap: 12px; margin-top: 10px; padding: 9px 11px; border-radius: 10px; background: rgba(37,214,162,.08); font-size: .78rem; }
.gps-coordinate-summary span { color: var(--color-ink-muted); }
.radius-input { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px; }
.radius-input span { color: var(--color-ink-muted); font-weight: 700; }
.location-settings-grid { align-items: end; }
@media (max-width: 620px) {
  .location-choice-row { grid-template-columns: 1fr; }
  .location-choice { text-align: left; min-height: 44px; }
}

/* v4.2: Zielfische mit Köder- und Informationsbereich */
.possible-fish-card { color: inherit; }
.fish-bait { margin-top: 9px !important; color: var(--color-ink) !important; }
.fish-bait strong { color: var(--color-accent); }
.fish-reasons { opacity: .85; }
.fish-card-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.fish-card-actions a { display: inline-flex; align-items: center; min-height: 36px; padding: 7px 10px; border: 1px solid rgba(37,214,162,.28); border-radius: 10px; background: rgba(37,214,162,.08); color: var(--color-accent); font-size: .78rem; font-weight: 800; text-decoration: none; }
.fish-card-actions a:hover { background: rgba(37,214,162,.16); }


/* v4.3 Kataloge mit Kategorien */
.catalog-category { margin-top: 1rem; }
.catalog-category > h2 { margin-bottom: .8rem; }
.catalog-card-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(135px,1fr)); gap:.75rem; }
.catalog-card { display:flex; align-items:center; gap:.65rem; min-height:64px; padding:.65rem; border:1px solid rgba(255,255,255,.09); border-radius:14px; background:rgba(255,255,255,.035); }
.catalog-card img,.catalog-card-placeholder,.catalog-thumb { width:52px; height:52px; flex:0 0 52px; object-fit:contain; border-radius:10px; background:rgba(0,0,0,.18); }
.catalog-card-placeholder,.catalog-thumb.placeholder { display:grid; place-items:center; font-size:1.6rem; }
.catalog-row-with-image { align-items:center; }
.admin-edit-grid { display:grid; grid-template-columns:minmax(140px,.8fr) minmax(160px,1fr) minmax(180px,1fr) auto; gap:.55rem; align-items:center; flex:1; }
.fish-admin-summary small { display:block; opacity:.7; font-weight:400; margin-top:.2rem; }
.admin-catch-actions { display:flex; flex-wrap:wrap; gap:.45rem; margin-left:auto; }
.permanent-delete { border-style:double; }
@media (max-width:760px){.admin-edit-grid{grid-template-columns:1fr}.catalog-row-with-image{align-items:flex-start}.admin-catch-actions{width:100%;margin-left:0}}


/* v4.4 – dauerhafter Standort und aufklappbare Kataloge */
.catalog-accordion-list { display: grid; gap: 12px; }
.catalog-area { display: grid; gap: 10px; }
.catalog-area > h2 { margin: 10px 2px 2px; font-size: 1.05rem; color: var(--color-accent); }
.catalog-accordion { overflow: hidden; border: 1px solid var(--color-line); border-radius: 16px; background: rgba(255,255,255,.035); }
.catalog-accordion > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 58px; padding: 14px 16px; cursor: pointer; list-style: none; font-family: var(--font-display); font-weight: 800; }
.catalog-accordion > summary::-webkit-details-marker { display: none; }
.catalog-accordion > summary::after { content: '›'; flex: 0 0 auto; font-size: 1.45rem; color: var(--color-accent); transform: rotate(90deg); transition: transform .2s ease; }
.catalog-accordion[open] > summary::after { transform: rotate(-90deg); }
.catalog-accordion > summary small { margin-left: auto; color: var(--color-ink-muted); font-family: inherit; font-size: .75rem; font-weight: 650; }
.catalog-accordion[open] > summary { border-bottom: 1px solid var(--color-line); background: rgba(37,214,162,.07); }
.catalog-accordion-content { padding: 14px; }
@media (max-width: 520px) {
  .catalog-accordion > summary { min-height: 54px; padding: 12px 13px; }
  .catalog-accordion-content { padding: 10px; }
  .catalog-accordion-content.catalog-card-grid { grid-template-columns: 1fr; }
}

/* v4.5 – mobile Suchdialoge für Fischarten und Köder */
.catalog-native-select { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip:rect(0 0 0 0)!important; white-space:nowrap!important; }
.catalog-picker-trigger { width:100%; min-height:58px; display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; padding:12px 14px; border:1px solid var(--color-line); border-radius:15px; background:rgba(255,255,255,.055); color:var(--color-ink); text-align:left; cursor:pointer; font:inherit; }
.catalog-picker-trigger:hover,.catalog-picker-trigger:focus-visible,.catalog-picker-trigger.has-value { border-color:rgba(37,214,162,.55); }
.catalog-picker-trigger>span:first-child { font-size:1.3rem; }
.catalog-picker-trigger strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.picker-chevron { color:var(--color-accent); font-size:1.6rem; transform:rotate(90deg); }
.catalog-picker-dialog { position:fixed; inset:0; z-index:3000; padding:18px; background:rgba(0,12,16,.76); backdrop-filter:blur(7px); }
.catalog-picker-dialog[hidden] { display:none!important; }
.catalog-picker-sheet { width:min(680px,100%); max-height:calc(100dvh - 36px); margin:auto; overflow:auto; border:1px solid var(--color-line); border-radius:22px; background:#082932; box-shadow:0 24px 80px rgba(0,0,0,.5); }
.catalog-picker-sheet>header { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:16px; padding:16px; border-bottom:1px solid var(--color-line); background:#082932; }
.catalog-picker-sheet h3 { margin:2px 0 0; }
.icon-button { width:42px; height:42px; border:1px solid var(--color-line); border-radius:50%; background:rgba(255,255,255,.06); color:var(--color-ink); font-size:1.6rem; cursor:pointer; }
.catalog-picker-search { position:sticky; top:75px; z-index:2; width:calc(100% - 28px); min-height:50px; margin:14px; padding:11px 14px; border:1px solid var(--color-line); border-radius:14px; background:#0d3540; color:var(--color-ink); font:inherit; }
.catalog-picker-clear { width:calc(100% - 28px); min-height:44px; margin:0 14px 10px; border:1px solid var(--color-line); border-radius:12px; background:rgba(255,255,255,.045); color:var(--color-ink); cursor:pointer; }
.catalog-picker-groups { display:grid; gap:9px; padding:0 14px 18px; }
.catalog-picker-group { overflow:hidden; border:1px solid var(--color-line); border-radius:14px; background:rgba(255,255,255,.035); }
.catalog-picker-group>summary { display:flex; align-items:center; justify-content:space-between; min-height:54px; padding:12px 14px; cursor:pointer; list-style:none; font-weight:800; }
.catalog-picker-group>summary::-webkit-details-marker { display:none; }
.catalog-picker-group>summary small { padding:3px 8px; border-radius:999px; background:rgba(37,214,162,.12); color:var(--color-accent); }
.catalog-picker-group[open]>summary { border-bottom:1px solid var(--color-line); background:rgba(37,214,162,.08); }
.catalog-picker-options { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding:9px; }
.catalog-picker-options button { min-height:48px; display:flex; align-items:center; gap:8px; padding:10px 11px; border:1px solid transparent; border-radius:11px; background:rgba(255,255,255,.04); color:var(--color-ink); text-align:left; cursor:pointer; font:inherit; }
.catalog-picker-options button:hover,.catalog-picker-options button.selected { border-color:var(--color-accent); background:rgba(37,214,162,.12); }
.catalog-picker-empty { margin:0 14px 14px; padding:12px; border-radius:12px; background:rgba(255,255,255,.05); color:var(--color-ink-muted); }
body.picker-open { overflow:hidden; }
@media(max-width:560px){.catalog-picker-dialog{padding:0}.catalog-picker-sheet{width:100%;height:100dvh;max-height:none;border:0;border-radius:0}.catalog-picker-options{grid-template-columns:1fr}.catalog-picker-search{top:75px}}


/* Version 4.6: App-Aktualisierung */
.topbar-refresh {
    min-height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 8px 12px;
    border: 1px solid var(--color-line);
    border-radius: 12px;
    background: rgba(255,255,255,.06);
    color: var(--color-text, #eef8f5);
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}
.topbar-refresh:disabled { opacity: .65; cursor: wait; }
@media (max-width: 640px) {
    .topbar-refresh { width: 42px; padding: 8px; font-size: 1.2rem; }
    .topbar-refresh span { display: none; }
}

/* v4.7 Vollbildkarte, Spots und sechste Navigation */
.map-page-shell{position:relative;margin:-8px -8px 18px}.map-toolbar{position:relative;z-index:5;margin:0 10px -18px;padding:14px;border-radius:18px}.map-toolbar>div:first-child{display:flex;justify-content:space-between;align-items:end;gap:12px}.map-toolbar h2{margin:0}.map-toolbar-actions{display:flex;gap:8px;flex-wrap:wrap}.catch-map-full{height:72vh;min-height:560px;border-radius:22px}.map-floating-status{position:absolute;z-index:4;left:24px;bottom:18px;padding:8px 12px;border-radius:999px;background:rgba(5,22,28,.88);color:#fff;font-size:.76rem;box-shadow:var(--shadow-card)}
.spot-drawer{position:fixed;z-index:1200;right:0;top:0;bottom:0;width:min(420px,100%);padding:24px 18px calc(24px + env(safe-area-inset-bottom));overflow:auto;background:#09242d;color:var(--color-ink);box-shadow:-18px 0 50px rgba(0,0,0,.35);transform:translateX(105%);transition:transform .25s ease}.spot-drawer.is-open{transform:translateX(0)}.spot-drawer-close{float:right;border:0;background:transparent;color:#fff;font-size:2rem;cursor:pointer}.spot-drawer h3{margin-top:18px}.check-row{display:flex!important;align-items:center;gap:10px}.check-row input{width:auto}.spot-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.spot-actions form{margin:0}.map-popup-image{display:block;width:100%;max-height:130px;object-fit:contain;border-radius:10px;margin-bottom:8px;background:rgba(255,255,255,.07)}.marker-weather-btn{margin-top:8px;padding:7px 9px;border:0;border-radius:9px;background:#25d6a2;color:#032019;font-weight:800;cursor:pointer}.marker-weather{margin-top:8px;font-size:.78rem;line-height:1.45}.map-nav-link{display:inline-block;margin-top:7px}.topbar-refresh.has-update{outline:2px solid var(--color-accent);animation:updatePulse 1.2s infinite}@keyframes updatePulse{50%{transform:scale(1.06)}}
.bottom-nav a{min-width:0}.bottom-nav a span{white-space:nowrap}
@media(max-width:700px){.map-page-shell{margin:-12px -14px 14px}.map-toolbar{margin:0 8px -12px;padding:11px}.map-toolbar>div:first-child{display:block}.map-toolbar-actions{margin-top:8px}.map-toolbar-actions .btn{flex:1;padding:10px 8px}.map-toolbar .catch-filter-wrap{max-height:120px;overflow:auto}.catch-map-full{height:calc(100dvh - var(--bottom-nav-height) - 118px);min-height:480px;border-radius:0}.map-floating-status{left:12px;bottom:10px}.map-spot-list{margin-top:12px}.bottom-nav a{font-size:1rem}.bottom-nav a span{font-size:.56rem}.spot-drawer{padding-top:max(18px,env(safe-area-inset-top))}}

/* v4.8 Profil, Gewässer, Statistik, Einladungen */
.profile-photo{width:112px;height:112px;border-radius:50%;object-fit:cover;background:rgba(255,255,255,.06);border:3px solid var(--color-accent)}.fish-facts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:18px 0}.fish-facts-grid>div{padding:12px;border:1px solid var(--color-line);border-radius:14px;background:rgba(255,255,255,.04)}.fish-facts-grid small,.fish-facts-grid strong{display:block}.invite-list{display:grid;gap:12px}.invite-card{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;padding:12px;border:1px solid var(--color-line);border-radius:14px}.invite-card small,.invite-card form{grid-column:1/-1}.invite-card input{min-width:0}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:11px;border-bottom:1px solid var(--color-line);text-align:left}@media(max-width:600px){.invite-card{grid-template-columns:1fr}.invite-card button{width:100%}}
.auth-legal,.footer-legal{display:flex;justify-content:center;gap:.55rem;align-items:center;font-size:.82rem;color:var(--muted);padding:1rem}.auth-legal a,.footer-legal a{color:inherit}.legal-copy{white-space:normal;line-height:1.65}.water-image{width:100%;max-height:280px;object-fit:contain;border-radius:16px;background:rgba(0,0,0,.12);margin:1rem 0}.offline-badge{position:fixed;top:calc(env(safe-area-inset-top) + 4.2rem);left:50%;transform:translateX(-50%);z-index:3000;background:#8b2d2d;color:#fff;padding:.5rem .8rem;border-radius:999px;font-weight:700;box-shadow:0 8px 24px rgba(0,0,0,.3)}

/* v4.10 Offline-Fangbuch */
.offline-catch-status{min-height:1.5rem;margin-top:.75rem;font-size:.92rem;color:var(--muted,#64748b)}
.offline-catch-status.pending,.offline-catch-status.syncing{padding:.75rem 1rem;border-radius:12px;background:#fff7d6;color:#6b4e00}
.offline-catch-status.success{padding:.75rem 1rem;border-radius:12px;background:#dcfce7;color:#166534}
.offline-catch-status.error{padding:.75rem 1rem;border-radius:12px;background:#fee2e2;color:#991b1b}

/* v4.11 Icon, Dashboard und Kartenlayout */
.topbar-icon{width:38px;height:38px;border-radius:12px;overflow:hidden;flex:0 0 38px;background:#fff;box-shadow:0 4px 14px rgba(0,0,0,.18)}
.topbar-icon img{display:block;width:100%;height:100%;object-fit:cover}
.dashboard-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 12px}
.dashboard-shortcuts a{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:0 8px;align-items:center;padding:12px;border-radius:16px;background:var(--panel,#fff);box-shadow:var(--shadow-card);text-decoration:none;color:inherit}
.dashboard-shortcuts a>span{grid-row:1/3;font-size:1.35rem}.dashboard-shortcuts strong{font-size:.9rem}.dashboard-shortcuts small{font-size:.68rem;color:var(--muted)}
.location-compact{padding:0;margin-bottom:12px;overflow:hidden}
.location-compact summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;cursor:pointer;list-style:none}
.location-compact summary::-webkit-details-marker{display:none}.location-compact summary small{color:var(--muted);font-size:.72rem;text-align:right}
.location-compact[open] summary{border-bottom:1px solid rgba(15,55,63,.1)}
.location-form-compact{padding:12px 14px 14px}.location-form-compact .field{margin-bottom:8px}
.quick-grid-compact .info-card{padding:14px;min-height:auto}.quick-grid-compact .card-icon{font-size:1.25rem}.quick-grid-compact h3{font-size:1.25rem;margin:.2rem 0}.quick-grid-compact p{margin:.25rem 0;font-size:.82rem}
.possible-fish-section .possible-fish-grid{gap:10px}.possible-fish-card{min-height:0}.possible-fish-content>p:not(.fish-bait):not(.fish-reasons){display:none}

.map-page-shell{position:relative;overflow:hidden;border-radius:22px;background:#06242c}
.map-page-shell .map-toolbar{position:relative;z-index:500;margin:0;padding:12px 14px;border-radius:0;background:#f7fbfb;box-shadow:none;border:0}
.map-page-shell .catch-map-full{height:min(72vh,760px);min-height:520px;border-radius:0;border:0;margin:0}
.map-page-shell .map-floating-status{bottom:12px}
.map-search-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%;margin-top:10px}
.map-search-form input{min-width:0}.map-search-results{position:absolute;z-index:1000;left:14px;right:14px;top:100%;max-height:42vh;overflow:auto;background:#fff;border-radius:0 0 16px 16px;box-shadow:0 18px 34px rgba(0,0,0,.24)}
.map-search-result{width:100%;padding:12px 14px;text-align:left;background:#fff;border:0;border-bottom:1px solid #e6efef;cursor:pointer}
.map-search-result:hover{background:#edf8f6}

@media(max-width:700px){
 .app-main{padding-top:8px}
 .hero-card{padding:16px;margin-bottom:10px}.hero-card h2{font-size:1.35rem}.hero-card p{font-size:.82rem}.hero-card .location-line{font-size:.72rem}.hero-action{padding:10px 12px}
 .dashboard-shortcuts{gap:7px}.dashboard-shortcuts a{display:flex;flex-direction:column;text-align:center;padding:9px 5px;gap:2px}.dashboard-shortcuts a>span{font-size:1.2rem}.dashboard-shortcuts strong{font-size:.72rem}.dashboard-shortcuts small{display:none}
 .location-compact summary{padding:10px 12px}.location-compact summary small{font-size:.62rem}
 .quick-grid-compact{grid-template-columns:1fr 1fr;gap:8px}.quick-grid-compact .info-card{padding:11px}.quick-grid-compact h3{font-size:1.05rem}.quick-grid-compact p{font-size:.7rem}.quick-grid-compact .weather-meta{font-size:.62rem}
 .possible-fish-section h2{font-size:1.05rem}.possible-fish-grid{grid-template-columns:1fr}.possible-fish-card{grid-template-columns:64px 1fr;padding:9px}.possible-fish-image{width:64px;height:64px}.possible-fish-content{font-size:.76rem}
 .map-page-shell{margin:-8px -14px 12px;border-radius:0;min-height:calc(100dvh - var(--bottom-nav-height) - 54px)}
 .map-page-shell .map-toolbar{padding:9px 10px;background:#f7fbfb}.map-toolbar .eyebrow,.map-toolbar h2{display:none}.map-toolbar>div:first-child{display:none}
 .map-toolbar-actions{display:grid;grid-template-columns:1fr 1fr;margin:0 0 7px}.map-toolbar-actions .btn{padding:9px 6px;font-size:.72rem}
 .map-search-form{margin:0;grid-template-columns:minmax(0,1fr) 78px;gap:6px}.map-search-form input{padding:10px;font-size:.82rem}.map-search-form .btn{padding:10px 7px;font-size:.72rem}
 .map-toolbar .catch-filter-wrap{display:none}
 .map-page-shell .catch-map-full{height:calc(100dvh - var(--bottom-nav-height) - 142px);min-height:430px}
 .map-search-results{left:10px;right:10px;top:100%}
 .map-floating-status{left:10px;bottom:9px;font-size:.65rem}
 .pwa-install{max-width:calc(100vw - 24px)}
}

/* v4.12 Kartenkorrekturen */
.map-page-shell .map-toolbar,.map-page-shell .map-toolbar *{color:#082b34}
.map-page-shell .map-toolbar input,.map-page-shell .map-toolbar select{color:#082b34;background:#fff;border-color:#bfd4d6}
.map-page-shell .map-toolbar .btn{color:#06242c;background:#27d7a4;border-color:#27d7a4}
.map-page-shell .map-toolbar .btn-secondary{background:#e5f4f2;color:#06323b;border-color:#a8ceca}
.map-page-shell .map-toolbar .btn.active{background:#06323b;color:#fff;border-color:#06323b}
.catch-map.map-placement-active{cursor:crosshair}
.catch-map.map-placement-active::after{content:'Tippen, um Angelplatz zu setzen';position:absolute;z-index:600;top:12px;left:50%;transform:translateX(-50%);padding:7px 11px;border-radius:999px;background:rgba(6,36,44,.9);color:#fff;font-size:.72rem;pointer-events:none;white-space:nowrap}
.map-search-result.is-selected{background:#dff7ef;border-left:4px solid #1cbf8f}
.spot-drawer{background:linear-gradient(180deg,#0a313b,#071f27);color:#f3fbfa}
.spot-drawer label,.spot-drawer .map-status,.spot-drawer p{color:#d8e9e7}
.spot-drawer input,.spot-drawer textarea,.spot-drawer select{background:#fff;color:#082b34;border:1px solid #b9d1d2}
.spot-drawer-head{display:flex;align-items:center;gap:12px;margin:18px 0 8px}.spot-drawer-head h3{margin:0}.spot-drawer-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;background:#25d6a2;font-size:1.5rem}.spot-drawer-intro{padding:12px;border-radius:14px;background:rgba(255,255,255,.07);line-height:1.55;font-size:.85rem}
@media(max-width:700px){.map-toolbar-actions{grid-template-columns:repeat(3,1fr)}.map-toolbar-actions .btn{font-size:.64rem;white-space:normal}.catch-map.map-placement-active::after{top:8px;font-size:.64rem}.spot-drawer{border-radius:22px 22px 0 0;top:auto;height:min(78dvh,720px);width:100%;transform:translateY(105%)}.spot-drawer.is-open{transform:translateY(0)}}

/* v4.12 Zusatzmodule */
.dashboard-tools .dashboard-shortcuts{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.offline-queue-list{display:grid;gap:10px;margin:16px 0}.print-export table{font-size:.85rem}@media print{.topbar,.bottom-nav,.footer-legal,.print-export .btn{display:none!important}.app-main{padding:0}.panel{box-shadow:none;border:0}}
@media(max-width:700px){.map-toolbar-actions{grid-template-columns:repeat(2,1fr)}#cacheMapBtn{grid-column:1/-1}.dashboard-tools .dashboard-shortcuts{grid-template-columns:repeat(3,1fr)}}

/* v4.13 – Kartenkorrektur, kontrastreiche Schnellbuttons und sauberes Icon */
.topbar-icon{
    background:transparent!important;
    box-shadow:none!important;
    border-radius:11px;
    overflow:hidden;
}
.topbar-icon img{width:100%;height:100%;object-fit:contain;background:transparent}

.dashboard-shortcuts a,
.dashboard-tools .dashboard-shortcuts a{
    background:linear-gradient(145deg,#0d3540,#092832)!important;
    border:1px solid rgba(85,220,184,.22);
    color:#f4fffc!important;
    box-shadow:0 8px 24px rgba(0,0,0,.2);
}
.dashboard-shortcuts a>span{filter:none}
.dashboard-shortcuts strong{color:#f4fffc!important}
.dashboard-shortcuts small{color:#a9d5ca!important}
.dashboard-shortcuts a:active{transform:translateY(1px)}

.map-page-shell{
    background:var(--color-bg-app)!important;
    overflow:visible!important;
    border-radius:0!important;
}
.map-page-shell .map-toolbar{
    background:linear-gradient(145deg,#0d3540,#092832)!important;
    color:#f4fffc!important;
    border-radius:18px 18px 0 0!important;
    border:1px solid rgba(85,220,184,.18)!important;
}
.map-page-shell .map-toolbar h2,
.map-page-shell .map-toolbar .eyebrow,
.map-page-shell .map-toolbar label,
.map-page-shell .map-toolbar p{color:#f4fffc!important}
.map-page-shell .map-toolbar input{
    background:#fff!important;
    color:#102a31!important;
    border:1px solid #b6d0d1!important;
}
.map-page-shell .map-toolbar .btn{
    background:#25d6a2!important;
    color:#04251d!important;
    border:1px solid #25d6a2!important;
    box-shadow:none!important;
}
.map-page-shell .map-toolbar .btn-secondary{
    background:#123f49!important;
    color:#effffb!important;
    border-color:#4ea997!important;
}
.map-page-shell .map-toolbar .btn.active{
    background:#ffcf5a!important;
    border-color:#ffcf5a!important;
    color:#322400!important;
}
.map-page-shell .catch-map-full{
    border:1px solid rgba(85,220,184,.2)!important;
    border-top:0!important;
    background:#cddfe0!important;
}
.map-search-results{
    top:auto!important;
    position:relative!important;
    left:auto!important;
    right:auto!important;
    max-height:220px!important;
    margin-top:8px!important;
    border-radius:12px!important;
    overflow:auto!important;
}
.map-search-result{color:#143039!important;background:#fff!important}
.map-search-result.is-selected{background:#dff7ef!important}
.map-floating-status{pointer-events:none}
.catch-map.map-placement-active{cursor:crosshair!important}
.catch-map.map-placement-active .leaflet-container{cursor:crosshair!important}

.spot-drawer{
    background:linear-gradient(180deg,#0c3540,#061e26)!important;
}
.spot-drawer .form-grid label{font-weight:700;color:#effffb!important}
.spot-drawer input,.spot-drawer textarea,.spot-drawer select{
    background:#fff!important;color:#102a31!important;border:1px solid #b9d1d1!important;
}
.spot-save-button{background:#25d6a2!important;color:#05261e!important;box-shadow:none!important}

@media(max-width:700px){
    .app-main:has(.map-page-shell){padding-top:8px!important;background:var(--color-bg-app)!important}
    .map-page-shell{margin:0 -14px 12px!important}
    .map-page-shell .map-toolbar{border-radius:0!important;border-left:0!important;border-right:0!important;padding:10px!important}
    .map-toolbar-actions{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:6px!important}
    .map-toolbar-actions .btn{font-size:.68rem!important;padding:10px 5px!important;min-height:43px}
    #cacheMapBtn{grid-column:auto!important}
    .map-search-form{grid-template-columns:minmax(0,1fr) 82px!important}
    .map-page-shell .catch-map-full{height:calc(100dvh - var(--bottom-nav-height) - 188px)!important;min-height:420px!important}
    .dashboard-shortcuts{gap:7px!important}
    .dashboard-shortcuts a{min-height:68px;padding:9px 6px!important}
    .dashboard-shortcuts a>span{font-size:1.25rem!important}
    .dashboard-shortcuts strong{font-size:.75rem!important}
    .dashboard-shortcuts small{display:block!important;font-size:.58rem!important;line-height:1.15}
}

/* v4.14 – einfacher Kartenablauf: Punkt wählen -> Angelplatz hinzufügen */
.map-selection-card{
    position:absolute;
    z-index:900;
    left:50%;
    bottom:18px;
    width:min(520px,calc(100% - 28px));
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 14px;
    border:1px solid rgba(78,224,183,.45);
    border-radius:18px;
    background:rgba(5,32,40,.96);
    color:#f4fffc;
    box-shadow:0 16px 40px rgba(0,0,0,.38);
    transform:translate(-50%,18px);
    opacity:0;
    transition:opacity .18s ease,transform .18s ease;
}
.map-selection-card[hidden]{display:none!important}
.map-selection-card.is-visible{opacity:1;transform:translate(-50%,0)}
.map-selection-card strong,.map-selection-card span{display:block;color:#f4fffc}
.map-selection-card span{margin-top:3px;font-size:.74rem;color:#bfe8df}
.map-selection-card .btn{flex:0 0 auto;white-space:nowrap}
.catch-map.map-placement-active::after{content:'Karte verschieben und gewünschten Punkt antippen';}
@media(max-width:700px){
  .map-selection-card{bottom:10px;display:grid;grid-template-columns:1fr;padding:11px;border-radius:16px}
  .map-selection-card .btn{width:100%;min-height:44px}
  .map-toolbar-actions{grid-template-columns:1fr 1fr!important}
}
/* v5 Kartenmodul */
.map-toolbar-actions{display:flex!important;flex-wrap:wrap!important;gap:7px!important}.gpx-import-label{cursor:pointer}.map-filter-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:9px}.map-filter-row label{font-size:.72rem}.map-filter-row input,.map-filter-row select{margin-top:4px;padding:9px}.map-weather-overlay{position:absolute;z-index:700;right:14px;top:170px;max-width:270px;padding:12px;border-radius:14px;background:rgba(5,31,39,.94);color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.3)}.map-cluster{border-radius:50%;background:#20d3a2;border:4px solid rgba(255,255,255,.85);color:#05252d;font-weight:900;text-align:center;line-height:32px;box-shadow:0 4px 15px rgba(0,0,0,.3)}.map-cluster span{display:block}.offline-region-list{display:grid;gap:10px}.offline-region-item{padding:12px;border-radius:14px;background:rgba(255,255,255,.08)}.offline-region-item strong,.offline-region-item small{display:block}.offline-region-item small{color:#b9d6d2;margin:4px 0 9px}.offline-region-item div{display:flex;gap:8px}.offline-region-item button{border:0;border-radius:9px;padding:8px 10px;font-weight:800}.fish-external-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.fish-external-links a{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;border-radius:12px;background:rgba(37,214,162,.13);border:1px solid rgba(37,214,162,.35);text-decoration:none;font-weight:800}
@media(max-width:700px){.map-toolbar-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important}.map-filter-row{grid-template-columns:1fr 1fr}.map-filter-row label:last-child{grid-column:1/-1}.map-weather-overlay{top:235px;right:8px;left:8px;max-width:none}.offline-map-drawer{height:min(78dvh,720px)}}

/* Version 5.1 */
.catalog-reading-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.catalog-reading-buttons .btn{min-height:54px}.catalog-card-link{text-decoration:none;color:inherit}.profile-detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:18px}.profile-detail-grid article{padding:14px;border:1px solid var(--color-line);border-radius:14px;background:rgba(255,255,255,.035)}.profile-detail-grid h3{margin:0 0 7px}.profile-detail-grid p{margin:0;white-space:pre-line}.map-toolbar-actions #depthMapBtn{border-color:rgba(73,181,255,.45)}.spot-actions form{display:inline-flex}.spot-actions .btn-danger{min-width:auto}@media(max-width:560px){.catalog-reading-buttons{grid-template-columns:1fr}.profile-detail-grid{grid-template-columns:1fr}}

/* FishTracker Pro 6.0 Alpha 1 – stabilisierte Kartenoberfläche */
.map-page-shell-v6,.map-page-shell{background:var(--color-bg-app,#061f27)!important;border-radius:18px;overflow:hidden}
.map-page-shell .map-toolbar{background:#092c35!important;color:#f4fffc!important;margin:0!important;border-radius:0!important;padding:12px!important}
.map-toolbar-actions-v6{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.map-toolbar-actions-v6 .btn{min-height:42px;padding:8px!important;font-size:.78rem!important}
.map-search-form{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin-top:10px}
.map-search-form input{min-width:0;height:46px;font-size:16px!important}
.map-search-results{display:grid;gap:6px;margin-top:8px;max-height:190px;overflow:auto}
.map-search-result-v6{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:10px 12px;border:1px solid rgba(132,220,199,.25);border-radius:12px;background:#103943;color:#fff;text-align:left}
.map-search-result-v6 small{opacity:.7;margin-top:2px}
.catch-map-full{height:calc(100dvh - var(--bottom-nav-height,72px) - 190px)!important;min-height:460px!important;background:#d7e4df!important}
.map-selection-card{z-index:900!important;left:50%!important;right:auto!important;transform:translate(-50%,24px)!important;width:min(94%,540px);background:#082c35!important;color:#fff!important;border:1px solid rgba(72,225,180,.35)!important}
.map-selection-card.is-visible{transform:translate(-50%,0)!important}
.map-selection-card .btn{white-space:nowrap}
.map-floating-status[data-kind="error"]{background:#7a2027!important}.map-floating-status[data-kind="success"]{background:#075b47!important}
.map-fatal{display:grid;place-content:center;height:100%;padding:24px;text-align:center;background:#102f37;color:#fff}
@media(max-width:700px){
 .map-page-shell{margin:-8px -12px 8px!important;border-radius:0!important}
 .map-page-shell .map-toolbar{padding:8px!important}
 .map-toolbar-actions-v6{grid-template-columns:repeat(3,1fr)!important}
 .map-toolbar-actions-v6 .btn{font-size:.68rem!important;line-height:1.15}
 .catch-map-full{height:calc(100dvh - var(--bottom-nav-height,72px) - 150px)!important;min-height:430px!important}
 .map-selection-card{bottom:12px!important;display:grid!important;grid-template-columns:1fr;gap:8px}
 .map-selection-card .btn{width:100%}
}

/* FishTracker Pro 6.0 Alpha 1.1 – Kartenlegende */
.map-toolbar-actions-v6{grid-template-columns:repeat(4,minmax(0,1fr))}
.map-legend-panel{position:absolute;right:14px;top:150px;z-index:1001;width:min(310px,calc(100% - 28px));padding:14px;border-radius:16px;background:rgba(7,28,35,.96);color:#fff;border:1px solid rgba(255,255,255,.16);box-shadow:0 16px 36px rgba(0,0,0,.35)}
.map-legend-panel[hidden]{display:none!important}
.map-legend-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.map-legend-head button{border:0;background:transparent;color:#fff;font-size:1.5rem;line-height:1;cursor:pointer}
.map-legend-row{display:flex;align-items:center;gap:10px;padding:5px 0}
.legend-symbol{width:28px;text-align:center;font-size:1.15rem}
.legend-marker-dot{display:inline-block;width:18px;height:18px;margin:0 5px;border-radius:50%;background:#27d7aa;border:3px solid #fff;box-shadow:0 0 0 2px #0b6f64}
.map-legend-panel small{display:block;margin-top:10px;line-height:1.4;color:#c7dde1}
@media(max-width:720px){.map-toolbar-actions-v6{grid-template-columns:repeat(2,1fr)!important}.map-legend-panel{top:205px;right:10px;width:calc(100% - 20px)}}


/* FishTracker Pro 6.0 Alpha 1.2 – sichere Kartenbedienung */
.map-legend-panel{max-height:min(72vh,620px);overflow:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y}
.map-legend-panel.is-open{display:block!important}
.map-legend-group{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.16);color:#72e1bd}
.map-enable-move{margin-top:8px;padding:7px 10px;border:0;border-radius:10px;background:#2bd7a6;color:#052c32;font-weight:800;cursor:pointer;touch-action:manipulation}
.map-toolbar-actions-v6 .btn{touch-action:manipulation}
@media(max-width:720px){
 .map-legend-panel{position:fixed;left:10px;right:10px;top:auto;bottom:calc(var(--bottom-nav-height,72px) + 12px);width:auto;max-height:68vh;z-index:3000}
}

/* FishTracker Pro 6.0 Alpha 1.3 – robuste Dialog-Legende */
.map-legend-dialog{width:min(760px,calc(100vw - 28px));max-height:min(86vh,820px);padding:0;border:1px solid rgba(112,230,197,.35);border-radius:20px;background:#082b34;color:#f4fffc;box-shadow:0 24px 80px rgba(0,0,0,.6);overflow:hidden}
.map-legend-dialog::backdrop{background:rgba(0,10,14,.74);backdrop-filter:blur(3px)}
.map-legend-dialog:not([open]){display:none}
.map-legend-dialog.is-fallback-open{display:flex;position:fixed;inset:7vh auto auto 50%;transform:translateX(-50%);z-index:5000}
.map-legend-dialog .map-legend-head{position:sticky;top:0;z-index:2;margin:0;padding:15px 18px;background:#0a3540;border-bottom:1px solid rgba(255,255,255,.12)}
.map-legend-dialog .map-legend-head h3{margin:2px 0 0;color:#fff}
.map-legend-close{width:42px;height:42px;border:0;border-radius:50%!important;background:rgba(255,255,255,.1)!important;color:#fff!important;font-size:1.7rem!important;cursor:pointer;touch-action:manipulation}
.map-legend-content{max-height:calc(min(86vh,820px) - 150px);overflow:auto;padding:14px 18px;-webkit-overflow-scrolling:touch}
.map-legend-section{padding:10px 0 14px;border-bottom:1px solid rgba(255,255,255,.1)}
.map-legend-section:last-child{border-bottom:0}
.map-legend-section h4{margin:0 0 8px;color:#78e7c5}
.map-legend-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 16px}
.map-legend-note{margin:8px 0 0;color:#bfd8d5;font-size:.82rem;line-height:1.45}
.map-legend-footer{position:sticky;bottom:0;display:flex;align-items:center;gap:12px;justify-content:space-between;padding:12px 18px;background:#0a3540;border-top:1px solid rgba(255,255,255,.12)}
.map-legend-footer p{margin:0;max-width:560px;font-size:.75rem;line-height:1.4;color:#c6dddd}
.nautical-mark,.legend-code{display:inline-grid;place-items:center;flex:0 0 34px;min-width:34px;height:28px;border-radius:8px;font-weight:900;background:#eef6f4;color:#082b34;border:2px solid rgba(255,255,255,.75)}
.nautical-mark.port{background:#dc3545;color:#fff}.nautical-mark.starboard{background:#19a45b;color:#fff}.nautical-mark.preferred-port{background:linear-gradient(#19a45b 0 35%,#dc3545 35% 65%,#19a45b 65%);color:#fff}.nautical-mark.preferred-starboard{background:linear-gradient(#dc3545 0 35%,#19a45b 35% 65%,#dc3545 65%);color:#fff}.nautical-mark.isolated{background:linear-gradient(#111 0 33%,#dc3545 33% 66%,#111 66%);color:#fff}.nautical-mark.safe-water{background:repeating-linear-gradient(90deg,#dc3545 0 6px,#fff 6px 12px);color:#111}.nautical-mark.special{background:#f2d23a}.nautical-mark.emergency{background:repeating-linear-gradient(90deg,#1d70d6 0 6px,#f2d23a 6px 12px)}
body.legend-open{overflow:hidden}
@media(max-width:620px){.map-legend-dialog{width:calc(100vw - 16px);max-height:90vh;border-radius:16px}.map-legend-content{max-height:calc(90vh - 158px);padding:10px 13px}.map-legend-grid{grid-template-columns:1fr}.map-legend-footer{align-items:stretch;flex-direction:column}.map-legend-footer .btn{width:100%}}

/* FishTracker Pro 6.0 Alpha 2 – kompaktes Dashboard */
.dashboard-v6{display:grid;gap:14px}
.dashboard-welcome-v6{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px;border-radius:22px;background:linear-gradient(135deg,#0a3944,#0e655e);color:#fff;box-shadow:0 16px 40px rgba(0,0,0,.2)}
.dashboard-welcome-v6 h2{margin:2px 0 5px;font-size:clamp(1.25rem,4vw,1.8rem)}
.dashboard-welcome-v6 p{margin:0}.dashboard-location-v6{font-size:.82rem;opacity:.78}.dashboard-primary-action-v6{flex:0 0 auto}
.dashboard-actions-v6{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:9px}
.dashboard-actions-v6 a{display:grid;place-items:center;gap:4px;min-height:78px;padding:9px;border-radius:17px;background:#0d3540;color:#f4fffc;text-decoration:none;border:1px solid rgba(95,224,190,.17);box-shadow:0 9px 22px rgba(0,0,0,.12)}
.dashboard-actions-v6 a span{font-size:1.35rem}.dashboard-actions-v6 a strong{font-size:.76rem}.dashboard-actions-v6 a:hover{transform:translateY(-1px)}
.dashboard-offline-map-v6{background:linear-gradient(145deg,#0a514b,#08745e)!important}
.dashboard-today-v6{display:grid;grid-template-columns:1.1fr .9fr;gap:12px}
.dashboard-weather-v6,.dashboard-bite-v6,.dashboard-recommendations-v6,.dashboard-last-catch-v6,.dashboard-library-v6{padding:16px;border-radius:19px;background:#0d3540;color:#f5fffd;border:1px solid rgba(98,221,190,.16)}
.dashboard-weather-main-v6{display:flex;align-items:center;gap:12px}.dashboard-weather-icon-v6{font-size:2.3rem}.dashboard-weather-main-v6 small,.dashboard-bite-v6>small,.dashboard-section-head-v6 small{display:block;color:#92c9c2;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.dashboard-weather-main-v6 strong{display:block;font-size:1.55rem}.dashboard-weather-main-v6 span{font-size:.82rem}.dashboard-weather-facts-v6{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.dashboard-weather-facts-v6 span{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.07);font-size:.72rem}
.dashboard-bite-head-v6{display:flex;justify-content:space-between;align-items:end;margin:4px 0 8px}.dashboard-bite-head-v6 strong{font-size:1.3rem}.dashboard-bite-head-v6 span{font-weight:700;color:#72e4bd}.dashboard-bite-v6 p{margin:7px 0 0;font-size:.78rem}.dashboard-moon-v6{color:#abcac6}
.dashboard-location-panel-v6{border-radius:16px;background:#0a3039;border:1px solid rgba(101,220,192,.15);overflow:hidden;color:#fff}.dashboard-location-panel-v6 summary{display:flex;justify-content:space-between;align-items:center;padding:12px 15px;cursor:pointer}.dashboard-location-panel-v6 summary small{color:#75dfbe}.dashboard-location-panel-v6 form,.dashboard-location-panel-v6 .alert{margin:0 14px 14px}
.dashboard-stats-v6{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.dashboard-stats-v6 div{padding:12px;border-radius:15px;background:#113a44;text-align:center;color:#fff}.dashboard-stats-v6 strong{display:block;font-size:1.15rem;color:#7ce7c5}.dashboard-stats-v6 span{font-size:.68rem;color:#b7d3cf}
.dashboard-section-head-v6{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:11px}.dashboard-section-head-v6 h3{margin:1px 0 0;font-size:1.02rem}.dashboard-section-head-v6 a{font-size:.78rem;color:#74dfbf}
.dashboard-fish-strip-v6{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.dashboard-fish-card-v6{display:flex;align-items:center;gap:8px;padding:9px;border-radius:14px;background:rgba(255,255,255,.055);color:#fff;text-decoration:none;min-width:0}.dashboard-fish-image-v6{width:48px;height:48px;flex:0 0 48px;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:#173f48}.dashboard-fish-image-v6 img{width:100%;height:100%;object-fit:contain}.dashboard-fish-card-v6 div:last-child{min-width:0}.dashboard-fish-card-v6 strong,.dashboard-fish-card-v6 span,.dashboard-fish-card-v6 small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dashboard-fish-card-v6 strong{font-size:.82rem}.dashboard-fish-card-v6 span{font-size:.67rem;color:#7de0c1}.dashboard-fish-card-v6 small{font-size:.65rem;color:#b7d2ce;margin-top:2px}
.dashboard-lower-grid-v6{display:grid;grid-template-columns:1.2fr .8fr;gap:12px}.dashboard-catch-row-v6{display:flex;gap:11px;align-items:center;color:#fff;text-decoration:none}.dashboard-catch-row-v6>div{width:70px;height:62px;border-radius:13px;overflow:hidden;display:grid;place-items:center;background:#173f48;flex:0 0 auto}.dashboard-catch-row-v6 img{width:100%;height:100%;object-fit:contain}.dashboard-catch-row-v6 p{margin:0}.dashboard-catch-row-v6 strong,.dashboard-catch-row-v6 span,.dashboard-catch-row-v6 small{display:block}.dashboard-catch-row-v6 span{font-size:.72rem;color:#9fc8c3}.dashboard-catch-row-v6 small{font-size:.7rem;color:#74ddb9}
.dashboard-library-v6>a{display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:8px;padding:10px 0;color:#fff;text-decoration:none;border-top:1px solid rgba(255,255,255,.08)}.dashboard-library-v6>a span{font-size:1.25rem}.dashboard-library-v6>a strong,.dashboard-library-v6>a small{display:block}.dashboard-library-v6>a small{color:#a9cbc6;font-size:.68rem}.dashboard-library-v6>a b{font-size:1.4rem;color:#75dfbe}
@media(max-width:760px){.dashboard-welcome-v6{padding:15px;align-items:flex-start}.dashboard-welcome-v6 .dashboard-primary-action-v6{padding:9px 11px;font-size:.75rem}.dashboard-actions-v6{grid-template-columns:repeat(5,1fr);gap:6px;overflow-x:auto}.dashboard-actions-v6 a{min-width:68px;min-height:66px;padding:7px 4px}.dashboard-actions-v6 a span{font-size:1.15rem}.dashboard-actions-v6 a strong{font-size:.62rem}.dashboard-today-v6{grid-template-columns:1fr 1fr;gap:8px}.dashboard-weather-v6,.dashboard-bite-v6{padding:12px}.dashboard-weather-icon-v6{font-size:1.7rem}.dashboard-weather-main-v6 strong{font-size:1.12rem}.dashboard-weather-facts-v6 span:nth-child(3){display:none}.dashboard-bite-head-v6 strong{font-size:1rem}.dashboard-stats-v6{grid-template-columns:repeat(4,1fr);gap:5px}.dashboard-stats-v6 div{padding:9px 3px}.dashboard-stats-v6 strong{font-size:.9rem}.dashboard-stats-v6 span{font-size:.56rem}.dashboard-fish-strip-v6{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.dashboard-fish-card-v6{min-width:215px;scroll-snap-align:start}.dashboard-lower-grid-v6{grid-template-columns:1fr}.dashboard-location-panel-v6 summary{font-size:.78rem}}
@media(max-width:430px){.dashboard-welcome-v6 h2{font-size:1.08rem}.dashboard-welcome-v6 .eyebrow{font-size:.58rem}.dashboard-location-v6{font-size:.68rem}.dashboard-today-v6{grid-template-columns:1fr}.dashboard-weather-facts-v6 span:nth-child(3){display:inline-flex}.dashboard-primary-action-v6{white-space:nowrap}.dashboard-actions-v6{margin-left:-2px;margin-right:-2px}}

/* FishTracker Pro 6.0 Alpha 2.1 – bewusst kompaktes Dashboard */
.dashboard-v61{display:grid;gap:10px;max-width:920px;margin:0 auto}
.dashboard-head-v61{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 14px;border-radius:17px;background:linear-gradient(135deg,#0b3741,#0e5b56);color:#fff;border:1px solid rgba(113,226,195,.17)}
.dashboard-head-copy-v61{min-width:0}.dashboard-head-v61 .eyebrow{margin:0;font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:#8ce6ca}.dashboard-head-v61 h2{margin:2px 0 3px;font-size:1.08rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-status-line-v61{display:flex;flex-wrap:wrap;gap:5px 10px;font-size:.72rem;color:#d3e8e4}
.dashboard-settings-v61{position:relative}.dashboard-settings-v61>summary{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#123f48;border:1px solid rgba(124,231,199,.2);cursor:pointer;list-style:none}.dashboard-settings-v61>summary::-webkit-details-marker{display:none}.dashboard-settings-panel-v61{position:absolute;z-index:70;right:0;top:44px;width:min(390px,calc(100vw - 28px));padding:13px;border-radius:16px;background:#0c3039;color:#fff;box-shadow:0 18px 48px rgba(0,0,0,.45);border:1px solid rgba(121,226,195,.22)}.dashboard-settings-v61[open]>summary{background:#176057}.dashboard-filter-v61 .catch-filter{margin:9px 0 0;padding-top:9px;border-top:1px solid rgba(255,255,255,.1)}
.dashboard-actions-v61{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.dashboard-actions-v61 a{min-height:55px;display:grid;place-items:center;align-content:center;gap:1px;padding:6px;border-radius:14px;background:#103640;border:1px solid rgba(112,224,193,.14);color:#fff;text-decoration:none}.dashboard-actions-v61 a.primary{background:#0e7665}.dashboard-actions-v61 span{font-size:1.05rem}.dashboard-actions-v61 strong{font-size:.68rem}
.dashboard-today-v61,.dashboard-overview-v61,.dashboard-more-v61{padding:13px;border-radius:17px;background:#0d3540;color:#f5fffd;border:1px solid rgba(98,221,190,.14)}
.dashboard-section-title-v61{display:flex;align-items:center;justify-content:space-between;gap:10px}.dashboard-section-title-v61 small{display:block;color:#91bdb7;font-size:.62rem;text-transform:uppercase;letter-spacing:.07em}.dashboard-section-title-v61 h3{margin:1px 0 0;font-size:1rem}.dashboard-score-v61{font-size:1.25rem;color:#75e1bd}.dashboard-score-v61 small{display:inline;font-size:.58rem;color:#9fc5bf}.dashboard-today-v61 .bite-score{margin:8px 0 6px;height:6px}.dashboard-bite-line-v61{margin:0;font-size:.69rem;color:#c1dbd6}.dashboard-fish-list-v61{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:10px}.dashboard-fish-list-v61 a{min-width:0;padding:8px;border-radius:11px;background:#123f48;color:#fff;text-decoration:none}.dashboard-fish-list-v61 a span{float:left;margin-right:5px}.dashboard-fish-list-v61 strong,.dashboard-fish-list-v61 small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dashboard-fish-list-v61 strong{font-size:.72rem}.dashboard-fish-list-v61 small{font-size:.58rem;color:#8fdabc;margin-top:2px}
.dashboard-overview-v61{display:grid;grid-template-columns:.8fr 1.2fr;gap:10px;align-items:stretch}.dashboard-mini-stats-v61{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.dashboard-mini-stats-v61 div{display:grid;place-items:center;align-content:center;padding:7px 3px;border-radius:11px;background:#123f48;text-align:center}.dashboard-mini-stats-v61 strong{font-size:.88rem;color:#78e2be}.dashboard-mini-stats-v61 span{font-size:.55rem;color:#aacbc6}.dashboard-last-row-v61{display:grid;grid-template-columns:48px 1fr auto;gap:9px;align-items:center;padding:7px;border-radius:12px;background:#123f48;color:#fff;text-decoration:none}.dashboard-last-thumb-v61{width:48px;height:44px;border-radius:9px;overflow:hidden;display:grid;place-items:center;background:#1a4650}.dashboard-last-thumb-v61 img{width:100%;height:100%;object-fit:contain}.dashboard-last-row-v61 small,.dashboard-last-row-v61 strong,.dashboard-last-row-v61 span{display:block}.dashboard-last-row-v61 small{font-size:.55rem;color:#8fbbb5;text-transform:uppercase}.dashboard-last-row-v61 strong{font-size:.76rem}.dashboard-last-row-v61 span{font-size:.62rem;color:#a9cec8}.dashboard-last-row-v61 b{font-size:1.2rem;color:#68d8b5}
.dashboard-more-v61{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding:7px}.dashboard-more-v61 a{display:flex;align-items:center;justify-content:space-between;gap:5px;padding:8px 9px;border-radius:10px;background:#123f48;color:#fff;text-decoration:none;font-size:.67rem}.dashboard-more-v61 b{color:#72dcba}
@media(max-width:600px){.dashboard-v61{gap:8px}.dashboard-head-v61{padding:11px 12px}.dashboard-settings-panel-v61{position:fixed;top:72px;right:10px;left:10px;width:auto;max-height:calc(100vh - 145px);overflow:auto}.dashboard-actions-v61 a{min-height:50px}.dashboard-today-v61,.dashboard-overview-v61{padding:11px}.dashboard-overview-v61{grid-template-columns:1fr}.dashboard-fish-list-v61{grid-template-columns:1fr}.dashboard-fish-list-v61 a{padding:7px}.dashboard-more-v61{grid-template-columns:1fr 1fr 1fr}.dashboard-more-v61 a{justify-content:center}.dashboard-more-v61 b{display:none}}
@media(max-width:370px){.dashboard-status-line-v61 span:nth-child(2){display:none}.dashboard-more-v61 a{font-size:.58rem;padding:7px 3px}.dashboard-actions-v61 strong{font-size:.6rem}}

/* FishTracker Pro 6 Alpha 3: Offline-/Entwicklerstatus */
.connection-status{position:fixed;right:10px;top:64px;z-index:1200;display:flex;align-items:center;gap:7px;padding:6px 10px;border-radius:999px;background:rgba(8,48,57,.94);border:1px solid rgba(91,216,187,.35);box-shadow:0 6px 18px rgba(0,0,0,.22);font-size:.75rem;color:#e9fffa}
.connection-status span{color:#50e3b1}.connection-status small{opacity:.72;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.connection-status.is-offline{background:#54271e;border-color:#f3a071}.connection-status.is-offline span{color:#ff9b6b}
.developer-center{max-width:980px;margin-inline:auto}.system-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:18px 0}.system-card{display:flex;flex-direction:column;gap:5px;padding:15px;border-radius:16px;background:rgba(7,43,51,.82);border:1px solid rgba(102,211,189,.22)}.system-card small,.system-card span{opacity:.72}.system-card strong{font-size:1.1rem}.developer-block{margin-top:16px;padding:16px;border-radius:18px;background:rgba(7,43,51,.65);border:1px solid rgba(102,211,189,.2)}.status-grid{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.status-pill{padding:7px 10px;border-radius:999px;font-size:.82rem;background:#4e3920}.status-pill.ok{background:#165746}.status-pill.error{background:#6c2f2f}.flag-list{display:grid;gap:8px;margin:12px 0 16px}.flag-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:11px 12px;border-radius:13px;background:rgba(255,255,255,.045)}.flag-row span{display:flex;flex-direction:column}.flag-row small{opacity:.65}.flag-row input{width:22px;height:22px}.action-row.wrap{flex-wrap:wrap}
@media(max-width:720px){.connection-status{top:58px;right:6px;padding:5px 8px}.connection-status small{display:none}.system-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.developer-block{padding:13px}.flag-row{align-items:flex-start}}

/* FishTracker Pro 6 Alpha 4 – ruhiges App-Design und christlicher Impuls */
.faith-impulse{margin:12px 0 4px;padding:15px 16px;border:1px solid rgba(151,203,170,.22);border-radius:18px;background:linear-gradient(145deg,rgba(12,51,57,.96),rgba(7,34,43,.98));box-shadow:0 10px 28px rgba(0,0,0,.16)}
.faith-impulse-head{display:flex;align-items:center;gap:10px;margin-bottom:9px}.faith-impulse-head>span{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:rgba(218,181,92,.14);font-size:18px}.faith-impulse-head div{display:flex;flex-direction:column}.faith-impulse-head small{color:#9bc9bc;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.faith-impulse-head strong{font-size:.92rem;color:#f4d98a}
.faith-impulse blockquote{margin:8px 0 10px;padding:0;border:0;color:#f7fbf8;font:600 1rem/1.48 Poppins,system-ui,sans-serif}.faith-impulse p{margin:0;color:#c9ddd8;font-size:.88rem;line-height:1.52}.faith-actions{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.faith-actions .compact{min-height:38px;padding:8px 12px}.text-button{border:0;background:transparent;color:#b9d7cf;text-decoration:underline;cursor:pointer;padding:8px}
@media(max-width:600px){.faith-impulse{margin-inline:0;padding:13px 14px;border-radius:16px}.faith-impulse blockquote{font-size:.94rem}.faith-impulse p{font-size:.84rem}}

/* FishTracker Pro 6 Alpha 4.1 – Fang-Assistent und Bibel */
.catch-wizard{display:block}.catch-wizard-head{position:sticky;top:58px;z-index:8;display:flex;align-items:center;justify-content:space-between;gap:14px;margin:-4px -2px 16px;padding:12px 2px;background:linear-gradient(180deg,var(--color-bg,#06242c) 75%,transparent)}
.catch-wizard-head h3{margin:2px 0 0;font-size:1.08rem}.catch-wizard-dots{display:flex;gap:6px}.catch-wizard-dots span{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:rgba(255,255,255,.08);color:var(--color-ink-muted);font-size:.76rem;font-weight:800}.catch-wizard-dots span.active{background:var(--color-accent);color:#06242c;transform:scale(1.08)}.catch-wizard-dots span.done{background:rgba(37,214,162,.2);color:var(--color-accent)}
.catch-wizard-step{animation:wizardIn .18s ease}.catch-wizard-step[hidden]{display:none!important}.wizard-actions{display:flex;justify-content:space-between;gap:10px;margin-top:18px}.wizard-actions .btn{min-width:120px}.catch-wizard-step .catch-location-box{margin-top:8px}
@keyframes wizardIn{from{opacity:.35;transform:translateX(10px)}to{opacity:1;transform:none}}
.bible-reader{max-width:900px;margin-inline:auto}.bible-controls{display:grid;grid-template-columns:2fr 1fr auto;gap:12px;align-items:end}.bible-player{position:sticky;top:62px;z-index:5;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0;padding:10px;border:1px solid var(--color-line);border-radius:16px;background:#082932}.bible-player span{color:var(--color-ink-muted);font-size:.84rem}.bible-text{padding:18px;border:1px solid var(--color-line);border-radius:18px;background:rgba(255,255,255,.035);font-size:1.04rem;line-height:1.78}.bible-text h3{margin-top:0;color:var(--color-accent)}
@media(max-width:600px){.catch-wizard-head{top:52px}.catch-wizard-dots span{width:25px;height:25px}.wizard-actions{position:sticky;bottom:78px;z-index:7;padding:10px 0;background:linear-gradient(0deg,var(--color-bg,#06242c) 75%,transparent)}.wizard-actions .btn{flex:1;min-width:0}.bible-controls{grid-template-columns:1fr 100px}.bible-controls .btn{grid-column:1/-1}.bible-player{top:54px}.bible-player .btn{flex:1}.bible-text{padding:14px;font-size:.98rem}}

/* =========================================================
   FishTracker Pro 6.0 Alpha 4.2 — Designsystem & App-Shell
   ========================================================= */
:root {
  --ft-bg: #061d24;
  --ft-bg-deep: #04171d;
  --ft-surface: #0b2a33;
  --ft-surface-2: #103640;
  --ft-surface-3: #16434d;
  --ft-primary: #37d6a2;
  --ft-primary-strong: #19ba84;
  --ft-primary-soft: rgba(55, 214, 162, .14);
  --ft-secondary: #65bff0;
  --ft-warning: #f3bd55;
  --ft-danger: #ff7d7d;
  --ft-text: #f5fbfa;
  --ft-text-muted: #a9c2c5;
  --ft-border: rgba(202, 238, 235, .13);
  --ft-shadow-sm: 0 4px 14px rgba(0, 0, 0, .18);
  --ft-shadow-md: 0 12px 34px rgba(0, 0, 0, .28);
  --ft-radius-sm: 12px;
  --ft-radius-md: 18px;
  --ft-radius-lg: 26px;
  --ft-space-1: 4px;
  --ft-space-2: 8px;
  --ft-space-3: 12px;
  --ft-space-4: 16px;
  --ft-space-5: 20px;
  --ft-space-6: 24px;
  --ft-topbar-height: 64px;
  --ft-bottom-nav-height: 72px;
  color-scheme: dark;
}

html { background: var(--ft-bg-deep); scroll-behavior: smooth; }
html.has-open-sheet, html.has-open-sheet body { overflow: hidden; }
body {
  background:
    radial-gradient(circle at 85% -5%, rgba(55,214,162,.12), transparent 32rem),
    linear-gradient(180deg, var(--ft-bg) 0%, var(--ft-bg-deep) 100%);
  color: var(--ft-text);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body::before { content: none !important; }

.app-topbar {
  min-height: var(--ft-topbar-height);
  height: auto;
  padding: max(8px, env(safe-area-inset-top)) 14px 8px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
  background: rgba(4, 23, 29, .88);
  border-bottom: 1px solid var(--ft-border);
  box-shadow: none;
  backdrop-filter: blur(18px) saturate(1.25);
  -webkit-backdrop-filter: blur(18px) saturate(1.25);
  transition: box-shadow .2s ease, background .2s ease;
}
.app-topbar.is-scrolled { background: rgba(4, 23, 29, .97); box-shadow: var(--ft-shadow-sm); }
.app-topbar h1 {
  margin: 0;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font: 700 clamp(1rem, 3vw, 1.18rem)/1.2 Poppins, sans-serif;
  letter-spacing: -.02em;
  color: var(--ft-text);
}
.topbar-icon {
  width: 38px; height: 38px; border-radius: 12px; overflow: hidden;
  background: linear-gradient(145deg, rgba(55,214,162,.2), rgba(101,191,240,.12));
  border: 1px solid var(--ft-border);
  display: grid; place-items: center;
}
.topbar-icon img { width: 100%; height: 100%; object-fit: cover; }
.topbar-refresh, .topbar-logout {
  width: 38px; height: 38px; padding: 0; border-radius: 50%;
  display: grid; place-items: center;
  border: 1px solid var(--ft-border);
  background: var(--ft-surface);
  color: var(--ft-text);
  text-decoration: none;
  font-size: 1.18rem;
}
.topbar-refresh span, .topbar-logout span { display: none !important; }

.app-main {
  width: min(100%, 1080px);
  margin-inline: auto;
  padding: 16px 14px calc(var(--ft-bottom-nav-height) + 42px + env(safe-area-inset-bottom));
  opacity: 0;
  transform: translateY(5px);
}
body.app-ready .app-main { opacity: 1; transform: none; transition: opacity .22s ease, transform .22s ease; }

.panel, .card, .app-section,
.dashboard-head-v61, .dashboard-today-v61, .dashboard-overview-v61,
.catch-wizard, .profile-card, .admin-card {
  background: linear-gradient(155deg, rgba(16,54,64,.96), rgba(8,37,46,.97));
  border: 1px solid var(--ft-border);
  border-radius: var(--ft-radius-md);
  box-shadow: var(--ft-shadow-sm);
}
.panel, .app-section { padding: clamp(14px, 3vw, 20px); }

h1, h2, h3, h4 { font-family: Poppins, sans-serif; color: var(--ft-text); letter-spacing: -.025em; }
p, label, span, small { text-wrap: pretty; }
.muted, .hint { color: var(--ft-text-muted) !important; }
.eyebrow { color: var(--ft-primary) !important; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; font-size: .72rem; }
.eyebrow.dark { color: var(--ft-primary) !important; }

a { color: #87d9ff; text-underline-offset: 3px; }

.btn, button.btn, input[type="submit"], .button {
  min-height: 46px;
  padding: 10px 16px;
  border-radius: 14px;
  border: 1px solid transparent;
  background: linear-gradient(135deg, var(--ft-primary), var(--ft-primary-strong));
  color: #03251c;
  font: 700 .94rem/1.2 Inter, sans-serif;
  box-shadow: 0 7px 18px rgba(25,186,132,.18);
  transition: transform .14s ease, filter .14s ease, box-shadow .14s ease;
  cursor: pointer;
}
.btn:hover, button.btn:hover { filter: brightness(1.06); }
.btn:active, .is-pressed { transform: scale(.975) !important; }
.btn.secondary, .btn-secondary, .btn.btn-secondary {
  background: var(--ft-surface-2);
  color: var(--ft-text);
  border-color: var(--ft-border);
  box-shadow: none;
}
.btn-danger { background: rgba(255,125,125,.16) !important; color: #ffd7d7 !important; border-color: rgba(255,125,125,.3) !important; box-shadow: none !important; }
.icon-button {
  width: 42px; height: 42px; min-height: 42px; padding: 0;
  border-radius: 50%; border: 1px solid var(--ft-border);
  background: var(--ft-surface-2); color: var(--ft-text);
  display: inline-grid; place-items: center;
}

.field { gap: 7px; }
.field > label, .field > span, label.field > span { color: #dceceb; font-size: .86rem; font-weight: 650; }
input, select, textarea {
  min-height: 48px;
  border: 1px solid var(--ft-border) !important;
  border-radius: 14px !important;
  background: rgba(3,24,30,.66) !important;
  color: var(--ft-text) !important;
  padding: 11px 13px !important;
  outline: none;
  transition: border-color .16s ease, box-shadow .16s ease, background .16s ease;
}
textarea { min-height: 92px; resize: vertical; }
input:focus, select:focus, textarea:focus {
  border-color: rgba(55,214,162,.72) !important;
  box-shadow: 0 0 0 4px rgba(55,214,162,.12) !important;
  background: rgba(3,24,30,.9) !important;
}

.alert { border-radius: 14px; border: 1px solid var(--ft-border); }
.alert-success { background: rgba(55,214,162,.12); color: #d7fff1; }
.alert-error { background: rgba(255,125,125,.12); color: #ffe1e1; }

/* Native-feeling bottom sheets */
.catalog-picker-dialog, .map-sheet-backdrop, .app-dialog-backdrop {
  position: fixed !important; inset: 0 !important; z-index: 4000 !important;
  background: rgba(0, 9, 12, .72) !important;
  backdrop-filter: blur(5px);
  -webkit-backdrop-filter: blur(5px);
}
.catalog-picker-sheet, .map-sheet, [role="dialog"].bottom-sheet {
  position: absolute !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
  width: min(100%, 680px) !important; max-height: min(88dvh, 780px) !important;
  margin-inline: auto !important; padding: 12px 16px calc(18px + env(safe-area-inset-bottom)) !important;
  border-radius: 26px 26px 0 0 !important;
  border: 1px solid var(--ft-border) !important;
  background: linear-gradient(165deg, #123842, #071f27) !important;
  box-shadow: 0 -20px 60px rgba(0,0,0,.45) !important;
  overflow: auto !important;
  animation: ft-sheet-in .22s cubic-bezier(.2,.8,.2,1);
}
.catalog-picker-sheet::before, .map-sheet::before, [role="dialog"].bottom-sheet::before {
  content: ""; display: block; width: 42px; height: 4px; border-radius: 999px;
  background: rgba(224,247,244,.25); margin: 0 auto 12px;
}
@keyframes ft-sheet-in { from { transform: translateY(24px); opacity: .35; } to { transform: none; opacity: 1; } }

/* Catch wizard */
.catch-wizard { overflow: hidden; }
.catch-wizard-head { padding-bottom: 14px; margin-bottom: 16px; border-bottom: 1px solid var(--ft-border); }
.catch-wizard-dots { gap: 7px; }
.catch-wizard-dots span {
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(255,255,255,.06); border: 1px solid var(--ft-border); color: var(--ft-text-muted);
  display: grid; place-items: center; font-size: .78rem; font-weight: 800;
}
.catch-wizard-dots span.active { background: var(--ft-primary); color: #03251c; border-color: transparent; box-shadow: 0 0 0 5px var(--ft-primary-soft); }
.catch-wizard-step { animation: ft-step-in .2s ease; }
@keyframes ft-step-in { from { opacity: 0; transform: translateX(8px); } to { opacity: 1; transform: none; } }
.wizard-actions { margin-top: 18px; padding-top: 14px; border-top: 1px solid var(--ft-border); }
.catalog-picker-trigger { min-height: 54px; border-radius: 15px; background: rgba(3,24,30,.66); border-color: var(--ft-border); }

/* Bottom navigation & floating action */
.bottom-nav {
  left: 50%; transform: translateX(-50%);
  width: min(calc(100% - 16px), 760px);
  height: calc(var(--ft-bottom-nav-height) + env(safe-area-inset-bottom));
  padding: 7px 8px calc(7px + env(safe-area-inset-bottom));
  border-radius: 22px 22px 0 0;
  border: 1px solid var(--ft-border);
  border-bottom: 0;
  background: rgba(5,25,31,.94);
  box-shadow: 0 -10px 34px rgba(0,0,0,.32);
  backdrop-filter: blur(18px) saturate(1.2);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  display: grid;
  grid-template-columns: repeat(6, minmax(0,1fr));
}
.bottom-nav a {
  min-width: 0; min-height: 54px; padding: 5px 2px;
  border-radius: 14px; color: var(--ft-text-muted); text-decoration: none;
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px;
  font-size: .7rem; font-weight: 650;
  transition: background .15s ease, color .15s ease, transform .15s ease;
}
.bottom-nav a .nav-icon { width: 22px; height: 22px; display: grid; place-items: center; }
.bottom-nav a svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.bottom-nav a.active { color: var(--ft-primary); background: var(--ft-primary-soft); }
.bottom-nav a.active::before { content: none !important; }

.app-fab {
  position: fixed;
  right: max(18px, calc((100vw - 1080px)/2 + 20px));
  bottom: calc(var(--ft-bottom-nav-height) + 17px + env(safe-area-inset-bottom));
  z-index: 2100;
  width: 58px; height: 58px; border-radius: 19px;
  display: grid; place-items: center;
  background: linear-gradient(145deg, var(--ft-primary), #78ebc4);
  color: #05261d; text-decoration: none;
  box-shadow: 0 12px 28px rgba(0,0,0,.35), 0 5px 18px rgba(55,214,162,.3);
  border: 1px solid rgba(255,255,255,.22);
  transition: transform .16s ease, box-shadow .16s ease;
}
.app-fab svg { width: 28px; height: 28px; fill: none; stroke: currentColor; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.app-fab:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(0,0,0,.4), 0 8px 22px rgba(55,214,162,.34); }
body.page-fangbuch .app-fab { display: none; }

.connection-status {
  margin: 10px auto -5px; width: fit-content; max-width: calc(100% - 28px);
  border: 1px solid var(--ft-border); background: rgba(9,42,51,.86); border-radius: 999px;
  padding: 5px 10px; font-size: .72rem; box-shadow: none;
}
.connection-status strong { color: var(--ft-primary); }
.connection-status.is-offline strong { color: var(--ft-warning); }
.footer-legal { color: var(--ft-text-muted); font-size: .72rem; }

/* Dashboard component polish while retaining compact layout */
.dashboard-v61 { display: grid; gap: 12px; }
.dashboard-head-v61, .dashboard-today-v61, .dashboard-overview-v61 { padding: 14px; }
.dashboard-actions-v61 { gap: 8px; }
.dashboard-actions-v61 a {
  min-height: 68px; border-radius: 16px; border: 1px solid var(--ft-border);
  background: var(--ft-surface); box-shadow: none; color: var(--ft-text);
}
.dashboard-actions-v61 a.primary { background: linear-gradient(145deg, rgba(55,214,162,.2), rgba(16,54,64,.95)); border-color: rgba(55,214,162,.3); }
.dashboard-actions-v61 a span { font-size: 1.35rem; }
.dashboard-score-v61 { color: var(--ft-primary); }
.dashboard-last-row-v61 { border-radius: 14px; background: rgba(3,24,30,.42); border: 1px solid var(--ft-border); }

@media (max-width: 700px) {
  :root { --ft-bottom-nav-height: 66px; }
  .app-main { padding: 12px 10px calc(var(--ft-bottom-nav-height) + 42px + env(safe-area-inset-bottom)); }
  .app-topbar { grid-template-columns: 38px minmax(0,1fr) 36px 36px; padding-inline: 10px; }
  .topbar-icon, .topbar-refresh, .topbar-logout { width: 36px; height: 36px; }
  .bottom-nav { width: 100%; border-radius: 18px 18px 0 0; padding-inline: 3px; }
  .bottom-nav a { font-size: .62rem; }
  .bottom-nav a .nav-icon, .bottom-nav a svg { width: 20px; height: 20px; }
  .app-fab { right: 14px; width: 54px; height: 54px; border-radius: 18px; }
  .two-cols { gap: 10px; }
  .catalog-picker-sheet, .map-sheet, [role="dialog"].bottom-sheet { max-height: 92dvh !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  .app-main { opacity: 1; transform: none; }
}

/* FishTracker Pro 6.0 Alpha 4.2.1 – stable navigation and scroll repair */
html, body {
  min-height: 100%;
  height: auto !important;
  overflow-x: hidden;
  overflow-y: auto !important;
  overscroll-behavior-y: auto;
}
body.picker-open,
body.legend-open,
html.has-open-sheet,
html.has-open-sheet body {
  overflow: hidden !important;
}

/* The catch assistant must remain a normal scrollable page. */
.catch-wizard,
.catch-form,
.catch-wizard-step,
.app-main:has(.catch-wizard) {
  overflow: visible !important;
  max-height: none !important;
  height: auto !important;
}
.catch-wizard {
  padding-bottom: 8px;
}
.catch-wizard-head {
  position: static !important;
  top: auto !important;
}
.wizard-actions {
  position: static !important;
  bottom: auto !important;
  background: transparent !important;
  padding-bottom: 2px;
}

/* Restore the proven compact navigation instead of the experimental icon bar. */
.bottom-nav {
  left: 0 !important;
  right: 0 !important;
  transform: none !important;
  width: 100% !important;
  border-radius: 18px 18px 0 0 !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  padding: 7px 4px calc(7px + env(safe-area-inset-bottom)) !important;
}
.bottom-nav a {
  font-size: 1.08rem !important;
  line-height: 1 !important;
  gap: 3px !important;
  min-height: 54px !important;
  padding: 5px 1px !important;
}
.bottom-nav a > span {
  display: block;
  font-size: .59rem !important;
  line-height: 1.05;
  white-space: nowrap;
}
.app-fab { display: none !important; }

@media (max-width: 700px) {
  .app-main {
    padding-bottom: calc(82px + env(safe-area-inset-bottom)) !important;
  }
  .catch-wizard-step {
    padding-bottom: 4px;
  }
  .wizard-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
  }
  .wizard-actions > span:only-child { display: none; }
  .wizard-actions .btn {
    min-width: 0 !important;
    width: 100%;
  }
  .wizard-actions .btn:only-child {
    grid-column: 1 / -1;
  }
}

/* FishTracker Pro Alpha 4.5 Phase 2 – additive fish knowledge integration */
.fish-knowledge-profile{display:grid;gap:18px}.fish-profile-title .eyebrow{margin:0 0 3px;color:var(--ft-primary);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em}.fish-scientific{margin:3px 0 9px;color:var(--ft-text-muted)}.knowledge-section{padding-top:4px}.knowledge-section>h2,.knowledge-section .section-head h2{margin-bottom:10px}.knowledge-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.knowledge-tags span,.verified-source{display:inline-flex;padding:4px 8px;border-radius:999px;background:rgba(55,214,162,.12);border:1px solid rgba(55,214,162,.22);font-size:.72rem}.knowledge-gallery{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(150px,220px);gap:10px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x proximity}.knowledge-gallery a{display:block;scroll-snap-align:start}.knowledge-gallery img{width:100%;height:145px;object-fit:cover;border-radius:14px;border:1px solid var(--ft-border)}.fish-bait-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:9px}.fish-bait-card{display:grid;grid-template-columns:58px 1fr;gap:10px;align-items:center;padding:9px;border-radius:14px;border:1px solid var(--ft-border);background:rgba(3,24,30,.38);color:inherit;text-decoration:none}.fish-bait-card img,.bait-placeholder{width:58px;height:58px;border-radius:11px;object-fit:cover;display:grid;place-items:center;background:rgba(255,255,255,.05)}.fish-bait-card span span,.fish-bait-card small{display:block;color:var(--ft-text-muted);margin-top:3px}.regional-rule-list{display:grid;gap:9px}.regional-rule{padding:12px;border:1px solid var(--ft-border);border-radius:14px;background:rgba(3,24,30,.38)}.regional-rule p{margin:5px 0}.knowledge-warning{font-size:.78rem;color:var(--ft-warning);margin-top:9px}.knowledge-video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px}.knowledge-video-card{overflow:hidden;border:1px solid var(--ft-border);border-radius:14px;background:rgba(3,24,30,.38)}.knowledge-video-card iframe,.knowledge-video-card>img{width:100%;aspect-ratio:16/9;border:0;object-fit:cover}.knowledge-video-card>div{display:grid;gap:5px;padding:10px}.fish-user-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.fish-user-stats div{padding:11px 8px;text-align:center;border:1px solid var(--ft-border);border-radius:13px;background:rgba(3,24,30,.38)}.fish-user-stats strong,.fish-user-stats small{display:block}.fish-user-stats small{margin-top:3px;color:var(--ft-text-muted);font-size:.7rem}.knowledge-source-list{margin:0;padding-left:19px}.knowledge-source-list li{margin:7px 0}.fish-external-links{display:flex;flex-wrap:wrap;gap:8px}.fish-external-links a{padding:9px 11px;border:1px solid var(--ft-border);border-radius:12px;background:rgba(3,24,30,.38)}
@media(max-width:700px){.fish-user-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.fish-detail-head{align-items:flex-start}.fish-detail-img{max-height:220px}}

/* FishTracker Pro Alpha 4.5 Phase 2.3 – visibility hotfix
   The design stylesheet hid .app-main until app-shell.js added body.app-ready.
   The current project does not load that script, so content remained invisible. */
.app-main {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
}

/* Alpha 4.5 Phase 5 – übersichtliche Fischprofile und Schonzeiten auf dem Dashboard */
.fish-knowledge-profile .knowledge-section > h2,
.fish-knowledge-profile .knowledge-section .section-head h2,
.fish-knowledge-profile .fish-info-card-v45 > h2 {
  color: var(--ft-text, #f4f7f8);
  font-weight: 800;
  letter-spacing: -.015em;
}
.fish-profile-jump-v45 {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  position: sticky;
  top: calc(var(--topbar-height, 62px) + 6px);
  z-index: 4;
  padding: 7px;
  border: 1px solid var(--ft-border, rgba(255,255,255,.1));
  border-radius: 16px;
  background: rgba(7, 25, 30, .93);
  backdrop-filter: blur(14px);
}
.fish-profile-jump-v45 a {
  display: grid;
  place-items: center;
  min-height: 38px;
  padding: 7px 8px;
  border-radius: 11px;
  color: var(--ft-text, #f4f7f8);
  background: rgba(255,255,255,.045);
  text-decoration: none;
  font-size: .78rem;
  font-weight: 750;
}
.fish-profile-jump-v45 a:focus-visible,
.fish-profile-jump-v45 a:hover { background: rgba(55,214,162,.13); }
.fish-facts-grid-v45 { margin: 0; }
.fish-information-grid-v45 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 12px;
  scroll-margin-top: 126px;
}
.fish-info-card-v45,
.fish-feature-section-v45 {
  margin: 0;
  padding: 16px;
  border: 1px solid var(--ft-border, rgba(255,255,255,.1));
  border-radius: 16px;
  background: rgba(255,255,255,.035);
}
.fish-info-card-v45 > h2,
.fish-feature-section-v45 > h2,
.fish-feature-section-v45 .section-head h2 { margin: 0 0 10px; font-size: 1rem; }
.fish-info-card-v45 p { margin: 0; line-height: 1.62; }
.fish-info-card-wide-v45 { grid-column: 1 / -1; }
.fish-feature-section-v45 { scroll-margin-top: 126px; }
.regional-rule { border-left: 4px solid var(--ft-warning, #f5bb45); }
.regional-rule > small { display: block; margin-top: 6px; color: var(--ft-text-muted); }

.dashboard-closed-seasons-v45 {
  padding: 15px;
  border: 1px solid rgba(245,187,69,.25);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(245,187,69,.075), rgba(255,255,255,.025));
}
.closed-season-heading-v45 { margin-bottom: 10px; }
.closed-season-status-v45 {
  display: grid;
  place-items: center;
  min-width: 34px;
  height: 34px;
  padding: 0 8px;
  border-radius: 999px;
  background: rgba(245,187,69,.16);
  color: var(--ft-warning, #f5bb45);
  font-weight: 850;
}
.closed-season-list-v45 { display: grid; gap: 7px; }
.closed-season-row-v45 {
  display: grid;
  grid-template-columns: 38px minmax(0,1fr) auto 16px;
  gap: 9px;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--ft-border, rgba(255,255,255,.1));
  border-radius: 13px;
  color: inherit;
  text-decoration: none;
  background: rgba(4,23,29,.48);
}
.closed-season-icon-v45 { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: rgba(245,187,69,.12); }
.closed-season-copy-v45 strong,
.closed-season-copy-v45 small { display: block; }
.closed-season-copy-v45 small { margin-top: 2px; color: var(--ft-text-muted); font-size: .72rem; }
.closed-season-size-v45 { color: var(--ft-warning, #f5bb45); font-size: .75rem; font-weight: 800; white-space: nowrap; }
.closed-season-note-v45 { margin: 9px 2px 0; color: var(--ft-text-muted); font-size: .7rem; line-height: 1.45; }
.closed-season-empty-v45 { display: flex; gap: 10px; align-items: center; padding: 11px; border-radius: 13px; background: rgba(55,214,162,.07); }
.closed-season-empty-v45 > span { display: grid; place-items: center; width: 34px; height: 34px; flex: 0 0 auto; border-radius: 50%; background: rgba(55,214,162,.15); }
.closed-season-empty-v45 p, .closed-season-empty-v45 strong, .closed-season-empty-v45 small { display: block; margin: 0; }
.closed-season-empty-v45 small { margin-top: 3px; color: var(--ft-text-muted); }

@media (max-width: 700px) {
  .fish-profile-jump-v45 { grid-template-columns: repeat(2, minmax(0,1fr)); position: static; }
  .fish-information-grid-v45 { grid-template-columns: 1fr; }
  .fish-info-card-wide-v45 { grid-column: auto; }
  .closed-season-row-v45 { grid-template-columns: 36px minmax(0,1fr) auto; }
  .closed-season-row-v45 > b { display: none; }
}

/* FishTracker Pro Alpha 4.5 Phase 5.1 – Köderlayout-Wiederherstellung
   Stellt ausschließlich die bereits vorhandenen Premium-Köderklassen wieder her. */
.bait-premium-page,
.bait-detail-premium{display:grid;gap:16px}
.bait-premium-head{display:flex;align-items:end;justify-content:space-between;gap:18px}
.bait-count{display:grid;place-items:center;min-width:84px;padding:10px;border:1px solid var(--color-line);border-radius:16px;background:var(--color-panel)}
.bait-count strong{font-size:1.4rem}
.bait-count span{font-size:.72rem}
.bait-filter{display:grid;grid-template-columns:minmax(220px,1fr) minmax(150px,220px) auto auto;gap:10px;align-items:center;padding:12px}
.bait-search{display:flex;align-items:center;gap:8px;margin:0;padding:0 12px;border:1px solid var(--color-line);border-radius:12px}
.bait-search input{border:0!important;background:transparent!important}
.bait-fav-filter{display:flex;gap:7px;align-items:center;margin:0;white-space:nowrap}
.bait-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:14px}
.bait-premium-card{position:relative;overflow:hidden;border:1px solid var(--color-line);border-radius:18px;background:var(--color-panel)}
.bait-card-main{display:block;color:inherit;text-decoration:none}
.bait-card-image{display:grid;place-items:center;height:158px;overflow:hidden;background:rgba(55,214,162,.1);font-size:3rem}
.bait-card-image img{width:100%;height:100%;object-fit:cover}
.bait-card-body{padding:14px}
.bait-category{margin:0 0 4px;color:var(--color-accent);font-size:.73rem;font-weight:900;text-transform:uppercase}
.bait-card-body h2{margin:0;font-size:1.12rem}
.bait-targets{min-height:2.5em;color:var(--color-ink-muted);font-size:.86rem}
.bait-card-meta{display:flex;justify-content:space-between;margin-top:12px;padding-top:10px;border-top:1px solid var(--color-line);font-size:.76rem}
.bait-card-meta strong{color:var(--color-accent)}
.bait-favorite-form{position:absolute;top:10px;right:10px}
.bait-favorite-button{width:42px;height:42px;border:1px solid #ffffff55;border-radius:50%;background:#04181ecc;color:#fff;font-size:1.45rem}
.bait-favorite-button.active{color:#ffd45c}
.bait-empty{text-align:center;padding:36px}
.bait-detail-hero{display:grid;grid-template-columns:minmax(250px,42%) 1fr;gap:22px;align-items:center;overflow:hidden;border:1px solid var(--color-line);border-radius:22px;background:var(--color-panel)}
.bait-detail-photo{display:grid;place-items:center;min-height:310px;background:rgba(55,214,162,.1);font-size:5rem}
.bait-detail-photo img{width:100%;height:100%;min-height:310px;max-height:430px;object-fit:cover}
.bait-detail-title{padding:22px 24px 22px 0}
.bait-stat-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.bait-stat-strip article{display:grid;text-align:center;padding:14px;border:1px solid var(--color-line);border-radius:15px;background:var(--color-panel)}
.bait-stat-strip strong{font-size:1.25rem}
.bait-stat-strip span{font-size:.76rem;color:var(--color-ink-muted)}
.bait-info-grid,
.bait-knowledge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.bait-info-grid h2,
.bait-knowledge-grid .panel h2,
.bait-external h2{margin-top:0;font-size:1rem}
.bait-knowledge-wide{grid-column:1/-1}
.bait-external,
.bait-resource-actions{display:flex;align-items:center;justify-content:space-between;gap:18px}
.bait-resource-actions h2{margin:0 0 4px}
.bait-resource-actions p{margin:0;color:var(--color-ink-muted)}
.bait-resource-actions>div:last-child,
.knowledge-link-grid{display:flex;flex-wrap:wrap;gap:9px}
.bait-experience{display:grid;gap:10px}
.bait-experience>h2,.bait-experience>p{margin:0}
.bait-experience-form{display:grid;gap:12px}
.bait-experience-form textarea{min-height:110px;resize:vertical}

@media(max-width:820px){
  .bait-filter{grid-template-columns:1fr 1fr}
  .bait-search{grid-column:1/-1}
  .bait-detail-hero{grid-template-columns:1fr}
  .bait-detail-title{padding:0 16px 18px}
  .bait-info-grid,.bait-knowledge-grid{grid-template-columns:1fr}
  .bait-knowledge-wide{grid-column:auto}
  .bait-resource-actions,.bait-external{align-items:stretch;flex-direction:column}
  .bait-resource-actions>div:last-child,.knowledge-link-grid{display:grid;width:100%}
  .bait-resource-actions .btn,.knowledge-link-grid .btn,.knowledge-link-grid a{width:100%}
}
@media(max-width:520px){
  .bait-filter{grid-template-columns:1fr}
  .bait-filter>*{width:100%}
  .bait-card-grid{grid-template-columns:1fr 1fr;gap:9px}
  .bait-card-image{height:112px}
  .bait-card-body{padding:10px}
  .bait-targets{display:none}
  .bait-card-meta{display:block}
  .bait-stat-strip{grid-template-columns:1fr 1fr}
  .bait-stat-strip article:last-child{grid-column:1/-1}
}
