:root{--bg:#1a1d23;--card:#22262e;--ac:#4ecdc4;--glow:rgba(78,205,196,.25);--pk:#ff6b6b;--gd:#ffd93d;--rt:#ff9f43;--tx:#e8e8e8;--dm:#8a8f98;--r:12px}
*{margin:0;padding:0;box-sizing:border-box}
body{touch-action:manipulation;font-family:'DM Sans',sans-serif;background:var(--bg);color:var(--tx);height:100dvh;display:flex;flex-direction:column;overflow:hidden}
header{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;background:var(--card);border-bottom:1px solid rgba(255,255,255,.06);z-index:1000;flex-shrink:0}
.logo{display:flex;align-items:center;gap:12px}
.logo h1{font-family:'Outfit',sans-serif;font-size:22px;font-weight:700;;background:linear-gradient(135deg,var(--ac),var(--gd));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.stats{display:flex;gap:20px;align-items:center}.stat{text-align:center}
.sv{font-family:'Outfit',sans-serif;font-size:22px;font-weight:700;color:var(--ac);}
.sl{font-size:10px;color:var(--dm);text-transform:uppercase;letter-spacing:1px}
.user-area{display:flex;align-items:center;gap:12px}
.user-email{font-size:11px;font-family:'DM Sans',sans-serif;color:var(--dm);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;padding:6px 14px;border-radius:20px;border:1px solid rgba(255,255,255,.1);transition:all .15s}
.user-email:hover{color:var(--ac);border-color:var(--ac);background:rgba(78,205,196,.08)}
.btn-logout{padding:6px 14px;border-radius:20px;border:1px solid rgba(255,255,255,.1);background:0 0;color:var(--dm);font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer}
.btn-logout:hover{border-color:var(--pk);color:var(--pk)}
.btn-icon{width:32px;height:32px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:20px;border:1px solid rgba(255,255,255,.1);background:transparent;color:var(--dm);cursor:pointer;transition:all .15s;font-family:inherit}
.btn-icon:hover{border-color:var(--ac);color:var(--ac);background:rgba(78,205,196,.08)}
.btn-icon svg{width:16px;height:16px;display:block}
#addFriendM .btn{border-radius:20px}
.auth-screen{position:fixed;inset:0;background:var(--bg);z-index:5000;display:flex;align-items:center;justify-content:center}
.auth-screen.hidden{display:none}
.auth-box{background:var(--card);border-radius:20px;padding:40px;width:380px;max-width:90vw;border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 60px rgba(0,0,0,.4);text-align:center}
.auth-box h2{font-family:'Outfit',sans-serif;font-size:24px;margin-bottom:8px;background:linear-gradient(135deg,var(--ac),var(--gd));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.auth-box p{font-size:13px;color:var(--dm);margin-bottom:24px}
.auth-box input{width:100%;padding:12px 16px;border-radius:var(--r);border:1px solid rgba(255,255,255,.1);background:var(--bg);color:var(--tx);font-family:'DM Sans',sans-serif;font-size:14px;outline:0;margin-bottom:12px}
.auth-box input:focus{border-color:var(--ac)}
.auth-box .btn{width:100%;padding:12px;margin-bottom:8px}
.auth-toggle{font-size:12px;color:var(--dm);margin-top:8px}
.auth-toggle span{color:var(--ac);cursor:pointer}
.auth-toggle span:hover{text-decoration:underline}
.auth-error{color:var(--pk);font-size:12px;margin-bottom:12px;min-height:16px}
.auth-success{color:var(--ac);font-size:12px;margin-bottom:12px;min-height:16px}
.wrap{display:flex;flex:1;overflow:hidden;position:relative}
.side{width:340px;background:var(--bg);display:flex;flex-direction:column;border-right:1px solid rgba(255,255,255,.06);flex-shrink:0;z-index:900}
.tabs{display:flex;border-bottom:1px solid rgba(255,255,255,.06)}
.tab{flex:1;padding:10px;text-align:center;font-size:13px;font-weight:600;color:var(--dm);background:0 0;border:none;cursor:pointer;font-family:'DM Sans',sans-serif;border-bottom:2px solid transparent}
.tab:hover{color:var(--tx)}.tab.on{color:var(--ac);border-bottom-color:var(--ac)}
.tc{display:none;flex-direction:column;flex:1;overflow:hidden}.tc.on{display:flex}
.poi-section{padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.06)}
.poi-section:last-child{flex:1;overflow-y:auto;border-bottom:none}
.poi-section-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#888;margin-bottom:8px}
.poi-dd{position:relative}
.poi-dd-btn{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 14px;border-radius:var(--r);border:1px solid rgba(255,255,255,.1);background:var(--card);color:var(--tx);font-size:13px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;outline:0;transition:border-color .15s}
.poi-dd-btn:hover,.poi-dd.open .poi-dd-btn{border-color:var(--ac)}
.poi-dd-caret{color:var(--dm);font-size:11px;transition:transform .2s}
.poi-dd.open .poi-dd-caret{transform:rotate(180deg)}
.poi-dd-menu{display:none;position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:1000;background:var(--card);border:1px solid rgba(255,255,255,.12);border-radius:var(--r);box-shadow:0 4px 16px rgba(0,0,0,.4);padding:6px;flex-direction:column;gap:2px}
.poi-dd.open .poi-dd-menu{display:flex}
.poi-dd-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:8px;cursor:pointer;font-size:12px;font-weight:600;color:var(--tx);user-select:none}
.poi-dd-item:hover{background:rgba(78,205,196,.08)}
.poi-dd-item input[type=checkbox]{accent-color:var(--ac);width:14px;height:14px;cursor:pointer;margin:0}
.poi-add-row{display:flex;flex-direction:column;gap:6px}
.poi-add{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border-radius:var(--r);border:1px solid rgba(255,255,255,.1);background:var(--card);color:var(--tx);font-size:12px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;text-align:left;transition:all .15s}
.poi-add:hover{border-color:var(--ac)}
.poi-add.on{border-color:var(--ac);background:rgba(78,205,196,.15)}
.poi-add-plus{margin-left:auto;color:var(--ac);font-size:16px;font-weight:700;line-height:1}
.poi-icon{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:700;flex-shrink:0}
.poi-list-del{background:none;border:none;color:var(--dm);cursor:pointer;padding:4px;margin-left:4px;display:flex;align-items:center;border-radius:6px;flex-shrink:0}
.poi-list-del:hover{color:#ff6b6b;background:rgba(255,107,107,.1)}
.poi-icon-hut{background:#8b4513;color:#fff}
.poi-icon-parking{background:#2563eb;color:#fff}
.poi-icon-sight{background:#d4a017;color:#fff}
.poi-add-hint{font-size:11px;color:var(--ac);margin-top:8px;text-align:center;font-style:italic}
.poi-list{display:flex;flex-direction:column;gap:4px}
.sb{padding:12px 16px}.sw{position:relative}
.si{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--dm);font-size:14px}
.sin{width:100%;padding:9px 14px 9px 36px;border-radius:var(--r);border:1px solid rgba(255,255,255,.08);background:var(--card);color:var(--tx);font-size:13px;font-family:'DM Sans',sans-serif;outline:0}
.sin:focus{border-color:var(--ac)}
.fts{display:flex;gap:6px;padding:0 16px 10px}
.ft{padding:5px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.1);background:0 0;color:var(--dm);font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer;outline:0}
.ft:hover{border-color:var(--ac);color:var(--tx)}
.region-select{width:100%;padding:6px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.1);background:var(--card);color:var(--tx);font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer;outline:0;appearance:auto}
.region-select:focus{border-color:var(--ac)}
.star-btn{width:28px;height:28px;border-radius:50%;border:none;background:0 0;color:var(--dm);font-size:16px;cursor:pointer;outline:0;flex-shrink:0;line-height:1}
.star-btn:hover{color:var(--gd)}
.star-btn.on{color:var(--gd)}
#layerWrap{position:relative}
#layerBtn{width:36px;height:36px;border-radius:var(--r);background:var(--card);display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;box-shadow:0 2px 10px rgba(0,0,0,.25)}
#layerBtn:hover{background:#2e333b}
#layerPanel{display:none;position:absolute;top:0;right:44px;z-index:1000;background:var(--card);border-radius:var(--r);box-shadow:0 2px 10px rgba(0,0,0,.4);padding:8px 0;border:1px solid rgba(255,255,255,.08);min-width:200px}
#layerPanel.v{display:block}
.lp-row{display:flex;align-items:center;padding:7px 12px;cursor:pointer;gap:8px;color:var(--tx);font-family:'DM Sans',sans-serif;font-size:13px}
.lp-row:hover{background:rgba(255,255,255,.06)}
.lp-row.lp-active{color:var(--ac);font-weight:600}
.lp-dot{font-size:14px;flex-shrink:0}
.lp-name{flex:1}
.ft.on{background:var(--ac);color:var(--bg);border-color:var(--ac);font-weight:600}
.poi-filter-group{padding:0 16px 8px}
.poi-filter-label{font:600 10px/1 'DM Sans',sans-serif;color:var(--dm);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.poi-filter-row{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.poi-chk{display:flex;align-items:center;gap:6px;padding:7px 8px;border-radius:var(--r);border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);cursor:pointer;font-size:11px;color:var(--tx);transition:all .15s;user-select:none;min-width:0}
.poi-chk>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.poi-chk:hover{border-color:rgba(78,205,196,.3);background:rgba(78,205,196,.06)}
.poi-chk input{display:none}
.poi-chk-box{width:18px;height:18px;border-radius:5px;border:1.5px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;color:transparent}
.poi-chk input:checked~.poi-chk-box{background:var(--ac);border-color:var(--ac);color:#1a1d23}
.poi-chk-box{width:16px;height:16px}
@media (max-width:720px){.poi-filter-group{padding:0 12px 6px}.poi-chk{font-size:10px;padding:6px}}
.side.loading .pl,.side.loading .rl,.side.loading .fts,.side.loading .ra,.side.loading .gpx-drop{visibility:hidden}
.pl,.rl{flex:1;overflow-y:auto;padding:6px 8px}
.pl::-webkit-scrollbar,.rl::-webkit-scrollbar{width:4px}
.pl::-webkit-scrollbar-thumb,.rl::-webkit-scrollbar-thumb{background:rgba(255,255,255,.1);border-radius:4px}
.pc{display:flex;align-items:center;gap:10px;padding:10px;border-radius:var(--r);cursor:pointer;border:1px solid transparent}
.pc:hover{background:var(--card)}.pc.cl{border-left:3px solid var(--ac)}
.pmi{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}
.pmi.nc{background:rgba(255,107,107,.15)}.pmi.ic{background:rgba(78,205,196,.15)}
.pi{flex:1;min-width:0}
.pn{font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pd{font-size:11px;color:var(--dm);margin-top:1px}
.pe{font-family:'Outfit',sans-serif;font-weight:700;font-size:13px;color:var(--dm);flex-shrink:0}
.pc.cl .pe{color:var(--ac)}
.ra{padding:12px 16px}
.btn{padding:9px 16px;border-radius:var(--r);border:none;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;width:100%}
.bp{background:var(--ac);color:var(--bg)}.bp:hover{box-shadow:0 0 20px var(--glow)}
.bp.ad{background:var(--rt);animation:pd 1.5s ease infinite}
.bs{background:0 0;color:var(--dm);border:1px solid rgba(255,255,255,.1)}
@keyframes pd{0%,100%{box-shadow:0 0 0 0 rgba(255,159,67,.4)}50%{box-shadow:0 0 0 8px rgba(255,159,67,0)}}
.rc{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:var(--r);cursor:pointer}
.rc:hover{background:var(--card)}
.rcd{width:12px;height:12px;border-radius:50%;flex-shrink:0}
.rcb{background:0 0;border:none;color:var(--dm);cursor:pointer;font-size:14px;padding:4px;border-radius:6px}
.rcb:hover{color:var(--pk)}
#map{flex:1;z-index:1;background:#d4e6c3}
#map3dContainer{flex:1;z-index:1;background:#0b1220;display:none;position:relative}
.is-3d #map{display:none}
.is-3d #map3dContainer{display:block}
body.draw-mode #map3dContainer canvas,body.draw-mode .leaflet-container{cursor:crosshair!important}
.maplibregl-popup-content{background:#fff;color:#1a1d23;border-radius:var(--r);box-shadow:0 3px 14px rgba(0,0,0,.3);padding:12px 14px;font-family:'DM Sans',sans-serif;max-width:400px}
.maplibregl-popup-close-button{color:#666;font-size:20px;padding:2px 8px;right:2px;top:2px}
.maplibregl-popup-close-button:hover{background:rgba(0,0,0,.08);border-radius:6px}
.maplibregl-popup-tip{border-top-color:#fff}
.maplibregl-ctrl-attrib{display:none !important}
.maplibregl-ctrl-group{display:none !important}
#mapControls{position:absolute;top:10px;right:10px;z-index:1001;display:flex;flex-direction:column}
.mob-toggle{display:none}
.mc{display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:700;font-family:'DM Sans',sans-serif;cursor:pointer}
.mb{background:rgba(255,107,107,.9);border:2px solid #ff6b6b;color:#fff;width:20px;height:20px;font-size:9px;box-shadow:0 1px 4px rgba(0,0,0,.3)}
.mp{background:rgba(255,159,67,.95);border:2px solid #ff9f43;color:#fff;width:23px;height:23px;font-size:11px;box-shadow:0 0 10px rgba(255,159,67,.35)}
.mcl{background:rgba(78,205,196,.95);border:2px solid #4ecdc4;color:#1a1d23;width:26px;height:26px;font-size:12px;box-shadow:0 0 12px rgba(78,205,196,.3)}
.mcl.mcp{border-color:#ff9f43;box-shadow:0 0 10px rgba(255,159,67,.55),0 0 0 1px rgba(255,159,67,.4)}
.pp{text-align:center;width:248px}
.pp h3{font-family:'Outfit',sans-serif;font-size:16px;margin-bottom:3px;color:#1a1d23}
.pp .el{font-size:13px;color:#666;margin-bottom:3px}
.pp .rg{font-size:11px;color:#999;margin-bottom:8px}
.pp .dt{font-size:12px;color:#4ecdc4;margin-bottom:6px;font-weight:600}
.tb{padding:7px 18px;border-radius:20px;border:none;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;cursor:pointer}
.tbc{background:#4ecdc4;color:#1a1d23}.tbu{background:#ff6b6b;color:#fff}
.tbh{background:transparent;border:1px solid #4ecdc4;color:#4ecdc4}
.pp-btn-row{display:flex;gap:6px;margin-top:6px;justify-content:center}
.pp-btn-row .tb{flex:1;padding:7px 10px}
.pp-actions{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.pp-actions .tb{width:100%;height:30px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:6px;margin:0;box-sizing:border-box;line-height:1}
.hist-list{display:flex;flex-direction:column;gap:10px}
.hist-item{background:var(--bg);border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:12px 14px}
.hist-item-peak{font-size:13px;color:var(--tx);margin-bottom:8px;padding-bottom:6px;border-bottom:1px dashed rgba(255,255,255,.08)}
.hist-item-peak:hover{color:var(--ac)}
#tdTimeline{display:flex;flex-direction:column;gap:10px}
#tdMissing .td-missing-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;background:var(--bg);border:1px dashed rgba(255,255,255,.1);border-radius:10px;margin-bottom:6px}
#tdMissing .td-missing-row .td-missing-name{flex:1;min-width:0;font-size:13px;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#tdMissing .td-missing-row .td-missing-clickable{cursor:pointer;transition:color .15s}
#tdMissing .td-missing-row .td-missing-clickable:hover{color:var(--ac)}
#tdMissing .td-missing-row button{flex:0 0 auto;width:auto;padding:6px 12px;font-size:12px;background:var(--ac);color:#1a1a1a;border:none;border-radius:6px;cursor:pointer;font-weight:600;font-family:inherit;white-space:nowrap}
#tdMissing .td-missing-row button:hover{filter:brightness(1.1)}
.td-poi-list{display:flex;flex-direction:column;gap:6px}
.td-poi-row{display:flex;align-items:center;gap:10px;padding:8px 10px;background:var(--bg);border:1px solid rgba(255,255,255,.06);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s}
.td-poi-row:hover{border-color:var(--ac);background:rgba(78,205,196,.05)}
.td-poi-row.td-poi-missing{cursor:default}
.td-poi-dot{width:10px;height:10px;border-radius:50%;flex:0 0 10px}
.td-poi-name{flex:1;min-width:0;font-size:13px;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-poi-cat{font-size:11px;color:var(--dm);flex-shrink:0}
.tour-row{display:flex;align-items:flex-start;gap:6px}
.tour-row-edit,.tour-row-focus{flex:0 0 auto;width:28px;height:28px;display:flex;align-items:center;justify-content:center;border-radius:6px;cursor:pointer;padding:0;margin-top:2px;font-family:inherit;background:transparent;color:var(--dm);border:1px solid rgba(255,255,255,.1)}
.tour-row-edit:hover,.tour-row-focus:hover{color:var(--ac);border-color:var(--ac);background:rgba(78,205,196,.06)}
#tdNotesWrap .td-notes-label{font-size:11px;color:var(--dm);margin-bottom:4px;text-transform:uppercase;letter-spacing:.5px}
#tdNotesWrap textarea{width:100%;box-sizing:border-box;padding:8px 10px;background:var(--bg);border:1px solid rgba(255,255,255,.08);border-radius:8px;color:var(--tx);font-family:inherit;font-size:12px;resize:vertical;min-height:56px;outline:0}
#tdNotesWrap textarea:focus{border-color:var(--ac)}
#tdNotesWrap .td-notes-save{margin-top:6px;padding:5px 12px;font-size:11px;background:var(--ac);color:#1a1a1a;border:none;border-radius:6px;cursor:pointer;font-weight:600}
.hist-item-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.hist-item-date{font-family:'Outfit',sans-serif;font-size:14px;font-weight:600;color:var(--ac)}
.hist-item-latest{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:var(--gd);background:rgba(255,217,61,.1);padding:2px 8px;border-radius:10px;margin-left:6px}
.hist-item-del{background:none;border:none;color:var(--dm);cursor:pointer;font-size:16px;padding:4px 8px;border-radius:6px}
.hist-item-del:hover{color:var(--pk);background:rgba(255,107,107,.08)}
.hist-item-edit{background:none;border:none;color:var(--dm);cursor:pointer;padding:4px 6px;border-radius:6px;display:inline-flex;align-items:center}
.hist-item-edit:hover{color:var(--ac);background:rgba(78,205,196,.08)}
.hist-edit-form{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.hist-edit-form input[type=date]{padding:6px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:var(--bg);color:var(--tx);font-family:inherit;font-size:12px;outline:0}
.hist-edit-form input[type=date]:focus{border-color:var(--ac)}
.hist-edit-form .notes-editor{min-height:60px;font-size:12px}
.hist-edit-btns{display:flex;gap:6px}
.hist-edit-btns button{flex:1;padding:6px 10px;font-size:12px}
.hist-edit-section{margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.06)}
.hist-edit-row{display:flex;align-items:center;gap:6px;margin-top:4px}
.hist-edit-row .x{background:none;border:none;color:var(--dm);cursor:pointer;font-size:14px;padding:2px 6px;border-radius:4px}
.hist-edit-row .x:hover{color:var(--pk);background:rgba(255,107,107,.08)}
.hist-photo-thumb{position:relative;display:inline-block}
.hist-photo-thumb .x{position:absolute;top:-4px;right:-4px;background:rgba(0,0,0,.7);color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}
.hist-photo-thumb .x:hover{background:var(--pk)}
.hist-add-photo{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border:1px dashed rgba(255,255,255,.2);border-radius:6px;cursor:pointer;color:var(--dm);font-size:24px;background:transparent}
.hist-add-photo:hover{border-color:var(--ac);color:var(--ac)}
.hist-item-notes{font-size:12px;color:var(--tx);line-height:1.5;margin-top:4px;word-wrap:break-word;overflow-wrap:break-word}
.hist-item-notes ul,.hist-item-notes ol{padding-left:20px;margin:2px 0}
.hist-item-notes li{margin:1px 0}
.hist-item-empty{font-size:11px;color:var(--dm);font-style:italic}
.hist-section{margin-top:8px}
.hist-section-label{font-size:9px;text-transform:uppercase;letter-spacing:1px;color:var(--dm);margin-bottom:4px;font-weight:600}
.hist-photo-row{display:flex;gap:4px;flex-wrap:wrap}
.hist-photo-row img{width:56px;height:56px;object-fit:cover;border-radius:6px;cursor:pointer;border:1px solid rgba(255,255,255,.08)}
.hist-route{font-size:12px;font-weight:600;margin-top:2px;cursor:pointer}
.hist-route:hover{text-decoration:underline}
.hist-route-meta{font-size:10px;color:var(--dm)}
.dti{margin-top:8px}
.dti input{width:100%;min-width:0;height:30px;padding:0 12px;border-radius:20px;border:1.5px solid #4ecdc4;background:#fff;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;color:#1a1d23;text-align:center;cursor:pointer;box-sizing:border-box;line-height:1;transition:border-color .15s,box-shadow .15s;-webkit-appearance:none;appearance:none}
.dti input::-webkit-calendar-picker-indicator{cursor:pointer;filter:invert(58%) sepia(85%) saturate(380%) hue-rotate(130deg) brightness(92%) contrast(88%)}
/* Datum-Modal (Bestiegen! / Tour-Zeitraum) */
.dm-overlay{position:fixed;inset:0;background:rgba(0,0,0,.65);z-index:4200;display:none;align-items:center;justify-content:center;backdrop-filter:blur(3px)}
.dm-overlay.v{display:flex}
.dm-modal{background:var(--card);border-radius:16px;padding:22px 22px 18px;width:340px;max-width:92vw;box-shadow:0 20px 60px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.08);position:relative}
.dm-modal h3{font-family:'Outfit',sans-serif;font-size:17px;margin-bottom:4px;color:var(--tx)}
.dm-sub{font-size:12px;color:var(--dm);margin-bottom:14px}
/* Date-Display oben im Modal */
.dm-display{width:100%;height:44px;padding:0 14px;border-radius:10px;border:1.5px solid rgba(255,255,255,.12);background:rgba(255,255,255,.04);font-family:'DM Sans',sans-serif;font-size:16px;font-weight:700;color:var(--tx);box-sizing:border-box;display:flex;align-items:center;justify-content:center;letter-spacing:.5px}
/* Kalender */
.dm-cal{margin-top:10px;padding:10px 4px 4px;border-radius:10px;background:rgba(0,0,0,.2);border:1px solid rgba(255,255,255,.05)}
.dm-cal-head{display:flex;align-items:center;justify-content:space-between;padding:0 8px 8px}
.dm-cal-title{font-family:'DM Sans',sans-serif;font-size:13px;font-weight:700;color:var(--tx);background:none;border:none;cursor:pointer;padding:4px 8px;border-radius:6px}
.dm-cal-title:hover{background:rgba(255,255,255,.06)}
.dm-cal-nav{display:flex;gap:4px}
.dm-cal-nav button{width:28px;height:28px;border-radius:6px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);color:var(--tx);cursor:pointer;font-size:14px;display:flex;align-items:center;justify-content:center;padding:0;transition:background .1s}
.dm-cal-nav button:hover{background:rgba(255,255,255,.12)}
.dm-cal-dows{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:0 4px 4px}
.dm-cal-dow{text-align:center;font-size:10px;font-weight:700;color:var(--dm);text-transform:uppercase;letter-spacing:.5px;padding:4px 0}
.dm-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:0 4px 4px}
.dm-cal-day{aspect-ratio:1;border:none;background:none;color:var(--tx);font-family:'DM Sans',sans-serif;font-size:13px;font-weight:500;cursor:pointer;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:background .1s,color .1s;padding:0}
.dm-cal-day:hover:not(.dm-cal-sel){background:rgba(255,255,255,.08)}
.dm-cal-day.dm-cal-oth{color:rgba(255,255,255,.18)}
.dm-cal-day.dm-cal-we{color:#ff9f43}
.dm-cal-day.dm-cal-we.dm-cal-oth{color:rgba(255,159,67,.25)}
.dm-cal-day.dm-cal-today{box-shadow:inset 0 0 0 1.5px var(--ac);font-weight:700}
.dm-cal-day.dm-cal-sel{background:var(--ac);color:#1a1d23;font-weight:700}
.dm-cal-day.dm-cal-sel.dm-cal-orange{background:#ff9f43;color:#1a1d23}
.dm-cal-day.dm-cal-range{background:rgba(255,159,67,.18);color:var(--tx);border-radius:0}
.dm-cal-day.dm-cal-range.dm-cal-we{color:#ff9f43}
.dm-cal-day.dm-cal-range.dm-cal-range-start{background:#ff9f43;color:#1a1d23;border-radius:6px 0 0 6px;font-weight:700}
.dm-cal-day.dm-cal-range.dm-cal-range-end{background:#ff9f43;color:#1a1d23;border-radius:0 6px 6px 0;font-weight:700}
.dm-cal-day.dm-cal-range.dm-cal-range-start.dm-cal-range-end{border-radius:6px}
.dm-cal-foot{display:flex;justify-content:flex-end;padding:4px 6px 2px}
.dm-cal-foot button{background:none;border:none;color:var(--ac);font-size:12px;font-weight:700;cursor:pointer;padding:4px 8px;font-family:'DM Sans',sans-serif}
.dm-cal-foot button:hover{color:#fff}
.dm-cal-foot button.dm-cal-orange{color:#ff9f43}
.dm-btns{display:flex;gap:8px;margin-top:16px}
.dm-btn{flex:1;height:38px;border-radius:10px;border:none;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:700;cursor:pointer;transition:filter .15s,transform .05s;letter-spacing:.3px}
.dm-btn:active{transform:translateY(1px)}
.dm-btn.dm-cancel{background:rgba(255,255,255,.06);color:var(--dm);border:1px solid rgba(255,255,255,.08)}
.dm-btn.dm-cancel:hover{background:rgba(255,255,255,.1);color:var(--tx)}
.dm-btn.dm-ok{color:#1a1d23}
.dm-btn.dm-ok:hover{filter:brightness(1.08)}
.dm-close{position:absolute;top:10px;right:12px;background:none;border:none;color:var(--dm);font-size:20px;cursor:pointer;padding:4px;line-height:1}
.dm-close:hover{color:var(--tx)}
/* Touren-Liste */
.tour-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--bg);border:1px solid rgba(255,255,255,.06);border-left:3px solid #ff9f43;border-radius:8px;cursor:pointer;transition:background .12s}
.tour-row:hover{background:rgba(255,255,255,.04)}
.tour-row.tour-done{border-left-color:#555;opacity:.78}
.tour-row .tr-info{flex:1;min-width:0}
.tour-row .tr-name{font-weight:700;font-size:13px;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tour-row .tr-meta{font-size:11px;color:var(--dm);margin-top:2px}
.tour-row .tr-items{font-size:11px;color:var(--tx);margin-top:5px;display:flex;gap:6px;align-items:flex-start;line-height:1.35}
.tour-row .tr-items .tr-items-ic{width:11px;height:11px;color:var(--ac);flex-shrink:0;margin-top:2px}
.tour-row .tr-items span{flex:1;min-width:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tour-row .tr-notes{font-size:12px;color:#c8ccd2;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.05);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line}
.tour-section-head{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--dm);font-weight:700;padding:10px 4px 4px;cursor:pointer;display:flex;align-items:center;gap:6px}
.tour-section-head .tsh-caret{transition:transform .12s}
.tour-section-head.collapsed .tsh-caret{transform:rotate(-90deg)}
.tour-form{display:flex;flex-direction:column;gap:16px}
.tour-form .ml{font-size:10px;text-transform:uppercase;letter-spacing:1.2px;color:var(--dm);font-weight:700;margin:0 0 6px 2px;display:flex;align-items:center;gap:6px}
.tour-form .ml-count{background:rgba(255,255,255,.08);color:var(--dm);font-size:10px;font-weight:700;padding:1px 7px;border-radius:10px;letter-spacing:0}
.tour-form .tf-input{width:100%;padding:11px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:var(--bg);color:var(--tx);font-family:'DM Sans',sans-serif;font-size:14px;outline:0;box-sizing:border-box;transition:border-color .15s}
.tour-form .tf-input:focus{border-color:var(--ac)}
.tour-form .tf-notes{resize:vertical;min-height:64px;line-height:1.4;font-family:inherit}
.tour-form .tf-date{display:flex;align-items:center;gap:10px;width:100%;padding:12px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.08);background:var(--bg);color:var(--tx);cursor:pointer;text-align:left;transition:all .15s;font-family:'DM Sans',sans-serif}
.tour-form .tf-date:hover{border-color:var(--ac);background:rgba(78,205,196,.04)}
.tour-form .tf-date-icon{width:16px;height:16px;color:var(--ac);flex-shrink:0}
.tour-form .tf-date-val{flex:1;font-weight:600;font-size:14px}
.tour-form .tf-date-hint{font-size:11px;color:var(--dm)}
.tour-form .tf-list{display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.12) transparent}
.tour-form .tf-list::-webkit-scrollbar{width:4px}
.tour-form .tf-list::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:2px}
.tour-form .tf-empty{padding:14px;text-align:center;font-size:12px;color:var(--dm);font-style:italic;background:rgba(255,255,255,.02);border-radius:8px;border:1px dashed rgba(255,255,255,.08)}
.tour-form .tf-add{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:6px;padding:10px;border-radius:8px;border:1px dashed rgba(78,205,196,.35);background:transparent;color:var(--ac);font-size:12px;font-weight:600;font-family:'DM Sans',sans-serif;cursor:pointer;transition:all .15s}
.tour-form .tf-add:hover{border-color:var(--ac);background:rgba(78,205,196,.08)}
.tour-form .tf-footer{display:flex;gap:6px;margin-top:8px;padding-top:14px;border-top:1px solid rgba(255,255,255,.06);flex-wrap:wrap}
.tour-form .tf-footer .btn{width:auto;padding:9px 14px;white-space:nowrap}
.tour-form .tf-footer .tf-spacer{flex:1}
.tour-form .tf-del{background:transparent;color:var(--pk);border:1px solid rgba(255,107,107,.35)}
.tour-form .tf-del:hover{background:rgba(255,107,107,.08);border-color:var(--pk)}
.tour-form .tf-done{background:transparent;color:var(--ac);border:1px solid rgba(78,205,196,.35);display:inline-flex;align-items:center;gap:6px}
.tour-form .tf-done:hover{background:rgba(78,205,196,.08);border-color:var(--ac)}
.tour-form .tf-done svg{width:14px;height:14px}
.tour-list-item{display:flex;align-items:center;gap:10px;padding:9px 12px;background:var(--bg);border:1px solid rgba(255,255,255,.06);border-radius:8px;font-size:13px;transition:all .12s}
.tour-list-item:hover{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.02)}
.tour-list-item.tli-clickable{cursor:pointer}
.tour-list-item.tli-clickable:hover{border-color:rgba(78,205,196,.35)}
.tour-list-item .tli-icon{width:22px;height:22px;border-radius:50%;background:rgba(255,255,255,.04);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ac)}
.tour-list-item .tli-icon svg{width:12px;height:12px}
.tour-list-item .tli-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}
.tour-list-item .tli-name{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.tour-list-item .tli-meta{font-size:11px;color:var(--dm);font-weight:400;margin-left:6px}
.tour-list-item .tli-rm{background:none;border:none;color:var(--dm);cursor:pointer;font-size:18px;line-height:1;padding:2px 6px;border-radius:6px;flex-shrink:0;transition:all .12s}
.tour-list-item .tli-rm:hover{color:var(--pk);background:rgba(255,107,107,.08)}
/* Tour-Block im Peak-Popup */
.tour-block{margin:6px 0;padding:8px;border:1px solid #ff9f43;border-radius:6px;background:rgba(255,159,67,.08);text-align:left}
.tour-block-row{cursor:pointer;padding:2px 0}
.tour-block-row:hover{background:rgba(255,159,67,.06);border-radius:4px}
.leaflet-popup-content-wrapper{border-radius:12px!important;box-shadow:0 8px 30px rgba(0,0,0,.2)!important}
.leaflet-popup-content{max-height:calc(100vh - 120px);overflow-y:auto;overscroll-behavior:contain}
.leaflet-popup-content::-webkit-scrollbar{width:6px}
.leaflet-popup-content::-webkit-scrollbar-thumb{background:rgba(0,0,0,.2);border-radius:3px}
.ov{position:absolute;top:16px;left:50%;transform:translateX(-50%);background:var(--card);color:var(--tx);padding:10px 24px;border-radius:24px;font-size:13px;font-weight:500;z-index:2000;box-shadow:0 4px 20px rgba(0,0,0,.3);display:none;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.08);pointer-events:none}
.ov.v{display:flex}
.sp{width:16px;height:16px;border:2px solid rgba(255,255,255,.1);border-top-color:var(--ac);border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.dh{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);background:var(--rt);color:var(--bg);padding:10px 24px;border-radius:24px;font-size:13px;font-weight:600;z-index:2000;box-shadow:0 4px 20px rgba(255,159,67,.3);display:none;align-items:center;gap:8px}
.dh.v{display:flex}
.es{padding:30px 20px;text-align:center;color:var(--dm);font-size:13px;line-height:1.6}
.mo{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:3000;display:none;align-items:center;justify-content:center}
.mo.v{display:flex}
.md{background:var(--card);border-radius:16px;padding:24px;width:340px;max-width:90vw;max-height:85vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.08)}
.md h3{font-family:'Outfit',sans-serif;font-size:18px;margin-bottom:16px}
.md input{width:100%;padding:10px 14px;border-radius:var(--r);border:1px solid rgba(255,255,255,.1);background:var(--bg);color:var(--tx);font-family:'DM Sans',sans-serif;font-size:14px;outline:0;margin-bottom:10px}
.md input:focus{border-color:var(--ac)}
.ml{font-size:12px;color:var(--dm);margin-bottom:4px;display:block}
.mbs{display:flex;gap:8px;margin-top:16px}.mbs .btn{flex:1}
.amenity-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.amenity-chip{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--r);border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);cursor:pointer;font-size:12px;color:var(--tx);transition:all .15s}
.amenity-chip:hover{border-color:rgba(78,205,196,.3);background:rgba(78,205,196,.06)}
.amenity-chip input{display:none}
.amenity-check{width:20px;height:20px;border-radius:6px;border:1.5px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s;color:transparent}
.amenity-chip input:checked~.amenity-check{background:var(--ac);border-color:var(--ac);color:#1a1d23}
.cpr{display:flex;gap:8px;margin-bottom:10px}
.cs{width:28px;height:28px;border-radius:50%;border:2px solid transparent;cursor:pointer}
.cs:hover{transform:scale(1.15)}.cs.sel{border-color:#fff;box-shadow:0 0 8px rgba(255,255,255,.3)}
.ctx-menu{position:absolute;z-index:2000;background:var(--card);border:1px solid rgba(255,255,255,.1);border-radius:var(--r);padding:4px 0;box-shadow:0 8px 30px rgba(0,0,0,.4);min-width:180px;display:none}
.ctx-menu.v{display:block}
.ctx-item{padding:8px 16px;font-size:13px;font-family:'DM Sans',sans-serif;color:var(--tx);cursor:pointer;display:flex;align-items:center;gap:8px}
.ctx-item:hover{background:rgba(255,255,255,.06)}
.home-marker{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:rgba(255,215,61,.9);border:2px solid var(--gd);color:#1a1d23;font-size:16px;box-shadow:0 0 12px rgba(255,215,61,.4)}
/* Leaflet Controls einheitlich stylen */
.leaflet-control-zoom,.leaflet-control-layers,.leaflet-bar{border-radius:var(--r)!important;border:none!important;overflow:hidden;box-shadow:0 2px 10px rgba(0,0,0,.25)!important;margin-bottom:8px!important}
.leaflet-bar a,#zoomLevel{width:36px!important;height:36px!important;line-height:36px!important;font-size:16px!important;background:var(--card)!important;color:var(--tx)!important;border:none!important;border-bottom:1px solid rgba(255,255,255,.06)!important;display:flex!important;align-items:center!important;justify-content:center!important}
.leaflet-bar a:last-child{border-bottom:none!important}
.leaflet-bar a:hover,#zoomLevel:hover{background:#2e333b!important;color:var(--ac)!important}

/* Mobile Bottom Nav */
.mob-nav{display:none}
.mob-backdrop{display:none}

@media(max-width:768px){
  /* Header kompakt */
  header{padding:6px 12px;padding-top:calc(6px + env(safe-area-inset-top))}
  .logo h1{font-size:15px}
  .logo i,.logo svg{width:18px!important;height:18px!important}
  .stats{gap:6px}
  .sv{font-size:13px}
  .sl{font-size:7px;letter-spacing:0.5px}
  .user-email{display:none}
  .btn-logout{padding:4px 10px;font-size:10px}

  /* Layout: Karte füllt alles, Sidebar wird Overlay-Panel */
  .wrap{flex-direction:column;position:relative}
  #map{flex:1;min-height:0}

  /* Desktop-Sidebar verstecken, wird zum Slide-Up-Panel */
  .side{position:fixed;bottom:calc(56px + env(safe-area-inset-bottom));left:0;right:0;width:100%;height:45vh;max-height:45vh;background:rgba(26,29,35,.95);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-right:none;border-top:1px solid rgba(255,255,255,.1);border-radius:16px 16px 0 0;z-index:2500;transform:translateY(100%);transition:transform .3s ease;box-shadow:0 -4px 30px rgba(0,0,0,.5);overflow:hidden}
  .side.mob-open{transform:translateY(0)}
  .side .tabs{display:none}
  .mob-toggle{display:none!important}

  /* Grab-Handle oben am Panel */
  .side::before{content:'';display:block;width:36px;height:4px;background:rgba(255,255,255,.2);border-radius:4px;margin:10px auto 6px}

  /* Content im Panel scrollbar */
  .tc.on{overflow-y:auto;flex:1;padding-bottom:16px}
  .pl,.rl{max-height:none;overflow-y:visible}

  /* Filter/Suche kompakter */
  .sb{padding:8px 12px}
  .sin{font-size:12px;padding:8px 12px 8px 32px}
  .fts{padding:0 12px 8px;gap:4px;flex-wrap:wrap}
  .ft{font-size:10px;padding:4px 10px}
  .region-select{font-size:10px}

  /* Bottom Navigation Bar */
  .mob-nav{display:flex!important;position:fixed;bottom:0;padding-bottom:env(safe-area-inset-bottom);left:0;right:0;height:56px;background:var(--card);border-top:1px solid rgba(255,255,255,.08);z-index:2600;padding:0;justify-content:space-around;align-items:stretch;-webkit-tap-highlight-color:transparent}
  .mob-nav-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;background:none;border:none;color:var(--dm);font-size:9px;font-family:'DM Sans',sans-serif;font-weight:500;gap:2px;cursor:pointer;padding:4px 0;-webkit-tap-highlight-color:transparent;position:relative}
  .mob-nav-btn.on{color:var(--ac)}
  .mob-nav-btn.on::after{content:'';position:absolute;top:0;left:25%;right:25%;height:2px;background:var(--ac);border-radius:0 0 2px 2px}

  /* Backdrop wenn Panel offen */
  .mob-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.15);z-index:2400;display:none}
  .mob-backdrop.v{display:block}

  /* Map Controls kleiner & nicht mit Nav überlappen */
  .leaflet-bar a,#zoomLevel{width:32px!important;height:32px!important;line-height:32px!important;font-size:14px!important}
  #layerBtn{width:32px;height:32px}
  .leaflet-right .leaflet-control{margin-right:8px!important}
  .leaflet-bottom{bottom:60px!important}

  /* Location Search auf Mobile */
  .loc-search{width:calc(100vw - 60px)!important;right:50px!important;top:8px!important}

  /* Overlays anpassen */
  .dh{bottom:calc(68px + env(safe-area-inset-bottom));font-size:10px;padding:6px 12px;max-width:92vw;white-space:normal;text-align:center;line-height:1.4}
  .ov{top:8px;font-size:11px;padding:8px 14px}

  /* Modals */
  .ph-modal{max-height:calc(75vh - 56px);padding:16px;width:95vw}
  .ph-back-btn{width:95vw}
  .md{padding:16px;width:95vw}
  .mo .md{max-height:80vh;overflow-y:auto}
  .ph-lightbox img{max-height:80vh}

  /* Popups besser auf Touch */
  .leaflet-popup-content-wrapper{max-width:85vw!important}
  .pp{min-width:auto}
  .tb{padding:8px 16px;font-size:13px}
  .ctx-menu{max-width:90vw}

  /* Foto-Thumbs: delete immer sichtbar auf Touch */
  .ph-thumb-del{opacity:1!important;width:26px;height:26px;font-size:15px}

  /* Marker-Größen werden nicht angepasst — pixelRatio regelt die Darstellung */
}

/* Photo Modal */
.ph-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);z-index:4000;display:none;align-items:center;justify-content:center}
.ph-overlay.v{display:flex}
.ph-modal{background:var(--card);border-radius:16px;padding:24px 24px 16px;width:480px;max-width:92vw;max-height:calc(85vh - 56px);overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.08);scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
.ph-modal::-webkit-scrollbar{width:6px}
.ph-modal::-webkit-scrollbar-track{background:transparent}
.ph-modal::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:3px}
.ph-modal::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.25)}
.ph-modal h3{font-family:'Outfit',sans-serif;font-size:18px;margin-bottom:4px}
.ph-peak-info{font-size:13px;color:var(--dm);margin-bottom:16px}
.ph-section{margin-bottom:18px}
.ph-section-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--dm);margin-bottom:8px;font-weight:600}
.ph-upload-area{border:2px dashed rgba(255,255,255,.15);border-radius:var(--r);padding:24px;text-align:center;cursor:pointer;transition:border-color .2s}
.ph-upload-area:hover{border-color:var(--ac)}
.ph-upload-area input{display:none}
.ph-upload-icon{font-size:28px;margin-bottom:6px}
.ph-upload-text{font-size:13px;color:var(--dm)}
.ph-upload-text b{color:var(--tx)}
.ph-uploading{font-size:13px;color:var(--ac);padding:12px 0;text-align:center}
.ph-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}
.ph-thumb{position:relative;aspect-ratio:1;border-radius:8px;overflow:hidden;cursor:pointer}
.ph-thumb img{width:100%;height:100%;object-fit:cover}
.ph-thumb-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border-radius:50%;background:rgba(0,0,0,.7);color:#fff;border:none;font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}
.ph-thumb:hover .ph-thumb-del{opacity:1}
.ph-qr-box{text-align:center;padding:8px 0}
.ph-qr-box canvas{border-radius:8px;background:#fff;padding:8px}
.ph-qr-hint{font-size:12px;color:var(--dm);margin-top:8px}
.ph-empty{font-size:13px;color:var(--dm);text-align:center;padding:16px 0}
.ph-close{position:absolute;top:12px;right:14px;background:none;border:none;color:var(--dm);font-size:20px;cursor:pointer;padding:4px}
.ph-close:hover{color:var(--tx)}
.ph-modal-wrap{position:relative;display:flex;flex-direction:column;align-items:center;max-height:92vh}
.ph-back-btn{margin-top:8px;flex-shrink:0;width:480px;max-width:92vw;border-radius:12px;background:var(--card);border:1px solid rgba(255,255,255,.08)}
.ph-btns{display:flex;gap:8px;margin-top:16px;justify-content:flex-end}
.ph-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.92);z-index:5000;display:none;align-items:center;justify-content:center;cursor:pointer}
.ph-lightbox.v{display:flex}
.ph-lightbox img{max-width:80vw;max-height:90vh;border-radius:8px;object-fit:contain;cursor:default}
.lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:none;color:#fff;font-size:36px;width:48px;height:48px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;z-index:5001;line-height:1}
.lb-nav:hover{background:rgba(255,255,255,.25)}
.lb-prev{left:16px}
.lb-next{right:16px}
.lb-counter{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.7);font-size:13px;font-family:'DM Sans',sans-serif}
.tb.tbf{background:transparent;border:1px solid var(--ac);color:var(--ac);margin-top:4px}
.pp-actions .tb,.dti input{transition:filter .15s,box-shadow .15s,border-color .15s}
.pp-actions .tb:hover,.dti input:hover,.dti input:focus{filter:brightness(.95);box-shadow:0 0 0 3px rgba(78,205,196,.18);outline:none}
.pp-carousel-wrap{margin:6px 0}
.pp-carousel-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#999;margin-bottom:4px;font-weight:600;text-align:left}
.pp-carousel{display:flex;align-items:center;gap:4px}
.pp-carousel-imgs{display:flex;gap:4px;overflow:hidden;flex:1}
.pp-carousel-imgs img{flex:1 1 0;min-width:0;height:52px;object-fit:cover;border-radius:6px;cursor:pointer;transition:all .15s}
.pp-carousel-imgs img:hover{opacity:.8}
.pp-carousel-btn{width:22px;height:22px;border-radius:50%;border:none;background:rgba(0,0,0,.08);color:#888;font-size:14px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0;line-height:1}
.pp-carousel-btn:hover{background:rgba(0,0,0,.15);color:#555}
.pp-expand{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:8px;padding:8px 10px;border:0;background:transparent;color:#4ecdc4;font-family:'DM Sans',sans-serif;font-size:12px;font-weight:600;cursor:pointer;border-top:1px solid rgba(0,0,0,.08);border-radius:0}
.pp-expand:hover{background:rgba(78,205,196,.08)}
.pp-expand svg{transition:transform .2s}
.pp-expand.op svg{transform:rotate(180deg)}
.pp-more{display:none}
.pp-more.op{display:block}
.pp-logbook{text-align:left;margin:6px 0;padding:8px 10px;background:rgba(0,0,0,.04);border-radius:8px;font-size:12px;color:#555;line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:100px;overflow-y:auto}
.pp-logbook-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#999;margin-bottom:4px;font-weight:600;text-align:left}
.pp-wx{margin-top:6px;padding-top:6px;border-top:1px solid rgba(0,0,0,.08);text-align:left}
.pp-wx-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#999;margin-bottom:4px;font-weight:600}
.pp-wx-now{display:flex;align-items:center;gap:8px;font-size:13px;margin-bottom:6px;color:#333}
.pp-wx-icon{line-height:1;display:inline-flex;align-items:center}
.pp-wx-icon svg{width:22px;height:22px;display:block}
.pp-wx-temp{font-weight:700;color:#4ecdc4}
.pp-wx-meta{font-size:11px;color:#888}
.pp-wx-days{display:flex;gap:4px}
.pp-wx-day{flex:1;background:rgba(0,0,0,.04);border-radius:6px;padding:4px 4px;text-align:center;font-size:11px;color:#444}
.pp-wx-day-name{color:#888;font-size:10px;margin-bottom:2px}
.pp-wx-day-icon{line-height:1;display:flex;justify-content:center;align-items:center;min-height:20px;margin:2px 0}
.pp-wx-day-icon svg{width:20px;height:20px;display:block}
.pp-wx-drop{width:11px;height:11px;display:inline-block;vertical-align:-1px;margin-right:2px}
.pp-wx-day-temp{font-weight:600;margin-top:2px}
.pp-wx-loading{font-size:11px;color:#999;font-style:italic}
.pp-wx-err{font-size:11px;color:#c44}
.pp-wx-hist{margin-top:6px;padding-top:6px;border-top:1px dashed rgba(0,0,0,.08);text-align:left}
.pp-wx-hist-row{display:flex;align-items:center;gap:8px;font-size:12px;color:#333;flex-wrap:wrap}
.notes-toolbar{display:flex;gap:4px;padding:6px 8px;background:var(--bg);border:1px solid rgba(255,255,255,.12);border-bottom:none;border-radius:var(--r) var(--r) 0 0;flex-wrap:wrap;align-items:center}
.notes-toolbar button{height:30px;padding:0 10px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);color:var(--dm);cursor:pointer;border-radius:6px;font-size:12px;font-family:'DM Sans',sans-serif;display:flex;align-items:center;justify-content:center;gap:4px;transition:all .15s ease}
.notes-toolbar button:hover{background:rgba(255,255,255,.12);color:var(--tx);border-color:rgba(255,255,255,.15)}
.notes-toolbar button.tb-active{background:var(--ac);color:#1a1d23;border-color:var(--ac);font-weight:700;box-shadow:0 0 8px var(--glow)}
.notes-toolbar .tb-sep{width:1px;height:20px;background:rgba(255,255,255,.1);margin:0 2px}
.notes-editor{width:100%;min-height:100px;padding:10px 14px;border-radius:0 0 var(--r) var(--r);border:1px solid rgba(255,255,255,.1);background:var(--bg);color:var(--tx);font-family:'DM Sans',sans-serif;font-size:13px;outline:0;overflow-y:auto;line-height:1.6}
.notes-editor:focus{border-color:var(--ac)}
.notes-editor:empty:before{content:attr(data-placeholder);color:var(--dm);pointer-events:none}
.notes-editor ul,.notes-editor ol{margin:0 0 0 20px;padding:0}
.notes-editor b,.notes-editor strong{color:var(--tx)}
.notes-tpl-bar{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap;align-items:center}
.notes-tpl-btn{padding:4px 10px;border-radius:0;border:none;background:0 0;color:var(--dm);font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer}
.notes-tpl-wrap:hover .notes-tpl-btn{color:var(--tx)}
.notes-tpl-btn.active{background:var(--ac);color:var(--bg);border-color:var(--ac)}
.notes-tpl-wrap{display:inline-flex;align-items:center;border-radius:16px;border:1px solid rgba(255,255,255,.1);overflow:hidden}
.notes-tpl-wrap:hover{border-color:var(--ac)}
.notes-tpl-del{padding:4px 8px 4px 0;border:none;background:0 0;color:var(--dm);font-size:13px;cursor:pointer;line-height:1}
.app-dialog-ov{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:9999;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease}
.app-dialog-ov.v{opacity:1}
.app-dialog{background:var(--card);border-radius:16px;padding:24px;width:360px;max-width:90vw;box-shadow:0 20px 60px rgba(0,0,0,.5);border:1px solid rgba(255,255,255,.08);transform:scale(.95);transition:transform .15s ease}
.app-dialog-ov.v .app-dialog{transform:scale(1)}
.app-dialog h3{font-family:'Outfit',sans-serif;font-size:16px;margin:0 0 16px;color:var(--tx)}
.app-dialog input{width:100%;padding:10px 12px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:var(--bg);color:var(--tx);font-family:'DM Sans',sans-serif;font-size:14px;outline:0;box-sizing:border-box}
.app-dialog input:focus{border-color:var(--ac)}
.app-dialog-btns{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}
.app-dialog-btns button{padding:8px 18px;border-radius:8px;border:none;font-family:'DM Sans',sans-serif;font-size:13px;font-weight:600;cursor:pointer;transition:all .15s ease}
.app-dialog-btns .dlg-cancel{background:rgba(255,255,255,.08);color:var(--dm)}
.app-dialog-btns .dlg-cancel:hover{background:rgba(255,255,255,.15);color:var(--tx)}
.app-dialog-btns .dlg-ok{background:var(--ac);color:var(--bg)}
.app-dialog-btns .dlg-ok:hover{filter:brightness(1.1)}
.notes-tpl-del:hover{color:var(--pk)}
.pp-logbook ul,.pp-logbook ol{margin:0 0 0 16px;padding:0}
.pp-logbook b,.pp-logbook strong{color:#4ecdc4}

/* Friends */
.fr-card{display:flex;align-items:center;gap:10px;padding:10px 16px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.04)}
.fr-card:hover{background:rgba(255,255,255,.03)}
.fr-avatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;color:#fff;flex-shrink:0}
.fr-info{flex:1;min-width:0}
.fr-name{font-size:13px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-sub{font-size:11px;color:var(--dm)}
.fr-actions{display:flex;gap:6px}
.fr-btn{padding:4px 10px;border-radius:16px;border:none;font-size:11px;font-family:'DM Sans',sans-serif;cursor:pointer;font-weight:600}
.fr-btn-ok{background:var(--ac);color:var(--bg)}
.fr-btn-ok:hover{opacity:.85}
.fr-btn-no{background:transparent;border:1px solid rgba(255,255,255,.15);color:var(--dm)}
.fr-btn-no:hover{border-color:var(--pk);color:var(--pk)}
.fr-btn-rm{background:transparent;border:1px solid rgba(255,255,255,.1);color:var(--dm);padding:4px 8px}
.fr-btn-rm:hover{border-color:var(--pk);color:var(--pk)}
.fr-section{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--dm);padding:12px 16px 4px;font-weight:600}
.fr-empty{font-size:12px;color:var(--dm);padding:8px 16px}
.fr-marker{display:flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:rgba(162,155,254,.9);border:2px solid #a29bfe;color:#fff;font-size:12px;font-weight:700;box-shadow:0 0 8px rgba(162,155,254,.4)}
.fr-climbed-by{font-size:11px;margin-top:4px;padding-top:4px;border-top:1px solid rgba(255,255,255,.06)}
.fr-legend-hint{font-size:11px;color:var(--dm);padding:6px 16px;line-height:1.5;border-bottom:1px solid rgba(255,255,255,.04)}
/* Rangliste */
.rk-section{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--dm);padding:12px 16px 4px;font-weight:600}
.rk-pills{display:flex;gap:6px;padding:4px 16px 6px;flex-wrap:wrap}
.rk-pill{padding:4px 10px;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:transparent;color:var(--dm);font:600 11px 'DM Sans',sans-serif;cursor:pointer}
.rk-pill:hover{border-color:rgba(255,255,255,.25);color:var(--tx)}
.rk-pill.on{background:var(--ac);border-color:var(--ac);color:var(--bg)}
.rk-row{display:flex;align-items:center;gap:10px;padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.04)}
.rk-row.rk-me{background:rgba(78,205,196,.08);border-left:3px solid var(--ac);padding-left:13px}
.rk-pos{font:700 12px 'DM Sans',sans-serif;color:var(--dm);width:26px;text-align:center;flex-shrink:0}
.rk-row.rk-me .rk-pos{color:var(--ac)}
.rk-value{font:600 13px 'DM Sans',sans-serif;color:var(--tx);white-space:nowrap;flex-shrink:0}
.rk-empty{font-size:11px;color:var(--dm);padding:4px 16px 10px}
/* Friend Detail View */
.fd-header{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 16px;border-bottom:1px solid rgba(255,255,255,.04)}
.fd-back{background:0 0;border:none;color:var(--ac);font:600 12px 'DM Sans',sans-serif;cursor:pointer;padding:4px 6px;border-radius:6px}
.fd-back:hover{background:rgba(78,205,196,.08)}
.fd-hide-all{background:0 0;border:1px solid rgba(255,255,255,.1);color:var(--dm);font:600 11px 'DM Sans',sans-serif;cursor:pointer;padding:4px 10px;border-radius:16px}
.fd-hide-all:hover{border-color:var(--pk);color:var(--pk)}
.fd-profile{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid rgba(255,255,255,.04)}
.fd-avatar{width:48px;height:48px;font-size:18px}
.fd-name{font:600 16px 'Outfit',sans-serif;color:var(--tx)}
.fd-stats{font-size:12px;color:var(--dm);margin-top:2px}
.fd-list{display:flex;flex-direction:column}
.fd-item{display:flex;align-items:center;gap:10px;padding:9px 16px;cursor:pointer;border-bottom:1px solid rgba(255,255,255,.03);transition:background .1s}
.fd-item:hover{background:rgba(255,255,255,.03)}
.fd-item-main{flex:1;min-width:0}
.fd-item-name{font-size:13px;font-weight:500;color:var(--tx);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fd-item-sub{font-size:11px;color:var(--dm);margin-top:2px}
.fd-note{font-size:11px;color:#bbb;margin-top:4px;padding-top:4px;border-top:1px solid rgba(255,255,255,.05);white-space:pre-wrap}
.fd-toggle{flex-shrink:0;color:var(--dm);display:flex;align-items:center}
.fd-route.on{background:rgba(78,205,196,.06)}
.fd-route.on .fd-item-name{color:var(--ac)}
/* Freunde-Detail: Karten-Layout im Stil des Gipfel-Popups */
.ff-list{display:flex;flex-direction:column;gap:10px;padding:8px 12px 14px}
.ff-card{background:var(--card);border:1px solid rgba(255,255,255,.05);border-radius:var(--r);padding:12px 14px;cursor:pointer;transition:border-color .15s,background .15s}
.ff-card:hover{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.02)}
.ff-card-head{text-align:center;margin-bottom:4px}
.ff-title{font-family:'Outfit',sans-serif;font-size:16px;font-weight:600;color:var(--tx);margin:0 0 2px}
.ff-elev{font-size:13px;color:var(--dm);margin-bottom:3px}
.ff-date{font-size:12px;font-weight:600;margin-bottom:4px}
.ff-logbook-label{font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#999;margin:8px 0 4px;font-weight:600;text-align:left}
.ff-logbook{text-align:left;padding:8px 10px;background:rgba(255,255,255,.03);border-radius:8px;font-size:12px;color:var(--tx);line-height:1.5;white-space:pre-wrap;word-break:break-word}
.ff-logbook ul,.ff-logbook ol{margin:0 0 0 16px;padding:0}
.ff-photo-strip{display:flex;align-items:center;gap:4px;margin-top:8px;overflow:hidden}
.ff-photo-imgs{display:flex;flex:1;gap:4px;overflow:hidden;min-width:0}
.ff-photo-strip img{flex:1 1 0;min-width:0;height:60px;object-fit:cover;border-radius:6px;cursor:pointer;transition:opacity .15s}
.ff-photo-strip img:hover{opacity:.82}
.ff-route-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ff-route-name{font-family:'Outfit',sans-serif;font-size:15px;font-weight:600}
.ff-route-sub{font-size:11px;color:var(--dm);margin-top:3px}
.ff-route-toggle{flex-shrink:0;color:var(--dm);display:flex;align-items:center}
.ff-card.ff-route-on{background:rgba(78,205,196,.05);border-color:rgba(78,205,196,.25)}
.ff-chart{width:100%;height:56px;margin-top:6px;background:rgba(255,255,255,.02);border-radius:6px;display:block}
.ff-route-block{padding:8px 10px;margin-top:8px;border-radius:8px;background:rgba(255,255,255,.02);border:1px solid transparent;transition:background .15s,border-color .15s;cursor:pointer}
.ff-route-block:hover{background:rgba(255,255,255,.05)}
.ff-route-block.ff-route-static{cursor:inherit}
.ff-route-block.ff-route-static:hover{background:rgba(255,255,255,.02)}
.ff-route-block.ff-route-on{background:rgba(78,205,196,.06);border-color:rgba(78,205,196,.25)}
.ff-card-active{border-color:rgba(78,205,196,.35)!important;box-shadow:0 0 0 1px rgba(78,205,196,.15)}
.ff-nested-peaks{display:flex;flex-direction:column;gap:8px;margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.06)}
.ff-nested-peaks .ff-card{padding:10px 12px;background:rgba(255,255,255,.015)}
.ff-card .tr-items{font-size:11px;color:var(--tx);margin-top:5px;display:flex;gap:6px;align-items:flex-start;line-height:1.35;text-align:left}
.ff-card .tr-items .tr-items-ic{width:11px;height:11px;color:var(--ac);flex-shrink:0;margin-top:2px}
.ff-card .tr-items span{flex:1;min-width:0}
.ff-card .tr-notes{font-size:12px;color:#c8ccd2;margin-top:6px;padding-top:6px;border-top:1px solid rgba(255,255,255,.05);line-height:1.4;white-space:pre-line;text-align:left}
/* GPX Import */
.gpx-drop{border:2px dashed rgba(255,255,255,.15);border-radius:var(--r);padding:16px;text-align:center;cursor:pointer;transition:border-color .2s;margin:0 16px 12px}
.gpx-drop:hover,.gpx-drop.drag{border-color:var(--ac);background:rgba(78,205,196,.05)}
.gpx-drop input{display:none}
.gpx-drop-icon{font-size:22px;margin-bottom:4px}
.gpx-drop-text{font-size:12px;color:var(--dm)}
.gpx-drop-text b{color:var(--tx)}
.gpx-status{font-size:12px;color:var(--ac);padding:4px 16px;text-align:center}
.gpx-assign-modal{position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:3000;display:none;align-items:center;justify-content:center}
.gpx-assign-modal.v{display:flex}
.gpx-assign-body{background:var(--card);border-radius:16px;padding:24px;width:380px;max-width:90vw;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.4);border:1px solid rgba(255,255,255,.08)}
.gpx-assign-body h3{font-family:'Outfit',sans-serif;font-size:18px;margin-bottom:4px}
.gpx-info{font-size:12px;color:var(--dm);margin-bottom:16px;line-height:1.5}
.gpx-info span{color:var(--ac);font-weight:600}
.gpx-suggested{background:rgba(78,205,196,.08);border:1px solid rgba(78,205,196,.2);border-radius:var(--r);padding:10px 14px;margin-bottom:12px;font-size:13px}
.gpx-suggested .gpx-peak-name{font-weight:600;color:var(--ac)}
.gpx-suggested .gpx-peak-dist{font-size:11px;color:var(--dm)}
.gpx-manual{margin-bottom:12px}
.gpx-manual input{width:100%;padding:10px 14px;border-radius:var(--r);border:1px solid rgba(255,255,255,.1);background:var(--bg);color:var(--tx);font-family:'DM Sans',sans-serif;font-size:13px;outline:0}
.gpx-manual input:focus{border-color:var(--ac)}
.gpx-results{max-height:150px;overflow-y:auto;margin-top:4px}
.gpx-result{padding:8px 12px;cursor:pointer;font-size:13px;border-radius:6px;display:flex;justify-content:space-between}
.gpx-result:hover{background:rgba(255,255,255,.06)}
.gpx-result .gpx-r-el{font-size:11px;color:var(--dm)}
.gpx-route-badge{display:inline-block;font-size:10px;padding:1px 6px;border-radius:8px;background:rgba(78,205,196,.15);color:var(--ac);font-weight:600;margin-left:6px;vertical-align:1px}
.gpx-stats{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:11px;color:#666;margin-top:4px;line-height:1.4}
.gpx-stats span{white-space:nowrap}
.gpx-stat-icon{vertical-align:-1px;margin-right:2px;opacity:.7}
.gpx-chart{width:100%;height:60px;margin-top:6px;border-radius:6px;overflow:hidden}
/* Location Search Overlay */
.loc-search{position:absolute;top:10px;right:56px;z-index:1002;width:300px;max-width:calc(100vw - 80px)}
.loc-search-wrap{display:flex;align-items:center;gap:8px;background:var(--card);border:1px solid rgba(255,255,255,.1);border-radius:var(--r);padding:0 12px;box-shadow:0 4px 20px rgba(0,0,0,.4)}
.loc-search-wrap:focus-within{border-color:var(--ac)}
.loc-search-icon{flex-shrink:0;color:var(--dm)}
#locSearchInput{flex:1;background:none;border:none;color:var(--tx);font-family:'DM Sans',sans-serif;font-size:13px;padding:10px 0;outline:none}
#locSearchInput::placeholder{color:var(--dm)}
.loc-search-clear{background:none;border:none;color:var(--dm);font-size:18px;cursor:pointer;padding:0 2px;line-height:1}
.loc-search-clear:hover{color:var(--tx)}
.loc-search-results{margin-top:6px;background:var(--card);border:1px solid rgba(255,255,255,.1);border-radius:var(--r);max-height:260px;overflow-y:auto;box-shadow:0 4px 20px rgba(0,0,0,.4);display:none;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.15) transparent}
.loc-search-results::-webkit-scrollbar{width:6px}
.loc-search-results::-webkit-scrollbar-track{background:transparent}
.loc-search-results::-webkit-scrollbar-thumb{background:rgba(255,255,255,.15);border-radius:3px}
.loc-search-results::-webkit-scrollbar-thumb:hover{background:rgba(255,255,255,.25)}
.loc-search-results.open{display:block}
.loc-result{padding:10px 14px;cursor:pointer;display:flex;align-items:flex-start;gap:10px;border-bottom:1px solid rgba(255,255,255,.04)}
.loc-result:last-child{border-bottom:none}
.loc-result:hover{background:rgba(255,255,255,.06)}
.loc-result-icon{flex-shrink:0;width:28px;height:28px;border-radius:50%;background:rgba(78,205,196,.12);display:flex;align-items:center;justify-content:center;margin-top:1px}
.loc-result-icon svg{color:var(--ac)}
.loc-result-text{flex:1;min-width:0}
.loc-result-name{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loc-result-detail{font-size:11px;color:var(--dm);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.loc-result-type{font-size:10px;padding:1px 6px;border-radius:8px;background:rgba(255,255,255,.06);color:var(--dm);flex-shrink:0;margin-top:2px}
/* Mobile Upload Screen */
.mu-screen{position:fixed;inset:0;background:var(--bg);z-index:6000;display:flex;flex-direction:column;align-items:center;padding:24px}
.mu-screen.hidden{display:none}
.mu-header{text-align:center;margin-bottom:24px}
.mu-header h2{font-family:'Outfit',sans-serif;font-size:22px;margin-bottom:4px;background:linear-gradient(135deg,var(--ac),var(--gd));-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.mu-peak{font-size:14px;color:var(--dm);margin-top:4px}
.mu-upload{width:100%;max-width:400px;flex:1;display:flex;flex-direction:column;gap:16px}
.mu-drop{border:2px dashed rgba(255,255,255,.2);border-radius:16px;padding:40px 20px;text-align:center;cursor:pointer;flex-shrink:0}
.mu-drop:active{border-color:var(--ac);background:rgba(78,205,196,.05)}
.mu-drop-icon{font-size:48px;margin-bottom:8px}
.mu-drop-text{font-size:15px;color:var(--tx);font-weight:600}
.mu-drop-hint{font-size:12px;color:var(--dm);margin-top:4px}
.mu-status{text-align:center;font-size:14px;color:var(--ac);padding:12px 0;min-height:40px}
.mu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:8px;overflow-y:auto;flex:1}
.mu-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}
.mu-grid-title{font-size:12px;color:var(--dm);text-transform:uppercase;letter-spacing:1px;font-weight:600}
.mu-auth{width:100%;max-width:340px}
.mu-auth input{width:100%;padding:12px 16px;border-radius:var(--r);border:1px solid rgba(255,255,255,.1);background:var(--bg);color:var(--tx);font-family:'DM Sans',sans-serif;font-size:14px;outline:0;margin-bottom:10px}
.mu-auth input:focus{border-color:var(--ac)}
.mu-success{font-size:48px;margin-bottom:12px}
