
:root{--bg:#0a0e1a;--bg2:#111827;--bg3:#1a2234;--border:#2a3450;--text:#e8e4d8;--muted:#8a8fa8;--accent:#c8a96e;--accent2:#4a9eff;--red:#e05c5c;--green:#4caf7d;--locked:#3a3f55}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
body{background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:15px;min-height:100vh;overflow-x:hidden}
.nav{position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(10,14,26,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:56px}
.nav-title{font-family:'Playfair Display',serif;font-size:18px;font-weight:700;color:var(--accent);letter-spacing:.03em}
.nav-sub{font-family:'DM Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase}
.nav-right{display:flex;align-items:center;gap:10px}
.nav-gps{display:flex;align-items:center;gap:6px;font-family:'DM Mono',monospace;font-size:11px;color:var(--muted)}
.gps-dot{width:8px;height:8px;border-radius:50%;background:var(--locked);transition:background .4s}
.gps-dot.active{background:var(--green);box-shadow:0 0 6px var(--green);animation:pulse 2s infinite}
.gps-dot.searching{background:var(--accent);animation:pulse 1s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
.reset-btn{background:none;border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:11px;font-family:'DM Mono',monospace;padding:4px 8px;cursor:pointer;white-space:nowrap;transition:border-color .2s,color .2s}
.reset-btn:hover{border-color:var(--red);color:var(--red)}
.tabs{position:fixed;bottom:0;left:0;right:0;z-index:100;background:rgba(10,14,26,.95);backdrop-filter:blur(12px);border-top:1px solid var(--border);display:grid;grid-template-columns:repeat(5,1fr);padding-bottom:env(safe-area-inset-bottom)}
.tab{display:flex;flex-direction:column;align-items:center;gap:3px;padding:10px 4px 8px;cursor:pointer;border:none;background:none;color:var(--muted);font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:.04em;transition:color .2s}
.tab.active{color:var(--accent)}
.tab svg{width:22px;height:22px}
.badge{position:absolute;top:6px;right:calc(50% - 18px);background:var(--red);color:#fff;font-size:9px;font-weight:700;width:16px;height:16px;border-radius:50%;display:flex;align-items:center;justify-content:center}
.screen{display:none;padding:72px 0 80px;min-height:calc(var(--vh,1vh)*100)}
.screen.active{display:block}
.map-wrap{margin:0 16px 8px;border-radius:12px;overflow:hidden;border:1px solid var(--border);position:relative;height:340px;background:var(--bg3)}
#mapPlaceholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-family:'DM Mono',monospace;font-size:12px}
#mapPlaceholder .map-icon{font-size:36px;opacity:.4}
#leafletMap{width:100%;height:100%;display:none}
.leaflet-tile{filter:brightness(.65) saturate(.5) hue-rotate(200deg)}
.leaflet-control-zoom a{background:var(--bg2)!important;color:var(--text)!important;border-color:var(--border)!important;font-family:'DM Mono',monospace!important}
.leaflet-control-zoom a:hover{background:var(--bg3)!important}
.intro:not(.hidden) .leaflet-control-container,.intro:not(.hidden) .leaflet-control-zoom{display:none!important}
.leaflet-control-attribution{display:none}
.leaflet-popup-content-wrapper{background:var(--bg2);color:var(--text);border:1px solid var(--border);border-radius:10px;box-shadow:0 4px 20px rgba(0,0,0,.5);font-family:'DM Sans',sans-serif;font-size:13px}
.leaflet-popup-tip{background:var(--bg2)}
.leaflet-popup-close-button{color:var(--muted)!important;top:6px!important;right:8px!important}
.nearby-bar{display:none;margin:0 16px 8px;padding:9px 14px;background:rgba(76,175,125,.1);border:1px solid rgba(76,175,125,.3);border-radius:8px;font-size:12px;color:var(--green);font-family:'DM Mono',monospace}
.loc-status{margin:0 16px 12px;padding:10px 14px;background:var(--bg2);border:1px solid var(--border);border-radius:10px;display:flex;align-items:center;gap:10px}
.loc-coords{font-family:'DM Mono',monospace;font-size:12px;color:var(--muted);line-height:1.6}
.loc-coords span{color:var(--accent2)}
.section-label{padding:16px 16px 8px;font-family:'DM Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}
.ort-card{margin:0 16px 10px;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg2);cursor:pointer;transition:border-color .2s,transform .1s}
.ort-card:active{transform:scale(.98)}
.ort-card.nearby{border-color:var(--green);background:#0d1f16}
.ort-card.visited{border-color:var(--accent);opacity:.7}
.ort-card.locked{opacity:.45;cursor:default}
.ort-card-inner{padding:14px 16px;display:flex;align-items:center;gap:12px}
.ort-nr{width:36px;height:36px;border-radius:8px;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:'DM Mono',monospace;font-size:13px;font-weight:500;background:var(--bg3);color:var(--accent);border:1px solid var(--border)}
.ort-card.nearby .ort-nr{background:#1a3326;color:var(--green);border-color:var(--green)}
.ort-card.locked .ort-nr{color:var(--locked);border-color:var(--locked)}
.ort-info{flex:1;min-width:0}
.ort-name{font-size:14px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ort-role{font-size:11px;color:var(--muted);margin-top:2px;font-family:'DM Mono',monospace;text-transform:uppercase;letter-spacing:.06em}
.ort-dist{font-family:'DM Mono',monospace;font-size:11px;color:var(--muted);white-space:nowrap}
.ort-dist.close{color:var(--green)}
.card{background:var(--bg2);border:1px solid var(--border);border-radius:12px;margin:0 16px 12px;overflow:hidden}
.card-header{padding:14px 16px 10px}
.card-body{padding:0 16px 14px}
.card-title{font-family:'Playfair Display',serif;font-size:16px;font-weight:700}
.card-sub{font-size:11px;color:var(--muted);margin-top:2px;font-family:'DM Mono',monospace;letter-spacing:.06em;text-transform:uppercase}
.hinweis-card{margin:0 16px 10px;border-radius:12px;overflow:hidden;border:1px solid var(--border);background:var(--bg2)}
.hinweis-header{padding:12px 14px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--border)}
.hinweis-nr{font-family:'DM Mono',monospace;font-size:11px;font-weight:500;color:var(--accent);letter-spacing:.08em;background:rgba(200,169,110,.1);border:1px solid rgba(200,169,110,.25);padding:2px 8px;border-radius:4px;white-space:nowrap}
.hinweis-title{font-size:13px;font-weight:500}
.hinweis-body{padding:12px 14px;font-size:13px;color:var(--muted);line-height:1.6}
.hinweis-ort{font-family:'DM Mono',monospace;font-size:10px;color:var(--accent2);padding:0 14px 10px;text-transform:uppercase;letter-spacing:.08em}
.npc-select{margin:0 16px 12px;display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}
.npc-btn{background:var(--bg2);border:1px solid var(--border);border-radius:10px;padding:10px 6px;text-align:center;cursor:pointer;transition:border-color .2s;position:relative}
.npc-btn.active{border-color:var(--accent);background:rgba(200,169,110,.08)}
.npc-btn.nearby-person{border-color:var(--green)!important;background:rgba(76,175,125,.08)!important}
.npc-avatar{font-size:24px}
.npc-name{font-size:11px;color:var(--muted);margin-top:4px}
.npc-btn.active .npc-name{color:var(--accent)}
.npc-btn.nearby-person .npc-name{color:var(--green)}
.npc-tag{font-family:'DM Mono',monospace;font-size:9px;padding:2px 5px;border-radius:3px;margin-top:4px;letter-spacing:.04em}
.npc-tag.verd{background:rgba(200,169,110,.12);color:var(--accent);border:1px solid rgba(200,169,110,.3)}
.npc-tag.zeuge{background:rgba(74,158,255,.1);color:var(--accent2);border:1px solid rgba(74,158,255,.3)}
.npc-nearby-dot{position:absolute;top:5px;right:5px;width:7px;height:7px;border-radius:50%;background:var(--green)}
.chat-window{margin:0 16px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;height:300px}
.chat-header{padding:10px 14px;border-bottom:1px solid var(--border)}
.chat-npc-name{font-family:'Playfair Display',serif;font-size:14px}
.chat-npc-role{font-size:11px;color:var(--muted);font-family:'DM Mono',monospace}
.chat-messages{flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;scroll-behavior:smooth}
.msg{max-width:82%}
.msg.user{align-self:flex-end}
.msg.npc{align-self:flex-start}
.msg-bubble{padding:9px 12px;border-radius:12px;font-size:13px;line-height:1.5}
.msg.user .msg-bubble{background:rgba(74,158,255,.15);border:1px solid rgba(74,158,255,.3);color:var(--text);border-bottom-right-radius:3px}
.msg.npc .msg-bubble{background:var(--bg3);border:1px solid var(--border);color:var(--text);border-bottom-left-radius:3px;font-style:italic}
.chat-lock-bar{display:none;align-items:center;gap:6px;padding:8px 14px;background:rgba(224,92,92,.08);border-top:1px solid rgba(224,92,92,.2);font-size:12px;color:var(--red);font-family:'DM Mono',monospace}
.chat-input-row{padding:10px 12px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:flex-end}
.chat-input{flex:1;background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:13px;resize:none;outline:none;max-height:80px;line-height:1.4}
.chat-input::placeholder{color:var(--muted)}
.chat-send{width:36px;height:36px;border-radius:8px;flex-shrink:0;background:var(--accent);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--bg);transition:opacity .2s}
.chat-send:disabled{opacity:.4;cursor:default}
.typing{display:flex;align-items:center;gap:4px;padding:2px 0}
.typing span{width:6px;height:6px;background:var(--muted);border-radius:50%;animation:typing 1.2s infinite}
.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}
@keyframes typing{0%,60%,100%{transform:translateY(0)}30%{transform:translateY(-5px)}}
.verdaechtiger{margin:0 16px 10px;background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:14px;display:flex;align-items:flex-start;gap:12px}
.verd-avatar{font-size:30px}
.verd-name{font-family:'Playfair Display',serif;font-size:15px;font-weight:700}
.verd-role{font-size:12px;color:var(--muted);margin-top:2px}
.verd-status{margin-left:auto;font-family:'DM Mono',monospace;font-size:10px;padding:3px 8px;border-radius:4px;white-space:nowrap}
.verd-status.unbekannt{background:rgba(138,143,168,.12);color:var(--muted);border:1px solid var(--border)}
.verd-status.verdaechtig{background:rgba(200,169,110,.12);color:var(--accent);border:1px solid rgba(200,169,110,.3)}
.verd-status.entlastet{background:rgba(76,175,125,.12);color:var(--green);border:1px solid rgba(76,175,125,.3)}
.anklage-btn{margin:16px 16px 8px;width:calc(100% - 32px);padding:14px;border-radius:12px;background:linear-gradient(135deg,#c8a96e,#a88448);border:none;cursor:pointer;font-family:'Playfair Display',serif;font-size:16px;color:var(--bg);font-weight:700;transition:opacity .2s}
.anklage-btn:active{opacity:.85}
.modal-overlay{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.7);backdrop-filter:blur(4px);display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .25s}
.modal-overlay.open{opacity:1;pointer-events:all}
.modal{background:var(--bg2);border:1px solid var(--border);border-radius:20px 20px 0 0;width:100%;max-height:85vh;overflow-y:auto;transform:translateY(40px);transition:transform .3s cubic-bezier(.34,1.56,.64,1);padding-bottom:env(safe-area-inset-bottom)}
.modal-overlay.open .modal{transform:translateY(0)}
.modal-handle{width:36px;height:4px;background:var(--border);border-radius:2px;margin:12px auto 16px}
.modal-title{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;padding:0 20px 4px}
.modal-role{font-family:'DM Mono',monospace;font-size:11px;color:var(--muted);padding:0 20px 14px;text-transform:uppercase;letter-spacing:.1em}
.modal-desc{padding:0 20px 16px;color:var(--muted);font-size:14px;line-height:1.65}
.modal-coords{margin:0 20px 14px;padding:10px 14px;background:var(--bg3);border-radius:8px;border:1px solid var(--border);font-family:'DM Mono',monospace;font-size:12px;color:var(--accent2);display:flex;align-items:center;gap:8px}
.modal-links{padding:0 20px;display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.map-link{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px;border-radius:10px;text-decoration:none;font-size:14px;font-weight:500;transition:opacity .2s}
.map-link:active{opacity:.8}
.map-link.google{background:rgba(74,158,255,.12);border:1px solid rgba(74,158,255,.3);color:var(--accent2)}
.map-link.apple{background:rgba(200,169,110,.1);border:1px solid rgba(200,169,110,.25);color:var(--accent)}
.toast{position:fixed;top:70px;left:50%;transform:translateX(-50%) translateY(-10px);z-index:1000;background:var(--bg2);border:1px solid var(--green);border-radius:20px;padding:10px 18px;font-size:13px;color:var(--green);white-space:nowrap;opacity:0;transition:opacity .3s,transform .3s;pointer-events:none}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.error{border-color:var(--red);color:var(--red)}
.intro{position:fixed;inset:0;z-index:500;background:var(--bg);display:flex;flex-direction:column;align-items:center;text-align:center;padding:72px 32px 100px;overflow-y:auto;-webkit-overflow-scrolling:touch;transition:opacity .5s}
.intro.hidden{opacity:0;pointer-events:none}
.intro-logo{font-family:'Playfair Display',serif;font-size:42px;font-weight:700;color:var(--accent);margin-bottom:8px}
.intro-sub{font-family:'DM Mono',monospace;font-size:12px;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin-bottom:40px}
.intro-case{background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:20px;width:100%;max-width:340px;margin-bottom:28px;text-align:left}
.intro-case-nr{font-family:'DM Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:6px}
.intro-case-title{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;margin-bottom:8px}
.intro-case-desc{font-size:13px;color:var(--muted);line-height:1.6}
.intro-btn{background:var(--accent);color:var(--bg);border:none;border-radius:12px;padding:14px 36px;font-family:'Playfair Display',serif;font-size:17px;font-weight:700;cursor:pointer}
.empty-state{text-align:center;padding:48px 24px;color:var(--muted);font-size:14px;line-height:1.7}
.empty-icon{font-size:40px;margin-bottom:12px;opacity:.4}
.api-setup{margin:0 16px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:16px}
.api-setup h3{font-family:'Playfair Display',serif;font-size:16px;margin-bottom:6px}
.api-setup p{font-size:12px;color:var(--muted);margin-bottom:12px;line-height:1.5}
.api-input{width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);font-family:'DM Mono',monospace;font-size:12px;outline:none;margin-bottom:8px}
.api-save{width:100%;padding:10px;border-radius:8px;background:rgba(200,169,110,.15);border:1px solid rgba(200,169,110,.3);color:var(--accent);font-size:13px;font-weight:500;cursor:pointer}
.save-indicator{font-family:'DM Mono',monospace;font-size:10px;color:var(--green);opacity:0;transition:opacity .4s}
.save-indicator.show{opacity:1}
.case-card{background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:18px;width:100%;max-width:380px;margin-bottom:10px;text-align:left;cursor:pointer;transition:border-color .2s,transform .1s}
.case-card:active{transform:scale(.98)}
.case-card:hover{border-color:var(--accent)}
.case-card.has-save{border-color:rgba(200,169,110,.4)}
.case-card-nr{font-family:'DM Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:4px}
.case-card-title{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;margin-bottom:4px}
.case-card-ort{font-size:12px;color:var(--muted);margin-bottom:10px}
.case-card-desc{font-size:13px;color:var(--muted);line-height:1.55;margin-bottom:12px}
.case-card-meta{display:flex;gap:8px;flex-wrap:wrap}
.case-meta-pill{font-family:'DM Mono',monospace;font-size:10px;padding:3px 8px;border-radius:4px;background:var(--bg3);border:1px solid var(--border);color:var(--muted)}
.case-save-badge{font-family:'DM Mono',monospace;font-size:10px;padding:3px 8px;border-radius:4px;background:rgba(200,169,110,.12);border:1px solid rgba(200,169,110,.3);color:var(--accent)}
/* FEAT-04: Detektiv-Profil */
.profil-modal-overlay{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.75);backdrop-filter:blur(4px);display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .25s}
.profil-modal-overlay.open{opacity:1;pointer-events:all}
.profil-modal{background:var(--bg2);border:1px solid var(--border);border-radius:20px 20px 0 0;width:100%;max-height:90vh;overflow-y:auto;transform:translateY(40px);transition:transform .3s cubic-bezier(.34,1.56,.64,1);padding-bottom:env(safe-area-inset-bottom)}
.profil-modal-overlay.open .profil-modal{transform:translateY(0)}
.profil-avatar-row{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.profil-avatar-btn{width:44px;height:44px;border-radius:10px;background:var(--bg3);border:2px solid var(--border);font-size:22px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s}
.profil-avatar-btn.selected{border-color:var(--accent);background:rgba(200,169,110,.1)}
/* Version Badge */
.version-badge{font-family:'DM Mono',monospace;font-size:9px;color:var(--muted);letter-spacing:.06em;opacity:.6;padding:2px 5px;border:1px solid var(--border);border-radius:3px;cursor:pointer;transition:opacity .2s}
.version-badge:hover{opacity:1}
/* Solved badge in case list */
.case-solved-badge{font-family:'DM Mono',monospace;font-size:10px;padding:3px 8px;border-radius:4px;background:rgba(76,175,125,.12);border:1px solid rgba(76,175,125,.3);color:var(--green)}

.mp-btn{display:flex;align-items:center;gap:6px;background:none;border:1px solid var(--border);border-radius:6px;color:var(--muted);font-size:11px;font-family:'DM Mono',monospace;padding:4px 8px;cursor:pointer;transition:border-color .2s,color .2s;white-space:nowrap}
.mp-btn:hover,.mp-btn.active{border-color:var(--accent2);color:var(--accent2);background:rgba(74,158,255,.08)}
.mp-modal-overlay{position:fixed;inset:0;z-index:250;background:rgba(0,0,0,.75);backdrop-filter:blur(4px);display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .25s}
.mp-modal-overlay.open{opacity:1;pointer-events:all}
.mp-modal{background:var(--bg2);border:1px solid var(--border);border-radius:20px 20px 0 0;width:100%;max-height:90vh;overflow-y:auto;transform:translateY(40px);transition:transform .3s cubic-bezier(.34,1.56,.64,1);padding-bottom:env(safe-area-inset-bottom)}
.mp-modal-overlay.open .mp-modal{transform:translateY(0)}
.mp-section{margin:0 16px 14px;background:var(--bg3);border:1px solid var(--border);border-radius:12px;padding:16px}
.mp-section h4{font-family:'DM Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-bottom:12px}
.mp-input{width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);font-family:'DM Mono',monospace;font-size:14px;outline:none;margin-bottom:8px;letter-spacing:.1em;text-transform:uppercase}
.mp-input::placeholder{text-transform:none;letter-spacing:0;font-size:12px}
.mp-name-input{width:100%;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px;outline:none;margin-bottom:8px}
.mp-primary-btn{width:100%;padding:11px;border-radius:8px;background:rgba(74,158,255,.15);border:1px solid rgba(74,158,255,.35);color:var(--accent2);font-size:13px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;transition:opacity .2s}
.mp-primary-btn:active{opacity:.8}
.mp-secondary-btn{width:100%;padding:10px;border-radius:8px;background:rgba(200,169,110,.1);border:1px solid rgba(200,169,110,.25);color:var(--accent);font-size:13px;font-weight:500;cursor:pointer;font-family:'DM Sans',sans-serif;margin-top:8px;transition:opacity .2s}
.mp-secondary-btn:active{opacity:.8}
.mp-code-display{text-align:center;padding:16px;background:var(--bg2);border:1px solid rgba(74,158,255,.3);border-radius:10px;margin-bottom:12px}
.mp-code-big{font-family:'DM Mono',monospace;font-size:32px;font-weight:700;color:var(--accent2);letter-spacing:.2em}
.mp-code-hint{font-family:'DM Mono',monospace;font-size:10px;color:var(--muted);margin-top:4px;text-transform:uppercase;letter-spacing:.1em}
.mp-player-list{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}
.mp-player-item{display:flex;align-items:center;gap:8px;padding:8px 12px;background:var(--bg2);border:1px solid var(--border);border-radius:8px;font-size:13px}
.mp-player-dot{width:8px;height:8px;border-radius:50%;background:var(--green);flex-shrink:0;animation:pulse 2s infinite}
.mp-player-dot.self{background:var(--accent2)}
.mp-player-name{flex:1;font-weight:500}
.mp-player-dist{font-family:'DM Mono',monospace;font-size:10px;color:var(--muted)}
.mp-status-bar{display:none;margin:0 16px 8px;padding:8px 12px;background:rgba(74,158,255,.06);border:1px solid rgba(74,158,255,.2);border-radius:8px;align-items:center;gap:8px;font-size:12px;color:var(--accent2);font-family:'DM Mono',monospace;cursor:pointer}
.mp-status-bar.visible{display:flex}
.mp-leave-btn{margin-left:auto;font-size:10px;color:var(--muted);background:none;border:none;cursor:pointer;font-family:'DM Mono',monospace;padding:2px 6px;border:1px solid var(--border);border-radius:4px}
.mp-leave-btn:hover{color:var(--red);border-color:var(--red)}
.mp-error{font-family:'DM Mono',monospace;font-size:11px;color:var(--red);margin-top:4px;min-height:16px}
.mp-success{font-family:'DM Mono',monospace;font-size:11px;color:var(--green);margin-top:4px;min-height:16px}
/* ── ANKLAGE MODAL (BUG-03 fix) ── */
.anklage-modal-overlay{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.75);backdrop-filter:blur(4px);display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .25s}
.anklage-modal-overlay.open{opacity:1;pointer-events:all}
.anklage-modal{background:var(--bg2);border:1px solid var(--border);border-radius:20px 20px 0 0;width:100%;max-height:85vh;overflow-y:auto;transform:translateY(40px);transition:transform .3s cubic-bezier(.34,1.56,.64,1);padding:0 0 env(safe-area-inset-bottom)}
.anklage-modal-overlay.open .anklage-modal{transform:translateY(0)}
.anklage-modal-handle{width:36px;height:4px;background:var(--border);border-radius:2px;margin:12px auto 16px}
.anklage-modal-title{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;padding:0 20px 4px}
.anklage-modal-sub{font-family:'DM Mono',monospace;font-size:11px;color:var(--muted);padding:0 20px 16px;text-transform:uppercase;letter-spacing:.1em}
.anklage-result-overlay{position:fixed;inset:0;z-index:400;background:rgba(0,0,0,.8);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;padding:24px}
.anklage-result-overlay.open{opacity:1;pointer-events:all}
.anklage-result-card{background:var(--bg2);border:1px solid var(--border);border-radius:20px;padding:28px 24px;text-align:center;max-width:340px;width:100%;transform:scale(.92);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.anklage-result-overlay.open .anklage-result-card{transform:scale(1)}
.anklage-result-icon{font-size:48px;margin-bottom:14px}
.anklage-result-title{font-family:'Playfair Display',serif;font-size:22px;font-weight:700;margin-bottom:8px}
.anklage-result-body{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:20px}
.anklage-kandidat-btn{width:100%;text-align:left;padding:12px 14px;border-radius:10px;background:var(--bg3);border:1px solid var(--border);color:var(--text);font-family:'DM Sans',sans-serif;font-size:14px;cursor:pointer;margin-bottom:8px;transition:border-color .2s,background .2s;display:flex;align-items:center;gap:10px}
.anklage-kandidat-btn:hover{border-color:var(--accent);background:rgba(200,169,110,.06)}
.anklage-kandidat-tag{font-family:'DM Mono',monospace;font-size:10px;padding:2px 6px;border-radius:3px;white-space:nowrap;margin-left:auto}
.anklage-kandidat-tag.verd{background:rgba(200,169,110,.12);color:var(--accent);border:1px solid rgba(200,169,110,.3)}
.anklage-kandidat-tag.zeuge{background:rgba(74,158,255,.1);color:var(--accent2);border:1px solid rgba(74,158,255,.3)}
.anklage-confirm-panel{display:none;padding:0 16px 16px}
.anklage-confirm-person{display:flex;align-items:center;gap:12px;padding:14px;background:rgba(200,169,110,.07);border:1px solid rgba(200,169,110,.25);border-radius:10px;margin-bottom:12px}
.anklage-confirm-text{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:14px;font-family:'DM Sans',sans-serif}
.anklage-confirm-btns{display:flex;gap:8px}
.anklage-confirm-yes{flex:1;padding:13px;border-radius:10px;background:rgba(200,169,110,.15);border:1px solid rgba(200,169,110,.4);color:var(--accent);font-size:14px;cursor:pointer;font-family:'DM Sans',sans-serif;font-weight:500}
.anklage-confirm-no{flex:1;padding:13px;border-radius:10px;background:none;border:1px solid var(--border);color:var(--muted);font-size:14px;cursor:pointer;font-family:'DM Sans',sans-serif}
/* FEAT-01: Spielgewonnen-Screen */
.sg-overlay{position:fixed;inset:0;z-index:500;background:rgba(0,0,0,.92);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .4s;overflow-y:auto}
.sg-overlay.open{opacity:1;pointer-events:all}
.sg-card{background:var(--bg2);border:1px solid var(--accent);border-radius:20px;padding:0;max-width:360px;width:100%;overflow:hidden;transform:scale(.9) translateY(20px);transition:transform .4s cubic-bezier(.34,1.56,.64,1)}
.sg-overlay.open .sg-card{transform:scale(1) translateY(0)}
.sg-header{background:linear-gradient(135deg,rgba(200,169,110,.18),rgba(200,169,110,.04));padding:28px 24px 20px;text-align:center;border-bottom:1px solid rgba(200,169,110,.2)}
.sg-trophy{font-size:52px;margin-bottom:10px;animation:sgBounce .6s .3s both}
@keyframes sgBounce{0%{transform:scale(0)}80%{transform:scale(1.1)}100%{transform:scale(1)}}
.sg-title{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;color:var(--accent);margin-bottom:4px}
.sg-subtitle{font-family:'DM Mono',monospace;font-size:11px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}
.sg-body{padding:20px 24px}
.sg-taeter-card{display:flex;align-items:center;gap:14px;padding:14px;background:rgba(200,169,110,.07);border:1px solid rgba(200,169,110,.2);border-radius:12px;margin-bottom:16px}
.sg-taeter-avatar{font-size:32px}
.sg-taeter-label{font-family:'DM Mono',monospace;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin-bottom:2px}
.sg-taeter-name{font-family:'Playfair Display',serif;font-size:17px;font-weight:700}
.sg-taeter-rolle{font-size:12px;color:var(--muted);font-family:'DM Mono',monospace}
.sg-meta{display:flex;gap:8px;margin-bottom:16px}
.sg-meta-pill{flex:1;text-align:center;padding:8px 4px;background:var(--bg3);border:1px solid var(--border);border-radius:8px;font-family:'DM Mono',monospace;font-size:11px;color:var(--muted)}
.sg-meta-pill span{display:block;font-size:15px;color:var(--text);font-weight:500;margin-bottom:1px}
.sg-aufl-toggle{width:100%;background:none;border:1px solid var(--border);border-radius:8px;color:var(--muted);font-family:'DM Mono',monospace;font-size:11px;padding:9px 12px;cursor:pointer;text-align:left;display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;transition:border-color .2s}
.sg-aufl-toggle:hover{border-color:var(--accent);color:var(--accent)}
.sg-aufl-body{font-size:13px;color:var(--muted);line-height:1.65;padding:12px;background:var(--bg3);border:1px solid var(--border);border-radius:8px;margin-bottom:12px;display:none}
.sg-aufl-body.open{display:block}
.sg-actions{display:flex;flex-direction:column;gap:8px}
.sg-btn-primary{width:100%;padding:14px;border-radius:10px;background:rgba(200,169,110,.15);border:1px solid rgba(200,169,110,.4);color:var(--accent);font-size:15px;cursor:pointer;font-family:'Playfair Display',serif;font-weight:700;transition:background .2s}
.sg-btn-primary:hover{background:rgba(200,169,110,.25)}
.sg-btn-secondary{width:100%;padding:12px;border-radius:10px;background:none;border:1px solid var(--border);color:var(--muted);font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif}

/* ── TASK-S11-05/06: Spielgewonnen-Screen (Sprint 11) ────────────────────── */
.sg-sterne{font-size:26px;margin-top:6px;letter-spacing:.05em}
.sg-stats{display:flex;gap:8px;margin-bottom:16px}
.sg-stat-pill{flex:1;text-align:center;padding:10px 4px;background:var(--bg3);border:1px solid var(--border);border-radius:8px;font-family:'DM Mono',monospace;font-size:11px;color:var(--muted)}
.sg-stat-pill span{display:block;font-size:17px;color:var(--accent);font-weight:700;margin-bottom:2px;font-family:'DM Mono',monospace}
/* TASK-S11-07: Gelöst-Badge — .case-solved-badge bereits vorhanden, kein Duplikat */

/* ── FEAT-11: Fallbewertungs-Modal ────────────────────────────────────────── */
.bewertung-overlay{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.82);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .35s}
.bewertung-overlay.open{opacity:1;pointer-events:all}
.bewertung-card{background:var(--bg2);border:1px solid var(--border);border-radius:20px;padding:28px 24px;max-width:340px;width:100%;text-align:center;transform:scale(.92) translateY(16px);transition:transform .35s cubic-bezier(.34,1.56,.64,1)}
.bewertung-overlay.open .bewertung-card{transform:scale(1) translateY(0)}
.bewertung-stars{display:flex;justify-content:center;gap:8px;margin:18px 0 10px}
.bewertung-star{font-size:32px;cursor:pointer;opacity:.35;transition:opacity .15s,transform .15s;user-select:none;-webkit-user-select:none}
.bewertung-star.active{opacity:1;transform:scale(1.15)}
.bewertung-textarea{width:100%;background:var(--bg3);border:1px solid var(--border);border-radius:8px;padding:10px 12px;color:var(--text);font-family:'DM Sans',sans-serif;font-size:13px;resize:none;outline:none;line-height:1.5;margin:10px 0 16px;transition:border-color .2s}
.bewertung-textarea:focus{border-color:var(--accent)}
.bewertung-btns{display:flex;gap:8px}
.bewertung-submit{flex:1;padding:12px;border-radius:10px;background:rgba(200,169,110,.15);border:1px solid rgba(200,169,110,.4);color:var(--accent);font-size:14px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:opacity .2s}
.bewertung-submit:disabled{opacity:.4;cursor:default}
.bewertung-skip{flex:1;padding:12px;border-radius:10px;background:none;border:1px solid var(--border);color:var(--muted);font-size:14px;cursor:pointer;font-family:'DM Sans',sans-serif}

/* ── FEAT-12: Offline-Modus / Download-Badge ──────────────────────────────── */
.case-download-badge{font-family:'DM Mono',monospace;font-size:10px;padding:3px 8px;border-radius:4px;background:rgba(76,175,125,.12);border:1px solid rgba(76,175,125,.3);color:var(--green);cursor:pointer}
.case-download-badge.downloaded{background:rgba(74,158,255,.12);border-color:rgba(74,158,255,.3);color:var(--accent2)}
/* TAT-213b: offline-progress-wrap entfernt — Download-Feedback via Toast */

/* ── FEAT-13: Foto-Beweise ──────────────────────────────────────────────────── */
.foto-galerie-section{margin:0 16px 12px}
.foto-galerie-label{font-family:'DM Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}
.foto-galerie-ort{margin-bottom:14px}
.foto-galerie-ort-name{font-family:'DM Mono',monospace;font-size:10px;color:var(--accent2);text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px}
.foto-galerie-scroll{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:4px}
.foto-galerie-scroll::-webkit-scrollbar{height:3px}
.foto-galerie-scroll::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}
.foto-thumb{width:80px;height:80px;border-radius:8px;object-fit:cover;flex-shrink:0;scroll-snap-align:start;cursor:pointer;border:2px solid var(--border);transition:border-color .2s}
.foto-thumb:hover{border-color:var(--accent)}
.foto-fullscreen-overlay{position:fixed;inset:0;z-index:700;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;opacity:0;pointer-events:none;transition:opacity .25s}
.foto-fullscreen-overlay.open{opacity:1;pointer-events:all}
.foto-fullscreen-img{max-width:100%;max-height:calc(100vh - 120px);border-radius:10px;object-fit:contain}
.foto-fullscreen-btns{display:flex;gap:10px}
.foto-del-btn{padding:8px 18px;border-radius:8px;background:rgba(224,92,92,.15);border:1px solid rgba(224,92,92,.4);color:var(--red);font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif}
.foto-close-btn{padding:8px 18px;border-radius:8px;background:var(--bg2);border:1px solid var(--border);color:var(--muted);font-size:13px;cursor:pointer;font-family:'DM Sans',sans-serif}
.kamera-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;background:rgba(200,169,110,.12);border:1px solid rgba(200,169,110,.3);color:var(--accent);font-size:12px;cursor:pointer;font-family:'DM Mono',monospace;transition:opacity .2s;margin-top:8px}
.kamera-btn:active{opacity:.75}

/* ── FEAT-23 (US-A05): Fall vollständig zurücksetzen über Profil-Modal ──────── */
.reset-confirm-overlay{position:fixed;inset:0;z-index:600;background:rgba(0,0,0,.8);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .3s}
.reset-confirm-overlay.open{opacity:1;pointer-events:all}
.reset-confirm-card{background:var(--bg2);border:1px solid var(--border);border-radius:20px;padding:28px 24px;text-align:center;max-width:340px;width:100%;transform:scale(.92);transition:transform .3s cubic-bezier(.34,1.56,.64,1)}
.reset-confirm-overlay.open .reset-confirm-card{transform:scale(1)}
.reset-confirm-icon{font-size:44px;margin-bottom:14px}
.reset-confirm-title{font-family:'Playfair Display',serif;font-size:20px;font-weight:700;margin-bottom:8px}
.reset-confirm-body{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:22px}
.reset-confirm-actions{display:flex;flex-direction:column;gap:8px}
.reset-confirm-yes{width:100%;padding:13px;border-radius:10px;background:rgba(224,92,92,.15);border:1px solid rgba(224,92,92,.45);color:var(--red);font-size:14px;font-weight:600;cursor:pointer;font-family:'DM Sans',sans-serif;transition:background .2s}
.reset-confirm-yes:hover{background:rgba(224,92,92,.25)}
.reset-confirm-no{width:100%;padding:12px;border-radius:10px;background:none;border:1px solid var(--border);color:var(--muted);font-size:14px;cursor:pointer;font-family:'DM Sans',sans-serif}

/* ── TASK-S12-11..14: Fallauswahl UX v2 ───────────────────────────────────────── */
.case-search-bar{width:100%;max-width:380px;margin-bottom:10px;display:flex;gap:8px;align-items:center}
.case-search-input{flex:1;background:var(--bg2);border:1px solid var(--border);border-radius:8px;padding:9px 12px;color:var(--text);font-family:'DM Mono',monospace;font-size:13px;outline:none;transition:border-color .2s}
.case-search-input:focus{border-color:var(--accent2)}
.case-search-input::placeholder{color:var(--muted)}
.case-filter-row{width:100%;max-width:380px;display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.case-filter-chip{font-family:'DM Mono',monospace;font-size:10px;padding:4px 10px;border-radius:20px;border:1px solid var(--border);background:var(--bg2);color:var(--muted);cursor:pointer;transition:all .15s;white-space:nowrap}
.case-filter-chip.active{background:rgba(200,169,110,.15);border-color:var(--accent);color:var(--accent)}
.case-card-compact{background:var(--bg2);border:1px solid var(--border);border-radius:12px;width:100%;max-width:380px;margin-bottom:8px;overflow:hidden;transition:border-color .2s}
.case-card-compact:hover{border-color:rgba(200,169,110,.4)}
.case-card-compact.has-save{border-color:rgba(200,169,110,.35)}
.case-card-compact.expanded{border-color:var(--accent)}
.case-card-compact-header{padding:12px 16px;display:flex;align-items:center;gap:10px;cursor:pointer}
.case-card-compact-nr{font-family:'DM Mono',monospace;font-size:10px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap}
.case-card-compact-title{font-family:'Playfair Display',serif;font-size:15px;font-weight:700;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.case-card-compact-arrow{font-size:12px;color:var(--muted);transition:transform .2s;flex-shrink:0}
.case-card-compact.expanded .case-card-compact-arrow{transform:rotate(180deg)}
.case-card-compact-body{padding:0 16px 14px;border-top:1px solid var(--border);display:none}
.case-card-compact.expanded .case-card-compact-body{display:block}
.case-card-compact-ort{font-size:12px;color:var(--muted);margin:10px 0 6px}
.case-card-compact-meta{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.case-sort-label{font-family:'DM Mono',monospace;font-size:10px;color:var(--muted);text-align:center;margin-bottom:6px;letter-spacing:.06em}
/* FEAT-S19: Detektiv-Pinnwand */
#pinnwand-container{display:flex;flex-direction:column;height:calc(var(--vh,1vh)*100 - 152px);overflow:hidden;position:relative}
#pinnwand-toolbar{display:flex;gap:8px;padding:10px 16px;background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0;z-index:10}
#pinnwand-toolbar button{padding:8px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg2);color:var(--muted);font-size:13px;cursor:pointer;transition:background .2s,color .2s}
#pinnwand-toolbar button.active{background:rgba(200,169,110,.15);color:var(--accent);border-color:rgba(200,169,110,.3)}
#btn-overview{margin-left:auto;font-family:'DM Mono',monospace;font-size:10px}
#pinnwand-scroll{flex:1;overflow:auto;position:relative}
#pinnwand-board{width:1800px;height:1400px;position:relative;background-color:#c8a96e;background-image:radial-gradient(ellipse at 20% 30%,rgba(180,130,60,.4) 0%,transparent 50%),radial-gradient(ellipse at 80% 70%,rgba(160,110,40,.3) 0%,transparent 40%),repeating-linear-gradient(45deg,rgba(0,0,0,.03) 0px,rgba(0,0,0,.03) 1px,transparent 1px,transparent 8px)}
.pinnwand-karte{position:absolute;border-radius:8px;box-shadow:2px 4px 12px rgba(0,0,0,.4);cursor:grab;user-select:none;min-width:140px;max-width:200px}
.pinnwand-karte:active{cursor:grabbing}
.karte-hinweis{background:#fff;color:#1a1a2e;padding:0;overflow:hidden}
.karte-person{background:#1e2235;color:#e0d4b8;padding:12px;text-align:center}
.karte-notiz{background:#f5e642;color:#2a2000;padding:10px;min-width:140px;max-width:180px;position:relative}
.karte-label{font-family:'DM Mono',monospace;font-size:9px;letter-spacing:.08em;padding:5px 10px;text-transform:uppercase}
.typ-beobachtung{background:rgba(76,175,125,.15);color:#4caf7d}
.typ-zeugenaussage{background:rgba(200,169,110,.15);color:var(--accent)}
.karte-titel{padding:8px 10px 10px;font-size:12px;font-weight:600;line-height:1.4}.karte-body{padding:6px 10px 10px;font-size:11px;line-height:1.45;color:#444;border-top:1px solid rgba(0,0,0,.1);max-height:120px;overflow-y:auto;word-break:break-word}
.karte-avatar{font-size:28px;margin-bottom:6px}
.karte-name{font-size:13px;font-weight:600;margin-bottom:2px}
.karte-rolle{font-family:'DM Mono',monospace;font-size:9px;color:rgba(224,212,184,.6);letter-spacing:.06em}
.notiz-text{width:100%;min-height:80px;background:transparent;border:none;resize:none;font-family:'DM Sans',sans-serif;font-size:13px;color:#2a2000;outline:none;line-height:1.5;box-sizing:border-box}
.notiz-loeschen{position:absolute;top:4px;right:6px;background:none;border:none;font-size:14px;cursor:pointer;color:rgba(42,32,0,.5);padding:2px}
.notiz-handle{height:18px;margin:-10px -10px 4px;border-radius:8px 8px 0 0;background:rgba(0,0,0,.12);cursor:grab;touch-action:none}
.notiz-handle:active{cursor:grabbing}
.karte-ring{outline:3px solid #cc0000;outline-offset:2px}
.pinnwand-leer{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:var(--muted)}
.pinnwand-leer-icon{font-size:48px;opacity:.4}

/* Accordion — Sprint 24 */
.editor-accordion { display:flex;flex-direction:column;gap:8px;padding:8px 12px; }
.acc-strip { background:#111827;border:1px solid #2a3450;border-radius:10px;overflow:hidden; }
.acc-strip.open { border-color:#555; }
.acc-header { height:52px;display:flex;align-items:center;padding:0 14px;gap:12px;cursor:pointer;user-select:none; }
.acc-icon { width:32px;height:32px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0; }
.acc-label { flex:1;min-width:0; }
.acc-title { font-size:14px;font-weight:600;color:#e0e0e0; }
.acc-sub { font-size:11px;color:#888;margin-top:1px; }
.acc-right { display:flex;align-items:center;gap:8px;flex-shrink:0; }
.acc-ki-badge { background:rgba(212,168,67,0.14);color:#d4a843;border:1px solid rgba(212,168,67,0.25);border-radius:4px;font-size:10px;font-weight:600;padding:2px 6px; }
.acc-count { background:rgba(255,255,255,.08);color:#888;border-radius:10px;font-size:11px;font-weight:600;padding:2px 7px;min-width:24px;text-align:center; }
.acc-count.done { background:rgba(39,174,96,0.2);color:#2ecc71; }
.acc-chevron { color:#555;font-size:12px;transition:transform 0.25s;display:inline-block; }
.acc-strip.open .acc-chevron { transform:rotate(180deg); }
.acc-body { display:none;border-top:1px solid #2a3450; }
.acc-strip.open .acc-body { display:block; }
/* Avatar-Picker — Sprint 24 */
.avatar-picker { display:flex;gap:8px;flex-wrap:wrap;margin-top:4px; }
.avatar-btn { width:44px;height:44px;border-radius:8px;border:2px solid #333;background:rgba(255,255,255,.06);font-size:22px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .15s; }
.avatar-btn.selected { border-color:#27ae60;background:rgba(39,174,96,0.12); }
/* Koordinaten-Badge — Sprint 24 */
.ort-warn-badge { color:#e67e22;font-size:12px;margin-left:4px;cursor:help; }
.ort-warn-hint { font-size:11px;color:#e67e22;margin-top:3px;line-height:1.4; }
