:root{--bg:#0B0F19;--glass:rgba(11,15,25,.82);--line:rgba(255,255,255,.12);--h:#F8FAFC;--t:#E2E8F0;--t2:#94A3B8;--gold:#D4AF37;--cyan:#00E5FF;--r:16px}
:root[data-theme="light"]{--bg:#F8F2E8;--glass:rgba(255,255,255,.88);--line:rgba(26,20,16,.14);--h:#1A1410;--t:#2D2620;--t2:#6B5E50}
*{box-sizing:border-box}
html,body{height:100%;margin:0;background:var(--bg);color:var(--t);font-family:'Cairo',system-ui,sans-serif;overflow:hidden}
#map{position:fixed;inset:0}
button{font:inherit;cursor:pointer}
.bar{position:fixed;z-index:5;top:max(12px,env(safe-area-inset-top));inset-inline:12px;display:flex;gap:10px;align-items:center;pointer-events:none}
.bar>*{pointer-events:auto}
.brand{display:flex;gap:8px;align-items:center;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(12px);padding:8px 14px;border-radius:999px;color:var(--h);font-weight:900;text-decoration:none;white-space:nowrap}
.search{position:relative;flex:1;max-width:460px;display:flex;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(12px);border-radius:999px}
.search input{flex:1;min-width:0;background:none;border:0;color:var(--h);font:inherit;padding:10px 16px;outline:none}
.search input::placeholder{color:var(--t2)}
.search button{background:none;border:0;padding:0 14px;font-size:16px}
.results{position:absolute;top:calc(100% + 6px);inset-inline:0;margin:0;padding:6px;list-style:none;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(14px);border-radius:var(--r);max-height:50vh;overflow:auto}
.results li{padding:9px 12px;border-radius:10px;cursor:pointer;color:var(--h)}
.results li:hover,.results li:focus{background:rgba(212,175,55,.18)}
.results small{display:block;color:var(--t2)}
.tools{position:fixed;z-index:5;inset-inline-start:12px;top:70px;display:flex;flex-direction:column;gap:8px}
.tools button{background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(12px);color:var(--h);min-width:44px;height:44px;border-radius:12px;font-weight:900;padding:0 10px}
.tools button.on{background:var(--gold);color:#1a1405;border-color:transparent}
.tools .tour{background:linear-gradient(135deg,var(--gold),#f0d77a);color:#1a1405;border-color:transparent}
.panel{position:fixed;z-index:6;background:var(--glass);border:1px solid var(--line);backdrop-filter:blur(16px);border-radius:20px;box-shadow:0 24px 60px rgba(0,0,0,.45);color:var(--t)}
.list{inset-inline-start:68px;top:70px;width:min(300px,calc(100vw - 90px));max-height:60vh;overflow:auto;padding:14px}
.list h3,.info h2{margin:0 0 8px;color:var(--h)}
.list ul{list-style:none;margin:0;padding:0}.list li{padding:10px;border-radius:10px;cursor:pointer}.list li:hover{background:rgba(212,175,55,.18)}
.list li small{display:block;color:var(--t2)}
.info{inset-inline:12px;bottom:max(34px,env(safe-area-inset-bottom));max-width:440px;margin-inline:auto;padding:16px 18px}
@media(min-width:900px){.info{inset-inline-end:16px;inset-inline-start:auto;margin:0;bottom:44px}}
.info .x{position:absolute;inset-block-start:10px;inset-inline-end:12px;background:none;border:0;color:var(--t2);font-size:20px}
.info .row{display:flex;gap:10px;margin:8px 0}.info .row div{flex:1;background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:12px;padding:8px 10px;text-align:center}
.info .row b{display:block;color:var(--h);font-size:18px}.info .row span{color:var(--t2);font-size:12.5px}
.info .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.info .acts a{flex:1;text-align:center;padding:9px 12px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid var(--line);color:var(--h);text-decoration:none;font-size:14px;white-space:nowrap}
.info .acts a.pri{background:var(--gold);color:#1a1405;border-color:transparent;font-weight:900}
.info p{margin:6px 0;color:var(--t2);font-size:14px}.info .gal{display:flex;gap:6px;overflow:auto;margin:8px 0}.info .gal img{height:84px;border-radius:10px}
.hint{position:fixed;z-index:4;inset-inline:0;top:64px;margin-inline:auto;width:fit-content;background:var(--glass);border:1px solid var(--line);padding:5px 14px;border-radius:999px;font-size:13px;color:var(--t2);pointer-events:none;transition:opacity .3s}
.hint.hide{opacity:0}
.toast{position:fixed;z-index:9;bottom:70px;inset-inline:0;margin-inline:auto;width:fit-content;max-width:90vw;background:var(--gold);color:#1a1405;padding:8px 18px;border-radius:999px;font-weight:700}
.credits{position:fixed;z-index:4;bottom:0;inset-inline:0;padding:4px 10px;font-size:11px;color:var(--t2);background:linear-gradient(transparent,rgba(0,0,0,.5));text-align:center;pointer-events:none}
.credits a{color:var(--t);pointer-events:auto;text-decoration:none}
.maplibregl-ctrl-bottom-right{bottom:22px}
@media(max-width:560px){.brand span{display:none}.tools .tour{font-size:12px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.lg{width:min(290px,calc(100vw - 90px))}
.lg li{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;cursor:pointer;transition:opacity .2s}
.lg li i{width:16px;height:16px;border-radius:5px;flex:none;box-shadow:0 0 0 2px rgba(255,255,255,.15) inset}
.lg li span{flex:1}.lg li small{color:var(--t2);font-size:12px}
.lg li.off{opacity:.38}.lg li.off span{text-decoration:line-through}
.lg .all{width:100%;margin-top:8px;background:rgba(255,255,255,.08);border:1px solid var(--line);color:var(--h);border-radius:999px;padding:6px}
.lg .note{margin:10px 2px 0;font-size:12px;color:var(--t2);line-height:1.7}
.tag{display:inline-block;padding:2px 12px;border-radius:999px;color:#10131c;font-size:12.5px;font-weight:900;margin-bottom:4px}
.tools button.on#blg{background:var(--gold)}

.search .qc{padding:0 6px;font-size:20px;color:var(--t2)}
.results{max-height:62vh;padding:8px}
.results .grp{padding:8px 10px 4px;color:var(--gold);font-size:12.5px;font-weight:700;cursor:default}
.results li[data-i]{display:flex;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;cursor:pointer}
.results li[data-i] i{font-style:normal;font-size:20px;width:28px;text-align:center}
.results li[data-i] div{min-width:0;flex:1}.results li[data-i] b{display:block;font-weight:700;color:var(--h);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.results li[data-i] small{display:block;color:var(--t2);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.results li.act,.results li[data-i]:hover{background:rgba(212,175,55,.2)}
.results mark{background:none;color:var(--gold);font-weight:900}
.results .chips{display:flex;gap:6px;flex-wrap:wrap;padding:4px 4px 8px;cursor:default}
.results .chips button{background:rgba(255,255,255,.08);border:1px solid var(--line);color:var(--h);border-radius:999px;padding:5px 12px;font-size:13px}
.results .chips button:hover{background:var(--gold);color:#1a1405}
.results .note,.results .empty{padding:10px 12px;color:var(--t2);font-size:13px;line-height:1.7;cursor:default}
.pin{width:40px;height:50px;display:grid;place-items:center;filter:drop-shadow(0 6px 8px rgba(0,0,0,.5));animation:pin .5s cubic-bezier(.34,1.56,.64,1)}
.pin span{width:36px;height:36px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--gold);display:grid;place-items:center;border:3px solid #fff}
.pin span::after{content:"";width:12px;height:12px;border-radius:50%;background:#fff}
@keyframes pin{from{transform:translateY(-30px) scale(.4);opacity:0}to{transform:none;opacity:1}}
.search input[type=search]::-webkit-search-cancel-button,.search input[type=search]::-webkit-search-decoration{-webkit-appearance:none;display:none}
.results{background:rgba(9,13,22,.97)}
:root[data-theme="light"] .results{background:rgba(255,252,246,.98)}
