:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}:root{--bg: #f5efe1;--bg-2: #fbf6ea;--bg-3: #fffaf0;--surface: #fffaf0;--surface-alt: #fbf6ea;--surface-sunken: #ebe3cf;--border: #e2d6bc;--border-soft: #ede5d2;--divider: #e2d6bc;--fg-1: #2a221a;--fg-2: #524631;--fg-3: #897c5e;--fg-4: #b3a78a;--fg-5: #c9bda0;--primary: #b8730a;--primary-hover: #d99535;--primary-bg: rgba(184, 115, 10, .12);--primary-glow: rgba(184, 115, 10, .22);--on-primary: #fffaf0;--secondary: #2e5234;--secondary-bg: #e8f0e8;--selected-bg: #f3e2c1;--selected-fg: #b8730a;--selected-border: #d99535;--info-fg: #b8730a;--link: #b8730a;--error-fg: #b71c1c;--error-bg: #fbe9e7;--delete-action: #c62828;--diff-beginner-bg: #f1f8e9;--diff-beginner-fg: #558b2f;--diff-easy-bg: #e8f5e9;--diff-easy-fg: #2e7d32;--diff-medium-bg: #fff3e0;--diff-medium-fg: #e65100;--diff-hard-bg: #fbe9e7;--diff-hard-fg: #bf360c;--diff-expert-bg: #fce4ec;--diff-expert-fg: #880e4f;--status-planned-bg: #e3f2fd;--status-planned-fg: #1565c0;--status-ongoing-bg: #fff8e1;--status-ongoing-fg: #f57f17;--status-finished-bg: #e8f5e9;--status-finished-fg: #2e7d32;--type-cave-bg: #e3f2fd;--type-cave-fg: #1565c0;--type-system-bg: #f3e5f5;--type-system-fg: #6a1b9a;--access-ok-bg: #e8f5e9;--access-ok-fg: #2e7d32;--access-required-bg: #fff3e0;--access-required-fg: #e65100;--vis-restricted-bg: #e0f7fa;--vis-restricted-fg: #00838f;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: "Source Serif 4", "Source Serif Pro", Georgia, serif;--font-mono: "JetBrains Mono", "SF Mono", Monaco, monospace;--fs-h1: 1.75rem;--fs-h2: 1.375rem;--fs-h3: 1.0625rem;--fs-body: .875rem;--fs-small: .8125rem;--fs-xs: .75rem;--fs-badge: .6875rem;--fs-label: .65625rem;--fw-regular: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--lh-tight: 1.1;--lh-snug: 1.2;--lh-body: 1.5;--lh-relaxed: 1.6;--tracking-tight: -.01em;--tracking-caps: .08em;--tracking-badge: .06em;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 2px rgba(42, 34, 26, .08);--shadow-md: 0 2px 8px rgba(42, 34, 26, .12), 0 1px 2px rgba(42, 34, 26, .08);--shadow-lg: 0 8px 24px rgba(42, 34, 26, .16), 0 2px 8px rgba(42, 34, 26, .08);--shadow-xl: 0 12px 32px rgba(42, 34, 26, .2), 0 4px 12px rgba(42, 34, 26, .12);--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 48px;--space-8: 64px;--ease-standard: cubic-bezier(.4, 0, .2, 1);--ease-decelerate: cubic-bezier(0, 0, .2, 1);--ease-accelerate: cubic-bezier(.4, 0, 1, 1);--dur-quick: .15s;--dur-medium: .22s;--dur-slow: .3s;--topo-contour: rgba(120, 95, 50, .13);--topo-amber: rgba(184, 115, 10, .16);--topo-amber-fade: rgba(184, 115, 10, .05);--topo-blue: rgba(80, 110, 105, .1);--bp-mobile: 600px;--bp-tablet: 900px;--bp-desktop: 1200px}.theme-dark{--bg: #0a0e10;--bg-2: #11171b;--bg-3: #1a2227;--surface: #1a2227;--surface-alt: #232a2e;--surface-sunken: #0f1213;--border: #2a3236;--border-soft: #232a2e;--divider: #20262a;--fg-1: #f1ede2;--fg-2: #d8d2c0;--fg-3: #b8b09a;--fg-4: #918873;--fg-5: #6a624f;--primary: #f3b94d;--primary-hover: #ffcd66;--primary-bg: rgba(243, 185, 77, .18);--primary-glow: rgba(243, 185, 77, .4);--on-primary: #14181a;--selected-bg: #2a221a;--selected-fg: #f3b94d;--info-fg: #f3b94d;--error-fg: #ffb4ab;--error-bg: #3f1d17;--diff-beginner-bg: #2a3a1f;--diff-beginner-fg: #a8d582;--diff-easy-bg: #1e3526;--diff-easy-fg: #81c995;--diff-medium-bg: #3e2b14;--diff-medium-fg: #ffb77c;--diff-hard-bg: #3f1d17;--diff-hard-fg: #ffb4a9;--diff-expert-bg: #3c1a2f;--diff-expert-fg: #ffb0d8;--status-planned-bg: #1a2638;--status-planned-fg: #a3c8ff;--status-ongoing-bg: #3e3214;--status-ongoing-fg: #ffd966;--status-finished-bg: #1e3526;--status-finished-fg: #81c995;--type-cave-bg: #1a2638;--type-cave-fg: #a3c8ff;--type-system-bg: #2e1f3a;--type-system-fg: #d8b8e8;--access-ok-bg: #1e3526;--access-ok-fg: #81c995;--access-required-bg: #3e2b14;--access-required-fg: #ffb77c;--vis-restricted-bg: #173b3f;--vis-restricted-fg: #4dd0e1;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .4);--shadow-md: 0 2px 8px rgba(0, 0, 0, .6), 0 1px 2px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .7), 0 2px 8px rgba(0, 0, 0, .5);--shadow-xl: 0 12px 32px rgba(0, 0, 0, .8), 0 4px 12px rgba(0, 0, 0, .6);--topo-contour: rgba(110, 140, 140, .18);--topo-amber: rgba(243, 185, 77, .2);--topo-amber-fade: rgba(243, 185, 77, .08);--topo-blue: rgba(110, 180, 175, .14)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}html{background:var(--bg);color:var(--fg-1);font-family:var(--font-sans);font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.h-page-title{font-family:var(--font-serif);font-size:var(--fs-h1);font-weight:var(--fw-medium);line-height:var(--lh-tight);letter-spacing:var(--tracking-tight);color:var(--fg-1);margin:0}.h-section{font-family:var(--font-serif);font-size:var(--fs-h2);font-weight:var(--fw-medium);line-height:var(--lh-snug);color:var(--fg-1);margin:0}.h-subsection{font-family:var(--font-sans);font-size:var(--fs-h3);font-weight:var(--fw-semibold);line-height:var(--lh-snug);color:var(--fg-1);margin:0}.h-label-caps{font-family:var(--font-sans);font-size:var(--fs-label);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-caps);color:var(--fg-3);margin:0}.t-body{font-family:var(--font-sans);font-size:var(--fs-body);font-weight:var(--fw-regular);line-height:var(--lh-body);color:var(--fg-2)}.t-prose{font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-relaxed);color:var(--fg-2);white-space:pre-wrap}.t-small{font-family:var(--font-sans);font-size:var(--fs-small);color:var(--fg-3);line-height:var(--lh-body)}.t-meta{font-family:var(--font-sans);font-size:var(--fs-xs);color:var(--fg-4);line-height:var(--lh-body)}.t-mono{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--fg-3);font-variant-numeric:tabular-nums}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:var(--radius-pill);font-size:var(--fs-badge);font-weight:var(--fw-bold);text-transform:uppercase;letter-spacing:var(--tracking-badge);white-space:nowrap}.badge--difficulty-beginner{background:var(--diff-beginner-bg);color:var(--diff-beginner-fg)}.badge--difficulty-easy{background:var(--diff-easy-bg);color:var(--diff-easy-fg)}.badge--difficulty-medium{background:var(--diff-medium-bg);color:var(--diff-medium-fg)}.badge--difficulty-hard{background:var(--diff-hard-bg);color:var(--diff-hard-fg)}.badge--difficulty-expert{background:var(--diff-expert-bg);color:var(--diff-expert-fg)}.badge--status-planned{background:var(--status-planned-bg);color:var(--status-planned-fg)}.badge--status-ongoing{background:var(--status-ongoing-bg);color:var(--status-ongoing-fg)}.badge--status-finished{background:var(--status-finished-bg);color:var(--status-finished-fg)}.badge--cave{background:var(--type-cave-bg);color:var(--type-cave-fg)}.badge--system{background:var(--type-system-bg);color:var(--type-system-fg)}.badge--access-ok{background:var(--access-ok-bg);color:var(--access-ok-fg)}.badge--access-req{background:var(--access-required-bg);color:var(--access-required-fg)}.badge--visibility-restricted{background:var(--vis-restricted-bg);color:var(--vis-restricted-fg)}html{scrollbar-width:thin;scrollbar-color:var(--fg-5) var(--bg-2)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-2)}::-webkit-scrollbar-thumb{background:var(--fg-5);border-radius:var(--radius-pill);border:2px solid var(--bg-2)}::-webkit-scrollbar-thumb:hover{background:var(--fg-4)}::-webkit-scrollbar-corner{background:var(--bg-2)}.cdk-global-overlay-wrapper{padding:env(safe-area-inset-top,0px) env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px)}@media(max-width:640px){.cdk-overlay-pane.dialog-fullscreen .dialog{position:fixed;inset:0;width:auto;height:auto;max-width:none;max-height:none;border:none;border-radius:0;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}}.cdk-overlay-pane.comment-sheet{max-width:none;max-height:none;pointer-events:none}.cdk-overlay-pane.comment-sheet>*{pointer-events:auto}.sheet-handle{flex:0 0 auto;display:flex;align-items:center;justify-content:center;width:100%;height:26px;padding:0;border:0;background:transparent;cursor:grab;touch-action:none}.sheet-handle:active{cursor:grabbing}.sheet-grip{width:40px;height:4px;border-radius:var(--radius-pill);background:var(--fg-4);opacity:.5}@media(max-width:600px){.mobile-sheet{position:fixed;left:0;right:0;top:auto;bottom:calc(52px + env(safe-area-inset-bottom,0px));z-index:4;height:82dvh;max-height:82dvh;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-bottom:none;border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);background:var(--surface);box-shadow:var(--shadow-xl);transition:transform var(--dur-medium) var(--ease-standard);will-change:transform}.mobile-sheet.dragging{transition:none}.mobile-sheet .drawer{flex:1 1 auto;min-height:0;height:auto;background:transparent;border-left:none;box-shadow:none}.mobile-sheet:not(.expanded) .drawer-body{overflow-y:hidden}}.snackbar-success .mdc-snackbar__surface,.snackbar-info .mdc-snackbar__surface{background-color:var(--surface)!important;color:var(--fg-1)!important;border:1px solid var(--border);box-shadow:var(--shadow-md)}.snackbar-error .mdc-snackbar__surface{background-color:var(--error-bg)!important;color:var(--error-fg)!important;border:1px solid rgba(198,40,40,.18);box-shadow:var(--shadow-md)}.mat-mdc-autocomplete-panel{background:var(--surface)!important;border:1px solid var(--border);border-radius:var(--radius-md)!important;box-shadow:0 4px 16px #0000001f}.mat-mdc-autocomplete-panel .mat-mdc-option{color:var(--fg-1);font-size:14px}.mat-mdc-autocomplete-panel .mat-mdc-option:hover:not(.mat-mdc-option-disabled),.mat-mdc-autocomplete-panel .mat-mdc-option.mat-mdc-option-active{background:var(--surface-alt)}.edit-locked{pointer-events:none;filter:grayscale(1);opacity:.6;cursor:not-allowed}.edit-lock-badge{display:inline-flex;align-items:center;justify-content:center;vertical-align:middle;margin-right:4px;pointer-events:auto;cursor:not-allowed;color:inherit}.edit-lock-badge svg{width:14px;height:14px}
