/* Shared private map interaction, with a distinct visual treatment for each layout. */
#private-map{--map-accent:#82dcff;--map-surface:#071722;--map-surface-2:#0b2230;--map-rule:#42819a;--map-text:#e8f8ff;--map-muted:#a4c1ce;min-width:0}
#private-map .private-map-intro{max-width:none}
#private-map .private-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:8px 0 12px;padding:16px 19px;border:1px solid var(--map-rule);background:var(--map-surface);color:var(--map-text)}
#private-map .private-map-toolbar>div:first-child{display:grid;gap:5px}
#private-map .private-map-kicker{color:var(--map-accent);font-size:.7rem;font-weight:800;letter-spacing:.19em}
#private-map .private-map-toolbar strong{font-size:.85rem}
#private-map .private-map-toolbar-actions{display:flex;flex-wrap:wrap;gap:8px}
#private-map .private-map-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,320px);gap:12px;align-items:start;min-width:0}
#private-map .private-map-canvas{position:relative;width:100%;aspect-ratio:1/1;min-width:0;overflow:hidden;touch-action:none;background:#163b5f;cursor:grab;user-select:none;border:1px solid var(--map-rule)}
#private-map .private-map-canvas:active{cursor:grabbing}
#private-map .private-map-canvas.placing{cursor:crosshair;outline:2px solid var(--map-accent);outline-offset:-2px}
#private-map .private-map-fallback{position:absolute;inset:0;background:#14324b url('/map-tiles/0/0-0.webp') center/cover no-repeat;filter:saturate(.8) brightness(.9)}
#private-map .private-map-tiles{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
#private-map .private-map-tiles img{position:absolute;display:block;max-width:none;object-fit:fill}
#private-map .private-map-pins{position:absolute;inset:0;z-index:2;pointer-events:none}
#private-map .private-map-pin{position:absolute;display:grid;place-items:center;width:36px;height:36px;padding:0;border:2px solid #07141a;border-radius:50%;background:#e3c283;color:#101a1c;box-shadow:0 3px 13px #000a;transform:translate(-50%,-50%);font-size:21px;font-weight:900;line-height:1;cursor:pointer;pointer-events:auto}
#private-map .private-map-pin[data-icon=start]{background:#82dcff}
#private-map .private-map-pin[data-icon=garage]{background:#9ec9dd}
#private-map .private-map-pin[data-icon=caution]{background:#f19778}
#private-map .private-map-pin[data-icon=route]{background:#96cfb4}
#private-map .private-map-pin[data-icon=checkpoint]{background:#d9d6a5}
#private-map .private-map-pin[data-icon=camera]{background:#d0b9e6}
#private-map .private-map-pin.selected{outline:3px solid white;outline-offset:3px;z-index:1}
#private-map .private-map-zoom{position:absolute;right:10px;top:10px;z-index:3;display:flex;align-items:center;gap:3px;padding:4px;border:1px solid #7fb0c0;background:#07151de9;box-shadow:0 5px 20px #0008;color:#f4fbff}
#private-map .private-map-zoom button{min-width:34px;min-height:32px;padding:5px;border:0;background:#183440;color:#f2fbff;font-size:18px;cursor:pointer}
#private-map .private-map-zoom button:last-child{padding:5px 9px;font-size:11px}
#private-map .private-map-zoom button:hover{background:#2d5461}
#private-map .private-map-zoom button:disabled{opacity:.4;cursor:default}
#private-map .private-map-zoom span{min-width:39px;text-align:center;font-size:12px;font-weight:800}
#private-map .private-map-hint{position:absolute;left:10px;bottom:10px;z-index:3;max-width:calc(100% - 20px);padding:8px 10px;background:#07151de9;color:#f4fbff;font-size:11px;pointer-events:none}
#private-map .private-map-rail{border:1px solid var(--map-rule);background:var(--map-surface);color:var(--map-text);min-width:0;overflow:hidden}
#private-map .private-map-rail-head{display:flex;justify-content:space-between;gap:8px;padding:17px 18px 12px;border-bottom:1px solid var(--map-rule);font-size:.76rem;font-weight:800;letter-spacing:.14em}
#private-map .private-map-rail-head strong{color:var(--map-accent)}
#private-map .private-map-search-label{display:grid;gap:7px;margin:15px 18px;color:var(--map-muted);font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
#private-map .private-map-search-label input{min-width:0;width:100%;padding:10px 11px;border:1px solid var(--map-rule);background:var(--map-surface-2);color:var(--map-text);font-size:.83rem;letter-spacing:0;text-transform:none}
#private-map .private-map-list{max-height:360px;overflow:auto;border-top:1px solid var(--map-rule)}
#private-map .private-map-list-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 18px;border:0;border-bottom:1px solid color-mix(in srgb,var(--map-rule) 55%,transparent);background:transparent;color:var(--map-text);text-align:left;cursor:pointer}
#private-map .private-map-list-row:hover,#private-map .private-map-list-row.active{background:var(--map-surface-2)}
#private-map .private-map-list-row.active{box-shadow:inset 3px 0 var(--map-accent)}
#private-map .private-map-list-row>span:last-child{display:grid;gap:3px;min-width:0}
#private-map .private-map-list-row strong{font-size:.83rem;overflow-wrap:anywhere}
#private-map .private-map-list-row small{color:var(--map-muted);font-size:.69rem}
#private-map .private-map-list-icon{display:grid;place-items:center;flex:none;width:32px;height:32px;border:1px solid var(--map-rule);color:var(--map-accent);font-size:20px}
#private-map .private-map-detail{min-height:170px;padding:18px;border-top:1px solid var(--map-rule)}
#private-map .private-map-detail small{color:var(--map-accent);font-size:.66rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
#private-map .private-map-detail h3{margin:7px 0;font-size:1.35rem;line-height:1.1;overflow-wrap:anywhere}
#private-map .private-map-detail p{color:var(--map-muted);font-size:.83rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
#private-map .private-map-coordinates{display:block;margin-top:14px;color:var(--map-accent);font-size:.65rem;font-weight:700;letter-spacing:.1em}
#private-map .private-map-detail-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:15px}
#private-map .private-map-empty{padding:15px 18px;color:var(--map-muted);font-size:.8rem}
.private-map-dialog{width:min(94vw,520px);max-width:520px;max-height:min(90dvh,800px);overflow:auto;padding:0;border:1px solid #65adca;background:#091a24;color:#eef9fd;box-shadow:0 30px 85px #000d}
.private-map-dialog::backdrop{background:#010a10cb;backdrop-filter:blur(3px)}
.private-map-dialog form,.private-map-dialog .private-map-access-content{display:grid;gap:14px;padding:25px}
.private-map-dialog h3{margin:0 0 7px;font:800 2rem/1 'Barlow Condensed',sans-serif;text-transform:uppercase}
.private-map-dialog label{display:grid;gap:7px;color:#a9cbd8;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.private-map-dialog :is(input,select,textarea){width:100%;min-width:0;padding:10px 11px;border:1px solid #4f8296;background:#0a2531;color:#edfaff;letter-spacing:0;text-transform:none}
.private-map-dialog textarea{resize:vertical}
.private-map-dialog .private-map-position{display:flex;align-items:center;justify-content:space-between;gap:10px;color:#a9cbd8;font-size:.8rem}
.private-map-dialog .private-map-dialog-actions{display:flex;justify-content:flex-end;gap:9px;margin:3px 0 0}
.private-map-dialog .private-map-access-content>p:not(.eyebrow){margin:0;color:#afc7d0;font-size:.85rem;line-height:1.5}
.private-map-dialog .private-map-account-list{max-height:380px;overflow:auto;border-top:1px solid #41697b}
.private-map-dialog .private-map-account{display:grid;grid-template-columns:minmax(0,1fr) minmax(120px,160px);align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid #254657}
.private-map-dialog .private-map-account span{display:grid;gap:3px;min-width:0}
.private-map-dialog .private-map-account strong{overflow-wrap:anywhere;font-size:.84rem}
.private-map-dialog .private-map-account small{color:#799aa8;font-size:.62rem;overflow-wrap:anywhere}
.private-map-dialog .private-map-account select{padding:8px;font-size:.8rem}

/* V1 keeps the existing metallic neon language. */
html:not(.ui-v2):not(.ui-v3):not(.ui-v4) #private-map .private-map-toolbar,html:not(.ui-v2):not(.ui-v3):not(.ui-v4) #private-map .private-map-rail{background:#06121acb;backdrop-filter:blur(12px);box-shadow:inset 0 1px #9ce4ff25}
html:not(.ui-v2):not(.ui-v3):not(.ui-v4) #private-map .private-map-toolbar{border-top:2px solid #91dfff}

/* V2: editorial map spread, with a slim index column. */
html.ui-v2 #private-map{--map-accent:#86d7e9;--map-surface:#102630;--map-surface-2:#173441;--map-rule:#31535e;--map-text:#eaf1f2;--map-muted:#9cb8c0}
html.ui-v2 #private-map .private-map-layout{grid-template-columns:minmax(0,1fr) minmax(220px,285px);gap:0;border:1px solid var(--map-rule)}
html.ui-v2 #private-map .private-map-canvas,html.ui-v2 #private-map .private-map-rail{border:0;border-radius:0}
html.ui-v2 #private-map .private-map-rail{border-left:1px solid var(--map-rule)}
html.ui-v2 #private-map .private-map-toolbar{margin-bottom:0;border-bottom:0}
html.ui-v2 #private-map .private-map-rail-head{font-family:'DM Mono',monospace}

/* V3: photographic field notebook, offset information strip. */
html.ui-v3 #private-map{--map-accent:#d9c597;--map-surface:#121a1d;--map-surface-2:#1b292d;--map-rule:#687d7b;--map-text:#f4f3ea;--map-muted:#b5c2bc}
html.ui-v3 #private-map .private-map-layout{grid-template-columns:minmax(0,1.65fr) minmax(255px,.65fr);gap:18px}
html.ui-v3 #private-map .private-map-canvas{border:5px solid #d0d2c5;box-shadow:12px 12px 0 #182b30}
html.ui-v3 #private-map .private-map-rail{border-left:4px solid var(--map-accent);box-shadow:7px 7px 0 #071015}
html.ui-v3 #private-map .private-map-toolbar{border:0;border-bottom:1px solid var(--map-rule);background:transparent;color:#142a36}
html.ui-v3 #private-map .private-map-toolbar .private-map-kicker{color:#ae3924}
html.ui-v3 #private-map .private-map-toolbar strong{color:#28414a}
html.ui-v3 #private-map .private-map-list-row.active{box-shadow:inset 5px 0 var(--map-accent)}
html.ui-v3 .sidebar .nav-item[data-view="private-map"]{order:15}
html.ui-v3 .sidebar .nav-item[data-view="private-map"]::before{content:'12'}

/* V4: dark timing-desk instrument with restrained amber notation. */
html.ui-v4 #private-map{--map-accent:#d9a05d;--map-surface:#191c1a;--map-surface-2:#252a26;--map-rule:#596359;--map-text:#e7e5df;--map-muted:#a1aaa1}
html.ui-v4 #private-map .private-map-layout{grid-template-columns:minmax(0,1fr) minmax(250px,300px);gap:0;border-top:1px solid #697069;border-bottom:1px solid #697069}
html.ui-v4 #private-map .private-map-canvas{border:0}
html.ui-v4 #private-map .private-map-rail{border:0;border-left:1px solid #697069}
html.ui-v4 #private-map .private-map-toolbar{margin:0 -30px;padding:15px 30px;border:0;border-bottom:1px solid #626a61;background:#202421}
html.ui-v4 #private-map .private-map-kicker,html.ui-v4 #private-map .private-map-rail-head{font:500 10px 'DM Mono',monospace;letter-spacing:.14em}
html.ui-v4 #private-map .private-map-rail-head{padding:22px 18px}
html.ui-v4 #private-map .private-map-pin{border-radius:0;transform:translate(-50%,-50%) rotate(45deg);width:32px;height:32px;font:700 17px 'DM Mono',monospace}
html.ui-v4 #private-map .private-map-pin.selected{outline-color:var(--map-accent)}
html.ui-v4 #private-map .private-map-zoom,html.ui-v4 #private-map .private-map-hint{border-color:#788277;border-radius:0;background:#111513ed;color:#f0eee8;font-family:'DM Mono',monospace}
html.ui-v4 #private-map .private-map-zoom button{background:#303730;font-family:'DM Mono',monospace}
html.ui-v4 #private-map .private-map-list-row.active{box-shadow:inset 2px 0 var(--map-accent)}
html.ui-v4 #private-map .private-map-detail h3{font:600 1.5rem 'Inter Tight',sans-serif!important;text-transform:uppercase}
html.ui-v4 .private-map-dialog{border-color:#687268;background:#191c1a;color:#e7e5df}
html.ui-v4 .private-map-dialog :is(input,select,textarea){border-color:#687268;background:#111513;color:#e7e5df}

@media(max-width:900px){#private-map .private-map-layout,html.ui-v2 #private-map .private-map-layout,html.ui-v3 #private-map .private-map-layout,html.ui-v4 #private-map .private-map-layout{grid-template-columns:1fr;gap:12px;border:0}#private-map .private-map-canvas{width:min(100%,760px);margin:0 auto}#private-map .private-map-rail,html.ui-v2 #private-map .private-map-rail,html.ui-v4 #private-map .private-map-rail{border:1px solid var(--map-rule)}html.ui-v3 #private-map .private-map-canvas{box-shadow:none}html.ui-v4 #private-map .private-map-toolbar{margin:0 -30px}}
@media(max-width:600px){#private-map .private-map-toolbar{align-items:start;flex-direction:column}#private-map .private-map-toolbar-actions{width:100%}#private-map .private-map-toolbar-actions button{flex:1}#private-map .private-map-hint{font-size:10px}#private-map .private-map-zoom{right:6px;top:6px}#private-map .private-map-zoom button{min-width:29px;min-height:29px}html.ui-v4 #private-map .private-map-toolbar{margin:0 -30px}#private-map .private-map-rail{max-width:100%}.private-map-dialog .private-map-position{align-items:start;flex-direction:column}.private-map-dialog .private-map-account{grid-template-columns:minmax(0,1fr) 125px}}

/* Full-page map workspace: the location register floats over the map on desktop. */
#private-map .private-map-intro{min-height:0;margin-bottom:14px;padding-top:15px;padding-bottom:15px}
#private-map .private-map-intro h2{margin-bottom:5px}
#private-map .private-map-layout{display:block!important;position:relative;min-height:0;border:0!important}
#private-map .private-map-canvas{width:100%;height:clamp(620px,76dvh,980px);min-height:0;aspect-ratio:auto;margin:0!important;max-width:none!important}
#private-map .private-map-rail{position:absolute;right:16px;top:16px;z-index:4;width:min(320px,31vw);max-width:none;max-height:calc(100% - 32px);overflow:auto;box-shadow:0 20px 55px #0009}
#private-map.rail-collapsed .private-map-rail{display:none!important}
#private-map .private-map-zoom{left:13px;right:auto}
#private-map .private-map-hint{bottom:13px}
html.ui-v2 #private-map .private-map-rail,html.ui-v4 #private-map .private-map-rail{border:1px solid var(--map-rule)}
html.ui-v3 #private-map .private-map-canvas{box-shadow:none}
html.ui-v4 #private-map .private-map-intro{min-height:130px!important}
html.ui-v4 #private-map .private-map-pin{transform:translate(-50%,-50%)}
#private-map .private-map-pin.multi{display:flex;gap:2px;width:auto;min-width:38px;height:38px;padding:0 7px;border-radius:20px;font-size:15px;white-space:nowrap}
#private-map .private-map-pin.multi span{display:grid;place-items:center;min-width:16px}
#private-map .private-map-pin-more{font-size:9px;font-weight:900}
#private-map .private-map-list-icon{min-width:32px;width:auto;padding:0 4px;white-space:nowrap;font-size:15px}
#private-map .private-map-guide-open{display:block;width:100%;margin-top:17px;padding:11px 12px;border:1px solid var(--map-rule);background:var(--map-surface-2);color:var(--map-accent);font-size:.78rem;font-weight:800;text-align:left;cursor:pointer}
#private-map .private-map-guide-open:hover{filter:brightness(1.2)}
.private-map-dialog .private-map-icon-field{min-width:0;margin:0;padding:0;border:0}
.private-map-dialog .private-map-icon-field legend{margin-bottom:9px;color:#a9cbd8;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.private-map-dialog .private-map-icon-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.private-map-dialog .private-map-icon-choices label{display:flex;align-items:center;gap:7px;min-width:0;padding:8px 9px;border:1px solid #456d7c;background:#0c2430;color:#d4eaf2;font-size:.75rem;letter-spacing:0;text-transform:none;cursor:pointer}
.private-map-dialog .private-map-icon-choices label:has(input:checked){border-color:#98dded;background:#183a48;color:#fff}
.private-map-dialog .private-map-icon-choices input{width:15px;min-width:15px;height:15px;margin:0;accent-color:#8cdaeb}
.private-map-dialog .private-map-icon-choices span{display:inline-grid;place-items:center;width:20px;font-size:18px;font-weight:800}
.private-map-guide-dialog{max-width:680px;width:min(94vw,680px)}
.private-map-guide-dialog .private-map-guide-intro{margin:0;color:#a9cbd8;font-size:.84rem}
.private-map-guide-dialog .private-map-guide-steps{display:grid;gap:10px;max-height:min(56dvh,620px);overflow:auto;padding-right:4px}
.private-map-guide-dialog .private-map-guide-step{display:grid;grid-template-columns:38px minmax(0,1fr);gap:13px;padding:13px;border:1px solid #416578;background:#0c2430}
.private-map-guide-dialog .private-map-guide-number{color:#9edbea;font:800 1.15rem 'DM Mono',monospace}
.private-map-guide-dialog .private-map-guide-body{display:grid;gap:8px;min-width:0}
.private-map-guide-dialog .private-map-guide-body strong{font-size:.9rem}
.private-map-guide-dialog .private-map-guide-body p{margin:0;color:#bfd5dd;font-size:.84rem;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.private-map-guide-dialog .private-map-guide-body input,.private-map-guide-dialog .private-map-guide-body textarea{width:100%;min-width:0}
.private-map-guide-dialog .private-map-guide-controls{display:flex;justify-content:flex-end;gap:5px}
.private-map-guide-dialog .private-map-guide-controls button{padding:5px 9px;font-size:.73rem}
.private-map-guide-dialog .private-map-guide-empty{margin:0;padding:16px;border:1px dashed #456d7c;color:#a9cbd8;font-size:.84rem}
html.ui-v4 .private-map-guide-dialog .private-map-guide-step{border-color:#657064;background:#252a26}
html.ui-v4 .private-map-guide-dialog .private-map-guide-number{color:#d9a05d}
html.ui-v4 .private-map-dialog .private-map-icon-choices label{border-color:#657064;background:#252a26;color:#e7e5df}
html.ui-v4 .private-map-dialog .private-map-icon-choices label:has(input:checked){border-color:#d9a05d;background:#453629}
html.ui-v3 .private-map-dialog{border:4px solid #29424b;background:#eeece1;color:#172b32;box-shadow:9px 9px 0 #172b32}
html.ui-v3 .private-map-dialog :is(input,select,textarea){border-color:#79918b;background:#fffdf4;color:#172b32}
html.ui-v3 .private-map-dialog :is(label,.private-map-icon-field legend,.private-map-position,.private-map-guide-intro){color:#405a60}
html.ui-v3 .private-map-dialog .private-map-icon-choices label{border-color:#98aaa4;background:#e5e7db;color:#172b32}
html.ui-v3 .private-map-dialog .private-map-icon-choices label:has(input:checked){border-color:#a43f2e;background:#f7e7d1;color:#172b32}
html.ui-v3 .private-map-guide-dialog .private-map-guide-step{border-color:#9aa9a1;background:#f7f6ec}
html.ui-v3 .private-map-guide-dialog .private-map-guide-number{color:#a43f2e}
html.ui-v3 .private-map-guide-dialog .private-map-guide-body p{color:#405a60}
html.ui-v3 .private-map-guide-dialog .private-map-guide-empty{border-color:#98aaa4;color:#405a60}
@media(max-width:900px){#private-map .private-map-canvas{height:clamp(450px,70dvh,760px)}#private-map .private-map-rail{position:relative;top:auto;right:auto;width:100%;max-height:none;margin-top:10px;box-shadow:none}#private-map .private-map-list{max-height:280px}}
@media(max-width:600px){#private-map .private-map-canvas{height:clamp(430px,66dvh,650px)}#private-map .private-map-toolbar-actions{gap:6px}#private-map .private-map-toolbar-actions button{flex:1 1 45%;white-space:nowrap}#private-map .private-map-zoom{left:6px;right:auto}#private-map .private-map-hint{max-width:90%}.private-map-dialog .private-map-icon-choices{grid-template-columns:1fr 1fr}.private-map-guide-dialog .private-map-guide-step{grid-template-columns:28px minmax(0,1fr);padding:9px;gap:7px}}
