:root{
  --bg:#080a0e;--panel:#0d1118;--panel2:#111722;--line:#273140;--muted:#8b97a8;--text:#edf2f7;
  --gold:#e6bf71;--gold2:#ffd992;--blue:#73b7ff;--green:#57d69a;--red:#ff7272;--shadow:0 18px 50px #0009;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;background:radial-gradient(circle at 50% 0,#111a26 0,#080a0e 48%,#06070a 100%);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,select,input,textarea{font:inherit}
button{color:inherit}
.app-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr);grid-template-rows:62px minmax(0,1fr)}
.topbar{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:0 16px 0 18px;background:#080a0ed9;border-bottom:1px solid var(--line);backdrop-filter:blur(16px);position:sticky;top:0;z-index:50}
.brand-block{display:flex;align-items:center;gap:12px;min-width:0}.brand-title{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.eyebrow,.section-label{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--muted)}
.topbar-actions{display:flex;align-items:center;gap:8px}.live-badge{display:flex;align-items:center;gap:6px;font-size:10px;letter-spacing:.12em;color:var(--green)}.live-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 12px #57d69a}
.role-switcher{display:flex;gap:6px;align-items:center;font-size:10px;color:var(--muted)}.role-switcher select{background:#0f141c;border:1px solid var(--line);border-radius:8px;color:var(--text);padding:6px 8px}
.sidebar{grid-column:1;grid-row:2;background:#080b10;border-right:1px solid var(--line);min-height:0}.sidebar-scroll{height:100%;overflow:auto;padding:12px 8px}.side-section{margin-bottom:20px}.map-tree{display:grid;gap:2px;margin-top:7px}.map-node{min-width:0}.map-node-row{min-width:0}.map-node-row .nav-map{min-height:34px;font-size:10px;padding:7px 8px}.map-node-row .nav-map .map-icon{display:inline-block;font-size:15px;margin:0 2px 0 0;flex:0 0 auto}.map-toggle{height:30px}.map-edit-btn{height:30px}.map-children{margin:2px 0 4px 13px;padding-left:10px}.map-count{font-size:8px}.map-node-row .nav-map .map-count{margin-left:auto}.tool-stack{display:grid;gap:7px;margin-top:7px}.nav-map,.tool-btn-side{width:100%;border:1px solid transparent;background:transparent;border-radius:9px;padding:9px 6px;text-align:center;cursor:pointer;color:var(--muted);font-size:9px}.nav-map:hover,.tool-btn-side:hover,.nav-map.active{background:#111722;border-color:#344152;color:var(--text)}.nav-map .map-icon,.tool-btn-side .map-icon{display:block;font-size:17px;margin-bottom:3px}.map-children{padding-left:10px;border-left:1px solid #252e3b;margin-left:12px}.map-children.collapsed{display:none}.map-node-row{display:flex;align-items:center;gap:3px}.map-node-row .nav-map{flex:1;min-width:0;display:flex;align-items:center;gap:5px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.map-toggle{width:22px;height:28px;border:0;background:transparent;color:var(--muted);cursor:pointer;border-radius:6px;flex:0 0 22px;font-size:13px}.map-toggle:hover{background:#111722;color:var(--text)}.map-toggle.empty{cursor:default}.map-count{margin-left:auto;font-size:8px;color:#8d99a8;background:#141b24;border:1px solid #2a3441;border-radius:10px;padding:1px 5px}.map-edit-btn{width:26px;height:28px;border:0;background:transparent;color:#7f8b9b;border-radius:6px;cursor:pointer;flex:0 0 26px}.map-edit-btn:hover{background:#111722;color:var(--gold2)}.map-marker.dragging{opacity:.88;z-index:20}.map-marker.dragging .marker-visual{transform:scale(calc(var(--map-ui-scale) * 1.05))}.map-edit-preview{display:block;width:min(100%,420px);max-height:220px;object-fit:contain;border:1px solid var(--line);border-radius:9px;background:#070a0f;margin-top:6px}.session-card{margin-top:7px;border:1px solid var(--line);background:#0c1017;padding:9px;border-radius:9px}.session-name{font-size:11px}.session-sub{font-size:9px;color:var(--muted);margin:3px 0 8px}.ghost-btn,.secondary-btn,.icon-btn,.tool-btn{border:1px solid var(--line);background:#10151d;border-radius:8px;cursor:pointer}.ghost-btn{font-size:9px;padding:6px 8px;width:100%}.secondary-btn{font-size:10px;padding:7px 10px}
.account-btn{border:1px solid #6a7686;background:#131a23;border-radius:8px;cursor:pointer;color:#dfe7f1;font-size:10px;padding:7px 10px}.account-btn:hover{border-color:#9fb4ce;background:#182230}.icon-btn{width:32px;height:32px}.mobile-only{display:none}
.main-area{grid-column:2;grid-row:2;min-width:0;min-height:0;display:flex;flex-direction:column}.mobile-header-row{display:none}.map-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;min-height:calc(100vh - 62px);gap:0}.map-layout:fullscreen,.map-layout.app-map-fullscreen{display:block;width:100vw;height:100vh;min-height:100vh;position:relative;overflow:hidden;background:#080a0e}.map-layout.app-map-fullscreen{position:fixed!important;inset:0;z-index:9999}.map-layout:fullscreen .map-panel,.map-layout.app-map-fullscreen .map-panel{width:100%;height:100%;min-height:100vh}.map-layout:fullscreen .map-toolbar,.map-layout.app-map-fullscreen .map-toolbar,.map-layout:fullscreen .mobile-toolbar,.map-layout.app-map-fullscreen .mobile-toolbar{display:none}.map-layout:fullscreen .map-viewport,.map-layout.app-map-fullscreen .map-viewport{width:100%;height:100%;min-height:100vh}.map-layout:fullscreen .map-stage,.map-layout.app-map-fullscreen .map-stage{aspect-ratio:auto}.map-layout:fullscreen .scale-badge,.map-layout.app-map-fullscreen .scale-badge{display:none}.map-layout:fullscreen .empty-map-hint,.map-layout.app-map-fullscreen .empty-map-hint{display:none}.map-layout:fullscreen .inspector,.map-layout.app-map-fullscreen .inspector{position:absolute;right:16px;top:16px;left:auto;bottom:auto;width:min(310px,calc(100vw - 32px));height:min(72vh,560px);max-height:calc(100vh - 32px);z-index:100;display:flex;transform:none;border:1px solid #344152;border-radius:12px;background:#0b0f15ed;box-shadow:0 18px 50px #000b;backdrop-filter:blur(12px);overflow:hidden}.map-layout:fullscreen .inspector-body,.map-layout.app-map-fullscreen .inspector-body{overflow:auto}.map-layout:fullscreen .inspector-header,.map-layout.app-map-fullscreen .inspector-header{flex:0 0 auto}.map-layout:fullscreen .inspector-title,.map-layout.app-map-fullscreen .inspector-title{font-size:13px}.map-panel{min-width:0;display:flex;flex-direction:column;background:#0a0d12}.map-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line);background:#0a0d12}.desktop-map-nav{display:flex;align-items:center;gap:7px;margin-bottom:4px;min-width:0}.desktop-breadcrumb{min-width:0;overflow:auto;white-space:nowrap;font-size:9px;color:var(--muted);scrollbar-width:none}.desktop-breadcrumb::-webkit-scrollbar{display:none}.desktop-breadcrumb .crumb{cursor:pointer}.desktop-breadcrumb .crumb:hover{text-decoration:underline;color:#dce5ef}.desktop-breadcrumb .crumb.current{color:var(--text);cursor:default;text-decoration:none}.map-back-btn{width:28px;height:28px;flex:0 0 auto}.map-back-btn:disabled,.icon-btn:disabled{opacity:.3;cursor:not-allowed}.map-title{font-size:16px;font-weight:600}.map-subtitle{font-size:10px;color:var(--muted);margin-top:3px}.toolbar-actions{display:flex;gap:6px;flex:0 0 auto}.top-share-map-btn{display:none;align-items:center;gap:5px}.tool-btn{min-width:34px;height:32px;font-size:15px}.tool-btn:hover{border-color:#4e6177}.tool-entry{color:var(--gold)}
.map-viewport{position:relative;flex:1;overflow:hidden;background:radial-gradient(circle at 50% 50%,#171d26,#090b0f 70%);outline:none;touch-action:none}.map-stage{position:absolute;left:0;top:0;width:100%;aspect-ratio:16/10;transform-origin:0 0;user-select:none;--map-ui-scale:1}.map-image{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:cover;border-right:1px solid #0008}.map-stage>div:not(.entry-pulse){position:absolute;inset:0}.map-hotspot,.map-marker,.map-token{position:absolute;transform:translate(-50%,-50%);transform-origin:center center;z-index:5}.map-hotspot{cursor:pointer;touch-action:none;width:50px;height:50px;background:transparent;border:0;cursor:pointer}.map-hotspot::before{content:"";position:absolute;inset:0;border-radius:10px;background:rgba(255,216,143,.25);border:2px solid rgba(32,24,10,.8);box-shadow:0 0 22px rgba(230,191,113,.28);transition:background .15s,box-shadow .15s,border-color .15s}.map-hotspot:hover::before{background:rgba(255,216,143,.5);border-color:rgba(32,24,10,.95);box-shadow:0 0 22px rgba(230,191,113,.5)}.map-hotspot.map-link::after{content:"↗";position:absolute;right:3px;top:2px;font-size:13px;color:#111;background:var(--gold);width:18px;height:18px;border-radius:50%;display:grid;place-items:center;font-weight:700}.map-marker{position:absolute;left:0;top:0;min-width:34px;height:28px;padding:0 7px;border-radius:16px;background:#111923dd;border:1px solid #93a8c2aa;box-shadow:0 6px 16px #0008;display:flex;align-items:center;gap:5px;cursor:pointer;white-space:nowrap;transform:translate(-50%,-50%);transform-origin:center center}.map-marker .marker-visual{display:flex;align-items:center;gap:5px;transform:none;transform-origin:center center}.marker-dot{width:10px;height:10px;border-radius:50%;background:var(--blue);box-shadow:0 0 10px #73b7ff}.marker-personal{border-color:#b99cff}.marker-personal .marker-dot{background:#b99cff;box-shadow:0 0 10px #b99cff}.marker-label{font-size:10px}.map-token{width:46px;height:46px;border-radius:50%;border:2px solid #f4f7fb;box-shadow:0 6px 18px #000b;overflow:hidden;background:#263242;cursor:grab;z-index:8}.map-token .token-visual{display:block;position:absolute;inset:0;transform-origin:center center}.map-token .token-visual img{display:block}.map-token:active{cursor:grabbing}.map-token img{width:100%;height:100%;object-fit:cover}.map-token.own{border-color:var(--gold)}.token-name{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);font-size:9px;padding:2px 5px;background:#0b0f15cc;border-radius:5px;white-space:nowrap}.entry-pulse{position:absolute!important;inset:auto!important;width:62px!important;height:62px!important;border:2px solid var(--gold)!important;border-radius:50%!important;transform:translate(-50%,-50%)!important;box-shadow:0 0 24px #e6bf71;z-index:4;display:none}.entry-pulse.show{display:block;animation:pulse 1.8s ease-out 2}.scale-badge{position:absolute;bottom:12px;right:12px;padding:5px 8px;border:1px solid #2e3b4c;background:#090d13d8;border-radius:7px;font-size:9px;color:var(--muted);z-index:20}.empty-map-hint{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#0b0f15e8;padding:10px 14px;border:1px solid var(--line);border-radius:9px;font-size:11px;color:var(--muted);z-index:25}.hidden{display:none!important}
.inspector{border-left:1px solid var(--line);background:#0b0f15;min-width:0;display:flex;flex-direction:column}.inspector-header{padding:13px 13px 12px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between}.inspector-title{font-size:14px;margin-top:4px}.inspector-body{overflow:auto;padding:13px}.info-block{padding:10px;border:1px solid var(--line);background:#0f151e;border-radius:9px;margin-bottom:10px}.info-block h4{margin:0 0 5px;font-size:12px}.info-block p{margin:0;color:#b6c0cc;line-height:1.5;font-size:11px}.meta{font-size:9px;color:var(--muted)}.action-btn{width:100%;padding:9px 10px;border-radius:8px;border:1px solid #42566e;background:#111a25;color:#eef3f8;cursor:pointer;font-size:10px}.action-btn.primary{border-color:#866c32;background:#1b1710;color:var(--gold2)}.action-row{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:8px}.context-media-preview{width:100%;padding:7px;margin:4px 0 8px;border:1px solid #2a394b;border-radius:9px;background:#0a1018;cursor:pointer;color:#b6c0cc;display:block;text-align:left}.context-media-preview:hover{border-color:#866c32}.context-media-preview img{display:block;width:100%;max-height:130px;object-fit:contain;background:#070a0e;border-radius:6px}.context-media-caption{display:block;font-size:9px;margin-top:5px;color:#8f9aaa;text-align:center}.detail-link{color:var(--blue);text-decoration:none;font-size:10px;word-break:break-word}.edit-media-preview{display:block;width:100%;max-height:150px;object-fit:contain;background:#070a0e;border-radius:8px;border:1px solid #2a394b}.property-list{display:grid;gap:6px}.property{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;font-size:10px}.property .k{color:var(--muted)}.property .v{word-break:break-word}
.mobile-toolbar{display:none}.modal-root{position:fixed;inset:0;background:#0009;display:grid;place-items:center;padding:16px;z-index:100;overflow:auto}.modal{width:min(560px,100%);max-height:calc(100vh - 32px);display:flex;flex-direction:column;min-height:0;background:#0c1118;border:1px solid #364356;border-radius:14px;box-shadow:var(--shadow);overflow:hidden}.modal-head{display:flex;justify-content:space-between;align-items:center;padding:13px 14px;border-bottom:1px solid var(--line);flex:0 0 auto}.modal-title{font-size:14px}.modal-body{padding:14px;overflow:auto;min-height:0;flex:1 1 auto}.form-grid{display:grid;gap:9px}.form-grid.two{grid-template-columns:1fr 1fr}.field label{display:block;font-size:9px;color:var(--muted);margin-bottom:4px}.field input,.field textarea,.field select{width:100%;background:#0a0e14;border:1px solid var(--line);color:var(--text);border-radius:8px;padding:8px;font-size:11px}.field textarea{min-height:86px;resize:vertical}.modal-footer{display:flex;justify-content:flex-end;gap:7px;padding:12px 14px;border-top:1px solid var(--line);flex:0 0 auto}
.media-overlay{position:fixed;inset:0;background:#030509f4;z-index:10050;display:none}.media-overlay.open{display:block}.media-caption{position:absolute;left:22px;top:18px;max-width:min(70vw,680px);z-index:4}.media-title{font-size:15px}.media-description{font-size:10px;color:var(--muted);margin-top:3px}.media-viewport{position:absolute;inset:54px 0 84px;overflow:hidden;outline:none;touch-action:none;cursor:grab}.media-viewport.dragging{cursor:grabbing}.media-stage{position:absolute;inset:0;width:auto;height:auto;box-sizing:border-box;padding:8px 18px;display:grid;place-items:center;min-width:0;min-height:0;overflow:hidden}.media-image{display:block;width:auto;height:auto;min-width:0;min-height:0;max-width:100%;max-height:100%;object-fit:contain;border-radius:10px;box-shadow:0 24px 70px #000;transform-origin:center center;will-change:transform;user-select:none;-webkit-user-drag:none}.media-close{position:absolute;right:18px;top:14px;width:42px;height:42px;border:1px solid var(--line);background:#0d1219;color:#fff;border-radius:50%;z-index:5;font-size:25px;cursor:pointer}.media-controls{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:5;display:flex;align-items:center;gap:6px;padding:6px;border:1px solid #344050;background:#0b1016e8;border-radius:12px;box-shadow:var(--shadow)}.media-control-btn{min-width:34px;height:32px;border:1px solid var(--line);background:#111722;border-radius:7px;cursor:pointer}.media-fit-btn{padding:0 9px;font-size:10px}.media-zoom-badge{min-width:48px;text-align:center;font-size:10px;color:var(--muted)}.mini-map{position:absolute;right:18px;bottom:18px;width:180px;border:1px solid #465365;background:#0b0f15;border-radius:10px;overflow:hidden;cursor:pointer;padding:0;box-shadow:var(--shadow);z-index:6}.mini-map img{display:block;width:100%;height:90px;object-fit:cover}.mini-map span{display:block;padding:7px;font-size:9px;text-align:left;color:#d6dce4}.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);background:#0b1017;border:1px solid #3b495d;color:#eff4f9;padding:9px 12px;border-radius:8px;font-size:10px;z-index:200;box-shadow:var(--shadow)}
@keyframes pulse{0%{opacity:.95;transform:translate(-50%,-50%) scale(.8)}70%{opacity:.15;transform:translate(-50%,-50%) scale(1.5)}100%{opacity:0;transform:translate(-50%,-50%) scale(1.7)}}
@media(max-width:900px){.desktop-map-nav{display:none}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:62px auto 0 0;width:270px;z-index:70;transform:translateX(-102%);transition:.2s;box-shadow:20px 0 50px #000a}.sidebar.open{transform:translateX(0)}.mobile-only{display:inline-flex;align-items:center;justify-content:center}.main-area{grid-column:1}.map-layout{grid-template-columns:1fr;min-height:calc(100vh - 62px)}.inspector{position:fixed;left:0;right:0;bottom:0;height:min(40vh,380px);max-height:40vh;z-index:65;border-left:0;border-top:1px solid var(--line);border-radius:16px 16px 0 0;transform:translateY(105%);transition:.2s;box-shadow:0 -20px 50px #0009}.inspector.open{transform:translateY(0)}.mobile-header-row{display:flex;align-items:center;gap:8px;padding:7px 9px;background:#090d12;border-bottom:1px solid var(--line)}.breadcrumb{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px;color:var(--muted)}.map-toolbar{padding:8px 10px}.toolbar-actions{display:none}.mobile-toolbar{position:fixed;left:10px;right:10px;bottom:max(10px,env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(6,1fr);gap:5px;z-index:40}.mobile-tool-btn{border:1px solid #344050;background:#0b1016ee;border-radius:10px;padding:7px 3px;font-size:15px}.mobile-tool-btn span{display:block;font-size:8px;color:var(--muted);margin-top:2px}.mobile-tool-btn.active{border-color:#866c32;color:var(--gold2)}.map-viewport{min-height:calc(100vh - 168px)}.mini-map{width:150px}.map-token{width:42px;height:42px}.map-hotspot{cursor:pointer;touch-action:none;width:46px;height:46px}.topbar-actions .secondary-btn{display:none}.top-share-map-btn{display:none!important}}
@media(max-width:550px){.topbar{padding:0 9px}.brand-title{font-size:12px}.live-badge{display:none}.role-switcher span{display:none}.role-switcher select{max-width:110px}.map-title{font-size:14px}.map-subtitle{font-size:9px}.media-viewport{inset:50px 0 105px}.media-stage{inset:0;width:auto;height:auto;padding:6px 10px}.mini-map{right:10px;bottom:10px;width:140px}.media-caption{left:10px;top:10px;max-width:68%}.media-controls{bottom:64px}.media-control-btn{min-width:32px;height:30px}}
@media(max-width:550px){.inspector{height:min(30vh,280px);max-height:30vh;border-radius:14px 14px 0 0}.inspector-header{padding:9px 10px 8px}.inspector-title{font-size:13px}.inspector-body{padding:9px}.info-block{padding:8px;margin-bottom:8px}.info-block h4{font-size:11px}.info-block p{font-size:10px}.context-media-preview{padding:5px;margin:3px 0 6px}.context-media-preview img{max-height:90px}.action-btn{padding:7px 8px;font-size:9px}.property{grid-template-columns:75px minmax(0,1fr);font-size:9px}}
.auth-gate{position:fixed;inset:0;z-index:500;background:radial-gradient(circle at 50% 20%,#162131,#07090d 65%);display:grid;place-items:center;padding:16px}.auth-card{width:min(430px,100%);background:#0c1118;border:1px solid #364356;border-radius:16px;padding:22px;box-shadow:var(--shadow)}.auth-card h1{margin:6px 0;font-size:24px;color:#f1dfbd}.auth-sub{font-size:11px;color:var(--muted);line-height:1.5;margin:0 0 16px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin-bottom:12px}.auth-tab{border:1px solid var(--line);background:#0b1016;border-radius:8px;padding:8px;font-size:11px;cursor:pointer}.auth-tab.active{border-color:#866c32;color:var(--gold2);background:#17140e}.auth-status{font-size:10px;line-height:1.5;color:var(--muted);margin-top:10px;min-height:18px}.auth-status.error{color:var(--red)}.auth-status.ok{color:var(--green)}
@media(max-width:900px){.auth-card{padding:18px}.auth-card h1{font-size:21px}}

.media-resources{display:flex;flex-wrap:wrap;gap:6px;margin-top:7px}.media-resources.hidden{display:none}.media-resource{display:inline-flex;align-items:center;gap:4px;padding:5px 8px;border:1px solid #596879;background:#0d141d;color:#e7edf4;border-radius:7px;font-size:10px;text-decoration:none}.media-resource:hover{border-color:var(--gold);color:#fff}.resource-row{display:grid;grid-template-columns:1fr 1.5fr 32px;gap:6px;align-items:center;margin:5px 0}.resource-row input{min-width:0}.remove-resource{height:32px;border:1px solid var(--line);background:#141b24;color:#d7dee7;border-radius:7px;cursor:pointer}.secondary-btn{border:1px solid var(--line);background:#141b24;color:#d7dee7;border-radius:7px;padding:6px 9px;font-size:10px;cursor:pointer}.field-help{font-size:9px;color:var(--muted);margin-top:4px}

.icon-picker-groups{display:grid;gap:10px;margin-top:7px}.icon-picker-group-title{font-size:9px;color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.08em}.icon-picker-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.preset-icon{height:38px;border:1px solid var(--line);background:#0a0f16;border-radius:8px;color:#fff;font-size:20px;cursor:pointer}.preset-icon:hover,.preset-icon.selected{border-color:var(--gold);background:#17130d;box-shadow:0 0 0 1px #866c32 inset}.marker-icon{width:22px;height:22px;display:grid;place-items:center;flex:0 0 22px}.marker-icon-text{font-size:16px;line-height:1}.marker-icon-img{width:22px;height:22px;object-fit:contain;display:block}.map-marker{min-width:34px}.map-marker .marker-label{max-width:150px;overflow:hidden;text-overflow:ellipsis}.icon-picker-wrap{border:1px solid var(--line);border-radius:8px;padding:8px;background:#0b1017}

.map-hotspot{cursor:grab}.map-hotspot:active{cursor:grabbing}.map-hotspot.dragging{filter:drop-shadow(0 0 9px #ffe3a0)}.hotspot-resize-handle{position:absolute;right:-3px;bottom:-3px;width:12px;height:12px;border:2px solid #111;background:var(--gold);border-radius:3px;cursor:nwse-resize;z-index:3;box-shadow:0 0 0 1px #d6b56a}.hotspot-resize-handle{display:none}.map-hotspot:hover .hotspot-resize-handle{display:block}

.party-card{padding:10px;border:1px solid var(--line);background:#0f151e;border-radius:9px}.party-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.party-head .row-actions{display:flex;gap:6px;flex-wrap:wrap}.party-head .action-btn{width:auto;padding:6px 8px}.party-members{display:flex;gap:5px;flex-wrap:wrap;margin-top:9px}.party-member{font-size:9px;padding:4px 6px;border:1px solid #344050;border-radius:6px;color:#cbd4df}.check-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#0a0f15}.check-row select{width:min(220px,48%);background:#0a0e14;border:1px solid var(--line);color:var(--text);border-radius:7px;padding:7px;font-size:10px}.row-actions{display:flex;gap:7px}.row-actions .action-btn{flex:1}

.check-grid{display:grid;gap:6px}.check-grid .check-row{margin:0}.check-grid .check-row span{flex:1}

body.map-fullscreen-active{overflow:hidden}
@media(max-width:900px){.map-layout:fullscreen .inspector,.map-layout.app-map-fullscreen .inspector{right:10px;top:10px;left:auto;width:min(310px,calc(100vw - 20px));height:min(46vh,360px);max-height:calc(100vh - 20px);border-radius:12px}.map-layout:fullscreen .inspector-header,.map-layout.app-map-fullscreen .inspector-header{padding:9px 10px 8px}.map-layout:fullscreen .inspector-body,.map-layout.app-map-fullscreen .inspector-body{padding:9px}}

/* V1.8.29 — fullscreen context compact header */
.inspector-header-actions{display:flex;align-items:center;gap:6px}.context-toggle-btn{display:none;height:28px;padding:0 9px;border:1px solid #42566e;background:#111a25;color:#dce5ef;border-radius:7px;font-size:9px;cursor:pointer}.context-toggle-btn:hover{border-color:#866c32;color:#f0d99f}
.map-layout:fullscreen .inspector.context-collapsed,.map-layout.app-map-fullscreen .inspector.context-collapsed{height:auto!important;max-height:none!important;width:auto!important;min-width:0!important;right:14px;top:14px;left:auto;bottom:auto;padding:0;border-radius:9px}
.map-layout:fullscreen .inspector.context-collapsed .inspector-header,.map-layout.app-map-fullscreen .inspector.context-collapsed .inspector-header{padding:7px 8px;align-items:center;gap:12px;border-bottom:0}
.map-layout:fullscreen .inspector.context-collapsed .inspector-title,.map-layout.app-map-fullscreen .inspector.context-collapsed .inspector-title{font-size:10px;font-weight:600;white-space:nowrap;max-width:min(50vw,420px);overflow:hidden;text-overflow:ellipsis;margin-top:2px}
.map-layout:fullscreen .inspector.context-collapsed .section-label,.map-layout.app-map-fullscreen .inspector.context-collapsed .section-label{display:none}
.map-layout:fullscreen .inspector.context-collapsed .inspector-body,.map-layout.app-map-fullscreen .inspector.context-collapsed .inspector-body{display:none}
.map-layout:fullscreen .inspector.context-collapsed #closeInspectorBtn,.map-layout.app-map-fullscreen .inspector.context-collapsed #closeInspectorBtn{display:none}
.map-layout:fullscreen .inspector.context-collapsed .context-toggle-btn,.map-layout.app-map-fullscreen .inspector.context-collapsed .context-toggle-btn{display:inline-flex;align-items:center;justify-content:center}
.map-layout:fullscreen .inspector.context-expanded .context-toggle-btn,.map-layout.app-map-fullscreen .inspector.context-expanded .context-toggle-btn{display:inline-flex;align-items:center;justify-content:center}
@media(max-width:900px){.map-layout:fullscreen .inspector.context-collapsed,.map-layout.app-map-fullscreen .inspector.context-collapsed{right:10px;top:10px;left:auto;width:auto!important;max-width:calc(100vw - 20px)}.map-layout:fullscreen .inspector.context-collapsed .inspector-title,.map-layout.app-map-fullscreen .inspector.context-collapsed .inspector-title{max-width:calc(100vw - 120px)}}


/* V1.8.32 — subtle back navigation in map fullscreen */
.fullscreen-back-btn{display:none;position:absolute;left:14px;top:14px;z-index:120;width:34px;height:34px;padding:0;border:1px solid #344152;background:#0b1017cc;color:#dce5ef;border-radius:50%;font-size:18px;line-height:1;cursor:pointer;box-shadow:0 8px 24px #0008;backdrop-filter:blur(8px);opacity:.72;transition:opacity .15s,transform .15s,border-color .15s}
.fullscreen-back-btn.visible{display:inline-flex;align-items:center;justify-content:center}
.fullscreen-back-btn.visible:hover{opacity:1;border-color:#866c32;transform:translateX(-1px)}
.fullscreen-back-btn:active{transform:translateX(-1px) scale(.96)}
.map-layout:not(:fullscreen) .fullscreen-back-btn{display:none}
.map-layout.app-map-fullscreen .fullscreen-back-btn{display:none}
.map-layout.app-map-fullscreen .fullscreen-back-btn.visible{display:inline-flex}
@media(max-width:900px){.map-layout:fullscreen .fullscreen-back-btn,.map-layout.app-map-fullscreen .fullscreen-back-btn{left:10px;top:10px;width:32px;height:32px;font-size:17px}}

/* V1.8.42 — Public shared map presentation mode */
body.public-share-mode{overflow:hidden;background:#080a0e}
body.public-share-mode #app.public-share-mode{display:block;position:fixed;inset:0;z-index:99999;width:100vw;height:100vh}
body.public-share-mode .topbar,
body.public-share-mode .sidebar,
body.public-share-mode .mobile-header-row,
body.public-share-mode .map-toolbar,
body.public-share-mode .mobile-toolbar,
body.public-share-mode .inspector,
body.public-share-mode .fullscreen-back-btn,
body.public-share-mode .scale-badge{display:none!important}
body.public-share-mode .main-area{position:fixed;inset:0;width:100vw;height:100vh;display:block}
body.public-share-mode .map-layout{display:block!important;position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;min-height:100vh!important;overflow:hidden;background:#080a0e}
body.public-share-mode .map-panel{width:100%!important;height:100%!important;min-height:100vh!important}
body.public-share-mode .map-viewport{width:100%!important;height:100%!important;min-height:100vh!important}
body.public-share-mode .map-stage{aspect-ratio:auto!important}
body.public-share-mode .map-marker,
body.public-share-mode .map-token{pointer-events:none;cursor:default}
body.public-share-mode .map-hotspot{cursor:pointer}
body.public-share-mode .map-hotspot .hotspot-resize-handle{display:none!important}
body.public-share-mode .map-image{border:0}

/* V1.8.42 — Public shared map presentation mode */
body.public-share-mode{overflow:hidden;background:#080a0e}
body.public-share-mode #app.public-share-mode{display:block;position:fixed;inset:0;z-index:99999;width:100vw;height:100vh}
body.public-share-mode .topbar,
body.public-share-mode .sidebar,
body.public-share-mode .mobile-header-row,
body.public-share-mode .map-toolbar,
body.public-share-mode .mobile-toolbar,
body.public-share-mode .inspector,
body.public-share-mode .fullscreen-back-btn,
body.public-share-mode .scale-badge{display:none!important}
body.public-share-mode .main-area{position:fixed;inset:0;width:100vw;height:100vh;display:block}
body.public-share-mode .map-layout{display:block!important;position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;min-height:100vh!important;overflow:hidden;background:#080a0e}
body.public-share-mode .map-panel{width:100%!important;height:100%!important;min-height:100vh!important}
body.public-share-mode .map-viewport{width:100%!important;height:100%!important;min-height:100vh!important}
body.public-share-mode .map-stage{aspect-ratio:auto!important}
body.public-share-mode .map-marker,body.public-share-mode .map-token{pointer-events:auto;cursor:pointer}
body.public-share-mode .map-hotspot{cursor:pointer}
body.public-share-mode .map-hotspot .hotspot-resize-handle{display:none!important}
body.public-share-mode .map-image{border:0}

/* V1.8.43 — Share button visibility/cache-bust */
@media(min-width:901px){.top-share-map-btn{display:inline-flex!important}}
body.public-share-mode .top-share-map-btn{display:none!important}


/* V1.8.44 — Public presentation controls, frame and context */
body.public-share-mode .inspector{display:flex!important;position:absolute!important;right:18px!important;top:18px!important;left:auto!important;bottom:auto!important;width:min(340px,calc(100vw - 36px))!important;height:min(70vh,600px)!important;max-height:calc(100vh - 36px)!important;z-index:130!important;border:1px solid #3b4655!important;border-radius:12px!important;background:#0b0f15e8!important;box-shadow:0 18px 60px #000c!important;backdrop-filter:blur(12px)!important}
body.public-share-mode .inspector.context-collapsed{height:auto!important;max-height:none!important;width:auto!important;min-width:0!important}
body.public-share-mode .inspector.context-expanded .context-toggle-btn{display:inline-flex!important;align-items:center;justify-content:center}
body.public-share-mode .inspector.context-collapsed .context-toggle-btn{display:inline-flex!important;align-items:center;justify-content:center}
body.public-share-mode .inspector.context-collapsed .inspector-body{display:none!important}
body.public-share-mode .inspector.context-collapsed .section-label{display:none!important}
body.public-share-mode .inspector.context-collapsed #closeInspectorBtn{display:none!important}
body.public-share-mode .inspector.context-collapsed .inspector-header{border-bottom:0!important;padding:8px 9px!important}
body.public-share-mode .inspector-title{font-size:11px!important;font-weight:600!important;max-width:min(46vw,420px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.public-share-mode .inspector-body{overflow:auto!important}
body.public-share-mode .map-layout::after{content:"";position:absolute;inset:9px;z-index:110;pointer-events:none;border:1px solid #c7a55a88;border-radius:12px;box-shadow:inset 0 0 0 1px #0008,0 0 0 1px #0006}
.public-zoom-controls{display:none;position:absolute;right:18px;bottom:18px;z-index:125;gap:6px;padding:5px;border:1px solid #3b4655;background:#0b1017dd;border-radius:10px;box-shadow:0 12px 30px #000a;backdrop-filter:blur(8px)}
.public-zoom-controls button{width:34px;height:34px;border:1px solid #344152;background:#101721;color:#dce5ef;border-radius:7px;font-size:17px;cursor:pointer}
.public-zoom-controls button:hover{border-color:#866c32;color:#f0d99f}
body.public-share-mode .public-zoom-controls{display:flex}
body.public-share-mode .fullscreen-back-btn{display:none;left:18px;top:18px;z-index:130}
body.public-share-mode .fullscreen-back-btn.visible{display:inline-flex}
body.public-share-mode .fullscreen-back-btn.visible{display:inline-flex!important}
body.public-share-loading #authGate{display:none!important}
@media(max-width:900px){body.public-share-mode .inspector{right:10px!important;top:10px!important;width:min(340px,calc(100vw - 20px))!important;max-height:calc(100vh - 20px)!important}body.public-share-mode .public-zoom-controls{right:10px;bottom:max(10px,env(safe-area-inset-bottom))}body.public-share-mode .map-layout::after{inset:6px;border-radius:9px}body.public-share-mode .fullscreen-back-btn{left:10px;top:10px}}

/* V1.8.46 — Public presentation: map fit and media return */
body.public-share-mode .map-stage{transform-origin:0 0!important}
body.public-share-mode .mini-map{display:block!important;width:190px!important;border-color:#56677d!important;background:#0b1017f2!important}
body.public-share-mode .mini-map span{font-size:10px!important;font-weight:600!important;color:#eef3f8!important;text-align:center!important}
body.public-share-mode .media-close{right:18px;top:14px}
@media(max-width:900px){body.public-share-mode .mini-map{width:155px!important;right:10px;bottom:10px}body.public-share-mode .mini-map span{font-size:9px!important}}

/* V1.8.47: media viewer must sit above fullscreen map/public presentation */
.media-overlay.open{z-index:10050!important}
body.public-share-mode .media-overlay.open{z-index:100000!important}
