/* Geo-Station (26.10.2026, js/geo.js): Scanner-Blatt unten über der Knopfleiste, Sticker-Look wie die anderen Menüs (css/sticker.css Farben) */
.geo-sheet { position: fixed; left: 50%; bottom: calc(96px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%); z-index: 60; width: min(560px, calc(100vw - 20px));
  border-radius: 20px; background: #232b58; color: #eef2ff; box-shadow: inset 0 0 0 2.5px #161a3a, 0 0 0 2px rgba(255,255,255,0.35), 0 14px 34px rgba(0,0,0,0.45); font-family: 'Inter Tight', 'Segoe UI', system-ui, sans-serif; overflow: hidden;
  animation: geoRise 0.35s cubic-bezier(0.22, 1, 0.36, 1) both; }
.geo-sheet[hidden] { display: none; }
@keyframes geoRise { from { transform: translate(-50%, 16px); opacity: 0; } }
.geo-h { display: flex; align-items: center; gap: 10px; padding: 10px 12px 8px; }
.geo-h .ic { font-size: 22px; line-height: 1; }
.geo-h b { font: 400 19px/1 'Lilita One', Impact, sans-serif; letter-spacing: 0.01em; }
.geo-h small { display: block; font: 700 11.5px/1.3 'Inter Tight', sans-serif; color: #c3cbe6; margin-top: 2px; }
.geo-x { all: unset; cursor: pointer; margin-left: auto; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,0.14); font: 800 18px/1 'Inter Tight', sans-serif; color: #fff; }
.geo-body { padding: 0 12px 12px; display: grid; gap: 8px; }
.geo-scans { display: flex; gap: 5px; align-items: center; flex-wrap: wrap; }
.geo-scans i { width: 22px; height: 22px; border-radius: 7px; background: rgba(255,255,255,0.12); box-shadow: inset 0 0 0 1.5px rgba(255,255,255,0.3); font-style: normal; display: grid; place-items: center; font: 800 10px/1 'Inter Tight', sans-serif; }
.geo-scans i.s0 { background: #5aa0ff; } .geo-scans i.s1 { background: #ffd54a; color: #3a2a00; } .geo-scans i.s2 { background: #ff8a2a; } .geo-scans i.s3 { background: #3ddc84; color: #063a1f; }
.geo-scans small { font: 800 12px/1 'Inter Tight', sans-serif; color: #c3cbe6; margin-left: 4px; }
.geo-legend { display: flex; gap: 10px; flex-wrap: wrap; font: 700 11.5px/1 'Inter Tight', sans-serif; color: #c3cbe6; }
.geo-legend span::before { content: ''; display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; vertical-align: -1px; }
.geo-legend .c0::before { background: #5aa0ff; } .geo-legend .c1::before { background: #ffd54a; } .geo-legend .c2::before { background: #ff8a2a; } .geo-legend .c3::before { background: #3ddc84; } .geo-legend .cf::before { background: rgba(255,255,255,0.5); }
.geo-goal { display: grid; gap: 5px; }
.geo-goal .row { display: grid; grid-template-columns: 78px 1fr auto; gap: 8px; align-items: center; font: 800 12px/1 'Inter Tight', sans-serif; }
.geo-goal .bar { height: 9px; border-radius: 999px; background: rgba(255,255,255,0.14); overflow: hidden; }
.geo-goal .bar i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #f2a15e, #f6cd5a); transition: width 0.5s; }
.geo-goal .bar i.full { background: linear-gradient(90deg, #3ddc84, #6ccbb0); }
.geo-inv { font: 700 12px/1.4 'Inter Tight', sans-serif; color: #c3cbe6; }
.geo-inv b { color: #fff; }
.geo-hint { margin: 0; font: 700 12.5px/1.4 'Inter Tight', sans-serif; color: #eef2ff; }
.geo-btn { all: unset; cursor: pointer; display: block; text-align: center; box-sizing: border-box; width: 100%; height: 40px; border-radius: 13px; background: linear-gradient(180deg, #f2a15e, #cf7b3f); color: #1b1200;
  font: 400 16px/40px 'Lilita One', Impact, sans-serif; box-shadow: inset 0 0 0 2px #161a3a, 0 3px 0 #161a3a; }
.geo-btn.drill { background: linear-gradient(180deg, #3ddc84, #2aa864); animation: geoBlink 0.9s ease-in-out infinite; }
@keyframes geoBlink { 50% { filter: brightness(1.25); } }
@media (max-width: 640px) { .geo-sheet { bottom: calc(82px + env(safe-area-inset-bottom, 0px)); width: calc(100vw - 12px); } .geo-h b { font-size: 17px; } }

.geo-toast { position: fixed; left: 50%; bottom: calc(150px + env(safe-area-inset-bottom, 0px)); transform: translate(-50%, 10px); z-index: 61; max-width: min(92vw, 520px); padding: 10px 14px; border-radius: 14px; background: #161a3a; color: #fff;
  box-shadow: 0 0 0 2px rgba(255,255,255,0.35), 0 10px 24px rgba(0,0,0,0.4); font: 800 13px/1.35 'Inter Tight', 'Segoe UI', sans-serif; opacity: 0; pointer-events: none; transition: opacity 0.25s, transform 0.25s; }
.geo-toast.on { opacity: 1; transform: translate(-50%, 0); }

/* v2 (26.10. abends): Kartenansicht – Blatt einklappbar (Kopf antippen), Erklärung beim ersten Mal, Hilfe-Knopf */
.geo-h { cursor: pointer; }
.geo-sheet.min .geo-body { display: none; }
.geo-help { all: unset; cursor: pointer; margin-left: auto; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,0.14); font: 800 16px/1 'Inter Tight', sans-serif; color: #fff; }
.geo-help + .geo-x { margin-left: 6px; }
.geo-legend .co::before { background: rgba(255,213,74,0.35); box-shadow: inset 0 0 0 1px rgba(255,255,255,0.4); }
.geo-intro b { display: block; font: 400 17px/1.2 'Lilita One', Impact, sans-serif; margin: 2px 0 8px; }
.geo-intro ol { list-style: none; margin: 0 0 8px; padding: 0; display: grid; gap: 7px; }
.geo-intro li { display: grid; grid-template-columns: 30px 1fr; gap: 8px; align-items: start; font: 600 12.5px/1.4 'Inter Tight', sans-serif; color: #eef2ff; }
.geo-intro li em { font-style: normal; font-size: 20px; line-height: 1.1; text-align: center; }
.geo-intro li b { display: inline; font: 800 12.5px/1.4 'Inter Tight', sans-serif; margin: 0; }
.geo-intro li i { font-style: normal; font-weight: 800; padding: 0 5px; border-radius: 6px; color: #1b1200; }
.geo-intro li i.c0 { background: #5aa0ff; color: #fff; } .geo-intro li i.c1 { background: #ffd54a; } .geo-intro li i.c2 { background: #ff8a2a; }
.geo-intro p { margin: 0 0 10px; font: 700 12px/1.4 'Inter Tight', sans-serif; color: #c3cbe6; }
@media (max-width: 640px) { .geo-sheet { max-height: 46vh; overflow-y: auto; } }
.geo-sheet { padding: 0; }   /* ein globales section-Padding (44px) drückte das eingeklappte Blatt auf */
.geo-btn.drill.sm { width: auto; height: 32px; padding: 0 12px; margin-left: auto; font-size: 12px; border-radius: 10px; }
.geo-btn.drill.sm + .geo-help { margin-left: 6px; }

/* v3: flache 2D-Karte (js/geomap.js) – liegt über dem 3D-Viewer und dem HUD, unter dem Geo-Blatt */
.geo-map { position: fixed; inset: 0; z-index: 58; background: #0f1226; touch-action: none; overscroll-behavior: contain; user-select: none; -webkit-user-select: none; }
.geo-map[hidden] { display: none; }
.geo-map canvas { display: block; }
.geo-sheet { z-index: 60; }

/* v4: Erklärkarte „Alarm-Briefing“ (Mockup A, Adrian 26.10.) – Absperrband, blinkender Emergency-Chip, roter Start-Knopf */
.geo-sheet.alarm { background: #171a2e; box-shadow: inset 0 0 0 2.5px #0b0d1c, 0 0 0 2px rgba(255,255,255,0.3), 0 16px 40px rgba(0,0,0,0.6); }
.geo-sheet.alarm .geo-x { position: absolute; right: 12px; top: 22px; }
.geo-tape { height: 14px; background: repeating-linear-gradient(135deg, #ff3b3b 0 14px, #1b1200 14px 28px); }
.geo-alarm { padding: 12px 14px 14px; }
.geo-chip { display: inline-block; padding: 3px 9px; border-radius: 99px; font: 900 10.5px/1.4 'Inter Tight', sans-serif; letter-spacing: 0.08em; text-transform: uppercase; background: #ff3b3b; color: #fff; animation: geoBlink 1s steps(2) infinite; }
@keyframes geoBlink { 50% { opacity: 0.35; } }
.geo-alarm h3 { font: 400 30px/1 'Lilita One', Impact, sans-serif; margin: 8px 0 4px; color: #fff; }
.geo-sub { color: #ffb4b4; font: 700 12.5px/1.4 'Inter Tight', sans-serif; margin: 0 0 8px; }
.geo-note { margin: 0 0 10px; padding: 8px 10px; border-radius: 12px; background: rgba(255,59,59,0.12); box-shadow: inset 0 0 0 1.5px rgba(255,59,59,0.5); color: #ffe3e3; font: 600 12px/1.4 'Inter Tight', sans-serif; }
.geo-note b { font-weight: 900; color: #fff; }
.geo-steps { list-style: none; margin: 0 0 10px; padding: 0; display: grid; gap: 8px; }
.geo-steps li { display: grid; grid-template-columns: 38px 1fr; gap: 9px; align-items: start; font: 600 12px/1.35 'Inter Tight', sans-serif; color: #eef2ff; }
.geo-steps li em { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; background: #2a2f4e; }
.geo-steps li em .ti { font-size: 24px; }
.geo-steps li b { display: block; font-size: 12.5px; font-weight: 900; margin-bottom: 1px; }
.geo-bars { display: grid; gap: 5px; font: 800 11px/1.2 'Inter Tight', sans-serif; }
.geo-bars div { display: grid; grid-template-columns: 62px 1fr 68px; gap: 7px; align-items: center; }
.geo-bars div span:last-child { text-align: right; }
.geo-bars i { display: block; height: 8px; border-radius: 99px; background: rgba(255,255,255,0.14); overflow: hidden; }
.geo-bars i::after { content: ''; display: block; height: 100%; width: var(--p); background: #ff5a5a; border-radius: inherit; }
.geo-goalnote { margin: 6px 0 10px; color: #aab3d6; font: 700 11px/1.3 'Inter Tight', sans-serif; }
.geo-btn.alarm { background: linear-gradient(180deg, #ff5a5a, #c92e2e); color: #fff; font: 400 18px/40px 'Lilita One', Impact, sans-serif; letter-spacing: 0.02em; box-shadow: 0 4px 0 #7a1515; }
.geo-goal small { display: block; color: #aab3d6; font: 800 10.5px/1.2 'Inter Tight', sans-serif; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 2px; }
@media (max-width: 640px) { .geo-sheet.alarm { max-height: 78vh; } }

/* v6: Core Drill – eigenes Bohrspiel (js/geodrill.js), Vollbild über der Karte */
.gd { position: fixed; inset: 0; z-index: 70; background: #0f1226; color: #eef2ff; display: grid; grid-template-rows: auto 1fr auto; font-family: 'Inter Tight', 'Segoe UI', system-ui, sans-serif; touch-action: none; user-select: none; -webkit-user-select: none; }
.gd[hidden] { display: none; }
.gd-top { display: flex; align-items: center; gap: 10px; padding: calc(10px + env(safe-area-inset-top, 0px)) 12px 10px; background: #171a2e; box-shadow: 0 2px 0 #0b0d1c; }
.gd-title { font: 400 18px/1 'Lilita One', Impact, sans-serif; letter-spacing: 0.02em; }
.gd-chip { display: inline-block; padding: 3px 9px; border-radius: 99px; font: 900 10.5px/1.4 'Inter Tight', sans-serif; letter-spacing: 0.08em; text-transform: uppercase; background: #ff3b3b; color: #fff; }
.gd-chip.ok { background: #3ddc84; color: #06200f; }
.gd-x { all: unset; cursor: pointer; margin-left: auto; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,0.14); font: 800 18px/1 'Inter Tight', sans-serif; color: #fff; }
.gd-cv { display: block; width: 100%; height: 100%; min-height: 0; cursor: pointer; }
.gd-bottom { padding: 12px 16px calc(16px + env(safe-area-inset-bottom, 0px)); background: #171a2e; box-shadow: 0 -2px 0 #0b0d1c; display: grid; gap: 10px; }
.gd-meter { display: grid; grid-template-columns: 1fr 52px; gap: 10px; align-items: center; font: 800 12px/1 'Inter Tight', sans-serif; }
.gd-meter i { display: block; height: 10px; border-radius: 99px; background: rgba(255,255,255,0.14); overflow: hidden; position: relative; }
.gd-meter i::after { content: ''; position: absolute; inset: 0; width: inherit; background: linear-gradient(90deg, #ff9a3c, #ffd23f); border-radius: inherit; }
.gd-meter i { width: 100% !important; } .gd-meter i::after { width: var(--w, 0%); }
.gd-hint { text-align: center; font: 400 20px/1 'Lilita One', Impact, sans-serif; color: #fff; animation: gdPulse 0.9s ease-in-out infinite; }
@keyframes gdPulse { 50% { opacity: 0.45; transform: scale(0.97); } }
.gd-result { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(8,10,28,0.72); padding: 16px; }
.gd-result[hidden] { display: none; }
.gd-card { width: min(380px, 100%); background: #171a2e; border-radius: 22px; box-shadow: inset 0 0 0 2.5px #0b0d1c, 0 0 0 2px rgba(255,255,255,0.3), 0 16px 40px rgba(0,0,0,0.6); padding: 18px 16px 16px; text-align: center; display: grid; gap: 6px; justify-items: center; animation: geoRise 0.35s cubic-bezier(0.22, 1, 0.36, 1) both; }
.gd-ic .ti { font-size: 64px; }
.gd-units { font: 400 44px/1 'Lilita One', Impact, sans-serif; color: #ffd23f; }
.gd-res { font: 900 14px/1.2 'Inter Tight', sans-serif; letter-spacing: 0.06em; text-transform: uppercase; color: #c3cbe6; }
.gd-card p { margin: 4px 0 8px; font: 600 12.5px/1.4 'Inter Tight', sans-serif; color: #aab3d6; }

/* v7: Karten-Blatt im Alarm-Design – Band, Chip, GEO SURVEY, Scans + Erz im Kopf (auch eingeklappt lesbar) */
.geo-sheet.alarm .geo-x { position: static; }
.geo-sheet.alarm > .geo-x { position: absolute; right: 12px; top: 22px; }
.geo-sheet.alarm .geo-h { padding: 8px 12px 8px; align-items: flex-start; }
.geo-sheet.alarm .geo-h > div { display: grid; gap: 3px; min-width: 0; }
.geo-sheet.alarm .geo-h .geo-chip { justify-self: start; font-size: 9.5px; padding: 2px 8px; }
.geo-sheet.alarm .geo-h b { font: 400 22px/1 'Lilita One', Impact, sans-serif; color: #fff; }
.geo-sheet.alarm .geo-h small { color: #ffb4b4; font-weight: 800; }
.geo-sheet.alarm .geo-help, .geo-sheet.alarm .geo-h .geo-x { margin-top: 2px; }
.geo-sheet.alarm .geo-btn.alarm.sm { width: auto; height: 34px; padding: 0 12px; font-size: 15px; line-height: 34px; border-radius: 10px; margin-left: auto; box-shadow: 0 3px 0 #7a1515; }
.geo-sheet.alarm .geo-btn.alarm.sm + .geo-help { margin-left: 6px; }
.geo-sheet.alarm .geo-scans i { background: rgba(255,255,255,0.1); }
.geo-sheet.alarm .geo-inv { color: #c3cbe6; }
.geo-sheet.alarm .geo-bars { margin-top: 2px; }
/* v8: Erklärkarte mittig und komplett sichtbar (Adrian: auf dem Handy war das Band oben aus dem Bild), kompakter auf Handys */
.geo-sheet.intro { top: 50%; bottom: auto; transform: translate(-50%, -50%); animation: none; max-height: calc(100vh - 16px); overflow-y: auto; }
@media (max-width: 640px) {
  .geo-sheet.intro { max-height: calc(100vh - 16px); width: calc(100vw - 16px); }
  .geo-alarm { padding: 10px 12px 12px; } .geo-alarm h3 { font-size: 26px; margin: 6px 0 2px; } .geo-sub { font-size: 12px; margin-bottom: 6px; }
  .geo-note { font-size: 11.5px; padding: 7px 9px; margin-bottom: 8px; } .geo-steps { gap: 6px; margin-bottom: 8px; } .geo-steps li { font-size: 11.5px; } .geo-steps li em { width: 34px; height: 34px; } .geo-steps li em .ti { font-size: 22px; }
  .geo-goalnote { margin: 4px 0 8px; }
}
.geo-steps li strong { font-weight: 900; color: #fff; }
.geo-tape { width: 100%; display: block; flex: none; align-self: stretch; }   /* ein globaler section-Stil zentrierte den Balken auf 0 px Breite */
.geo-chip { white-space: nowrap; }
/* Details unter „?“ (Adrian 27.10.): standardmäßig zu; offen = Stats + Erklärung, scrollbar, damit die Karte frei bleibt */
.geo-sheet:not(.intro) .geo-body { max-height: min(46vh, 380px); overflow-y: auto; overscroll-behavior: contain; }
.geo-sheet.alarm .geo-help.on { background: #fff; color: #c8321c; }
.geo-how { border-top: 1.5px solid rgba(255,255,255,0.14); padding-top: 8px; }
.geo-how > b { display: block; font: 400 15px/1 'Lilita One', Impact, sans-serif; color: #fff; margin-bottom: 6px; }
.geo-how .geo-steps { margin-bottom: 0; }
