:root{--bg: #f3f5f1;--surface: #ffffff;--surface-raised: #fbfcfa;--surface-sunken: #e9eee5;--ink: #101914;--text: #263029;--text-muted: #5b6a60;--text-subtle: #7e8b81;--border: #dde3dc;--border-strong: #c8d0c7;--brand: #087243;--brand-strong: #005f35;--brand-hover: #00693c;--brand-ink: #06462d;--brand-soft: #e8f3eb;--brand-soft-border: #bcd8c6;--accent: #e6531c;--accent-dark: #bf4217;--accent-soft: #fff0e8;--danger: #b42318;--danger-ink: #8a1c14;--danger-soft: #fdf2f1;--danger-border: #efc6c1;--ok: #1f7a3d;--ok-ink: #185f30;--ok-soft: #ebf6ee;--info: #2f6b9e;--info-ink: #244f73;--info-soft: #ebf2f8;--info-border: #c3d7e7;--highlight: #e7b948;--focus: #2f6b9e;--r-sm: 7px;--r-md: 8px;--r-lg: 8px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgb(26 34 29 / 7%), 0 1px 3px rgb(26 34 29 / 6%);--shadow-md: 0 6px 16px rgb(26 34 29 / 9%), 0 2px 5px rgb(26 34 29 / 6%);--shadow-lg: 0 16px 40px rgb(26 34 29 / 14%), 0 4px 10px rgb(26 34 29 / 8%);--shadow-xl: 0 28px 64px rgb(26 34 29 / 24%);--z-popover: 10;--z-modal: 20;--ease: cubic-bezier(.2, 0, .1, 1);color:var(--ink);background:var(--bg);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0;background:var(--bg)}.app-shell{display:grid;min-height:100vh;place-items:center}.app-shell h1{margin:0;font-size:2rem;font-weight:700;line-height:1.1}button,input{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,textarea:focus-visible,[tabindex]:focus-visible,.ui-button:focus-visible,.maplibregl-ctrl button:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.login-page,.admin-shell{min-height:100vh}.login-page{display:grid;align-items:center;justify-items:center;padding:2rem;background:linear-gradient(90deg,rgb(8 49 35 / .035) 1px,transparent 1px),linear-gradient(0deg,rgb(8 49 35 / .035) 1px,transparent 1px),var(--bg);background-size:54px 54px,54px 54px,auto}.login-shell{display:grid;width:min(1040px,100%);min-height:560px;grid-template-columns:minmax(0,.95fr) minmax(420px,1fr);overflow:hidden;border:1px solid var(--border-strong);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-xl)}.login-brand-panel{display:flex;flex-direction:column;gap:1.8rem;padding:clamp(2.5rem,5vw,4rem);background:linear-gradient(115deg,rgb(11 96 63 / .1),transparent 55%),repeating-linear-gradient(32deg,rgb(8 49 35 / .08) 0 1px,transparent 1px 22px),var(--surface-sunken)}.login-brand-lockup{display:inline-flex;align-items:center;gap:1rem;color:var(--ink);font-size:clamp(2rem,4vw,2.75rem);font-weight:800;letter-spacing:0}.brand-logo-mark{display:block;object-fit:contain;object-position:center;-webkit-user-select:none;user-select:none}.login-logo-mark{width:clamp(4.1rem,8vw,5.35rem);height:clamp(4.1rem,8vw,5.35rem);flex:0 0 auto}.login-brand-panel p{max-width:15em;margin:0;color:var(--text);font-size:clamp(1.2rem,2.5vw,1.55rem);font-weight:700;line-height:1.65}.login-panel{display:flex;width:100%;max-width:540px;flex-direction:column;justify-content:center;border-left:1px solid var(--border);background:var(--surface);padding:clamp(2rem,4vw,3.5rem)}.login-heading{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1.5rem}.login-brand{margin:0;color:var(--brand);font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.login-heading h1,.admin-header h1{margin:0;color:var(--ink);font-size:1.7rem;font-weight:750;letter-spacing:-.01em;line-height:1.2}.login-form,.ui-form-item{display:flex;flex-direction:column}.login-form{gap:1rem}.login-footnote{margin:1.5rem 0 0;border-top:1px solid var(--border);padding-top:1rem;color:var(--text-muted);font-size:.82rem;text-align:center}.ui-form-item{gap:.45rem}.ui-label{color:var(--text);font-size:.85rem;font-weight:650;line-height:1.2}.ui-label--invalid{color:var(--danger-ink)}.ui-input{width:100%;min-height:2.75rem;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);padding:0 .85rem;outline:none;transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}.ui-input:hover{border-color:var(--brand-soft-border)}.ui-input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2f5d4a29}.ui-input[aria-invalid=true]{border-color:var(--danger)}.ui-input[aria-invalid=true]:focus{box-shadow:0 0 0 3px #b4231826}.ui-button{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;gap:.4rem;border:1px solid transparent;border-radius:var(--r-sm);padding:0 1.05rem;cursor:pointer;font-weight:700;line-height:1;white-space:nowrap;transition:background-color .13s var(--ease),border-color .13s var(--ease),color .13s var(--ease),box-shadow .13s var(--ease),transform 80ms var(--ease)}.ui-button:active:not(:disabled){transform:translateY(1px)}.ui-button:disabled{cursor:not-allowed;opacity:.55}.ui-button--default{background:var(--brand);color:#fff;box-shadow:var(--shadow-sm)}.ui-button--default:hover:not(:disabled){background:var(--brand-hover)}.ui-button--outline{border-color:var(--border-strong);background:var(--surface);color:var(--brand-ink)}.ui-button--outline:hover:not(:disabled){border-color:var(--brand-soft-border);background:var(--brand-soft)}.ui-button--ghost{background:transparent;color:var(--brand-ink)}.ui-button--ghost:hover:not(:disabled){background:var(--brand-soft)}.ui-form-message,.form-error{margin:0;color:var(--danger-ink);font-size:.85rem;font-weight:600}.admin-shell{display:flex;flex-direction:column;gap:1.5rem;padding:2rem clamp(1rem,4vw,2.5rem)}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border);padding-bottom:1.15rem}.admin-actions{display:flex;align-items:center;gap:.75rem}.admin-summary{display:flex;flex-direction:column;gap:.4rem;max-width:520px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);padding:1.25rem 1.35rem}.admin-summary h2{margin:0;color:var(--text-muted);font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.admin-summary p{margin:0;color:var(--ink);font-size:.95rem;font-weight:600}.admin-tabs{display:inline-flex;width:fit-content;gap:.25rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);padding:.3rem}.admin-tabs button{min-height:2.4rem;border:0;border-radius:var(--r-sm);background:transparent;color:var(--text-muted);cursor:pointer;font:inherit;font-size:.88rem;font-weight:750;padding:0 1rem;transition:background-color .13s var(--ease),color .13s var(--ease)}.admin-tabs button:hover{color:var(--brand-ink)}.admin-tabs button[aria-selected=true]{background:var(--brand);color:#fff}.admin-dashboard-stats{display:grid;gap:1.25rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);padding:1.5rem}.admin-dashboard-heading,.admin-dashboard-columns{display:grid;gap:.75rem}.admin-dashboard-heading h2,.admin-dashboard-heading p,.admin-dashboard-stats h3,.admin-dashboard-stats p,.admin-stat-grid,.admin-stat-grid dd,.admin-stat-grid dt{margin:0}.admin-dashboard-heading h2{font-size:1.15rem;font-weight:750;letter-spacing:-.01em}.admin-dashboard-heading p{color:var(--text-subtle);font-size:.76rem;font-weight:700}.admin-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem}.admin-stat-grid div{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-raised);padding:1rem 1.1rem}.admin-stat-grid dt{color:var(--text-muted);font-size:.76rem;font-weight:700}.admin-stat-grid dd{margin-top:.3rem;color:var(--ink);font-size:1.6rem;font-weight:800;letter-spacing:-.02em}.admin-dashboard-columns{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-dashboard-stats h3{margin-bottom:.6rem;color:var(--ink);font-size:1rem;font-weight:700}.admin-stat-list{display:grid;gap:.15rem;margin:0;padding:0;list-style:none}.admin-stat-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;border-top:1px solid var(--border);color:var(--text-muted);font-size:.85rem;padding:.55rem 0}.admin-stat-list li:first-child{border-top:0}.admin-stat-list a{color:var(--brand-ink);font-weight:600;text-decoration:none}.admin-stat-list a:hover{text-decoration:underline;text-underline-offset:.15em}.admin-shell.admin-console-shell{display:grid;height:100dvh;min-height:100dvh;grid-template-columns:240px minmax(0,1fr);gap:0;overflow:hidden;padding:0;background:#f7f8f5}.admin-console-sidebar{display:grid;height:100dvh;min-height:100dvh;grid-template-rows:auto minmax(0,1fr) auto;border-right:1px solid var(--border-strong);background:var(--surface);overflow-y:auto;padding:1.3rem .85rem}.admin-sidebar-brand{padding:0 .85rem 1.7rem}.admin-sidebar-nav{display:grid;align-content:start;gap:.35rem}.admin-sidebar-tab,.admin-sidebar-link{display:grid;min-height:2.85rem;align-content:center;gap:.15rem;border-radius:var(--r-sm);color:var(--text);font:inherit;font-size:.9rem;font-weight:800;padding:.55rem .8rem;text-align:left;text-decoration:none}.admin-sidebar-tab{border:0;background:transparent;cursor:pointer}.admin-sidebar-tab small{color:var(--text-muted);font-size:.72rem;font-weight:700}.admin-sidebar-tab:hover,.admin-sidebar-link:hover{background:var(--surface-raised)}.admin-sidebar-tab[aria-selected=true]{background:var(--brand-soft);color:var(--brand-ink)}.admin-sidebar-tab[aria-selected=true] small{color:var(--brand-ink)}.admin-user-card{display:grid;gap:.25rem;border-top:1px solid var(--border);padding:1rem .85rem 0;color:var(--text-muted);font-size:.78rem}.admin-user-card strong{min-width:0;overflow:hidden;color:var(--ink);font-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.admin-user-card small{color:var(--ok);font-weight:800}.admin-password-panel{display:grid;gap:.55rem}.admin-password-toggle{width:max-content;border:0;background:transparent;color:var(--brand-ink);cursor:pointer;font:inherit;font-size:.78rem;font-weight:800;padding:0}.admin-password-form{display:grid;gap:.55rem}.admin-password-form label{display:grid;gap:.25rem}.admin-password-form span{color:var(--text-muted);font-size:.72rem;font-weight:800}.admin-password-form input{min-width:0;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--ink);font:inherit;font-size:.8rem;padding:.45rem .55rem}.admin-password-status,.admin-password-error{margin:0;font-size:.74rem;font-weight:750}.admin-password-status{color:var(--ok)}.admin-password-error{color:var(--danger)}.admin-console-main{display:grid;height:100dvh;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0;overflow:hidden}.admin-console-header{min-height:88px;align-items:center;border-color:var(--border-strong);background:var(--surface);padding:0 2rem}.admin-header-copy{display:grid;gap:.25rem}.admin-console-actions{flex-wrap:nowrap}.admin-top-search{width:min(30rem,36vw)}.admin-dashboard-panel{min-height:0;overflow-y:auto;padding:1.15rem 2rem 2rem}.admin-dashboard-panel--maps{overflow:hidden}.admin-dashboard-heading{grid-template-columns:minmax(0,1fr) auto;align-items:start}.admin-dashboard-heading>div{display:grid;gap:.3rem}.admin-dashboard-note,.admin-empty-state{color:var(--text-muted);font-size:.84rem;font-weight:650}.admin-stat-grid--four{grid-template-columns:repeat(4,minmax(0,1fr))}.admin-stat-grid small{display:block;margin-top:.45rem;color:var(--text-subtle);font-size:.74rem;font-weight:700}.admin-dashboard-card{min-width:0;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-raised);padding:1rem}.admin-card-heading-row{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.admin-card-heading-row p{color:var(--text-subtle);font-size:.74rem;font-weight:800}.admin-ranked-list li{grid-template-columns:auto minmax(0,1fr) auto}.admin-rank{display:inline-grid;width:1.6rem;height:1.6rem;place-items:center;border:1px solid var(--brand-soft-border);border-radius:var(--r-pill);background:var(--brand-soft);color:var(--brand-ink);font-size:.72rem;font-weight:850}.admin-updated-list{display:grid;gap:0;margin:0;padding:0;list-style:none}.admin-updated-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem;border-top:1px solid var(--border);padding:.65rem 0}.admin-updated-list li:first-child{border-top:0}.admin-updated-list a{overflow:hidden;color:var(--brand-ink);font-size:.88rem;font-weight:750;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.admin-updated-list a:hover{text-decoration:underline;text-underline-offset:.15em}.admin-updated-list time{color:var(--text-muted);font-size:.8rem;font-weight:700}.admin-map-management{display:grid;height:100%;min-height:0;gap:1rem;grid-template-rows:auto auto auto auto minmax(0,1fr)}.admin-map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.85rem;border:1px solid var(--border);border-radius:var(--r-md);background:#fff;padding:.7rem .8rem}.admin-map-toolbar p{margin:0;color:var(--text-muted);font-size:.84rem;font-weight:750}.admin-map-view-switch{display:flex;align-items:center;gap:.45rem}.admin-map-view-toggle.ui-button{display:inline-grid;width:2.35rem;min-width:2.35rem;height:2.35rem;min-height:2.35rem;place-items:center;padding:0}.admin-map-view-toggle-icon{display:grid;width:1.15rem;height:1.15rem;gap:.16rem}.admin-map-view-toggle-icon span{display:block;border:1px solid currentColor;background:currentColor}.admin-map-view-toggle--cards .admin-map-view-toggle-icon{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}.admin-map-view-toggle--cards .admin-map-view-toggle-icon span{border-radius:3px}.admin-map-view-toggle--list .admin-map-view-toggle-icon{grid-template-rows:repeat(4,minmax(0,1fr))}.admin-map-view-toggle--list .admin-map-view-toggle-icon span{border-radius:var(--r-pill)}.admin-map-list{display:grid;gap:.75rem;min-height:0;margin:0;overflow-y:auto;padding:0;list-style:none;align-content:start}.admin-map-list--cards{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.admin-map-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:1rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-raised);padding:.9rem 1rem}.admin-map-list--cards .admin-map-list-row{align-content:stretch;grid-template-columns:1fr;grid-template-rows:auto auto auto auto;align-items:stretch;min-height:24rem;border-radius:6px;background:#fff;padding:.95rem;box-shadow:0 1px 2px #1019140f,0 8px 22px #1019140d}.admin-map-preview{--admin-preview-base: linear-gradient(140deg, rgb(251 250 244 / 88%), rgb(226 235 221 / 88%)), #eef2e7;--admin-preview-contour-fill: #eef2e7;--admin-preview-grid-color: rgb(68 91 75 / 12%);--admin-preview-overlay: transparent;--admin-preview-overlay-opacity: 0;--admin-preview-specialist: transparent;--admin-preview-specialist-opacity: 0;position:relative;display:none;min-height:0;aspect-ratio:2 / .98;overflow:hidden;border:1px solid rgb(39 67 48 / 10%);border-radius:6px;background:#eef2e7}.admin-map-preview--base-gsi-pale{--admin-preview-base: linear-gradient(140deg, rgb(252 251 245 / 94%), rgb(239 242 228 / 92%)), #f3f4ec;--admin-preview-contour-fill: #f3f4ec;--admin-preview-grid-color: rgb(82 92 78 / 10%)}.admin-map-preview--base-gsi-photo{--admin-preview-base: radial-gradient(circle at 18% 26%, rgb(111 129 73 / 34%) 0 13%, transparent 14%), radial-gradient(circle at 72% 18%, rgb(92 111 68 / 34%) 0 18%, transparent 19%), radial-gradient(circle at 60% 80%, rgb(124 95 62 / 28%) 0 20%, transparent 21%), linear-gradient(140deg, #8da06a, #5f7655 55%, #7f694f);--admin-preview-contour-fill: #768966;--admin-preview-grid-color: rgb(245 248 236 / 14%)}.admin-map-preview--base-osm{--admin-preview-base: linear-gradient(32deg, transparent 47%, rgb(222 160 116 / 35%) 48% 52%, transparent 53%), linear-gradient(128deg, transparent 45%, rgb(144 177 196 / 34%) 46% 50%, transparent 51%), linear-gradient(140deg, #f7f6ef, #e9edf0);--admin-preview-contour-fill: #eef0ec;--admin-preview-grid-color: rgb(88 100 106 / 14%)}.admin-map-preview--layer-gsi-hillshade{--admin-preview-overlay: linear-gradient(135deg, rgb(35 43 38 / 24%), transparent 36%), linear-gradient(315deg, rgb(255 255 255 / 34%), transparent 42%);--admin-preview-overlay-opacity: .8}.admin-map-preview--layer-gsi-slope{--admin-preview-overlay: repeating-linear-gradient(118deg, rgb(187 104 44 / 24%) 0 6px, transparent 6px 17px), linear-gradient(140deg, rgb(209 148 76 / 18%), transparent);--admin-preview-overlay-opacity: .9}.admin-map-preview--layer-gsi-relief{--admin-preview-overlay: linear-gradient( 160deg, rgb(92 142 94 / 34%) 0 22%, rgb(226 205 104 / 38%) 23% 50%, rgb(203 120 75 / 34%) 51% 76%, rgb(142 92 89 / 32%) 77% 100% );--admin-preview-overlay-opacity: .86}.admin-map-preview--layer-gsi-afm{--admin-preview-overlay: linear-gradient(24deg, transparent 46%, rgb(178 49 38 / 54%) 47% 49%, transparent 50%), linear-gradient(148deg, transparent 54%, rgb(178 49 38 / 34%) 55% 57%, transparent 58%);--admin-preview-overlay-opacity: .72}.admin-map-preview--layer-red-relief{--admin-preview-overlay: radial-gradient(circle at 50% 45%, rgb(190 61 45 / 18%) 0 28%, transparent 29%), linear-gradient(140deg, rgb(172 47 40 / 28%), rgb(231 161 113 / 22%));--admin-preview-overlay-opacity: .9}.admin-map-preview--layer-gsj-geo{--admin-preview-specialist: linear-gradient(24deg, transparent 0 28%, rgb(106 158 142 / 36%) 29% 48%, transparent 49%), linear-gradient(142deg, transparent 0 42%, rgb(219 182 92 / 34%) 43% 62%, transparent 63%), linear-gradient(135deg, rgb(106 158 142 / 36%), rgb(219 182 92 / 32) 45%, rgb(174 116 153 / 32));--admin-preview-specialist-opacity: .72}.admin-map-list--cards .admin-map-preview{display:block}.admin-map-preview-image{position:relative;z-index:1;display:block;width:100%;height:100%;object-fit:cover}.admin-map-tile-preview{position:absolute;top:0;right:0;bottom:0;left:0;display:block;overflow:hidden;background:linear-gradient(135deg,#f7f8f0b8,#e2e9dbb8),#edf2e8}.admin-map-tile-preview--empty{display:grid;place-items:center}.admin-map-tile-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.admin-map-tile-layer--gsi-std,.admin-map-tile-layer--gsi-pale{filter:saturate(.86) contrast(.94) brightness(1.04)}.admin-map-tile-layer--osm{filter:saturate(.84) contrast(.92) brightness(1.03)}.admin-map-tile-layer--gsi-photo{filter:saturate(.92) contrast(.96) brightness(.98)}.admin-map-tile-layer--gsi-afm,.admin-map-tile-layer--gsi-relief,.admin-map-tile-layer--gsi-slope,.admin-map-tile-layer--gsj-geo{filter:saturate(.92) contrast(.96)}.admin-map-tile{position:absolute;display:block;max-width:none;border:0;pointer-events:none;-webkit-user-select:none;user-select:none}.admin-map-generated-red-relief{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(circle at 48% 46%,rgb(184 51 43 / 18%) 0 30%,transparent 31%),linear-gradient(140deg,#aa2b2442,#ea97602e);mix-blend-mode:multiply}.admin-map-route-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;width:100%;height:100%;pointer-events:none}.admin-map-route-halo,.admin-map-route-line{fill:none;stroke-linecap:round;stroke-linejoin:round}.admin-map-route-halo{stroke:#ffffffeb;stroke-width:6.2}.admin-map-route-line{stroke-width:3.1}.admin-map-route-point{fill:#fff;stroke-width:1.35}.admin-map-preview-empty-label{position:absolute;z-index:3;left:50%;top:50%;max-width:calc(100% - 2rem);transform:translate(-50%,-50%);overflow:hidden;border-radius:999px;background:#ffffffd6;color:var(--text);font-size:.78rem;font-weight:800;line-height:1.3;padding:.38rem .7rem;text-align:center;text-overflow:ellipsis;white-space:nowrap;box-shadow:0 1px 5px #1019141f}.admin-map-preview .gallery-route-preview{grid-template-rows:minmax(0,1fr) auto;overflow:hidden;color:var(--admin-preview-grid-color);background:var(--admin-preview-base)}.admin-map-preview .gallery-route-preview:before,.admin-map-preview .gallery-route-preview:after{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;content:""}.admin-map-preview .gallery-route-preview:before{z-index:0;background:var(--admin-preview-overlay);opacity:var(--admin-preview-overlay-opacity);mix-blend-mode:multiply}.admin-map-preview .gallery-route-preview:after{z-index:0;background:var(--admin-preview-specialist);opacity:var(--admin-preview-specialist-opacity);mix-blend-mode:multiply}.admin-map-preview .gallery-route-preview-map{position:relative;z-index:1}.admin-map-preview .gallery-route-preview-contours{fill:var(--admin-preview-contour-fill);opacity:.72}.admin-map-preview .gallery-route-preview-grid{color:var(--admin-preview-grid-color)}.admin-map-preview .gallery-route-preview-caption span:first-child:last-child{color:var(--ink)}.admin-map-list-main{display:grid;min-width:0;gap:.25rem}.admin-map-list--cards .admin-map-list-main{align-content:start;gap:.55rem}.admin-map-list-main a{overflow:hidden;color:var(--brand-ink);font-size:1rem;font-weight:850;line-height:1.35;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.admin-map-list--cards .admin-map-list-main a{display:-webkit-box;overflow:hidden;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.admin-map-list-main a:hover{text-decoration:underline;text-underline-offset:.15em}.admin-map-list-main p,.admin-map-list-row time,.admin-map-list-details span{margin:0;color:var(--text-muted);font-size:.8rem;font-weight:700}.admin-map-list-main p{overflow:hidden;text-overflow:ellipsis}.admin-map-list--cards .admin-map-list-main p{display:-webkit-box;line-height:1.55;-webkit-box-orient:vertical;-webkit-line-clamp:3}.admin-map-list-meta,.admin-map-list-details{display:flex;min-width:0;align-items:center;flex-wrap:wrap;gap:.45rem}.admin-map-list-details{justify-content:flex-end}.admin-map-list--cards .admin-map-list-details{justify-content:flex-start;border-top:1px solid var(--border);padding-top:.75rem}.admin-map-visibility{width:fit-content;border:1px solid var(--brand-soft-border);border-radius:var(--r-pill);background:var(--brand-soft);color:var(--brand-ink);padding:.12rem .5rem;font-size:.72rem;font-weight:850}.admin-map-list-meta>span:not(.admin-map-visibility){color:var(--text-subtle);font-size:.72rem;font-weight:800}.admin-map-list-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem}.admin-map-list--cards .admin-map-list-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;border-top:1px solid var(--border);padding-top:.75rem}.admin-map-list--cards .admin-map-list-actions .ui-button{width:100%;min-width:0}.admin-map-list--cards .admin-map-list-actions .admin-danger-button{grid-column:1 / -1}.admin-danger-button{border-color:#be42348c;color:var(--danger)}.admin-danger-button:hover{background:#be42341a}.admin-shell-icon,.admin-mini-icon{width:1.08rem;height:1.08rem;flex:0 0 auto}.admin-shell.admin-console-shell{grid-template-columns:256px minmax(0,1fr);background:#f8f9f6;transition:grid-template-columns .18s var(--ease)}.admin-shell.admin-console-shell.admin-console-shell--sidebar-collapsed{grid-template-columns:76px minmax(0,1fr)}.admin-console-sidebar{padding:1.45rem .95rem;background:#fff;overflow:hidden;transition:padding .18s var(--ease)}.admin-console-shell--sidebar-collapsed .admin-console-sidebar{padding-inline:.65rem}.admin-sidebar-brand{gap:.75rem;padding:0 .85rem 1.85rem;font-size:1.24rem;transition:padding .18s var(--ease)}.admin-console-shell--sidebar-collapsed .admin-sidebar-brand{justify-content:center;padding-inline:0}.admin-console-shell--sidebar-collapsed .admin-sidebar-brand>span{display:none}.admin-sidebar-nav{gap:.45rem}.admin-sidebar-tab,.admin-sidebar-link{display:grid;min-height:4rem;grid-template-columns:1.2rem minmax(0,1fr);align-items:center;align-content:center;gap:.85rem;border-radius:8px;padding:.72rem .9rem}.admin-console-shell--sidebar-collapsed .admin-sidebar-tab,.admin-console-shell--sidebar-collapsed .admin-sidebar-link{min-height:3.2rem;grid-template-columns:1fr;justify-items:center;padding-inline:0}.admin-sidebar-tab>span,.admin-sidebar-link>span{display:grid;min-width:0;gap:.17rem}.admin-console-shell--sidebar-collapsed .admin-sidebar-tab>span,.admin-console-shell--sidebar-collapsed .admin-sidebar-link>span{display:none}.admin-sidebar-tab[aria-selected=true]{box-shadow:inset 3px 0 #1f6f4438}.admin-user-card{gap:1rem;padding:1.2rem .75rem 0}.admin-user-main{display:grid;min-width:0;grid-template-columns:2.15rem minmax(0,1fr);align-items:center;gap:.65rem}.admin-console-shell--sidebar-collapsed .admin-user-main{grid-template-columns:1fr;justify-items:center}.admin-user-main>div{display:grid;min-width:0;gap:.12rem}.admin-console-shell--sidebar-collapsed .admin-user-main>div{display:none}.admin-console-shell--sidebar-collapsed .admin-password-panel{display:none}.admin-user-avatar{display:inline-grid;width:2.15rem;height:2.15rem;place-items:center;border-radius:999px;background:var(--brand);color:#fff;font-size:.78rem;font-weight:850}.admin-sidebar-collapse{display:inline-flex;align-items:center;justify-content:flex-start;gap:.55rem;border:0;background:transparent;color:var(--ink);cursor:pointer;font:inherit;font-size:.78rem;font-weight:750;padding:0}.admin-sidebar-collapse .admin-shell-icon{transition:transform .18s var(--ease)}.admin-console-shell--sidebar-collapsed .admin-sidebar-collapse{width:100%;min-height:2.35rem;justify-content:center}.admin-console-shell--sidebar-collapsed .admin-sidebar-collapse .admin-shell-icon{transform:rotate(180deg)}.admin-console-shell--sidebar-collapsed .admin-sidebar-collapse span{display:none}.admin-console-header{min-height:74px;padding:0 1.75rem}.admin-header-copy h1{font-size:clamp(1.28rem,1.8vw,1.55rem);white-space:nowrap}.admin-console-actions .ui-button{min-height:2.5rem;border-radius:6px}.admin-top-search{width:min(36rem,34vw);min-width:0;min-height:2.5rem;border-radius:6px}@media (min-width: 981px) and (max-width: 1280px){.admin-console-header{min-height:auto;align-items:stretch;flex-direction:column;gap:.75rem;padding-block:.75rem}.admin-console-actions{width:100%;min-width:0;justify-content:flex-start}.admin-top-search{width:auto;min-width:0;flex:1 1 auto}.admin-console-actions .ui-button{flex:0 0 auto}}.admin-top-search kbd{border:1px solid var(--border);border-radius:6px;background:var(--surface-raised);color:var(--text-subtle);font-size:.72rem;font-weight:800;line-height:1;padding:.2rem .38rem}.admin-dashboard-panel--maps{padding:1.35rem 1.75rem 1.75rem}.admin-map-management{gap:1rem;grid-template-rows:auto minmax(0,1fr)}.admin-map-workspace{display:grid;min-height:0;grid-template-columns:minmax(0,1fr) 330px;gap:1rem;align-items:stretch}.admin-map-list-pane{display:grid;min-width:0;min-height:0;grid-template-rows:auto auto auto minmax(0,1fr);align-content:start;gap:.75rem}.admin-map-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;border-radius:8px;padding:1rem}.admin-map-filter-tabs,.admin-map-toolbar-controls{display:flex;min-width:0;align-items:center;flex-wrap:wrap;gap:.55rem}.admin-map-toolbar-controls{justify-content:flex-end;gap:.85rem}.admin-map-filter-chip{display:inline-flex;min-height:2.15rem;align-items:center;gap:.45rem;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:var(--ink);cursor:pointer;font:inherit;font-size:.78rem;font-weight:800;padding:0 .78rem}.admin-map-filter-chip strong{display:inline-grid;min-width:1.28rem;height:1.28rem;place-items:center;border-radius:999px;background:var(--surface-raised);color:var(--text-muted);font-size:.7rem;line-height:1}.admin-map-filter-chip[aria-pressed=true]{border-color:var(--brand);background:var(--brand);color:#fff}.admin-map-filter-chip[aria-pressed=true] strong{background:#ffffff29;color:#fff}.admin-map-view-switch{overflow:hidden;border:1px solid var(--border-strong);border-radius:6px;background:#fff;gap:0;padding:.12rem}.admin-map-view-button{display:inline-grid;width:2.15rem;height:2.15rem;place-items:center;border:0;border-radius:5px;background:transparent;color:var(--text-muted);cursor:pointer;padding:0}.admin-map-view-button[aria-pressed=true]{background:var(--brand-soft);color:var(--brand-ink);box-shadow:inset 0 0 0 1px var(--brand)}.admin-map-sort-select select{min-height:2.4rem;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:var(--ink);font:inherit;font-size:.8rem;font-weight:750;padding:0 2.25rem 0 .8rem}.admin-map-list-pane>.admin-map-list{grid-row:4;align-self:stretch;padding:.05rem .15rem 1rem 0}.admin-map-list--cards{grid-template-columns:repeat(auto-fill,minmax(min(100%,17.75rem),1fr));grid-auto-rows:max-content;gap:1rem}.admin-map-list-row{position:relative;grid-template-columns:9.4rem minmax(0,1fr) auto auto;border-radius:8px;background:#fff;cursor:default;box-shadow:0 1px 1px #0e191208,0 10px 26px #0e19120a}.admin-map-list--cards .admin-map-list-row{align-self:start;min-height:27rem;grid-template-columns:1fr;grid-template-rows:auto auto auto auto;gap:.72rem;border-radius:6px;padding:.7rem}.admin-map-list-row--selected{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand),0 12px 30px #1f6f441a}.admin-map-preview-select{position:relative;display:block;min-width:0;border:0;border-radius:6px;background:transparent;cursor:pointer;padding:0}.admin-map-list--cards .admin-map-preview-select{width:100%}.admin-map-preview-select .admin-map-preview{display:block;width:100%;aspect-ratio:1.75 / 1}.admin-map-preview .gallery-route-preview{grid-template-rows:minmax(0,1fr)}.admin-map-preview .gallery-route-preview-caption{display:none}.admin-map-preview .gallery-route-preview--empty{place-items:center;color:var(--text-muted);font-size:.82rem;font-weight:800;text-align:center}.admin-map-selected-mark{position:absolute;top:.55rem;right:.55rem;display:inline-grid;width:1.65rem;height:1.65rem;place-items:center;border-radius:999px;background:var(--brand);color:#fff;box-shadow:0 4px 12px #0e191233}.admin-map-list-main{gap:.45rem}.admin-map-list--cards .admin-map-list-main{min-height:4.25rem;gap:.48rem}.admin-map-list-main a{color:var(--ink);font-size:1rem;line-height:1.35}.admin-map-list--cards .admin-map-list-main p{display:none}.admin-map-route-state{border-radius:999px;background:#e2913324;color:#a85f10;padding:.14rem .5rem}.admin-map-list--cards .admin-map-list-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .75rem}.admin-map-list--cards .admin-map-list-details time{order:-1;grid-column:1 / -1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-map-list-actions{align-items:center}.admin-map-list--cards .admin-map-list-actions{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 2.3rem;gap:.35rem}.admin-map-list--cards .admin-map-list-actions .ui-button{min-width:0;min-height:2.3rem;overflow:hidden;padding-inline:.45rem;font-size:.78rem;text-overflow:ellipsis}.admin-map-list--cards .admin-map-list-actions .admin-map-card-menu{width:100%;min-width:0;height:2.3rem}.admin-map-card-menu-wrap{position:relative;display:inline-grid;width:2.3rem;justify-self:end}.admin-map-list--cards .admin-map-list-actions .admin-map-card-menu-wrap{width:2.3rem}.admin-map-card-menu{display:inline-grid;min-width:2.3rem;height:2.3rem;place-items:center;border:1px solid var(--border-strong);border-radius:6px;background:#fff;color:var(--ink);cursor:pointer;padding:0}.admin-map-card-menu-popover{position:absolute;right:0;bottom:calc(100% + .35rem);z-index:var(--z-popover);display:grid;min-width:9.4rem;gap:.12rem;border:1px solid var(--border-strong);border-radius:8px;background:#fff;box-shadow:0 16px 38px #0e191224;padding:.35rem}.admin-map-card-menu-item{display:flex;min-height:2.1rem;align-items:center;border:0;border-radius:6px;background:transparent;color:var(--ink);cursor:pointer;font:inherit;font-size:.8rem;font-weight:800;line-height:1.25;padding:.45rem .6rem;text-align:left;text-decoration:none}.admin-map-card-menu-item:hover,.admin-map-card-menu-item:focus-visible{background:var(--brand-soft);color:var(--brand-ink);outline:none}.admin-map-card-menu-item--danger{color:var(--danger)}.admin-map-card-menu-item--danger:hover,.admin-map-card-menu-item--danger:focus-visible{background:#be42341a;color:var(--danger)}.admin-map-card-menu-item:disabled{cursor:not-allowed;opacity:.55}.admin-map-detail-panel{display:grid;min-width:0;max-height:100%;align-content:start;gap:1rem;overflow-y:auto;border:1px solid var(--border);border-radius:8px;background:#fff;padding:1rem}.admin-map-detail-panel--empty{place-items:center;color:var(--text-muted);font-size:.86rem;font-weight:700;text-align:center}.admin-map-detail-title{display:flex;align-items:flex-start;justify-content:space-between;gap:.85rem;border-bottom:1px solid var(--border);padding-bottom:.9rem}.admin-map-detail-title h3{margin:0;color:var(--ink);font-size:1.1rem;line-height:1.35}.admin-map-detail-title p,.admin-map-detail-section h4,.admin-map-detail-meta dt,.admin-map-detail-warning,.admin-map-detail-loading{margin:0;color:var(--text-muted);font-size:.76rem;font-weight:800}.admin-map-detail-section{display:grid;gap:.55rem}.admin-map-copy-field{display:grid;min-width:0;grid-template-columns:minmax(0,1fr) 2rem auto;align-items:center;gap:.35rem}.admin-map-copy-field code{min-width:0;overflow:hidden;border:1px solid var(--border);border-radius:6px;background:var(--surface-raised);color:var(--ink);font-size:.73rem;padding:.45rem .55rem;text-overflow:ellipsis;white-space:nowrap}.admin-map-copy-field button,.admin-map-copy-field a{display:inline-grid;width:2rem;height:2rem;place-items:center;border:1px solid var(--border);border-radius:6px;background:#fff;color:var(--brand-ink);cursor:pointer;padding:0}.admin-map-detail-download.ui-button{width:100%;min-height:2.35rem;justify-content:flex-start}.admin-map-detail-meta{display:grid;gap:.45rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:0;padding:.8rem 0}.admin-map-detail-meta div{display:grid;grid-template-columns:5rem minmax(0,1fr);gap:.5rem}.admin-map-detail-meta dd{min-width:0;overflow:hidden;margin:0;color:var(--ink);font-size:.78rem;font-weight:750;text-align:right;text-overflow:ellipsis;white-space:nowrap}.admin-map-layer-list{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.admin-map-layer-list li{display:flex;align-items:center;justify-content:space-between;gap:.7rem;color:var(--ink);font-size:.78rem;font-weight:750}.admin-map-layer-list strong{display:inline-flex;align-items:center;gap:.35rem;color:var(--ok);font-size:.72rem}.admin-map-layer-list strong span{width:.4rem;height:.4rem;border-radius:999px;background:currentColor}.admin-map-detail-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.admin-map-detail-stats div{display:grid;min-height:5.2rem;align-content:center;gap:.25rem;border:1px solid var(--border);border-radius:6px;background:#fff;padding:.7rem}.admin-map-detail-stats span,.admin-map-detail-stats small{color:var(--text-muted);font-size:.72rem;font-weight:750}.admin-map-detail-stats strong{color:var(--ink);font-size:1.45rem;line-height:1}.admin-map-detail-delete.ui-button{width:100%;min-height:2.45rem}@media (max-width: 1360px){.admin-map-workspace{grid-template-columns:1fr}.admin-map-detail-panel{position:static;max-height:none}}@media (max-width: 760px){.admin-map-toolbar,.admin-map-toolbar-controls,.admin-map-list-row,.admin-map-list--cards .admin-map-list-row{grid-template-columns:1fr}.admin-map-toolbar-controls{justify-content:flex-start}.admin-map-list--cards{grid-template-columns:1fr}.admin-map-copy-field,.admin-map-list--cards .admin-map-list-actions{grid-template-columns:minmax(0,1fr) auto}.admin-map-list--cards .admin-map-list-actions .ui-button{grid-column:1 / -1}}.admin-map-list-row{grid-template-columns:9.4rem minmax(0,1fr) minmax(15rem,22rem) auto}.admin-map-list-details{display:grid;min-width:0;justify-content:stretch;gap:.55rem}.admin-map-list--cards .admin-map-list-row{min-height:0;grid-template-rows:auto auto auto auto}.admin-map-list--cards .admin-map-list-details{display:grid;grid-template-columns:minmax(0,1fr);gap:.55rem}.admin-map-list-details time{white-space:normal;overflow-wrap:anywhere}.admin-map-route-grading-message{margin:0;color:var(--text-muted);font-size:.78rem;font-weight:750;line-height:1.5}.admin-map-route-grading-list{display:grid;min-width:0;gap:.55rem;margin:0;padding:0;list-style:none}.admin-map-route-grading-row{display:grid;min-width:0;gap:.45rem;border:1px solid var(--border);border-radius:6px;background:var(--surface-raised);padding:.65rem}.admin-map-route-grading-row dl{display:grid;min-width:0;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem .7rem;margin:0}.admin-map-route-grading-row dl>div{display:grid;min-width:0;gap:.12rem}.admin-map-route-grading-row dt{color:var(--text-subtle);font-size:.68rem;font-weight:800}.admin-map-route-grading-row dd{min-width:0;margin:0;overflow-wrap:anywhere;color:var(--ink);font-size:.78rem;font-variant-numeric:tabular-nums;font-weight:800;line-height:1.35}@media (max-width: 760px){.admin-map-list-row{grid-template-columns:1fr}}@media (max-width: 420px){.admin-map-route-grading-row dl{grid-template-columns:1fr}}.admin-map-workspace--list{grid-template-columns:minmax(0,1fr)}.admin-map-list-pane>.admin-map-grading-table-wrap{grid-row:4;min-width:0;min-height:0;align-self:stretch;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable;border:1px solid var(--border);border-radius:8px;background:#fff;box-shadow:0 1px 1px #0e191208}.admin-map-grading-table{width:100%;border-collapse:collapse;table-layout:fixed}.admin-map-grading-table caption{border-bottom:1px solid var(--border);color:var(--ink);font-size:.96rem;font-weight:850;letter-spacing:.02em;padding:.85rem 1rem;text-align:left}.admin-map-grading-table-col--name{width:27%}.admin-map-grading-table-col--visibility{width:9%}.admin-map-grading-table-col--strength{width:11%}.admin-map-grading-table-col--difficulty{width:12%}.admin-map-grading-table-col--time{width:11%}.admin-map-grading-table-col--distance{width:9%}.admin-map-grading-table-col--updated{width:11%}.admin-map-grading-table-col--actions{width:10%}.admin-map-grading-table th,.admin-map-grading-table td{min-width:0;border-bottom:1px solid var(--border);padding:.78rem .7rem;vertical-align:middle}.admin-map-grading-table th{position:sticky;z-index:1;top:0;background:var(--surface-raised);color:var(--text-muted);font-size:.7rem;font-weight:850;letter-spacing:.03em;line-height:1.35;text-align:left}.admin-map-grading-table-sort-button{display:inline-flex;width:100%;min-height:1.7rem;min-width:0;align-items:center;justify-content:space-between;gap:.3rem;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;padding:0;text-align:inherit}.admin-map-grading-table th:not(:first-child):not(:last-child) .admin-map-grading-table-sort-button{justify-content:center}.admin-map-grading-table-sort-button:hover,.admin-map-grading-table-sort-button:focus-visible{color:var(--brand-ink);outline:none}.admin-map-grading-table-sort-button:focus-visible{border-radius:3px;box-shadow:0 0 0 2px #12784747}.admin-map-grading-table-sort-icon{flex:0 0 auto;color:var(--text-subtle)}.admin-map-grading-table-sort-icon.is-active{color:var(--brand-ink)}.admin-map-grading-table th:not(:first-child):not(:last-child),.admin-map-grading-table td:not(:first-child):not(:last-child){text-align:center}.admin-map-grading-table tbody tr:last-child td{border-bottom:0}.admin-map-grading-table tbody tr:hover{background:#1f6f440a}.admin-map-grading-table td{color:var(--ink);font-size:.8rem;font-variant-numeric:tabular-nums;font-weight:800;line-height:1.45;overflow-wrap:anywhere}.admin-map-grading-table-name{text-align:left!important}.admin-map-grading-table-name a{color:var(--ink);font-size:.9rem;font-weight:850;line-height:1.5;overflow-wrap:anywhere;text-decoration:none}.admin-map-grading-table-name a:hover,.admin-map-grading-table-name a:focus-visible{color:var(--brand-ink);text-decoration:underline}.admin-map-grading-table-note,.admin-map-grading-table-message{display:block;color:var(--text-muted);font-size:.72rem;font-weight:750;line-height:1.45}.admin-map-grading-table-note{margin-top:.28rem}.admin-map-grading-table-message{color:#a85f10}.admin-map-grading-table td time{color:var(--text-muted);font-size:.74rem;font-weight:750}.admin-map-grading-table-actions-cell{text-align:left!important}.admin-map-grading-table-actions{display:flex;min-width:0;align-items:stretch;flex-wrap:wrap;gap:.35rem}.admin-map-grading-table-actions .ui-button,.admin-map-grading-table-menu{flex:1 1 calc(50% - .18rem);min-width:0;min-height:2rem}.admin-map-grading-table-actions .ui-button{justify-content:center;font-size:.72rem;padding-inline:.4rem}.admin-map-grading-table-menu{border:1px solid var(--border-strong);border-radius:6px;background:#fff}.admin-map-grading-table-menu summary{display:flex;min-height:2rem;align-items:center;justify-content:center;color:var(--brand-ink);cursor:pointer;font-size:.72rem;font-weight:800;list-style:none;padding:.35rem .4rem}.admin-map-grading-table-menu summary::-webkit-details-marker{display:none}.admin-map-grading-table-menu[open] summary{border-bottom:1px solid var(--border)}.admin-map-grading-table-menu>div{display:grid;gap:.2rem;padding:.3rem}.admin-map-grading-table-menu a,.admin-map-grading-table-menu button{display:flex;min-height:2rem;align-items:center;justify-content:center;border:0;border-radius:4px;background:transparent;color:var(--brand-ink);cursor:pointer;font:inherit;font-size:.72rem;font-weight:800;line-height:1.3;padding:.35rem;text-decoration:none}.admin-map-grading-table-menu a:hover,.admin-map-grading-table-menu a:focus-visible,.admin-map-grading-table-menu button:hover,.admin-map-grading-table-menu button:focus-visible{background:var(--brand-soft);outline:none}.admin-map-grading-table-menu button{color:var(--danger)}.admin-map-grading-table-menu button:hover,.admin-map-grading-table-menu button:focus-visible{background:#be42341a}.admin-map-grading-table-menu button:disabled{cursor:not-allowed;opacity:.55}@media (max-width: 1400px){.admin-map-list-pane>.admin-map-grading-table-wrap{overflow-x:hidden;overflow-y:auto;border:0;background:transparent;box-shadow:none}.admin-map-grading-table,.admin-map-grading-table tbody{display:block;width:100%}.admin-map-grading-table colgroup{display:none}.admin-map-grading-table caption,.admin-map-grading-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.admin-map-grading-table tbody{display:grid;gap:.75rem}.admin-map-grading-table-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));overflow:hidden;border:1px solid var(--border);border-radius:8px;background:#fff;box-shadow:0 1px 1px #0e191208}.admin-map-grading-table th,.admin-map-grading-table td{display:grid;grid-template-columns:minmax(6.6rem,43%) minmax(0,1fr);align-items:start;gap:.55rem;border:0;border-top:1px solid var(--border);padding:.7rem .8rem;text-align:right!important}.admin-map-grading-table td:before{color:var(--text-muted);content:attr(data-label);font-size:.7rem;font-variant-numeric:normal;font-weight:850;letter-spacing:.03em;line-height:1.45;text-align:left}.admin-map-grading-table-name,.admin-map-grading-table-actions-cell{grid-column:1 / -1;grid-template-columns:1fr!important;text-align:left!important}.admin-map-grading-table-name:before,.admin-map-grading-table-actions-cell:before{margin-bottom:-.12rem}.admin-map-grading-table-row>td:nth-child(1){border-top:0}.admin-map-grading-table-actions{max-width:30rem}.admin-map-grading-table-actions .ui-button,.admin-map-grading-table-menu{flex:1 1 calc(50% - .18rem)}}@media (max-width: 560px){.admin-map-grading-table-row{grid-template-columns:1fr}.admin-map-grading-table th,.admin-map-grading-table td{grid-template-columns:minmax(6.1rem,42%) minmax(0,1fr)}.admin-map-grading-table-row>td:nth-child(2){border-top:1px solid var(--border)}.admin-map-grading-table-actions{max-width:none}.admin-map-grading-table-actions .ui-button,.admin-map-grading-table-menu{flex-basis:100%}}.map-editor-shell{display:grid;min-height:100vh;grid-template-rows:auto minmax(420px,1fr);gap:1rem;padding:1rem clamp(.75rem,2vw,1.5rem)}.map-editor-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--border);padding:.25rem 0 1rem}.map-editor-header .login-brand{margin-bottom:.1rem}.map-editor-header h1{margin:0;color:var(--ink);font-size:1.5rem;font-weight:750;letter-spacing:-.01em;line-height:1.2}.map-editor-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.6rem}.map-editor-layout{display:grid;min-height:0;grid-template-columns:minmax(280px,340px) minmax(0,1fr);gap:1rem}.map-editor-side-panels{display:grid;min-height:0;grid-template-rows:minmax(0,1fr) auto;gap:1rem}.layer-panel,.map-settings-panel,.route-editor-panel,.landmark-editor-panel,.gpx-import-panel,.gpx-export-panel,.profile-panel,.route-legend-panel{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm)}.layer-panel{min-height:0;overflow:auto;padding:1.15rem}.map-settings-panel{padding:1.15rem}.map-settings-panel h2,.map-settings-fieldset{margin:0}.map-settings-panel h2{color:var(--ink);font-size:1.05rem;font-weight:700;line-height:1.2}.map-settings-fieldset{display:grid;gap:.4rem;border:0;padding:.8rem 0 0}.map-settings-fieldset legend{color:var(--text-muted);font-size:.74rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase}.layer-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1rem}.layer-panel-header h2,.layer-panel-header p,.layer-category h3,.layer-panel-error{margin:0}.layer-panel-header h2{color:var(--ink);font-size:1.15rem;font-weight:750;letter-spacing:-.01em;line-height:1.2}.layer-panel-header p,.layer-placeholder-list{color:var(--text-subtle);font-size:.78rem}.layer-panel-error{border:1px solid var(--danger-border);border-radius:var(--r-sm);background:var(--danger-soft);color:var(--danger-ink);padding:.65rem .75rem;font-size:.85rem;font-weight:600}.layer-category{display:flex;flex-direction:column;gap:.75rem;border-top:1px solid var(--border);padding-top:1rem}.layer-category+.layer-category{margin-top:1rem}.layer-category h3{color:var(--text-muted);font-size:.76rem;font-weight:800;letter-spacing:.05em;line-height:1.2;text-transform:uppercase}.layer-list,.layer-placeholder-list{display:flex;flex-direction:column;gap:.65rem;margin:0;padding:0;list-style:none}.layer-row{list-style:none}.layer-toggle{display:flex;align-items:center;gap:.5rem;color:var(--ink);font-size:.9rem;font-weight:700;line-height:1.25}.layer-toggle input{width:1.05rem;height:1.05rem;margin:.08rem 0 0;accent-color:var(--brand)}.layer-help{position:relative;display:inline-flex;margin-left:.15rem}.layer-help-trigger{display:inline-flex;width:1.2rem;height:1.2rem;align-items:center;justify-content:center;border:1px solid var(--border-strong);border-radius:var(--r-pill);background:var(--surface);color:var(--text-muted);cursor:help;font-size:.72rem;font-weight:800;line-height:1;padding:0}.layer-help-trigger:hover{border-color:var(--brand-soft-border);color:var(--brand-ink)}.layer-tooltip-text{position:absolute;z-index:5;top:calc(100% + .4rem);left:-.4rem;width:min(14rem,68vw);border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--ink);box-shadow:var(--shadow-lg);color:#f3f5f0;font-size:.76rem;font-weight:600;line-height:1.45;opacity:0;padding:.6rem .7rem;pointer-events:none;transition:opacity .12s var(--ease);visibility:hidden}.layer-help:hover .layer-tooltip-text,.layer-help:focus-within .layer-tooltip-text{opacity:1;visibility:visible}.layer-field{display:flex;flex-direction:column;gap:.35rem;color:var(--text-muted);font-size:.78rem;font-weight:650}.layer-field input[type=range]{width:100%;accent-color:var(--brand)}.layer-field select{min-height:2.3rem;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);padding:0 .65rem}.layer-usage-note{margin:0;border-left:3px solid var(--accent);color:var(--text-muted);font-size:.76rem;font-weight:600;line-height:1.45;padding-left:.6rem}.layer-category--placeholder{color:var(--text-subtle)}.map-view{position:relative;height:min(78vh,760px);min-height:420px;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-sunken);box-shadow:var(--shadow-sm)}.map-editor-view{height:calc(100vh - 7rem);min-height:420px}.route-editor{display:grid;min-width:0;min-height:0;grid-template-columns:minmax(240px,300px) minmax(0,1fr);gap:1rem}.route-editor-side{display:flex;min-height:0;flex-direction:column;gap:1rem;overflow:auto}.route-editor-workspace{display:grid;min-width:0;gap:.75rem;grid-template-rows:minmax(360px,1fr) auto}.route-editor-panel,.landmark-editor-panel,.gpx-import-panel,.gpx-export-panel{min-height:0;overflow:auto;padding:1.15rem}.route-editor-heading,.landmark-editor-heading,.gpx-import-panel__heading,.gpx-export-panel__heading,.route-actions{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.route-editor-heading,.landmark-editor-heading,.gpx-import-panel__heading,.gpx-export-panel__heading{margin-bottom:1rem}.route-editor-heading h2,.landmark-editor-heading h2,.gpx-import-panel__heading h2,.gpx-export-panel__heading h2,.route-stats,.route-stats dd,.route-stats dt,.route-status,.route-error,.landmark-empty{margin:0}.route-editor-heading h2,.landmark-editor-heading h2,.gpx-import-panel__heading h2,.gpx-export-panel__heading h2{font-size:1.12rem;font-weight:750;letter-spacing:-.01em;line-height:1.2}.gpx-import-panel__heading p{margin:.2rem 0 0;color:var(--text-subtle);font-size:.76rem;font-weight:600}.gpx-import-panel__input{display:none}.gpx-import-files,.gpx-import-result ul{display:grid;gap:.45rem;margin:.75rem 0;padding:0;list-style:none}.gpx-import-files li,.gpx-import-result>ul>li{display:grid;gap:.35rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-raised);color:var(--text-muted);font-size:.78rem;padding:.6rem}.gpx-import-files li{grid-template-columns:minmax(0,1fr) auto}.gpx-import-progress{display:grid;grid-template-columns:minmax(0,1fr) 3rem;align-items:center;gap:.5rem;margin-bottom:.75rem;color:var(--text-muted);font-size:.76rem;font-weight:700}.gpx-import-progress progress{width:100%;height:.5rem;accent-color:var(--brand)}.gpx-import-result p{margin:.75rem 0 0;color:var(--text);font-size:.82rem;font-weight:700}.gpx-export-actions{display:flex;flex-wrap:wrap;gap:.45rem}.gpx-export-actions .ui-button{min-height:2.15rem;padding:0 .75rem}.favorite-button{min-height:2.15rem;gap:.35rem;padding:0 .75rem}.favorite-button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.favorite-button__icon{font-size:1rem;line-height:1}.gpx-import-result ul ul{margin:.35rem 0 0;padding-left:1rem;color:var(--danger-ink)}.route-field,.route-check{display:flex;gap:.45rem;color:var(--text);font-size:.84rem;font-weight:650}.route-field{flex-direction:column;margin-bottom:.8rem}.route-check{align-items:center;margin-bottom:.8rem}.route-field-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.route-field input,.route-field select,.route-field textarea{min-height:2.4rem;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);padding:0 .7rem;transition:border-color .13s var(--ease),box-shadow .13s var(--ease)}.route-field input:focus,.route-field select:focus,.route-field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2f5d4a24;outline:none}.route-field textarea{min-height:6rem;padding:.55rem .7rem;resize:vertical}.route-field input[type=color]{padding:.2rem;cursor:pointer}.landmark-image-field{margin-bottom:.8rem}.landmark-image-uploader{display:grid;gap:.65rem;border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--surface-raised);padding:.85rem;transition:border-color .13s var(--ease),background-color .13s var(--ease)}.landmark-image-uploader--dragging{border-color:var(--brand);background:var(--brand-soft)}.landmark-image-uploader__header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.landmark-image-uploader__header label{color:var(--text);font-size:.84rem;font-weight:700}.landmark-image-uploader__header p{margin:.2rem 0 0;color:var(--text-subtle);font-size:.76rem}.landmark-image-uploader__input{display:none}.landmark-upload-list{display:grid;gap:.45rem;margin:0;padding:0;list-style:none}.landmark-upload-list li{display:grid;grid-template-columns:minmax(0,1fr) 5rem 2.6rem;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.76rem}.landmark-upload-list progress{width:5rem;height:.45rem;accent-color:var(--brand)}.route-check input{width:1.05rem;height:1.05rem;accent-color:var(--brand)}.route-stats{display:grid;gap:.5rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:.25rem 0;padding:.95rem 0}.route-stats div{display:flex;justify-content:space-between;gap:1rem}.route-stats dt{color:var(--text-muted);font-size:.78rem;font-weight:600}.route-stats dd{color:var(--ink);font-size:.92rem;font-weight:800}.elevation-breakdown{display:inline-grid;gap:.18rem;min-width:4.8rem;line-height:1.15}.elevation-breakdown-row{display:flex;align-items:baseline;justify-content:space-between;gap:.4rem;min-width:0}.elevation-breakdown-label{color:var(--text-muted);font-size:.72em;font-weight:750;white-space:nowrap}.elevation-breakdown-value{color:inherit;font-weight:inherit;white-space:nowrap}.elevation-breakdown--compact{min-width:4.2rem;gap:.12rem}.route-actions{flex-wrap:wrap;margin-top:.9rem}.route-status,.route-error,.route-selection-status{margin-top:.75rem;border:1px solid transparent;border-radius:var(--r-sm);padding:.6rem .7rem;font-size:.82rem;font-weight:650}.route-status{border-color:var(--brand-soft-border);background:var(--ok-soft);color:var(--ok-ink)}.route-error{border-color:var(--danger-border);background:var(--danger-soft);color:var(--danger-ink)}.route-selection-status{border-color:var(--info-border);background:var(--info-soft);color:var(--info-ink)}.route-waypoints{display:flex;flex-direction:column;gap:.4rem;margin:.95rem 0 0;padding:0;list-style:none}.route-waypoints li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.15rem .55rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-raised);padding:.6rem;color:var(--text-muted);font-size:.76rem;transition:border-color .12s var(--ease)}.route-waypoints li:hover{border-color:var(--brand-soft-border)}.route-waypoints li span:first-child{color:var(--ink);font-weight:800}.route-waypoints .route-waypoint--selected{border-color:var(--info);background:var(--info-soft)}.route-waypoints li span:last-child{grid-column:2}.route-editor-map{height:min(58vh,calc(100vh - 18rem));min-height:360px}.route-point-marker,.route-midpoint-marker{display:inline-flex;align-items:center;justify-content:center;border:2px solid #ffffff;box-shadow:var(--shadow-md);cursor:pointer;font-weight:800;line-height:1;pointer-events:auto;transition:transform 90ms var(--ease)}.route-point-marker:hover,.route-midpoint-marker:hover{transform:scale(1.12)}.route-point-marker{width:1.55rem;height:1.55rem;border-radius:var(--r-pill);background:var(--accent);color:#fff;font-size:.74rem}.route-point-marker--selected{border-color:var(--highlight);background:var(--info)}.route-midpoint-marker{width:1.25rem;height:1.25rem;border-radius:5px;background:#fff;color:var(--brand);font-size:.82rem}.landmark-kind-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;margin:0 0 .8rem;border:0;padding:0}.landmark-kind-grid legend{margin-bottom:.45rem;color:var(--text);font-size:.84rem;font-weight:700}.landmark-kind-button{display:grid;min-height:3.2rem;grid-template-columns:1.35rem minmax(0,1fr);align-items:center;gap:.4rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-raised);color:var(--text);cursor:pointer;font:inherit;font-size:.72rem;font-weight:700;line-height:1.2;padding:.45rem;text-align:left;transition:border-color .12s var(--ease),background-color .12s var(--ease)}.landmark-kind-button:hover{border-color:var(--brand-soft-border)}.landmark-kind-button[aria-pressed=true]{border-color:var(--brand);background:var(--brand-soft);color:var(--brand-ink)}.landmark-kind-icon,.landmark-marker-icon{display:inline-flex;align-items:center;justify-content:center}.landmark-kind-icon svg,.landmark-marker-icon svg{width:1.15rem;height:1.15rem}.landmark-empty{border:1px dashed var(--border-strong);border-radius:var(--r-sm);color:var(--text-subtle);font-size:.82rem;font-weight:650;padding:.85rem}.landmark-form{display:flex;flex-direction:column}.landmark-images,.landmark-list{display:flex;flex-direction:column;gap:.45rem;margin:.8rem 0 0;padding:0;list-style:none}.landmark-images li,.landmark-list button{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-raised);color:var(--text-muted);font-size:.76rem;padding:.6rem}.landmark-images li{display:grid;gap:.55rem}.landmark-image-alt-field{margin:0}.landmark-image-meta{display:flex;flex-wrap:wrap;gap:.6rem;color:var(--text-subtle);font-size:.72rem;font-weight:700}.landmark-image-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.landmark-list button{display:grid;width:100%;grid-template-columns:minmax(0,1fr);gap:.15rem;cursor:pointer;font:inherit;text-align:left;transition:border-color .12s var(--ease),background-color .12s var(--ease)}.landmark-list button:hover{border-color:var(--brand-soft-border)}.landmark-list button[aria-pressed=true]{border-color:var(--info);background:var(--info-soft)}.landmark-list strong{color:var(--ink);font-size:.86rem}.landmark-marker{position:relative;display:inline-flex;width:2rem;height:2rem;align-items:center;justify-content:center;border:2px solid #ffffff;border-radius:var(--r-pill);background:var(--brand);box-shadow:var(--shadow-md);color:#fff;cursor:pointer;pointer-events:auto;transition:transform 90ms var(--ease)}.landmark-marker:hover{transform:scale(1.1)}.landmark-marker--selected,.landmark-marker--active{background:var(--accent);box-shadow:0 0 0 3px #e7b9489e,var(--shadow-md)}.landmark-marker-tooltip{position:absolute;bottom:calc(100% + .4rem);left:50%;width:max-content;max-width:12rem;transform:translate(-50%);border:1px solid var(--ink);border-radius:5px;background:var(--ink);color:#f3f5f0;font-size:.72rem;font-weight:700;line-height:1.3;opacity:0;padding:.3rem .45rem;pointer-events:none;transition:opacity .12s var(--ease);visibility:hidden;white-space:nowrap}.landmark-marker:hover .landmark-marker-tooltip,.landmark-marker:focus-visible .landmark-marker-tooltip{opacity:1;visibility:visible}.landmark-popover{position:fixed;right:1rem;bottom:4rem;z-index:8;width:min(24rem,calc(100vw - 2rem));max-height:min(76vh,42rem);overflow:auto;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);box-shadow:var(--shadow-xl);color:var(--ink);padding:1.15rem}.landmark-detail-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:.75rem}.landmark-detail-header p,.landmark-detail-header h2,.landmark-markdown p,.landmark-markdown h2,.landmark-markdown h3,.landmark-markdown ul,.landmark-markdown-empty{margin:0}.landmark-detail-header p{color:var(--text-subtle);font-size:.74rem;font-weight:800;letter-spacing:.03em;text-transform:uppercase}.landmark-detail-header h2{margin-top:.15rem;color:var(--ink);font-size:1.1rem;font-weight:750;line-height:1.25}.landmark-detail-icon{display:inline-flex;width:2.2rem;height:2.2rem;align-items:center;justify-content:center;border-radius:var(--r-pill);background:var(--brand);color:#fff}.landmark-detail-icon svg{width:1.25rem;height:1.25rem}.landmark-detail-close{min-height:2rem;padding:0 .65rem}.landmark-markdown,.landmark-media,.landmark-video{margin-top:.9rem}.landmark-markdown{display:grid;gap:.55rem;color:var(--text);font-size:.88rem;line-height:1.6}.landmark-markdown h2{font-size:1rem}.landmark-markdown h3{font-size:.94rem}.landmark-markdown ul{padding-left:1.15rem}.landmark-markdown a{color:var(--info);text-decoration:underline;text-underline-offset:.13em}.landmark-markdown-empty{margin-top:.9rem;color:var(--text-subtle);font-size:.82rem;font-weight:650}.landmark-image-button{display:block;width:100%;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-sunken);cursor:zoom-in;padding:0}.landmark-image-button img{display:block;width:100%;max-height:15rem;object-fit:cover}.landmark-carousel-controls{display:flex;align-items:center;justify-content:space-between;gap:.6rem;margin-top:.5rem;color:var(--text-muted);font-size:.8rem;font-weight:700}.landmark-carousel-controls .ui-button{min-height:2rem;padding:0 .65rem}.landmark-video iframe{display:block;width:100%;aspect-ratio:16 / 9;border:0;border-radius:var(--r-sm);background:var(--ink)}.landmark-sheet-backdrop,.landmark-lightbox-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9;background:#1a221d7a;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.landmark-sheet{position:absolute;right:0;bottom:0;left:0;max-height:74dvh;overflow:auto;border-radius:var(--r-lg) var(--r-lg) 0 0;background:var(--surface);color:var(--ink);padding:1.15rem;box-shadow:var(--shadow-xl)}.landmark-lightbox-backdrop{z-index:12;display:flex;align-items:center;justify-content:center;padding:1rem}.landmark-lightbox{width:min(960px,100%);max-height:calc(100dvh - 2rem);overflow:auto;border-radius:var(--r-md);background:var(--surface);padding:.85rem;box-shadow:var(--shadow-xl)}.landmark-lightbox .landmark-detail-close{display:block;margin:0 0 .6rem auto}.landmark-lightbox img{display:block;width:100%;max-height:calc(100dvh - 7rem);object-fit:contain}.profile-map-cursor{width:1rem;height:1rem;border:3px solid var(--ink);border-radius:var(--r-pill);background:var(--highlight);box-shadow:0 0 0 4px #e7b94861;pointer-events:none}.profile-panel{min-width:0;padding:.95rem 1.05rem}.profile-panel-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.65rem}.profile-panel-header h2,.profile-panel-header p,.profile-empty{margin:0}.profile-panel-header h2{color:var(--ink);font-size:1rem;font-weight:700;line-height:1.2}.profile-panel-header p{color:var(--text-subtle);font-size:.76rem;font-weight:650}.profile-export-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.45rem}.profile-export-actions .ui-button{min-height:2rem;padding:0 .65rem}.profile-chart-frame{min-height:230px;overflow:hidden}.profile-chart-frame .recharts-wrapper{width:100%!important;max-width:100%}.profile-chart-frame .recharts-responsive-container{min-width:0}.profile-chart-frame .recharts-responsive-container>div{width:100%!important}.profile-empty{display:flex;min-height:210px;align-items:center;justify-content:center;border:1px dashed var(--border-strong);border-radius:var(--r-sm);color:var(--text-subtle);font-size:.86rem;font-weight:650}.profile-grade-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.45rem;color:var(--text-muted);font-size:.76rem;font-weight:650}.profile-grade-legend span{display:inline-flex;align-items:center;gap:.35rem}.profile-grade-legend span span{width:1.4rem;height:.2rem;border-radius:var(--r-pill)}.profile-panel--compact{padding:.68rem .72rem .58rem}.profile-panel--compact .profile-panel-header{align-items:start;gap:.55rem;margin-bottom:.35rem}.profile-panel--compact .profile-panel-header h2{font-size:.82rem}.profile-panel--compact .profile-panel-header p{font-size:.68rem}.profile-panel--compact .profile-export-actions{display:none}.profile-panel--compact .profile-chart-frame{min-height:118px;overflow:visible;padding-left:.12rem}.profile-panel--compact .profile-empty{min-height:108px;padding:.65rem;text-align:center;font-size:.72rem}.profile-panel--compact .profile-grade-legend{gap:.48rem;margin-top:.28rem;font-size:.66rem}.profile-panel--compact .profile-grade-legend span{gap:.25rem}.profile-panel--compact .profile-grade-legend span span{width:.9rem;height:.18rem}.public-map-shell,.embed-map-shell,.pdf-preview-shell,.gallery-shell,.about-shell{min-height:100vh;background:var(--bg);color:var(--ink)}.public-map-shell{display:flex;flex-direction:column;height:100vh;height:100dvh;min-height:0;overflow:hidden}.public-map-header,.pdf-preview-header,.gallery-header{display:flex;align-items:end;justify-content:space-between;gap:1rem;padding:1.15rem clamp(1rem,3vw,2rem);border-bottom:1px solid var(--border);background:var(--surface)}.public-map-header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.65rem}.pdf-preview-header-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.65rem;min-width:0}.pdf-preview-download-status{flex-basis:100%;max-width:28rem;margin:0;text-align:right}@media (max-width: 640px){.pdf-preview-header{align-items:stretch;flex-direction:column}.pdf-preview-header-actions{justify-content:stretch}.pdf-preview-header-actions .ui-button{flex:1 1 auto}.pdf-preview-download-status{max-width:none;text-align:left}}.public-map-header h1,.pdf-preview-header h1,.gallery-header h1{margin:0;font-size:1.4rem;font-weight:750;letter-spacing:-.01em}.public-map-header p,.pdf-preview-header p{margin:.15rem 0 0;color:var(--text-muted);font-size:.85rem}.public-map-view,.embed-map-view{height:calc(100vh - 4.8rem);min-height:420px;border:0;border-radius:0}.public-map-stage,.embed-map-shell{--map-control-rail-inline-size: 3.75rem;--map-attribution-safe-block-size: calc(4.5rem + env(safe-area-inset-bottom)) ;--map-bottom-control-block-size: 2.5rem;--map-overlay-gap: .75rem;position:relative;overflow:hidden}.public-map-error{margin:.75rem clamp(1rem,3vw,2rem)}.embed-map-view{height:100vh}.route-display-status,.public-landmark-status,.landmark-browser-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.route-legend-panel{position:absolute;top:1rem;left:1rem;z-index:5;display:grid;gap:.6rem;width:min(17rem,calc(100vw - 2rem));max-height:min(42vh,calc(100% - 2rem));overflow:auto;border:1px solid var(--border);border-radius:var(--r-md);background:#fffffff5;box-shadow:var(--shadow-lg);padding:.9rem;scrollbar-gutter:stable;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.route-legend-panel h2{margin:0;color:var(--ink);font-size:.95rem;font-weight:700;line-height:1.2}.route-legend-row{display:grid;grid-template-columns:1rem 1rem minmax(0,1fr);align-items:center;gap:.5rem;color:var(--text);font-size:.82rem;font-weight:650}.route-legend-row input{width:1rem;height:1rem;accent-color:var(--brand)}.route-legend-swatch{width:1rem;height:.28rem;border-radius:var(--r-pill)}.embed-control-cluster{position:absolute;right:.75rem;bottom:3.4rem;z-index:3;display:flex;max-width:min(18rem,calc(100vw - 1.5rem));flex-wrap:wrap;justify-content:flex-end;gap:.4rem;pointer-events:auto}.embed-control-button{min-width:2.35rem;min-height:2.35rem;padding:0 .65rem;box-shadow:var(--shadow-md)}.embed-control-button--wide{min-width:4.5rem}.embed-floating-panel{position:absolute;right:.75rem;z-index:3;width:min(22rem,calc(100vw - 1.5rem));max-height:min(62vh,34rem);overflow:auto;box-shadow:var(--shadow-lg)}.embed-floating-panel--layers{bottom:6.2rem}.embed-floating-panel--profile{right:.75rem;bottom:6.2rem;width:min(46rem,calc(100vw - 1.5rem))}.modal-backdrop{position:fixed;z-index:var(--z-modal);top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#1a221d7a;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);padding:1rem}.embed-code-modal{display:grid;width:min(46rem,100%);max-height:min(86vh,52rem);overflow:auto;gap:1rem;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);color:var(--ink);padding:1.35rem;box-shadow:var(--shadow-xl)}.embed-code-modal__header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.embed-code-modal__header h2{margin:0;font-size:1.15rem;font-weight:750}.embed-code-options{display:grid;gap:.75rem}.embed-code-check{display:flex;align-items:center;gap:.5rem;color:var(--text);font-size:.86rem;font-weight:650}.embed-code-check input{width:1.05rem;height:1.05rem;accent-color:var(--brand)}.embed-code-field,.embed-code-output{display:grid;gap:.35rem;color:var(--text-muted);font-size:.78rem;font-weight:700}.embed-code-field input,.embed-code-output input,.embed-code-output textarea{width:100%;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface-raised);color:var(--ink);font:inherit;padding:.6rem .7rem}.embed-code-output textarea{min-height:10rem;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:.8rem}.embed-code-field-grid,.embed-code-layer-grid{display:grid;gap:.65rem}.embed-code-field-grid,.embed-code-layer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pdf-preview-shell{padding-bottom:2rem}.pdf-page-preview{width:min(1120px,calc(100% - 2rem));margin:1rem auto 0;overflow-x:auto;overflow-y:hidden;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:clamp(.75rem,2vw,1.5rem);scrollbar-gutter:stable;box-shadow:var(--shadow-md)}.pdf-preview-map{height:min(62vh,720px)}.pdf-export-modal{display:grid;width:min(1220px,calc(100vw - 2rem));max-height:calc(100vh - 2rem);grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg);box-shadow:var(--shadow-xl)}.pdf-export-modal__header{align-items:flex-start;padding:1rem 1.25rem}.pdf-export-modal__header p{margin:.2rem 0 0;color:var(--text-muted);font-size:.88rem}.pdf-export-workspace{display:grid;min-height:0;grid-template-columns:minmax(280px,320px) minmax(0,1fr);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.pdf-export-controls{display:grid;align-content:start;gap:1rem;overflow-y:auto;border-right:1px solid var(--border);background:var(--surface);padding:1.25rem}.pdf-segmented-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.pdf-segmented-options--two{grid-template-columns:repeat(2,minmax(0,1fr))}.pdf-export-controls .route-check{min-height:2.35rem;justify-content:center;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);padding:.45rem .7rem;text-align:center}.pdf-export-controls .route-check:has(input:checked){border-color:var(--brand);background:var(--brand-soft);color:var(--brand-strong);font-weight:750}.pdf-export-content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.pdf-map-layer-group{display:grid;gap:.45rem;margin-top:.55rem}.pdf-export-select-field,.pdf-export-filename-field{display:grid;gap:.45rem;color:var(--text);font-size:.84rem;font-weight:700}.pdf-export-select-field select,.pdf-export-filename-field input{min-height:2.5rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);padding:0 .75rem}.pdf-export-filename-field small{color:var(--text-muted);font-size:.74rem;font-weight:600}.pdf-export-file-card{display:grid;gap:.75rem;border-top:1px solid var(--border);padding-top:1rem}.pdf-export-file-card dl{display:grid;gap:.65rem;margin:0}.pdf-export-file-card div{display:grid;gap:.2rem}.pdf-export-file-card dt{color:var(--text-muted);font-size:.75rem;font-weight:700}.pdf-export-file-card dd{margin:0;color:var(--text);font-size:.82rem;overflow-wrap:anywhere}.pdf-export-footer-actions{display:flex;justify-content:flex-end;gap:.75rem;background:var(--surface);padding:1rem 1.25rem}.pdf-export-footer-actions button:last-child{min-width:128px}.pdf-export-preview-shell{min-height:0;overflow:hidden;background:var(--surface-sunken)}.pdf-export-preview-scroll{height:100%;overflow:auto;padding:1rem}.pdf-export-document{position:relative;box-sizing:border-box;display:grid;flex:0 0 auto;grid-template-rows:auto minmax(0,1fr) auto auto;gap:16px;overflow:hidden;margin:0 auto;max-width:none;background:#fff;color:var(--ink);padding:34px;box-shadow:var(--shadow-md)}.pdf-export-document--landscape{grid-template-columns:minmax(0,1.45fr) minmax(82mm,.55fr);grid-template-rows:auto minmax(0,1fr) auto;gap:12px;padding:28px}.pdf-export-document:before{position:absolute;top:0;right:0;left:0;height:8px;background:linear-gradient(90deg,var(--brand) 0 72%,var(--accent) 72% 100%);content:""}.pdf-export-document--a4.pdf-export-document--portrait{width:210mm;height:297mm;aspect-ratio:210 / 297}.pdf-export-document--a4.pdf-export-document--landscape{width:297mm;height:210mm;aspect-ratio:297 / 210}.pdf-export-document--a3.pdf-export-document--portrait{width:297mm;height:420mm;aspect-ratio:297 / 420}.pdf-export-document--a3.pdf-export-document--landscape{width:420mm;height:297mm;aspect-ratio:420 / 297}.pdf-export-document--b4.pdf-export-document--portrait{width:250mm;height:353mm;aspect-ratio:250 / 353}.pdf-export-document--b4.pdf-export-document--landscape{width:353mm;height:250mm;aspect-ratio:353 / 250}.pdf-export-header,.pdf-export-footer{display:flex;justify-content:space-between;gap:1.25rem}.pdf-export-header p,.pdf-export-header h1,.pdf-export-footer p{margin:0}.pdf-export-header{align-items:flex-start;border-bottom:1px solid #d9e4dc;padding-bottom:.9rem}.pdf-export-brand-block{display:flex;min-width:0;align-items:flex-start;gap:.85rem}.pdf-export-brand-mark{width:2.85rem;height:2.85rem;flex:0 0 auto}.pdf-export-header h1{color:var(--ink);font-size:1.48rem;font-weight:750;line-height:1.2}.pdf-export-brand-label,.pdf-export-tagline,.pdf-export-meta,.pdf-export-footer p{color:var(--text-muted);font-size:.72rem;font-weight:650}.pdf-export-brand-label{color:var(--brand-strong);font-size:.82rem;font-weight:850}.pdf-export-tagline{margin-top:.18rem}.pdf-export-meta{display:grid;justify-items:end;gap:.25rem}.pdf-export-map-frame{position:relative;min-height:0;border:1px solid #d6e3da;border-radius:var(--r-md);overflow:hidden;background:var(--surface-sunken);box-shadow:inset 0 0 0 1px #fffc}.pdf-export-map{height:100%;min-height:0}.pdf-export-map-placeholder{background:linear-gradient(#ffffffdb,#ffffffdb),repeating-linear-gradient(0deg,rgb(15 118 65 / .12) 0 1px,transparent 1px 18px)}.pdf-export-document--landscape .pdf-export-map{min-height:0}.pdf-export-map .maplibregl-ctrl-top-right{display:none}.pdf-export-note{margin:-.55rem 0 0;color:var(--text-muted);font-size:.76rem;font-weight:600;line-height:1.45}.pdf-scale-fallback{position:absolute;left:1rem;bottom:1rem;z-index:4;display:grid;gap:.2rem;color:var(--ink);font-size:.65rem;font-weight:800;pointer-events:none}.pdf-scale-fallback span{width:5.5rem;height:.42rem;border:2px solid var(--ink);border-top:0;background:#ffffffb8}.pdf-export-body{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:.85rem;align-content:start}.pdf-export-document--landscape .pdf-export-header,.pdf-export-document--landscape .pdf-export-footer{grid-column:1 / -1}.pdf-export-document--landscape .pdf-export-header{padding-bottom:.65rem}.pdf-export-document--landscape .pdf-export-map-frame{grid-column:1;grid-row:2;height:100%}.pdf-export-document--landscape .pdf-export-body{grid-column:2;grid-row:2;grid-template-columns:minmax(0,1fr);gap:.55rem;overflow:hidden}.pdf-export-document--landscape .pdf-export-section{padding:.62rem}.pdf-export-document--landscape .pdf-export-profile{grid-column:auto}.pdf-export-document--landscape .pdf-export-profile .profile-chart-frame{min-height:112px}.pdf-export-section{min-width:0;border:1px solid #dce7df;border-radius:var(--r-md);background:#fbfdfb;padding:.85rem}.pdf-export-profile{grid-column:1 / -1}.pdf-export-section h2,.pdf-export-section p{margin:0}.pdf-export-section h2{margin-bottom:.55rem;color:var(--brand-strong);font-size:.86rem;font-weight:800}.pdf-route-summary-list,.pdf-landmark-list{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}.pdf-route-summary-list li,.pdf-landmark-list li{display:grid;gap:.4rem;color:var(--text);font-size:.72rem}.pdf-route-summary-list li{border-bottom:1px solid rgb(218 225 220 / .76);padding-bottom:.55rem;break-inside:avoid}.pdf-route-heading{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.45rem;min-width:0}.pdf-route-heading strong{min-width:0;line-height:1.35;overflow-wrap:anywhere}.pdf-route-grading,.pdf-route-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.35rem .65rem;margin:0}.pdf-route-grading div,.pdf-route-stats div{display:grid;min-width:0;grid-template-columns:minmax(0,auto) minmax(0,1fr);align-items:baseline;gap:.35rem}.pdf-route-grading dt,.pdf-route-stats dt{color:var(--text-muted);font-size:.62rem;font-weight:700}.pdf-route-grading dd,.pdf-route-stats dd{min-width:0;margin:0;color:var(--ink);font-weight:800;line-height:1.35;overflow-wrap:anywhere}.pdf-landmark-list li{grid-template-columns:minmax(0,1fr) auto auto;border-bottom:1px solid rgb(218 225 220 / .76);padding-bottom:.32rem}.pdf-route-swatch{width:1.2rem;height:.25rem;border-radius:var(--r-pill)}.pdf-export-profile .profile-panel{border:0;padding:0;box-shadow:none}.pdf-export-profile .profile-panel-header,.pdf-export-profile .profile-grade-legend{display:none}.pdf-export-profile .profile-chart-frame{overflow:hidden}.pdf-export-qr{display:grid;grid-template-columns:94px minmax(0,1fr);align-items:center;column-gap:.75rem}.pdf-export-qr h2{grid-column:1 / -1}.pdf-export-qr img{width:94px;height:94px}.pdf-export-qr p{color:var(--text-muted);font-size:.68rem;overflow-wrap:anywhere}.pdf-export-footer{align-items:end;border-top:1px solid #d9e4dc;border-bottom:0;padding-top:.55rem;padding-bottom:0}.pdf-export-loading,.pdf-export-error{position:absolute;right:1rem;bottom:1rem;z-index:6}.gallery-shell{padding-bottom:2rem}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.15rem;width:min(1120px,calc(100% - 2rem));margin:1.25rem auto 0}.gallery-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);box-shadow:var(--shadow-sm);overflow:hidden;transition:transform .15s var(--ease),box-shadow .15s var(--ease)}.gallery-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.gallery-card h2{margin:0;padding:.85rem .95rem .65rem;font-size:1.02rem;font-weight:700}.gallery-card-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem;padding:0 .95rem .95rem}.gallery-thumbnail{position:relative;min-height:180px;background:linear-gradient(90deg,rgb(255 255 255 / 55%) 1px,transparent 1px),linear-gradient(0deg,rgb(255 255 255 / 55%) 1px,transparent 1px),var(--surface-sunken);background-size:32px 32px}.map-view>.map-canvas,.map-view>.map-canvas.maplibregl-map{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.map-attribution{position:absolute;bottom:.5rem;z-index:2;display:flex;max-width:min(92%,44rem);flex-wrap:wrap;justify-content:flex-end;gap:.25rem .55rem;margin:0;border:1px solid rgb(26 34 29 / 12%);border-radius:5px;background:#ffffffe5;color:var(--ink);font-size:.72rem;line-height:1.4;list-style:none;padding:.3rem .5rem;pointer-events:auto;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-print-color-adjust:exact;print-color-adjust:exact}.map-attribution--bottom-right{right:.5rem}.map-attribution--bottom-left{left:.5rem;justify-content:flex-start}.map-attribution--dark{border-color:#ffffff29;background:#1a221dd6;color:#fff}.map-attribution a{color:var(--ink);text-decoration:underline;text-underline-offset:.12em}.map-attribution--dark a{color:#fff}.map-loading{position:absolute;top:50%;left:50%;z-index:2;margin:0;transform:translate(-50%,-50%);border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--text);padding:.6rem .85rem;font-size:.85rem;font-weight:600;box-shadow:var(--shadow-md)}.map-toolbar{position:absolute;top:.75rem;left:.75rem;z-index:2;display:flex;gap:.4rem;padding:.3rem;border:1px solid var(--border);border-radius:var(--r-md);background:#ffffffeb;box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.map-control-button{min-width:2.25rem;min-height:2.25rem;border-color:transparent;background:transparent;padding:0 .7rem;box-shadow:none}.map-control-button:hover:not(:disabled){background:var(--brand-soft)}.map-tools{position:absolute;top:4.4rem;right:.75rem;z-index:3;display:grid;justify-items:end;gap:.45rem;max-width:min(18rem,calc(100vw - 1.5rem))}.map-tools-row{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.35rem}.map-tool-button{min-height:2.35rem;padding:0 .75rem;box-shadow:var(--shadow-md)}.map-measure-panel,.map-tool-status{border:1px solid var(--border);border-radius:var(--r-sm);background:#fffffff0;box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.map-measure-panel{display:flex;align-items:center;gap:.55rem;color:var(--ink);padding:.35rem .4rem .35rem .65rem;font-size:.82rem;font-weight:800}.map-measure-clear{min-height:1.75rem;padding:0 .45rem;font-size:.76rem}.map-tool-status{margin:0;color:var(--text);padding:.4rem .55rem;font-size:.78rem;font-weight:700}.maplibregl-ctrl-top-right{top:.75rem;right:.75rem}.maplibregl-ctrl-bottom-left{bottom:.75rem;left:.75rem}.maplibregl-ctrl-group{border-radius:var(--r-md)!important;box-shadow:var(--shadow-md)!important;overflow:hidden}.brand-lockup{display:inline-flex;align-items:center;gap:.55rem;color:var(--ink);font-size:1.45rem;font-weight:800;letter-spacing:-.02em;line-height:1;text-decoration:none}.brand-mark{width:2.35rem;height:2.35rem;flex:0 0 auto}.brand-mark--stack{width:2.5rem;height:2.5rem}.map-editor-shell{min-height:100dvh;grid-template-rows:56px minmax(0,1fr);gap:0;padding:0;background:var(--surface)}.map-editor-header{display:grid;grid-template-columns:minmax(24rem,1fr) minmax(18rem,30rem) auto;align-items:center;gap:1rem;border-bottom:1px solid var(--border-strong);background:#fffffff5;padding:0 .9rem;box-shadow:0 1px #1019140a}.map-editor-header--new{grid-template-columns:1fr auto}.editor-brand-strip{display:flex;min-width:0;align-items:center;gap:.85rem}.editor-brand-strip .brand-lockup{padding-right:0}.editor-back-link{display:inline-flex;min-height:2.1rem;align-items:center;padding-right:1rem;border-right:1px solid var(--border-strong);color:var(--text);font-size:.84rem;font-weight:750;text-decoration:none;white-space:nowrap}.editor-back-link:hover{color:var(--brand-ink)}.editor-section-label{color:var(--ink);font-size:1.05rem;font-weight:800;white-space:nowrap}.editor-title-cluster{display:flex;min-width:0;align-items:center;gap:.75rem}.editor-map-title{overflow:hidden;color:var(--text);font-size:.95rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.editor-status-pill{border:1px solid var(--brand-soft-border);border-radius:var(--r-pill);background:var(--brand-soft);color:var(--brand-ink);font-size:.78rem;font-weight:800;padding:.32rem .65rem;white-space:nowrap}.editor-search,.gallery-top-search{display:flex;min-height:2.65rem;align-items:center;gap:.55rem;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:#fff;color:var(--text-subtle);padding:0 .8rem}.editor-search{position:relative}.editor-search input,.gallery-top-search input{width:100%;min-width:0;border:0;background:transparent;color:var(--ink);outline:0}.editor-search-icon{flex:0 0 auto}.editor-search-button{min-height:2rem;border-radius:5px;padding-inline:.65rem;white-space:nowrap}.editor-search-results{position:absolute;z-index:var(--z-popover);top:calc(100% + .35rem);left:0;width:min(32rem,100%);max-height:min(22rem,calc(100vh - 5rem));overflow:auto;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:#fff;box-shadow:0 18px 45px #0f172a29}@media (max-width: 760px){.editor-search--place{height:auto;flex-wrap:wrap;padding-block:.32rem}.editor-search--place .editor-search-results{position:static;width:100%;max-height:min(16rem,35dvh);flex:0 0 100%}}.editor-search-message{margin:0;color:var(--text-muted);font-size:.82rem;font-weight:650;padding:.85rem .95rem}.editor-search-result-list{display:grid;gap:0;margin:0;padding:.35rem;list-style:none}.editor-search-result{display:grid;width:100%;gap:.25rem;border:0;border-radius:5px;background:transparent;color:var(--ink);cursor:pointer;font:inherit;padding:.65rem .7rem;text-align:left}.editor-search-result:hover,.editor-search-result:focus-visible{background:var(--brand-soft);outline:0}.editor-search-result-title{overflow:hidden;font-size:.9rem;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.editor-search-result-subtitle{overflow:hidden;color:var(--text-muted);font-size:.74rem;font-weight:650;text-overflow:ellipsis;white-space:nowrap}.map-editor-actions .ui-button{min-height:2.65rem;border-radius:var(--r-sm);padding-inline:.9rem}.map-editor-layout{display:grid;height:calc(100dvh - 56px);min-height:0;grid-template-columns:5.75rem minmax(300px,360px) minmax(0,1fr);grid-template-rows:minmax(0,1fr);gap:0;overflow:hidden}.map-editor-icon-nav{grid-column:1;grid-row:1;display:flex;min-height:0;flex-direction:column;align-items:stretch;gap:.7rem;border-right:1px solid var(--border-strong);background:#fbfcfa;padding:.75rem .55rem;scroll-behavior:smooth}.map-editor-nav-link{position:relative;display:flex;min-height:4.35rem;width:100%;flex-direction:column;align-items:center;justify-content:center;gap:.28rem;border:1px solid transparent;border-radius:6px;background:#fff;color:var(--text-muted);cursor:pointer;font:inherit;padding:.45rem .25rem;text-decoration:none;transition:background-color .13s var(--ease),color .13s var(--ease),border-color .13s var(--ease),box-shadow .13s var(--ease)}.map-editor-nav-link:hover,.map-editor-nav-link:focus-visible,.map-editor-nav-link[data-active=true]{border-color:var(--brand-soft-border);color:var(--brand-ink);box-shadow:inset 0 0 0 1px var(--brand-soft-border)}.map-editor-nav-icon{color:inherit;font-size:1.16rem;font-weight:850;line-height:1}.map-editor-nav-label{display:block;color:inherit;font-size:.74rem;font-weight:800;line-height:1.25;text-align:center}.map-editor-side-panels{grid-column:2;grid-row:1;display:contents}.map-editor-panel-slot{grid-column:2;grid-row:1;min-height:0;overflow-y:auto;scroll-behavior:smooth;border-right:1px solid var(--border-strong);background:#fff}.map-editor-panel-slot[hidden],.route-editor-side[hidden],.route-editor-panel[hidden],.route-editor-io[hidden],.landmark-editor-panel[hidden]{display:none}.map-editor-layout>.route-editor{display:contents}.route-editor-side{grid-column:2;grid-row:1;gap:0;overflow:auto;border-right:1px solid var(--border-strong);background:#fff}.route-editor-workspace{grid-column:3;grid-row:1;min-height:0;gap:0;grid-template-rows:minmax(0,1fr) 335px;background:var(--surface-sunken)}.route-editor-panel{order:1}.landmark-editor-panel{order:3}.route-editor-io{order:2;display:grid;border-bottom:1px solid var(--border)}.layer-panel,.map-settings-panel,.route-editor-panel,.landmark-editor-panel,.gpx-import-panel,.gpx-export-panel,.profile-panel,.route-legend-panel{border-radius:0;box-shadow:none}.route-editor-side>.route-editor-panel,.route-editor-side>.landmark-editor-panel,.route-editor-side>.gpx-import-panel,.route-editor-side>.gpx-export-panel,.map-editor-panel-slot>.layer-panel,.map-editor-panel-slot>.map-settings-panel{border:0;border-bottom:1px solid var(--border);padding:.85rem 1rem}.route-editor-side>.route-editor-panel,.route-editor-side>.landmark-editor-panel{display:grid;align-content:start;gap:.7rem;overflow:visible}.route-editor-side>.route-editor-panel[hidden],.route-editor-side>.landmark-editor-panel[hidden]{display:none}.route-editor-io>.gpx-import-panel,.route-editor-io>.gpx-export-panel{border:0;border-top:1px solid var(--border);padding:1.05rem 1.1rem}.route-editor-io>.gpx-import-panel:first-child,.route-editor-io>.gpx-export-panel:first-child{border-top:0}.map-editor-panel-slot>.layer-panel{min-height:0}.route-editor-heading,.landmark-editor-heading,.layer-panel-header{margin-bottom:.15rem}.route-editor-heading>div,.landmark-editor-heading>div,.layer-panel-header>div{min-width:0}.route-editor-heading h2,.landmark-editor-heading h2,.layer-panel-header h2,.map-settings-panel h2{font-size:.98rem;font-weight:850}.route-editor-heading p,.landmark-editor-heading p,.layer-panel-header p,.layer-category-heading p{margin:.2rem 0 0;color:var(--text-subtle);font-size:.72rem;font-weight:750}.route-mode-pill,.layer-status-pill,.map-settings-heading span{flex:0 0 auto;border:1px solid var(--border-strong);border-radius:var(--r-pill);background:var(--surface-raised);color:var(--text-muted);font-size:.72rem;font-weight:850;padding:.28rem .55rem;white-space:nowrap}.route-mode-pill[data-active=true]{border-color:var(--brand-soft-border);background:var(--brand-soft);color:var(--brand-ink)}.route-state-panel,.landmark-state-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0 0 .85rem;overflow:hidden;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-raised)}.route-state-panel div,.landmark-state-panel div{display:grid;gap:.25rem;border-left:1px solid var(--border);padding:.65rem .55rem}.route-state-panel div:first-child,.landmark-state-panel div:first-child{border-left:0}.route-state-panel dt,.landmark-state-panel dt,.route-state-panel dd,.landmark-state-panel dd{margin:0}.route-state-panel dt,.landmark-state-panel dt{color:var(--text-subtle);font-size:.68rem;font-weight:850}.route-state-panel dd,.landmark-state-panel dd{overflow:hidden;color:var(--ink);font-size:.9rem;font-weight:850;text-overflow:ellipsis;white-space:nowrap}.route-edit-mode-card{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.85rem;border:1px solid var(--border);border-radius:var(--r-sm);background:#fff;padding:.7rem}.route-edit-mode-card span{display:block;color:var(--text-subtle);font-size:.7rem;font-weight:850}.route-edit-mode-card strong{display:block;margin-top:.2rem;color:var(--ink);font-size:.88rem}.layer-category-heading,.map-settings-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.map-settings-heading{margin-bottom:.6rem}.layer-category-summary{display:flex;align-items:center;justify-content:space-between;gap:.6rem;cursor:pointer;padding:.4rem .1rem;list-style:none;-webkit-user-select:none;user-select:none}.layer-category-summary::-webkit-details-marker{display:none}.layer-category-summary:before{flex:0 0 auto;width:.55rem;height:.55rem;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);content:"";transform:rotate(-45deg);transform-origin:center;transition:transform .14s var(--ease)}.layer-category[open]>.layer-category-summary:before{transform:rotate(45deg)}.editor-panel-section{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-raised);transition:border-color .12s var(--ease),background-color .12s var(--ease)}.editor-panel-section:hover{border-color:var(--brand-soft-border)}.editor-panel-section-summary{display:flex;align-items:center;justify-content:space-between;gap:.6rem;cursor:pointer;padding:.52rem .6rem;list-style:none;-webkit-user-select:none;user-select:none}.editor-panel-section-summary::-webkit-details-marker{display:none}.editor-panel-section-summary:before{flex:0 0 auto;width:.5rem;height:.5rem;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);content:"";transform:rotate(-45deg);transform-origin:center;transition:transform .14s var(--ease)}.editor-panel-section[open]>.editor-panel-section-summary:before{transform:rotate(45deg)}.editor-panel-section-titles{display:flex;min-width:0;flex:1;flex-direction:column;gap:.1rem}.editor-panel-section-titles h3,.editor-panel-section-titles p{margin:0}.editor-panel-section-titles h3{overflow:hidden;color:var(--ink);font-size:.84rem;font-weight:850;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.editor-panel-section-titles p{overflow:hidden;color:var(--text-subtle);font-size:.68rem;font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.editor-panel-section-counts{flex:0 0 auto;border-radius:var(--r-pill);background:#fff;color:var(--text-muted);font-size:.7rem;font-weight:850;font-variant-numeric:tabular-nums;padding:.18rem .48rem;white-space:nowrap}.editor-panel-section-body{display:grid;gap:.55rem;border-top:1px solid var(--border);background:#fff;padding:.58rem}.editor-panel-section-body>.route-state-panel,.editor-panel-section-body>.landmark-state-panel,.editor-panel-section-body>.route-edit-mode-card,.editor-panel-section-body>.route-field,.editor-panel-section-body>.route-check,.editor-panel-section-body>.route-stats,.editor-panel-section-body>.route-waypoints,.editor-panel-section-body>.landmark-image-field,.editor-panel-section-body>.landmark-list,.editor-panel-section-body>.route-selection-status,.editor-panel-section-body>.route-status,.editor-panel-section-body>.route-error{margin:0}.editor-panel-section-body .route-field,.editor-panel-section-body .route-check{margin:0}.editor-panel-section-body .route-field-grid{gap:.55rem}.editor-panel-section-body .route-field input,.editor-panel-section-body .route-field select,.editor-panel-section-body .route-field textarea{min-height:2.25rem}.editor-panel-section-body .route-field textarea{min-height:5rem}.route-grading-metadata{min-width:0;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-raised)}.route-grading-metadata>summary{color:var(--ink);cursor:pointer;font-size:.8rem;font-weight:800;line-height:1.4;overflow-wrap:anywhere;padding:.65rem .72rem}.route-grading-metadata-fields{display:grid;min-width:0;gap:.65rem;border-top:1px solid var(--border);padding:.72rem}.route-grading-metadata-fields .route-field,.route-grading-metadata-fields input{min-width:0}.editor-panel-section-body>.gpx-import-panel,.editor-panel-section-body>.gpx-export-panel{border:0;border-radius:0;background:transparent;box-shadow:none;padding:0}.editor-panel-section-body>.gpx-export-panel{border-top:1px solid var(--border);padding-top:.65rem}.layer-category-titles{display:flex;min-width:0;flex:1;flex-direction:column;gap:.1rem}.layer-category-titles h3{margin:0;color:var(--ink);font-size:.86rem;font-weight:800;letter-spacing:0;line-height:1.2;text-transform:none}.layer-category-titles p{margin:0;color:var(--text-subtle);font-size:.7rem;font-weight:650}.layer-category-counts{flex:0 0 auto;color:var(--text-muted);font-size:.72rem;font-weight:800;font-variant-numeric:tabular-nums}.layer-category-visible{color:var(--brand-ink)}.layer-row-details{border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-raised);transition:border-color .12s var(--ease)}.layer-row-details:hover{border-color:var(--brand-soft-border)}.layer-row-summary{display:flex;align-items:center;gap:.5rem;cursor:pointer;padding:.45rem .55rem;list-style:none;-webkit-user-select:none;user-select:none}.layer-row-summary::-webkit-details-marker{display:none}.layer-row-meta{display:inline-flex;align-items:center;gap:.4rem;margin-left:auto}.layer-opacity-badge{min-width:2.5rem;border-radius:var(--r-pill);background:var(--surface);color:var(--text-muted);font-size:.7rem;font-weight:800;font-variant-numeric:tabular-nums;padding:.15rem .5rem;text-align:center}.layer-row-chevron{width:.45rem;height:.45rem;border-right:2px solid var(--text-muted);border-bottom:2px solid var(--text-muted);transform:rotate(-45deg);transition:transform .14s var(--ease)}.layer-row-details[open] .layer-row-chevron{transform:rotate(45deg)}.layer-row-body{display:flex;flex-direction:column;gap:.55rem;border-top:1px solid var(--border);padding:.55rem .55rem .6rem}.map-settings-radio-group{display:flex;flex-wrap:wrap;gap:.35rem .65rem}.map-settings-status{flex:0 0 auto;border:1px solid var(--border-strong);border-radius:var(--r-pill);background:var(--surface-raised);color:var(--text-muted);font-size:.7rem;font-weight:800;padding:.2rem .55rem;white-space:nowrap}.map-settings-status--success{border-color:var(--brand-soft-border);background:var(--brand-soft);color:var(--brand-ink)}.map-settings-status--pending{border-color:var(--accent);background:#fff5cf;color:var(--ink)}.map-settings-status--muted{opacity:.85}.map-settings-note{margin-top:.45rem}.admin-invite-panel,.collaborator-list{display:grid;gap:.75rem}.admin-invite-panel{border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:1rem}.admin-invite-url{overflow-wrap:anywhere;margin:0;border-radius:var(--r-sm);background:var(--surface-sunken);color:var(--ink);font-size:.82rem;font-weight:750;padding:.65rem}.admin-user-management,.admin-group-management{display:grid;min-width:0;gap:1rem}.admin-group-layout{display:grid;min-width:0;grid-template-columns:280px minmax(260px,.8fr) minmax(320px,1fr);gap:1rem;align-items:start}.admin-group-layout>*,.admin-user-list-row>*{min-width:0}.admin-user-list-row{grid-template-columns:minmax(0,1fr) auto auto}.admin-user-email{min-width:0;overflow-wrap:anywhere}.admin-group-create textarea{min-height:6rem;resize:vertical}.admin-group-list-panel{min-width:0}.admin-group-list{margin:0}.admin-group-select{display:grid;width:100%;gap:.35rem;border:0;background:transparent;color:inherit;cursor:pointer;font:inherit;padding:0;text-align:left}.admin-group-select strong,.admin-group-select small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-group-select small{color:var(--text-muted);font-size:.78rem;font-weight:700}.admin-group-detail{position:sticky;top:1rem;min-width:0}.admin-group-detail .admin-map-detail-title,.admin-group-detail .admin-map-detail-title>div,.admin-group-detail-name,.admin-group-detail-description{min-width:0;overflow-wrap:anywhere}.admin-group-detail-name--collapsed,.admin-group-detail-description--collapsed{display:-webkit-box;overflow:hidden;overflow-wrap:anywhere;-webkit-box-orient:vertical}.admin-group-detail-name--collapsed{line-clamp:2;-webkit-line-clamp:2}.admin-group-detail-description--collapsed{line-clamp:3;-webkit-line-clamp:3}.admin-group-detail-toggle{display:inline-flex;flex:0 0 auto;min-height:2.75rem;align-items:center;justify-content:center;align-self:start;border:0;border-radius:6px;background:transparent;color:var(--brand-ink);cursor:pointer;font:inherit;font-size:.78rem;font-weight:800;padding:.55rem .75rem;white-space:nowrap}.admin-group-detail-toggle:hover{background:var(--brand-soft)}.admin-group-detail-toggle:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.admin-group-inline-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:center}.admin-group-inline-form input,.admin-group-inline-form select{min-width:0;width:100%}.admin-group-assignment-list{display:grid;gap:.45rem;margin:.7rem 0 0;padding:0;list-style:none}.admin-group-assignment-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.55rem;border:1px solid var(--border);border-radius:6px;background:var(--surface);padding:.55rem}.admin-group-assignment-list span,.admin-group-member-email{min-width:0;overflow-wrap:anywhere;color:var(--ink);font-size:.83rem;font-weight:750}.admin-group-assignment-list button{border:0;background:transparent;color:var(--danger);cursor:pointer;font:inherit;font-size:.78rem;font-weight:800}@media (max-width: 1240px){.admin-group-layout{grid-template-columns:minmax(0,1fr)}.admin-group-detail{position:static;max-height:none}}@media (max-width: 760px){.admin-group-inline-form{grid-template-columns:minmax(0,1fr)}.admin-group-inline-form .ui-button{width:100%}}.collaborator-list{margin:1rem 0 0;padding:0;list-style:none}.collaborator-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;border-top:1px solid var(--border);padding-top:.75rem}.collaborator-list strong,.collaborator-list span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.collaborator-list span{color:var(--text-muted);font-size:.76rem;font-weight:700}.content-translations-panel{display:grid;align-content:start;gap:.75rem}.content-translations-form{display:grid;gap:.8rem}.content-translation-card{display:grid;gap:.55rem;border-top:1px solid var(--border);padding-top:.8rem}.content-translation-card:first-child{border-top:0;padding-top:0}.content-translation-card header{display:grid;gap:.22rem}.content-translation-card header span{color:var(--text-muted);font-size:.72rem;font-weight:850}.content-translation-card header strong{overflow-wrap:anywhere;color:var(--ink);font-size:.9rem}.content-translation-card header p{display:-webkit-box;overflow:hidden;margin:0;-webkit-box-orient:vertical;-webkit-line-clamp:2;color:var(--text-subtle);font-size:.76rem;line-height:1.55}.content-translations-actions{position:sticky;bottom:0;display:flex;flex-wrap:wrap;gap:.5rem;border-top:1px solid var(--border);background:#fff;padding-top:.75rem}.layer-order-list{display:grid;gap:.35rem;margin:0;padding:0;list-style:none}.layer-order-list li{display:grid;grid-template-columns:2rem minmax(0,1fr) auto;align-items:center;gap:.45rem;color:var(--text);font-size:.78rem}.layer-order-list span{color:var(--text-subtle);font-size:.7rem;font-weight:850}.layer-order-list strong{overflow:hidden;font-weight:750;text-overflow:ellipsis;white-space:nowrap}.layer-order-actions{display:inline-flex;gap:.25rem}.layer-order-actions button{width:1.7rem;min-width:1.7rem;height:1.7rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);font-size:.85rem;font-weight:850}.layer-order-actions button:disabled{cursor:not-allowed;opacity:.42}.route-field{margin-bottom:.72rem;font-size:.82rem}.route-field input,.route-field select,.route-field textarea,.layer-field select{min-height:2.55rem;border-radius:5px;background:#fff}.route-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;border-color:var(--border);padding:.85rem 0}.route-stats div{display:grid;min-width:0;justify-items:center;gap:.35rem;border:1px solid var(--border);border-radius:var(--r-sm);padding:.55rem}.route-stats dt{font-size:.74rem}.route-stats dd{font-size:1.04rem;line-height:1.3;overflow-wrap:anywhere;text-align:center}.route-stats dd .elevation-breakdown{justify-items:stretch}.route-actions .ui-button,.gpx-export-actions .ui-button,.profile-export-actions .ui-button{min-height:2.45rem;border-radius:5px}.map-editor-panel-slot .layer-row{padding:0}.map-editor-panel-slot .layer-toggle{min-width:0;flex:0 1 auto;align-items:center;font-size:.84rem}.map-editor-panel-slot .layer-toggle span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.layer-toggle input{position:relative;display:inline-block;width:2.25rem;height:1.2rem;margin:0;flex:0 0 auto;box-sizing:border-box;border:0;border-radius:var(--r-pill);-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#cfd8d0;cursor:pointer;transition:background-color .12s var(--ease)}.layer-toggle input:before{position:absolute;top:.15rem;left:.15rem;display:block;width:.9rem;height:.9rem;border-radius:var(--r-pill);background:#fff;box-shadow:0 1px 2px #1019143d;content:"";transition:transform .12s var(--ease)}.layer-toggle input:checked{background:var(--brand)}.layer-toggle input:checked:before{transform:translate(1.05rem)}.layer-field,.layer-usage-note{font-size:.72rem}.map-view{border-radius:0}.route-editor-map{height:100%;min-height:0;border:0}.profile-panel{border:0;border-top:1px solid var(--border-strong);background:#fffffff5;min-height:0;padding:.95rem 1.35rem}.profile-chart-frame{min-height:205px}.map-toolbar{top:1rem;left:1rem;gap:0;border-radius:var(--r-sm);padding:0;overflow:hidden}.map-control-button{min-width:3rem;min-height:3rem;border-radius:0;border-left:1px solid var(--border);background:#fff}.map-control-button:first-child{border-left:0}.route-point-marker{width:1.2rem;height:1.2rem;border:3px solid #ffffff;background:var(--accent);color:transparent}.route-point-marker--selected{border-color:#fff;background:var(--accent);box-shadow:0 0 0 5px #e6531c38,0 0 0 10px #e6531c1a,var(--shadow-md)}.route-midpoint-marker{width:1.05rem;height:1.05rem;border-radius:var(--r-pill);color:transparent}.maplibregl-ctrl-top-right{top:1rem;right:1rem}.maplibregl-ctrl-bottom-left{bottom:1rem;left:1rem}.gallery-shell{display:grid;min-height:100dvh;grid-template-columns:232px minmax(0,1fr);background:linear-gradient(180deg,#f9faf7,#f2f5ef)}.about-shell{display:grid;min-height:100dvh;grid-template-columns:232px minmax(0,1fr);background:#f7f9f5}.gallery-sidebar,.about-sidebar{display:grid;min-height:100dvh;grid-template-rows:auto minmax(0,1fr) auto;border-right:1px solid var(--border-strong);background:#fff;padding:1.3rem .85rem}.gallery-sidebar-brand,.about-brand{padding:0 .85rem 1.7rem}.gallery-nav{display:grid;align-content:start;gap:.35rem}.gallery-nav a{display:flex;min-height:2.65rem;align-items:center;gap:.65rem;border-radius:var(--r-sm);color:var(--text);font-size:.9rem;font-weight:750;padding:0 .8rem;text-decoration:none;transition:background-color .15s var(--ease),color .15s var(--ease)}.gallery-nav a:hover{background:var(--surface-raised)}.gallery-nav a[aria-current=page]{background:var(--brand-soft);color:var(--brand-ink)}.gallery-nav-mark{display:inline-grid;width:1.35rem;height:1.35rem;place-items:center;border:1px solid transparent;border-radius:6px;color:var(--text-subtle);font-size:.78rem;font-weight:850}.gallery-nav a[aria-current=page] .gallery-nav-mark{border-color:var(--brand-soft-border);background:#fff;color:var(--brand)}.gallery-sync-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.6rem;border-top:1px solid var(--border);color:var(--text);padding:1rem .85rem 0;font-size:.82rem}.gallery-sync-card div{display:grid;gap:.2rem}.gallery-sync-card div>span,.gallery-sync-card span:last-child{color:var(--ok);font-size:.76rem;font-weight:700}.gallery-sync-card a{color:var(--brand-ink);font-size:.78rem;font-weight:800;text-decoration:none}.gallery-sync-card a:hover{text-decoration:underline;text-underline-offset:.15em}.gallery-main{min-width:0}.about-main{min-width:0;padding:clamp(1rem,4vw,2.5rem)}.about-header{display:grid;gap:.45rem;max-width:52rem;border-bottom:1px solid var(--border-strong);padding-bottom:1.25rem}.about-header p{margin:0;color:var(--brand);font-size:.82rem;font-weight:850}.about-header h1{margin:0;color:var(--ink);font-size:clamp(2rem,5vw,3.3rem);font-weight:850;letter-spacing:0;line-height:1.08}.about-content{display:grid;max-width:52rem;gap:1rem;padding-top:1.25rem}.about-section{display:grid;gap:.65rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface);padding:clamp(1rem,2.5vw,1.35rem);box-shadow:var(--shadow-sm)}.about-section h2{margin:0;color:var(--ink);font-size:1.05rem;font-weight:800}.about-section p{margin:0;color:var(--text);font-size:.95rem;line-height:1.8}.about-attribution-list{display:grid;gap:.7rem;margin:0;padding:0;list-style:none}.about-attribution-list li{display:grid;gap:.2rem;border-left:3px solid var(--brand-soft-border);padding-left:.75rem}.about-attribution-list a{color:var(--brand-ink);font-weight:850;text-decoration:none}.about-attribution-list a:hover{text-decoration:underline;text-underline-offset:.15em}.about-attribution-list span{color:var(--text-muted);font-size:.85rem;line-height:1.6}.gallery-header{min-height:88px;align-items:center;border-bottom:1px solid var(--border-strong);padding:0 2rem}.gallery-header h1{font-size:1.4rem}.gallery-header p{margin:.35rem 0 0;color:var(--text-muted);font-size:.86rem;font-weight:600}.gallery-header-actions{display:flex;align-items:center;gap:.85rem}.gallery-admin-link{min-height:2.45rem}.gallery-top-search{width:min(28rem,36vw)}.gallery-icon-button{width:2.7rem;height:2.7rem;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:#fff;color:var(--ink);cursor:pointer;font:inherit}.gallery-browser{display:grid;min-height:calc(100dvh - 88px);grid-template-columns:255px minmax(0,1fr);gap:0}.gallery-browser--filters-collapsed{grid-template-columns:190px minmax(0,1fr)}.gallery-browser>.layer-panel{border:0;border-right:1px solid var(--border-strong);background:#fff;padding:1.15rem 1rem}.gallery-browser>.layer-panel .layer-panel-header{align-items:center;margin-bottom:.95rem}.gallery-filter-panel .layer-panel-header{gap:.7rem}.gallery-filter-panel .layer-panel-header p{color:var(--text-muted)}.gallery-browser>.layer-panel .layer-panel-header h2{font-size:1rem}.gallery-filter-toggle{min-height:2rem;padding:0 .65rem;white-space:nowrap}.gallery-filter-body{display:grid;gap:.8rem}.gallery-filter-body[hidden]{display:none}.gallery-filter-panel--collapsed{background:#fbfcfa}.gallery-filter-panel--collapsed .layer-panel-header{align-items:flex-start;flex-direction:column}.gallery-browser>.layer-panel .route-field,.gallery-browser>.layer-panel .route-check{min-width:0}.gallery-browser>.layer-panel .route-field-grid{grid-template-columns:1fr;gap:.55rem}.gallery-browser>.layer-panel .route-field input,.gallery-browser>.layer-panel .route-field select{width:100%;min-width:0}.gallery-browser>.layer-panel .map-settings-fieldset{margin-top:.8rem;border-top:1px solid var(--border);padding-top:.95rem}.gallery-browser>.layer-panel .route-check{min-height:1.9rem;margin-bottom:.25rem}.gallery-filter-details{margin:.75rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:.72rem 0}.gallery-filter-details summary{display:flex;min-height:1.8rem;align-items:center;justify-content:space-between;color:var(--text);cursor:pointer;font-size:.84rem;font-weight:800;list-style:none}.gallery-filter-details summary:after{color:var(--text-subtle);content:"⌄";font-size:.9rem}.gallery-filter-details[open] summary{margin-bottom:.7rem}.gallery-filter-details[open] summary:after{transform:rotate(180deg)}.gallery-browser>section{min-width:0;padding:1.15rem 2rem 1.55rem}.gallery-results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.gallery-results-toolbar p{margin:0;color:var(--ink);font-size:.92rem;font-weight:800}.gallery-grid{width:auto;margin:0;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}.gallery-card{border-radius:6px;box-shadow:0 1px 2px #1019140f,0 8px 22px #1019140d}.gallery-thumbnail{min-height:0;aspect-ratio:2 / .98;overflow:hidden;background:#eef2e7}.gallery-thumbnail-image{position:relative;z-index:1;width:100%;height:100%;object-fit:cover}.gallery-thumbnail>.map-attribution{z-index:2}.gallery-route-preview{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;grid-template-rows:minmax(0,1fr) auto 3.1rem;color:#5462522e;background:linear-gradient(140deg,#fbfaf4e0,#e2ebdde0),#eef2e7}.gallery-route-preview-map{width:100%;height:100%;color:#4e68541f}.gallery-route-preview-contours{fill:#eef2e7}.gallery-route-preview-grid{color:#445b4b1f}.gallery-route-preview-shadow{fill:none;stroke:#1c29202e;stroke-linecap:round;stroke-width:11}.gallery-route-preview-point{fill:#fff;stroke:var(--accent-dark);stroke-width:2}.gallery-route-preview-caption{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin:0 .75rem;border-top:1px solid rgb(39 67 48 / 12%);color:var(--ink);font-size:.76rem;font-weight:800;padding:.45rem 0 .3rem}.gallery-route-preview-caption span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gallery-route-preview-caption span:last-child{color:var(--accent-dark);white-space:nowrap}.gallery-route-preview-profile{position:relative;z-index:1;width:100%;height:3.1rem;border-top:1px solid rgb(39 67 48 / 9%);background:#ffffff7a}.gallery-route-preview-profile-fill{fill:#37804b24;stroke:none}.gallery-route-preview-profile-line{fill:none;stroke:var(--accent);stroke-linecap:round;stroke-linejoin:round;stroke-width:3}.gallery-route-preview--empty{place-items:center;grid-template-rows:1fr;gap:.25rem;padding:1rem;color:var(--ink);text-align:center}.gallery-route-preview--empty span{color:var(--text-muted);font-size:.75rem;font-weight:750}.gallery-route-preview--empty strong{font-size:.95rem;line-height:1.3}.gallery-card-body{display:grid;gap:.55rem;padding:.8rem .88rem .9rem}.gallery-card-region{margin:0 0 .25rem;color:var(--text-muted);font-size:.78rem;font-weight:650}.gallery-card-kicker{display:flex;align-items:center;justify-content:space-between;gap:.65rem;margin-bottom:.25rem}.gallery-card-kicker time{color:var(--text-muted);font-size:.72rem;font-weight:700;white-space:nowrap}.gallery-card h2{padding:0;font-size:.98rem;font-weight:850;line-height:1.3}.gallery-card h2 a{color:var(--ink);text-decoration:none}.gallery-card h2 a:hover{text-decoration:underline;text-underline-offset:.15em}.gallery-card-description{display:-webkit-box;margin:.35rem 0 0;overflow:hidden;color:var(--text-muted);font-size:.8rem;line-height:1.5;-webkit-box-orient:vertical;-webkit-line-clamp:2}.gallery-card-stats{display:grid;gap:.35rem;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.gallery-card-stats dt{color:var(--text-muted);font-size:.72rem}.gallery-card-stats dd{margin:0;color:var(--ink);font-size:.84rem;font-weight:800}.gallery-card-stats .elevation-breakdown{min-width:0;width:100%}.gallery-card-tags{display:flex;flex-wrap:wrap;gap:.35rem}.gallery-card .route-status{margin-top:0;padding:.2rem .45rem;font-size:.72rem}.gallery-pagination{display:flex;align-items:center;justify-content:flex-end;gap:1rem;margin-top:1.1rem}.gallery-pagination-summary{margin:0;color:var(--text-muted);font-size:.82rem;font-weight:750}.gallery-pagination-controls{display:flex;align-items:center;gap:.4rem}.gallery-pagination-page{width:2.25rem;min-width:2.25rem;padding-inline:0}@media (max-width: 980px){.admin-shell.admin-console-shell,.gallery-shell,.about-shell{height:auto;grid-template-columns:1fr;overflow:visible}.admin-console-sidebar,.gallery-sidebar,.about-sidebar{height:auto;min-height:auto;border-right:0;border-bottom:1px solid var(--border-strong);overflow:visible}.admin-console-main{height:auto;overflow:visible}.admin-sidebar-nav,.gallery-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-user-card,.gallery-sync-card{margin-top:1rem}.admin-console-header,.gallery-header{min-height:auto;align-items:flex-start;flex-direction:column;padding:1rem}.admin-console-actions,.gallery-header-actions{width:100%;flex-wrap:wrap;justify-content:flex-start}.admin-top-search{width:min(100%,34rem)}.admin-map-toolbar{align-items:center}.admin-dashboard-panel{padding:1rem}.admin-dashboard-panel--maps{overflow:visible}.admin-map-management{height:auto}.admin-stat-grid--four,.admin-dashboard-columns,.admin-map-list-row,.gallery-browser{grid-template-columns:1fr}.gallery-browser{min-height:auto}.gallery-browser--filters-collapsed{grid-template-columns:1fr}.gallery-browser>.layer-panel{border-right:0;border-bottom:1px solid var(--border-strong)}.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.gallery-pagination{align-items:flex-start;flex-direction:column}.gallery-pagination-controls{flex-wrap:wrap}}.embed-map-shell{height:100vh;height:100dvh;min-height:0;background:#d8ded4}.embed-map-view{height:100%;min-height:0}.embed-control-cluster{top:50%;right:1.45rem;bottom:auto;display:grid;max-width:none;transform:translateY(-50%);gap:.42rem}.embed-control-button{min-width:3.05rem;min-height:3.05rem;border-color:var(--border-strong);border-radius:6px;background:#fffffff0;color:var(--ink);box-shadow:var(--shadow-md);font-size:.78rem;font-weight:850;padding:0 .42rem}.embed-control-button--wide{min-width:3.05rem}.embed-floating-panel{right:5.35rem;bottom:auto;top:calc((100% - var(--map-attribution-safe-block-size)) / 2);transform:translateY(-50%);border-radius:var(--r-sm)}.embed-floating-panel--profile{bottom:1rem;top:auto;right:5.35rem;transform:none}.embed-map-shell .map-attribution{right:1.05rem;bottom:max(1.05rem,env(safe-area-inset-bottom));left:auto;border-radius:4px;font-size:.74rem}@media (max-width: 640px){.login-page,.admin-shell{padding:1rem}.login-panel{max-width:none;border-left:0;padding:1.4rem}.login-shell{min-height:auto;grid-template-columns:1fr}.login-brand-panel{min-height:220px;padding:2rem}.pdf-export-modal{width:calc(100vw - 1rem);max-height:calc(100vh - 1rem)}.pdf-export-workspace{grid-template-columns:1fr}.pdf-export-controls{max-height:42vh;border-right:0;border-bottom:1px solid var(--border)}.pdf-export-footer-actions{align-items:stretch;flex-direction:column}.pdf-export-footer-actions .ui-button{width:100%}.admin-header{align-items:flex-start;flex-direction:column}.admin-tabs{width:100%}.admin-tabs button{flex:1}.admin-actions,.map-editor-header{align-items:stretch;flex-direction:column}.admin-actions,.admin-actions .ui-button,.map-editor-header .ui-button{width:100%}.admin-stat-grid,.admin-dashboard-columns,.admin-stat-list li{grid-template-columns:1fr}.map-editor-shell{min-height:100vh;grid-template-rows:auto minmax(360px,1fr);padding:.75rem}.map-editor-header{grid-template-columns:1fr;min-height:auto;padding:.75rem}.editor-brand-strip{flex-wrap:wrap}.editor-brand-strip .brand-lockup{width:100%;padding-right:0;border-right:0}.editor-back-link{padding-right:0;border-right:0}.editor-search,.map-editor-actions{width:100%}.map-editor-layout{grid-template-columns:1fr;grid-template-rows:auto auto minmax(360px,1fr);height:auto;overflow:visible}.map-editor-icon-nav{grid-column:1;grid-row:1;flex-direction:row;border-right:0;border-bottom:1px solid var(--border-strong)}.map-editor-nav-link{flex:1;min-height:3.8rem}.map-editor-nav-label{display:block}.map-editor-side-panels{grid-column:1;grid-row:2;border-right:0}.map-editor-panel-slot{grid-column:1;grid-row:2;max-height:46vh;border-right:0;border-bottom:1px solid var(--border-strong)}.route-editor{grid-template-columns:1fr}.route-editor-side{grid-column:1;grid-row:2;max-height:none;overflow:visible;border-right:0}.route-editor-workspace{grid-column:1;grid-row:3;grid-template-rows:auto auto}.route-editor-panel,.landmark-editor-panel{max-height:46vh}.layer-panel{max-height:42vh}.map-editor-view,.route-editor-map{height:calc(100vh - 18rem);min-height:360px}.map-toolbar{top:.5rem;left:.5rem}}.public-map-header{align-items:center;min-height:5.35rem}.public-map-title-block{display:grid;min-width:0;gap:.3rem}.public-map-title-block h1{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.public-map-meta-row{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;color:var(--text-muted);font-size:.78rem;font-weight:700}.public-map-visibility{display:inline-flex;align-items:center;min-height:1.45rem;border:1px solid var(--brand-soft-border);border-radius:var(--r-pill);background:var(--brand-soft);color:var(--brand-ink);padding:0 .55rem}.public-map-header-actions{max-width:min(100%,42rem)}.public-map-action-button{min-height:2.3rem;padding:0 .8rem}.public-language-switch{display:inline-flex;align-items:center;gap:.2rem;min-height:2.3rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);padding:.18rem}.public-language-switch-button{min-width:2.45rem;min-height:1.85rem;border:0;border-radius:5px;background:transparent;color:var(--text-muted);cursor:pointer;font-size:.76rem;font-weight:800}.public-language-switch-button[aria-pressed=true]{background:var(--brand-ink);color:var(--surface)}.public-language-switch-button:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.public-map-share-status{color:var(--text-muted);font-size:.76rem;font-weight:700}.public-offline-banner{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin:0;border-top:1px solid rgb(192 138 34 / 22%);border-bottom:1px solid rgb(192 138 34 / 22%);background:#fff7e0f5;color:#6f4c0b;font-size:.82rem;font-weight:780;padding:.62rem 1rem}.public-offline-banner-text{display:grid;gap:.18rem;min-width:0}.public-offline-banner-text p{margin:0}.public-offline-clear-button{min-height:2rem;flex:0 0 auto;border-color:#6f4c0b4d;color:#6f4c0b;padding:0 .72rem}.public-map-stage{flex:1 1 0;min-height:0;background:var(--surface-sunken)}.public-map-view{height:100%;min-height:0}.public-map-info-panel,.public-route-legend-card,.public-profile-panel{position:absolute;z-index:4;border:1px solid rgb(26 34 29 / 13%);border-radius:var(--r-md);background:#fffffff0;box-shadow:var(--shadow-lg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.public-map-info-panel{top:1rem;left:1rem;display:grid;width:min(21rem,calc(100vw - 2rem));max-height:calc(100% - 1rem - var(--map-attribution-safe-block-size) - var(--map-bottom-control-block-size) - var(--map-overlay-gap));overflow:auto;padding:1rem;scrollbar-gutter:stable}.public-map-info-panel:not([open]){width:min(16rem,calc(100vw - 2rem));padding:.78rem .9rem}.public-map-info-summary{display:flex;width:100%;min-width:0;align-items:center;justify-content:space-between;gap:.75rem;list-style:none;cursor:pointer}.public-map-info-summary::-webkit-details-marker{display:none}.public-map-info-heading{display:grid;gap:.2rem;min-width:0}.public-map-info-heading p,.public-map-info-heading>span{margin:0;color:var(--brand);font-size:.72rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.public-map-info-heading h2,.public-map-info-heading strong{margin:0;color:var(--ink);font-size:1.1rem;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.public-map-info-toggle{display:inline-grid;flex:0 0 auto;place-items:center;width:1.7rem;height:1.7rem;border:1px solid var(--border);border-radius:var(--r-pill);color:var(--text);font-size:1rem;font-weight:850}.public-map-info-toggle:before{content:"-"}.public-map-info-panel:not([open]) .public-map-info-toggle:before{content:"+"}.public-map-info-body{display:grid;min-height:0;gap:.9rem;margin-top:.9rem;overflow:visible}.public-map-description,.public-map-empty-summary,.public-map-panel-error,.public-map-safety-note{margin:0;font-size:.82rem;line-height:1.5}.public-map-description{color:var(--text);overflow-wrap:anywhere}.public-map-panel-error{color:var(--danger-ink);font-weight:700}.public-map-empty-summary{color:var(--text-muted);font-weight:700}.public-map-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem .9rem;margin:0}.public-map-metric-grid div{min-width:0;border-top:1px solid var(--border);padding-top:.55rem}.public-map-metric-grid dt{color:var(--text-muted);font-size:.72rem;font-weight:750}.public-map-metric-grid dd{min-width:0;margin:.18rem 0 0;color:var(--ink);font-size:.95rem;font-weight:850;line-height:1.2;overflow-wrap:anywhere}.public-map-safety-note{border-left:3px solid var(--accent);color:var(--text-muted);font-weight:700;padding-left:.65rem}.public-route-legend-card{right:1rem;bottom:calc(var(--map-attribution-safe-block-size) + var(--map-overlay-gap));display:grid;width:min(18rem,calc(100vw - 2rem));max-height:min(34vh,calc(100% - 2rem),22rem);overflow:auto;gap:.65rem;padding:.85rem;scrollbar-gutter:stable}.public-profile-panel{right:20rem;left:23rem;bottom:calc(var(--map-attribution-safe-block-size) + var(--map-overlay-gap));display:grid;max-height:min(13rem,calc(100% - var(--map-attribution-safe-block-size) - var(--map-overlay-gap) - var(--map-overlay-gap)));overflow:hidden}.public-profile-panel .profile-panel{border:0;border-radius:0;background:transparent;box-shadow:none}.public-route-legend-card h2{margin:0;color:var(--ink);font-size:.88rem;font-weight:800}.public-route-legend-card ul{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.public-route-legend-card li{display:grid;grid-template-columns:1.9rem minmax(0,1fr);align-items:center;gap:.5rem;color:var(--text);font-size:.82rem;font-weight:750}.public-route-legend-card li span:last-child{overflow-wrap:anywhere}.public-route-legend-swatch{width:1.9rem;border-top:4px solid;border-radius:var(--r-pill)}.public-route-legend-swatch--dashed{border-top-style:dashed}.public-map-stage .map-attribution{right:1rem;bottom:max(1rem,env(safe-area-inset-bottom));left:auto}.public-map-stage .maplibregl-ctrl-bottom-left{bottom:calc(var(--map-attribution-safe-block-size) + var(--map-overlay-gap));left:1rem}.public-map-stage .maplibregl-ctrl-top-right{max-height:calc(100% - var(--map-attribution-safe-block-size) - var(--map-overlay-gap));overflow-y:auto}.public-map-stage .landmark-popover,.embed-map-shell .landmark-popover{position:absolute;bottom:calc(var(--map-attribution-safe-block-size) + var(--map-overlay-gap));max-height:calc(100% - var(--map-attribution-safe-block-size) - var(--map-overlay-gap) - var(--map-overlay-gap))}.public-map-stage .landmark-sheet-backdrop,.embed-map-shell .landmark-sheet-backdrop{position:absolute;inset:0 0 var(--map-attribution-safe-block-size)}.embed-control-shell{position:absolute;top:calc((100% - var(--map-attribution-safe-block-size)) / 2);right:.85rem;z-index:3;display:grid;justify-items:end;gap:.45rem;transform:translateY(-50%);pointer-events:auto}.embed-control-cluster{position:static;top:auto;right:auto;bottom:auto;display:grid;grid-template-columns:1fr;max-width:none;gap:.22rem;border:1px solid rgb(10 18 14 / 12%);border-radius:var(--r-pill);background:#ffffffc7;padding:.24rem;box-shadow:0 1rem 2.8rem #11181333;transform:none;-webkit-backdrop-filter:blur(16px) saturate(1.12);backdrop-filter:blur(16px) saturate(1.12)}.embed-control-button{width:2.38rem;min-width:2.38rem;min-height:2.38rem;border-color:transparent;border-radius:var(--r-pill);background:transparent;color:var(--ink);box-shadow:none;font-size:.74rem;font-weight:850;line-height:1;padding:0}.embed-control-button.ui-button--default{border-color:#0a6c3d29;background:linear-gradient(180deg,#14764b,#0b663d);color:#fff;box-shadow:inset 0 1px #ffffff2e,0 .45rem 1rem #06563138}.embed-control-button.ui-button--outline{border-color:transparent;background:transparent;color:var(--ink)}.embed-control-button.ui-button--outline:hover:not(:disabled),.embed-control-button.ui-button--ghost:hover:not(:disabled){background:#0f492f17;color:var(--brand)}.embed-control-button--wide{width:2.38rem}.embed-control-button--mode{font-size:.62rem;letter-spacing:0}.embed-control-button--toggle{border-color:#0a6c3d2e;background:#ffffffe0;box-shadow:0 .75rem 2rem #1118132e;-webkit-backdrop-filter:blur(16px) saturate(1.1);backdrop-filter:blur(16px) saturate(1.1)}.embed-control-shell[data-collapsed=true] .embed-control-button--toggle{width:2.65rem;min-width:2.65rem;min-height:2.65rem}.embed-control-icon{width:1.05rem;height:1.05rem;flex:none}.embed-floating-panel{border:1px solid rgb(10 18 14 / 13%);border-radius:8px;background:#ffffffdb;box-shadow:0 1.35rem 3.5rem #1118133d;-webkit-backdrop-filter:blur(18px) saturate(1.08);backdrop-filter:blur(18px) saturate(1.08)}.embed-floating-panel--layers{right:4.25rem;width:min(19rem,calc(100vw - 5.4rem));max-height:min(72vh,calc(100% - var(--map-attribution-safe-block-size) - var(--map-overlay-gap) - var(--map-overlay-gap)),33rem);overflow:auto}.embed-floating-panel--layers .layer-panel{border:0;background:transparent;box-shadow:none}.embed-floating-panel--profile{right:4.25rem;bottom:calc(var(--map-attribution-safe-block-size) + var(--map-overlay-gap));width:min(23rem,calc(100vw - 5.4rem));max-height:min(58dvh,calc(100% - var(--map-attribution-safe-block-size) - var(--map-overlay-gap) - var(--map-overlay-gap)),20rem);overflow:auto;scrollbar-gutter:stable}.embed-floating-panel--profile .profile-panel{border:0;background:transparent;box-shadow:none}.embed-profile-route-title{margin:0;padding:.62rem .72rem 0;color:var(--brand);font-size:.68rem;font-weight:750;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width: 760px){.public-map-stage,.embed-map-shell{--map-attribution-safe-block-size: calc(5.25rem + env(safe-area-inset-bottom)) }.public-map-stage{--public-profile-panel-block-size: min(12rem, 14dvh)}.public-map-header{align-items:flex-start;flex-direction:column;min-height:0}.public-map-title-block h1{white-space:normal}.public-map-header-actions{width:100%;justify-content:flex-start}.public-map-stage,.public-map-view{min-height:0}.public-map-view{height:100%}.public-map-info-panel{top:.75rem;right:calc(.75rem + var(--map-control-rail-inline-size));left:.75rem;width:auto;max-height:min(33dvh,calc(100% - .75rem - var(--map-attribution-safe-block-size) - var(--map-bottom-control-block-size) - var(--map-overlay-gap)))}.public-map-stage:has(.public-profile-panel) .public-map-info-panel{max-height:min(33dvh,calc(100% - .75rem - var(--map-attribution-safe-block-size) - var(--map-overlay-gap) - var(--public-profile-panel-block-size) - var(--map-overlay-gap)))}.public-route-legend-card{right:.75rem;bottom:calc(var(--map-attribution-safe-block-size) + var(--map-overlay-gap));width:min(15rem,calc(100vw - 1.5rem));max-height:min(38dvh,calc(100% - var(--map-attribution-safe-block-size) - var(--map-overlay-gap) - var(--map-overlay-gap)))}.public-profile-panel{right:calc(.75rem + var(--map-control-rail-inline-size));left:7.25rem;bottom:calc(var(--map-attribution-safe-block-size) + var(--map-overlay-gap));max-height:min(var(--public-profile-panel-block-size),calc(100% - var(--map-attribution-safe-block-size) - var(--map-overlay-gap) - var(--map-overlay-gap)));overflow:auto;scrollbar-gutter:stable}.public-profile-panel+.public-route-legend-card,.public-route-legend-card:has(+.public-profile-panel){display:none}.public-map-stage .map-attribution{right:.75rem;bottom:max(.75rem,env(safe-area-inset-bottom));left:auto;max-width:calc(100vw - 1.5rem)}.public-map-stage .maplibregl-ctrl-bottom-left{left:.75rem;bottom:calc(var(--map-attribution-safe-block-size) + var(--map-overlay-gap))}.embed-control-shell{right:.62rem}.embed-control-button,.embed-control-button--wide{width:2.28rem;min-width:2.28rem;min-height:2.28rem}.embed-floating-panel{right:3.7rem;width:min(19rem,calc(100vw - 4.6rem))}.embed-map-shell .route-legend-panel{top:.62rem;left:.62rem;width:min(15.5rem,calc(100vw - 4.7rem));max-height:min(52dvh,calc(100% - var(--map-attribution-safe-block-size) - var(--map-overlay-gap) - .62rem));gap:.45rem;padding:.68rem}.embed-map-shell .route-legend-row{gap:.42rem;font-size:.76rem}.embed-floating-panel--profile{right:3.7rem;bottom:calc(var(--map-attribution-safe-block-size) + var(--map-overlay-gap));width:min(19rem,calc(100vw - 4.6rem));max-height:min(calc(100dvh - var(--map-attribution-safe-block-size) - var(--map-overlay-gap)),calc(100% - var(--map-attribution-safe-block-size) - var(--map-overlay-gap) - var(--map-overlay-gap)),20rem)}.embed-map-shell .map-attribution{right:.62rem;bottom:max(.62rem,env(safe-area-inset-bottom));left:auto;max-width:calc(100vw - 1.24rem)}.embed-floating-panel--profile .profile-panel--compact{padding:.58rem .58rem .5rem}.embed-floating-panel--profile .profile-panel-header{margin-bottom:.28rem}.embed-profile-route-title{padding:.52rem .58rem 0}}@media (max-height: 320px){.embed-control-shell{top:.5rem;transform:none}.embed-control-cluster{grid-template-columns:repeat(3,2.38rem);border-radius:var(--r-md)}}@media print{.map-attribution{display:flex!important;visibility:visible!important}}.create-map-flow{min-height:0;height:100%;background:#f7f8f5}.map-editor-shell:has(.create-map-flow){height:100dvh;overflow:hidden}.create-map-form{display:grid;height:100%;min-height:0;grid-template-rows:minmax(0,1fr) auto}.create-map-layout{display:grid;min-height:0;grid-template-columns:minmax(320px,430px) minmax(0,1fr);overflow:hidden}.create-map-form-panel,.create-map-preview-panel{min-width:0;min-height:0}.create-map-form-panel{overflow:auto;border-right:1px solid var(--border-strong);background:#fff;padding:1.25rem}.create-map-panel-heading,.create-map-preview-header{display:grid;gap:.35rem;margin-bottom:1rem}.create-map-kicker{color:var(--text-muted);font-size:.74rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.create-map-panel-heading h2,.create-map-preview-header h2{margin:0;color:var(--ink);font-size:1.18rem;font-weight:850;line-height:1.2}.create-map-preview-header p{margin:0;color:var(--text-muted);font-size:.84rem;font-weight:650}.create-map-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.95rem}.create-map-field--wide,.create-map-fieldset{grid-column:1 / -1}.create-map-field select,.create-map-field textarea{width:100%;min-height:2.75rem;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);padding:0 .85rem;transition:border-color .14s var(--ease),box-shadow .14s var(--ease)}.create-map-field textarea{min-height:6rem;padding:.7rem .85rem;resize:vertical}.create-map-field select:hover,.create-map-field textarea:hover{border-color:var(--brand-soft-border)}.create-map-field select:focus,.create-map-field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #2f5d4a29;outline:none}.create-map-field-error{margin:.05rem 0 0}.create-map-fieldset{min-width:0;margin:0;border:0;padding:0}.create-map-fieldset legend{margin-bottom:.55rem;color:var(--text);font-size:.85rem;font-weight:650}.create-map-radio-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.create-map-radio{display:flex;min-height:2.75rem;align-items:center;gap:.5rem;border:1px solid var(--border-strong);border-radius:var(--r-sm);background:var(--surface);color:var(--text);cursor:pointer;font-size:.84rem;font-weight:700;padding:0 .75rem}.create-map-radio:has(input:checked){border-color:var(--brand-soft-border);background:var(--brand-soft);color:var(--brand-ink)}.create-map-radio input{width:1rem;height:1rem;accent-color:var(--brand)}.create-map-preview-panel{display:grid;grid-template-rows:auto minmax(0,1fr);background:var(--surface-sunken)}.create-map-preview-header{margin:0;border-bottom:1px solid var(--border-strong);background:#ffffffeb;padding:1rem 1.15rem}.create-map-preview-frame{position:relative;min-height:0;overflow:hidden}.create-map-preview-map{height:100%;min-height:0;border:0;border-radius:0;box-shadow:none}.create-map-action-bar{position:relative;bottom:0;z-index:4;display:flex;min-height:76px;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--border-strong);background:#fffffff5;padding:.85rem 1.25rem;box-shadow:0 -8px 24px #10191414}.create-map-action-status{min-width:0}.create-map-action-status .route-status,.create-map-action-status .route-error{margin:0}.create-map-action-buttons{display:flex;align-items:center;justify-content:flex-end;gap:.75rem}@media (max-width: 860px){.create-map-flow,.create-map-form{height:100%;min-height:0}.create-map-layout{align-content:start;grid-auto-rows:max-content;grid-template-columns:1fr;overflow:auto}.create-map-fields{grid-template-columns:1fr}.create-map-form-panel{overflow:visible;border-right:0;border-bottom:1px solid var(--border-strong)}.create-map-preview-frame{min-height:360px}.create-map-action-bar{align-items:stretch;flex-direction:column}.create-map-action-buttons,.create-map-action-buttons .ui-button{width:100%}}.image-export-frame{position:relative;width:min(640px,100%);margin:0;border:1px solid #d6e3da;border-radius:var(--r-md);overflow:hidden;background:var(--surface-sunken);box-shadow:0 10px 28px #0f302024}.image-export-map{position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.image-export-map .maplibregl-ctrl-top-right{display:none}.image-export-map-placeholder{background:linear-gradient(#ffffffdb,#ffffffdb),repeating-linear-gradient(0deg,rgb(15 118 65 / .12) 0 1px,transparent 1px 18px)}.image-export-title-badge{position:absolute;top:.85rem;left:.85rem;z-index:5;display:inline-flex;align-items:center;gap:.45rem;max-width:calc(100% - 1.7rem);padding:.4rem .75rem;border-radius:999px;background:#ffffffeb;color:var(--ink);font-size:.82rem;font-weight:700;line-height:1.25;box-shadow:0 2px 10px #0f30202e}.image-export-title-badge span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.image-export-brand-mark{flex:none;width:1.05rem;height:1.05rem}.image-export-loading,.image-export-error{position:absolute;right:1rem;bottom:1rem;z-index:6}.image-export-preview-shell .pdf-export-preview-scroll{display:grid;justify-items:center;align-content:center;gap:.75rem}.image-export-preview-hint{margin:0;color:var(--ink-muted, #5b6b62);font-size:.8rem;text-align:center}.image-export-note{margin:.35rem 0 0;color:var(--ink-muted, #5b6b62);font-size:.78rem}.editor-status-pill[data-status=unsaved]{border-color:#d8a327;background:#fff6d8;color:#76520b}.editor-status-pill[data-status=conflict]{border-color:#dc635a;background:#fff0ef;color:#8c251e}.submission-manager-modal{width:min(64rem,100%)}.submission-manager-modal p,.submission-manager-modal h3,.submission-manager-modal h4{margin:0}.submission-manager-actions,.submission-manager-draft-actions,.route-conflict-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem}.submission-manager-layout{display:grid;grid-template-columns:minmax(13rem,.75fr) minmax(20rem,1.5fr);gap:1rem;min-height:20rem}.submission-manager-history,.submission-manager-detail,.submission-preflight-issues,.route-conflict-actions{display:grid;align-content:start;gap:.75rem;border:1px solid var(--border);border-radius:var(--r-md);background:var(--surface-raised);padding:.9rem}.submission-manager-history ol,.submission-manager-detail ul,.submission-preflight-issues ul{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.submission-manager-history button{display:grid;width:100%;grid-template-columns:1fr auto;gap:.25rem .65rem;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface);color:inherit;padding:.65rem;text-align:left}.submission-manager-history button[aria-current=true]{border-color:var(--brand);box-shadow:0 0 0 2px var(--brand-soft)}.submission-manager-history time{grid-column:1 / -1;color:var(--text-muted);font-size:.75rem}.submission-manager-detail-heading,.submission-manager-detail li,.submission-manager-detail dl div{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.submission-manager-detail dl{display:grid;gap:.45rem;margin:0}.submission-manager-detail code{overflow-wrap:anywhere;color:var(--text-muted);font-size:.72rem}.submission-manager-draft-actions label{display:grid;gap:.35rem}@media (max-width: 760px){.submission-manager-layout{grid-template-columns:1fr}}.gpx-analyzer-header{display:flex;align-items:end;justify-content:space-between;gap:2rem;padding-bottom:clamp(2rem,4vw,3.75rem);border-bottom:1px solid #cbd5ce}.gpx-analyzer-brand{max-width:48rem}.gpx-analyzer-kicker{margin:0 0 .75rem;color:#1e6544;font-size:.72rem;font-weight:800;letter-spacing:.13em;line-height:1.25;text-transform:uppercase}.gpx-analyzer-lead{max-width:42rem;margin:1.25rem 0 0;color:#496055;font-size:clamp(1rem,1.6vw,1.15rem);line-height:1.7}.gpx-analyzer-header-note{max-width:16rem;margin:0;padding-left:1rem;border-left:2px solid #69a57d;color:#587066;font-size:.78rem;line-height:1.5}.gpx-analyzer-section{display:grid;gap:1.25rem}.gpx-analyzer-section-heading,.gpx-analyzer-results-heading,.gpx-analyzer-detail-header,.gpx-analyzer-chart-heading,.gpx-analyzer-method-heading{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.gpx-analyzer-section-title{margin:0;color:#163324;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.45rem,2.7vw,2rem);font-weight:700;letter-spacing:-.03em;line-height:1}.gpx-analyzer-section-copy,.gpx-analyzer-results-caption{margin:0;color:#587066;font-size:.8rem;line-height:1.5}.gpx-analyzer-dropzone{position:relative;display:grid;min-height:clamp(17rem,36vw,24rem);place-items:center;overflow:hidden;border:1px solid #99afa1;background-color:#f7faf6;isolation:isolate;padding:clamp(1.75rem,5vw,4rem);text-align:center;transition:border-color .16s var(--ease),background-color .16s var(--ease)}.gpx-analyzer-dropzone:before{position:absolute;z-index:-1;top:0;right:0;bottom:0;left:0;background:repeating-radial-gradient(ellipse 52% 30% at 12% 18%,transparent 0 10px,rgb(22 76 49 / .1) 11px 12px,transparent 13px 21px),repeating-radial-gradient(ellipse 48% 34% at 88% 76%,transparent 0 12px,rgb(22 76 49 / .08) 13px 14px,transparent 15px 25px),repeating-radial-gradient(ellipse 42% 24% at 50% 52%,transparent 0 16px,rgb(22 76 49 / .055) 17px 18px,transparent 19px 30px);content:"";pointer-events:none}.gpx-analyzer-dropzone.gpx-analyzer-dropzone--dragging{border-color:#1e6544;background-color:#eaf3eb}.gpx-analyzer-dropzone:focus-within{outline:3px solid #266f9e;outline-offset:3px}.gpx-analyzer-upload-icon{display:grid;width:3.5rem;height:3.5rem;place-items:center;margin:0 auto 1.5rem;border:1px solid #48765d;border-radius:50%;background:#ffffffc7;color:#174a32;font-size:1.5rem}.gpx-analyzer-upload-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.65rem}.gpx-analyzer-upload-actions button,.gpx-analyzer-upload-actions label{display:inline-flex;min-height:2.75rem;align-items:center;justify-content:center;border:1px solid #174a32;border-radius:0;background:#174a32;color:#fff;cursor:pointer;font-size:.86rem;font-weight:750;letter-spacing:.015em;padding:.65rem 1rem;transition:background-color .16s var(--ease),transform .16s var(--ease)}.gpx-analyzer-upload-actions button:hover,.gpx-analyzer-upload-actions label:hover{background:#0c3321}.gpx-analyzer-upload-actions button:focus-visible,.gpx-analyzer-upload-actions label:focus-visible,.gpx-analyzer-route-select:focus-visible{outline:3px solid #266f9e;outline-offset:3px}.gpx-analyzer-file-input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.gpx-analyzer-file-list,.gpx-analyzer-route-list,.gpx-analyzer-method-list{margin:0;padding:0;list-style:none}.gpx-analyzer-file-list{display:grid;gap:1px;border:1px solid #d2ddd4;background:#d2ddd4}.gpx-analyzer-file{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;background:#fff;padding:.75rem 1rem}.gpx-analyzer-file-name{overflow:hidden;color:#163324;font-size:.87rem;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.gpx-analyzer-file-size,.gpx-analyzer-status{color:#587066;font-size:.75rem;white-space:nowrap}.gpx-analyzer-status{color:#1e6544;font-weight:750}.gpx-analyzer-status.gpx-analyzer-status--error{color:#9a3825}.gpx-analyzer-results{grid-template-columns:minmax(18rem,.83fr) minmax(0,1.7fr)}.gpx-analyzer-results-heading{min-height:5.5rem;padding:1.4rem 1.5rem;border-bottom:1px solid #cbd5ce}.gpx-analyzer-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#cbd5ce}.gpx-analyzer-summary-card{display:grid;gap:.35rem;background:#fff;padding:1rem}.gpx-analyzer-summary-value{color:#163324;font-family:Georgia,Times New Roman,serif;font-size:1.6rem;font-weight:700;letter-spacing:-.035em;line-height:1}.gpx-analyzer-summary-label{color:#587066;font-size:.7rem;font-weight:750;letter-spacing:.06em;line-height:1.35;text-transform:uppercase}.gpx-analyzer-route-list{border-right:1px solid #cbd5ce}.gpx-analyzer-route{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.85rem;border-bottom:1px solid #dce4de;background:#fff;padding:1rem 1.5rem;transition:background-color .16s var(--ease),box-shadow .16s var(--ease)}.gpx-analyzer-route:hover{background:#f4f8f4}.gpx-analyzer-route.gpx-analyzer-route--selected{background:#e9f2e9;box-shadow:inset 3px 0 #1e6544}.gpx-analyzer-route-select{display:grid;width:1.5rem;height:1.5rem;place-items:center;border:0;border-radius:50%;background:transparent;color:#5c7b6a;cursor:pointer;padding:0}.gpx-analyzer-route.gpx-analyzer-route--selected .gpx-analyzer-route-select{background:#1e6544;color:#fff}.gpx-analyzer-route-main{min-width:0}.gpx-analyzer-route-name{display:block;overflow:hidden;color:#163324;font-size:.92rem;font-weight:750;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.gpx-analyzer-route-meta{color:#587066;font-size:.75rem;line-height:1.45}.gpx-analyzer-route-metrics{display:flex;gap:.75rem;text-align:right}.gpx-analyzer-metric{display:grid;gap:.15rem}.gpx-analyzer-metric-value{color:#1e6544;font-size:.8rem;font-weight:800;white-space:nowrap}.gpx-analyzer-metric-label{color:#759084;font-size:.65rem;font-weight:750;letter-spacing:.06em;text-transform:uppercase}.gpx-analyzer-quality{display:inline-flex;margin-top:.35rem;color:#1e6544;font-size:.68rem;font-weight:750}.gpx-analyzer-detail{min-width:0;background:#f6f9f6}.gpx-analyzer-detail-header{align-items:end;padding:clamp(1.6rem,3.5vw,3rem);border-bottom:1px solid #cbd5ce}.gpx-analyzer-detail-title{max-width:20ch;margin:0;color:#10251b;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,4vw,3.5rem);font-weight:700;letter-spacing:-.035em;line-height:.98}.gpx-analyzer-detail-grid{grid-template-columns:minmax(0,1.25fr) minmax(16rem,.75fr)}.gpx-analyzer-chart-card,.gpx-analyzer-detail-stats{min-width:0;background:#fff}.gpx-analyzer-chart-card{padding:1.5rem}.gpx-analyzer-chart-heading{margin-bottom:1rem}.gpx-analyzer-chart{min-height:13rem;border:1px solid #d2ddd4;background:#f7faf7}.gpx-analyzer-detail-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:#cbd5ce}.gpx-analyzer-stat{display:grid;align-content:space-between;min-height:8rem;background:#fff;padding:1.15rem}.gpx-analyzer-stat-label{color:#587066;font-size:.7rem;font-weight:750;letter-spacing:.06em;line-height:1.35;text-transform:uppercase}.gpx-analyzer-stat-value{margin-top:1.3rem;color:#163324;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.45rem,2.6vw,2.2rem);font-weight:700;letter-spacing:-.035em;line-height:.95}.gpx-analyzer-method{display:grid;grid-template-columns:minmax(10rem,.6fr) minmax(0,1.4fr);gap:2rem;margin-top:clamp(3.5rem,8vw,8rem);padding:clamp(1.75rem,4vw,3.5rem) 0;border-top:1px solid #cbd5ce;border-bottom:1px solid #cbd5ce}.gpx-analyzer-method-heading{display:block}.gpx-analyzer-method-list{display:grid;gap:.75rem}.gpx-analyzer-method-item{display:grid;grid-template-columns:2.25rem minmax(0,1fr);gap:1rem;color:#496055;font-size:.9rem;line-height:1.6}.gpx-analyzer-method-number{color:#1e6544;font-family:Georgia,Times New Roman,serif;font-size:1.1rem;font-weight:700}@media (max-width: 900px){.gpx-analyzer-header,.gpx-analyzer-method{align-items:start;grid-template-columns:1fr}.gpx-analyzer-header{flex-direction:column}.gpx-analyzer-results,.gpx-analyzer-detail-grid{grid-template-columns:1fr}.gpx-analyzer-route-list{border-right:0;border-bottom:1px solid #cbd5ce}}@media (max-width: 560px){.gpx-analyzer-summary{grid-template-columns:1fr}.gpx-analyzer-file{grid-template-columns:minmax(0,1fr) auto}.gpx-analyzer-status{grid-column:1 / -1}.gpx-analyzer-route,.gpx-analyzer-results-heading,.gpx-analyzer-chart-card{padding-right:1rem;padding-left:1rem}.gpx-analyzer-detail-header{padding:1.5rem 1rem}.gpx-analyzer-route-metrics{display:none}.gpx-analyzer-chart{min-height:11rem}.gpx-analyzer-stat{min-height:6.75rem;padding:.9rem}}@media (prefers-reduced-motion: reduce){.gpx-analyzer-dropzone,.gpx-analyzer-upload-actions button,.gpx-analyzer-upload-actions label,.gpx-analyzer-route{transition:none}}.gpx-analyzer-page .gpx-analyzer-header{width:min(1320px,100%);margin:0 auto;padding:1.25rem clamp(1.15rem,4vw,3.5rem)}.gpx-analyzer-brand{color:#10251b;font-family:Georgia,Times New Roman,serif;font-size:1.2rem;font-weight:700;letter-spacing:-.035em;text-decoration:none}.gpx-analyzer-header-note{display:flex;max-width:none;align-items:center;gap:clamp(.75rem,2vw,1.5rem);border-left:0;padding-left:0;font-size:.78rem;white-space:nowrap}.gpx-analyzer-header-note a:not(.ui-button){color:#496055;text-decoration-color:transparent;text-underline-offset:.2em}.gpx-analyzer-header-note a:not(.ui-button):hover{color:#174a32;text-decoration-color:currentcolor}.gpx-analyzer-page .gpx-analyzer-shell{display:grid;width:min(1320px,100%);margin:0 auto;gap:clamp(2rem,3.5vw,3.25rem);padding-right:clamp(1.15rem,4vw,3.5rem);padding-left:clamp(1.15rem,4vw,3.5rem);padding-top:clamp(2rem,3.5vw,3.25rem)}.gpx-analyzer-page .gpx-analyzer-shell>.gpx-analyzer-section:first-child{gap:0}.gpx-analyzer-dropzone{border-style:dashed;border-width:1px}.gpx-analyzer-upload-actions .ui-button{min-height:2.75rem;border-radius:0;font-size:.86rem}.gpx-analyzer-results{display:block;border-top:1px solid #cbd5ce;background:#fff}.gpx-analyzer-results-heading{padding-right:0;padding-left:0}.gpx-analyzer-route-list{border:1px solid #cbd5ce;border-right:1px solid #cbd5ce;border-bottom:0}.gpx-analyzer-route{display:block;padding:0}.gpx-analyzer-route-select{display:grid;width:100%;height:auto;grid-template-columns:minmax(13rem,1.25fr) minmax(0,3.8fr) auto;align-items:center;gap:1.25rem;border-radius:0;background:transparent;color:inherit;padding:1rem 1.25rem;text-align:left}.gpx-analyzer-route.gpx-analyzer-route--selected .gpx-analyzer-route-select{background:transparent;color:inherit}.gpx-analyzer-route-main{display:grid;gap:.25rem}.gpx-analyzer-route-metrics{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.75rem;width:100%}.gpx-analyzer-metric{min-width:0}.gpx-analyzer-metric-value{overflow:hidden;text-overflow:ellipsis}.gpx-analyzer-metric--elevation{grid-column:span 2}.gpx-analyzer-metric--elevation .gpx-analyzer-metric-value{overflow:visible;font-size:.75rem;text-overflow:clip}.gpx-analyzer-quality{margin-top:0;color:#174a32;white-space:nowrap}.gpx-analyzer-detail{border-top:1px solid #cbd5ce}.gpx-analyzer-detail-header{background:#edf4ed}.gpx-analyzer-detail-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:1px;background:#cbd5ce}.gpx-analyzer-chart-card{margin:0}.gpx-analyzer-detail-stats{grid-column:1 / -1}.gpx-analyzer-chart{display:block;width:100%;height:auto;color:#1e6544}.gpx-analyzer-method-heading{margin:0;color:#10251b;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.55rem,3vw,2.3rem);font-weight:700;letter-spacing:-.035em;line-height:1}@media (max-width: 1050px){.gpx-analyzer-route-select{grid-template-columns:minmax(12rem,1fr) minmax(0,2fr) auto}.gpx-analyzer-route-metrics{grid-template-columns:repeat(4,minmax(4.25rem,1fr))}}@media (max-width: 720px){.gpx-analyzer-page .gpx-analyzer-header{align-items:start;padding-top:1rem;padding-bottom:1rem}.gpx-analyzer-header-note{flex-wrap:wrap;justify-content:end;gap:.5rem .85rem}.gpx-analyzer-section-heading,.gpx-analyzer-results-heading,.gpx-analyzer-detail-header{align-items:start;flex-direction:column}.gpx-analyzer-route-select{grid-template-columns:minmax(0,1fr) auto;gap:.75rem}.gpx-analyzer-route-metrics{grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid #dce4de;padding-top:.85rem}.gpx-analyzer-detail-grid{grid-template-columns:1fr}.gpx-analyzer-detail-stats{grid-column:auto}}@media (max-width: 360px){.public-map-header{gap:.65rem;padding:.75rem 1rem}.public-map-header-actions{gap:.45rem}.public-map-action-button,.public-map-export-actions .ui-button{min-height:2rem;font-size:.78rem;padding-inline:.58rem}.public-map-info-heading strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.public-map-stage:has(.public-profile-panel) .public-map-info-panel{max-height:8rem}.public-profile-panel{bottom:calc(var(--map-attribution-safe-block-size) + var(--map-bottom-control-block-size) + (var(--map-overlay-gap) * .5))}.public-profile-panel .profile-chart-frame{overflow:hidden}.public-map-stage .map-attribution{bottom:calc(.75rem + var(--map-overlay-gap))}}@media (max-width: 480px){.gpx-analyzer-page .gpx-analyzer-header{gap:1rem}.gpx-analyzer-header-note a:not(.ui-button){display:none}.gpx-analyzer-route-select{padding:1rem}.gpx-analyzer-route-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.gpx-analyzer-metric--elevation{grid-column:1 / -1}}.gpx-analyzer-page .gpx-analyzer-shell .gpx-analyzer-shell{gap:2rem;padding:0}.gpx-analyzer-dropzone{min-height:13.125rem;padding:1.1rem 1.5rem}.gpx-analyzer-dropzone:before{background:repeating-radial-gradient(ellipse 52% 30% at 12% 18%,transparent 0 11px,rgb(22 76 49 / .065) 12px 13px,transparent 14px 23px),repeating-radial-gradient(ellipse 48% 34% at 88% 76%,transparent 0 13px,rgb(22 76 49 / .055) 14px 15px,transparent 16px 27px),repeating-radial-gradient(ellipse 42% 24% at 50% 52%,transparent 0 17px,rgb(22 76 49 / .04) 18px 19px,transparent 20px 32px)}.gpx-analyzer-upload-icon{width:2.75rem;height:2.75rem;margin-bottom:.65rem;font-size:1.2rem}.gpx-analyzer-upload-title{font-size:clamp(1.3rem,2.3vw,1.75rem)}.gpx-analyzer-upload-copy{margin:.4rem 0 .9rem}.gpx-analyzer-results-heading{min-height:4.25rem;padding-top:.9rem;padding-bottom:.9rem}.gpx-analyzer-route-list:before{display:block;border-bottom:1px solid #cbd5ce;background:#f4f7f3;color:#6a7f72;content:"ルート名・ファイル                                      指標";font-size:.66rem;font-weight:800;letter-spacing:.075em;padding:.55rem 1.25rem}.gpx-analyzer-route-select{padding-top:.75rem;padding-bottom:.75rem}.gpx-analyzer-route-metrics{gap:.55rem}.gpx-analyzer-metric-label{font-size:.61rem}.gpx-analyzer-detail-header{padding:1.15rem 1.25rem}.gpx-analyzer-detail-title{font-size:clamp(1.4rem,2.25vw,2rem)}.gpx-analyzer-detail-grid{grid-template-columns:minmax(0,62fr) minmax(18rem,38fr)}.gpx-analyzer-chart-card{padding:1rem}.gpx-analyzer-chart-heading{margin-bottom:.65rem}.gpx-analyzer-chart{min-height:10.5rem}.gpx-analyzer-detail-stats{grid-column:auto;grid-template-columns:repeat(2,minmax(0,1fr))}.gpx-analyzer-stat{min-height:5.25rem;padding:.75rem}.gpx-analyzer-stat-value{margin-top:.75rem;font-size:clamp(1.1rem,1.8vw,1.6rem)}.gpx-analyzer-method{grid-template-columns:minmax(11rem,.7fr) minmax(0,1.3fr);gap:2.5rem;margin-top:clamp(3rem,5vw,4.5rem);border:0;border-radius:.9rem;background:#edf5ed;padding:clamp(1.5rem,3vw,2.5rem)}.gpx-analyzer-method-list{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}.gpx-analyzer-method-item{grid-template-columns:1fr;gap:.35rem;font-size:.82rem;line-height:1.55}.gpx-analyzer-method-number{font-size:.9rem}@media (max-width: 900px){.gpx-analyzer-detail-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr)}.gpx-analyzer-detail-stats{grid-column:1 / -1}.gpx-analyzer-method-list{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 720px){.gpx-analyzer-route-list:before{content:"ルートと解析指標"}.gpx-analyzer-route-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.gpx-analyzer-method{grid-template-columns:1fr;gap:1.5rem}.gpx-analyzer-method-list{grid-template-columns:1fr;gap:.9rem}.gpx-analyzer-method-item{grid-template-columns:minmax(0,1fr)}}@media (max-width: 560px){.gpx-analyzer-method,.gpx-analyzer-method-list{display:grid;grid-template-columns:minmax(0,1fr)}.gpx-analyzer-method-item{grid-template-columns:minmax(0,1fr);font-size:.9rem;line-height:1.65}}.gpx-analyzer-route-row{display:grid;width:100%;grid-template-columns:minmax(13rem,1.25fr) minmax(0,3.8fr) auto;align-items:center;gap:1.25rem;color:inherit;padding:.75rem 1.25rem;text-align:left}@media (max-width: 1050px){.gpx-analyzer-route-row{grid-template-columns:minmax(12rem,1fr) minmax(0,2fr) auto}}@media (max-width: 720px){.gpx-analyzer-route-row{grid-template-columns:minmax(0,1fr) auto;gap:.75rem}}@media (max-width: 480px){.gpx-analyzer-route-row{padding:1rem}}.gpx-analyzer-page-intro{display:grid;gap:.7rem;margin-bottom:clamp(1.5rem,3vw,2.5rem)}.gpx-analyzer-import-actions,.gpx-analyzer-results-back{display:flex;flex-wrap:wrap;justify-content:center;gap:.7rem}.gpx-analyzer-import-actions{justify-content:flex-end}.gpx-analyzer-results-page{display:grid;gap:1.25rem}.gpx-analyzer-results-page-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem;border-bottom:2px solid #173c2a;padding-bottom:1rem}.gpx-analyzer-table-eyebrow{margin:0 0 .35rem;color:#587066;font-size:.72rem;font-weight:800;letter-spacing:.08em}.gpx-analyzer-export-status{margin:-.6rem 0 0;color:#395447;font-size:.78rem;font-weight:700}.gpx-analyzer-results-status{margin:-.55rem 0 0;color:#395447;font-size:.78rem;font-weight:700}.gpx-analyzer-results-page .gpx-analyzer-upload-actions .ui-button--outline{border-color:#174a32;background:#fff;color:#174a32}.gpx-analyzer-results-page .gpx-analyzer-upload-actions .ui-button--outline:hover:not(:disabled){background:#e8f3eb;color:#0c3321}.gpx-analyzer-table-scroll{overflow-x:auto;border:1px solid #52645a;background:#fff;scrollbar-color:#668277 #eef3ef;scrollbar-width:thin}.gpx-analyzer-result-table{width:100%;min-width:66rem;border-collapse:collapse;background:#fff;color:#17271e;font-size:.72rem;line-height:1.35}.gpx-analyzer-result-table caption{caption-side:top;padding:.65rem .8rem;color:#395447;font-size:.75rem;font-weight:800;text-align:left}.gpx-analyzer-result-table th,.gpx-analyzer-result-table td{border:1px solid #59675f;padding:.42rem .38rem;vertical-align:middle}.gpx-analyzer-result-table thead th{background:#d7e9ed;font-size:.68rem;font-weight:800;line-height:1.2;text-align:center;white-space:nowrap}.gpx-analyzer-result-table thead .gpx-analyzer-table-highlight{background:#fff200}.gpx-analyzer-result-table tbody tr:hover{background:#f3f8f3}.gpx-analyzer-result-table td:not(.gpx-analyzer-table-route),.gpx-analyzer-result-table tbody>tr>th{text-align:center;white-space:nowrap}.gpx-analyzer-result-table tbody>tr>td:nth-last-child(-n+5){font-variant-numeric:tabular-nums;text-align:right}.gpx-analyzer-table-number{background:#e7f3f6;font-weight:800}.gpx-analyzer-table-route{min-width:12rem}.gpx-analyzer-table-route strong,.gpx-analyzer-table-route small{display:block}.gpx-analyzer-table-route strong{font-size:.78rem}.gpx-analyzer-table-route small{color:#5d7568;font-size:.64rem}.gpx-analyzer-table-route .gpx-analyzer-table-issue{margin-top:.2rem;color:#9a3825}.gpx-analyzer-col-number{width:2.5%}.gpx-analyzer-col-route{width:28%}.gpx-analyzer-col-level{width:6%}.gpx-analyzer-col-elevation,.gpx-analyzer-col-time{width:7%}.gpx-analyzer-col-distance{width:6%}.gpx-analyzer-col-constant{width:7%}.gpx-analyzer-table-note{margin:0;border-left:3px solid #1e6544;color:#405c4e;font-size:.8rem;line-height:1.6;padding-left:.75rem}.gpx-analyzer-results-back{border-top:1px solid #c7d3ca;margin-top:1rem;padding-top:2rem;padding-bottom:1rem}@media (max-width: 720px){.gpx-analyzer-results-page-heading{align-items:start;flex-direction:column}.gpx-analyzer-result-table{font-size:.7rem}.gpx-analyzer-result-table thead>tr:first-child>th:first-child,.gpx-analyzer-result-table tbody>tr>th:first-child{position:sticky;z-index:2;left:0}.gpx-analyzer-result-table thead>tr:first-child>th:first-child{z-index:4;background:#d7e9ed}.gpx-analyzer-result-table tbody>tr>th:first-child{background:#e7f3f6}}
