@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-vietnamese-400-normal-Dpl4UHAZ.woff2)format("woff2"),url(/assets/barlow-vietnamese-400-normal-BFeobeCK.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-ext-400-normal-HxX4XjxC.woff2)format("woff2"),url(/assets/barlow-latin-ext-400-normal-CvBsJvxq.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/barlow-latin-400-normal-qiz4-Cze.woff2)format("woff2"),url(/assets/barlow-latin-400-normal-fsAxiSwU.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-vietnamese-500-normal-zTViEIzf.woff2)format("woff2"),url(/assets/barlow-vietnamese-500-normal-GNfB7rCE.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-ext-500-normal-DOaysfXq.woff2)format("woff2"),url(/assets/barlow-latin-ext-500-normal-CJPcKP2Q.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-latin-500-normal-BPAOfeC8.woff2)format("woff2"),url(/assets/barlow-latin-500-normal-C1h8hMer.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-vietnamese-600-normal-DcjprdFV.woff2)format("woff2"),url(/assets/barlow-vietnamese-600-normal-CA_GiK2e.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-ext-600-normal-B8NK_A3D.woff2)format("woff2"),url(/assets/barlow-latin-ext-600-normal-DMVRjfRT.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-latin-600-normal-DILqtrty.woff2)format("woff2"),url(/assets/barlow-latin-600-normal-CNwfPWQD.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-vietnamese-500-normal-DjeaNLFD.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-500-normal-CsrJDWc5.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-ext-500-normal-yA5ONLQ9.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-500-normal-B1RE8WP7.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/barlow-condensed-latin-500-normal-BgYH2mbd.woff2)format("woff2"),url(/assets/barlow-condensed-latin-500-normal-HIEiP5Ov.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-vietnamese-600-normal-A5AYRdjN.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-600-normal-CNlPk46_.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-ext-600-normal-18ESti3H.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-600-normal-Clv9cIcR.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/barlow-condensed-latin-600-normal-DepVgxBB.woff2)format("woff2"),url(/assets/barlow-condensed-latin-600-normal-BFJEwTuo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-vietnamese-700-normal-DYeBwlKR.woff2)format("woff2"),url(/assets/barlow-condensed-vietnamese-700-normal-DhIzd8Tb.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-ext-700-normal-CwuXbfVR.woff2)format("woff2"),url(/assets/barlow-condensed-latin-ext-700-normal-BIHFfxf0.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Barlow Condensed;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/barlow-condensed-latin-700-normal-v1xN8_Wq.woff2)format("woff2"),url(/assets/barlow-condensed-latin-700-normal-Dmwat-ge.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root,:host{--ol-background-color:white;--ol-accent-background-color:#f5f5f5;--ol-subtle-background-color:#80808040;--ol-partial-background-color:#ffffffbf;--ol-foreground-color:#333;--ol-subtle-foreground-color:#666;--ol-brand-color:#0af}.ol-box{box-sizing:border-box;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color);border-radius:2px}.ol-mouse-position{position:absolute;top:8px;right:8px}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;padding:2px;position:absolute;bottom:8px;left:8px}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-align:center;will-change:contents, width;border-top:none;margin:1px;font-size:10px;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{background-color:var(--ol-foreground-color);float:right;z-index:10;width:1px;height:15px}.ol-scale-step-text{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);font-size:10px;position:absolute;bottom:-5px}.ol-scale-text{text-align:center;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);font-size:12px;position:absolute;bottom:25px}.ol-scale-singlebar{z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color);height:10px;position:relative}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-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;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{background-color:var(--ol-subtle-background-color);border-radius:4px;position:absolute}.ol-zoom{top:.5em;left:.5em}.ol-rotate{transition:opacity .25s linear,visibility linear;top:.5em;right:.5em}.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{top:.5em;right:.5em}.ol-control button{color:var(--ol-subtle-foreground-color);font-weight:700;font-size:inherit;text-align:center;background-color:var(--ol-background-color);border:none;border-radius:2px;width:1.375em;height:1.375em;margin:1px;padding:0;line-height:.4em;text-decoration:none;display:block}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{will-change:transform;font-weight:400;display:block}.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{outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color);text-decoration:none}.ol-attribution{text-align:right;flex-flow:row-reverse;align-items:center;max-width:calc(100% - 1.3em);display:flex;bottom:.5em;right:.5em}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);margin:0;padding:1px .5em;font-size:12px}.ol-attribution li{list-style:none;display:inline}.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{border-radius:4px 0 0;bottom:0;right:0}.ol-attribution.ol-uncollapsible img{max-height:1.6em;margin-top:-.2em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{height:200px;top:4.5em;left:.5em}.ol-zoomslider button{height:10px;position:relative}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{bottom:.5em;left:.5em}.ol-overviewmap.ol-uncollapsible{border-radius:0 4px 0 0;bottom:0;left:0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);width:150px;height:150px}.ol-overviewmap:not(.ol-collapsed) button{position:absolute;bottom:0;left:0}.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:#1b1c1f;--bg-deep:#111214;--panel:#2a2c30;--raised:#3a3d42;--text:#efefea;--muted:#acaea8;--line:#ffffff1a;--line-strong:#ffffff2e;--accent:#ffd400;--on-accent:#1b1c1f;--danger:#ff9e94;--danger-line:#ff786e80;--ok:#4ade80;--radius:8px;--font:"Barlow", system-ui, sans-serif;--font-cond:"Barlow Condensed", "Arial Narrow", sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--font);color:var(--text);background:var(--bg);font-size:15px}*{box-sizing:border-box}html,body{background:var(--bg);min-height:100%;margin:0}a{color:var(--text)}a:hover{color:#fff}button,input,select{font:inherit;color:inherit}[hidden]{display:none!important}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.muted{color:var(--muted)}.hint{color:var(--muted);margin:0;font-size:13px;line-height:1.45}.button{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);min-height:40px;color:var(--text);font-family:var(--font-cond);white-space:nowrap;cursor:pointer;touch-action:manipulation;justify-content:center;align-items:center;gap:8px;padding:0 14px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{border-color:var(--line-strong);color:var(--text)}.button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:700}.button.light{background:var(--text);border-color:var(--text);color:var(--on-accent);font-weight:700}.button.text{background:0 0;border-color:#0000}.button.danger{border-color:var(--danger-line);color:var(--danger);background:0 0}.button.icon-only{width:44px;padding:0}.button.large{min-height:48px;padding:0 20px;font-size:18px}.button.wide{width:100%;min-height:44px}.button svg{flex:none}input[type=text],input[type=number],select{border-radius:var(--radius);border:1px solid var(--line-strong);background:var(--panel);min-height:40px;color:var(--text);width:100%;padding:0 10px}input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px}input[type=range]{width:100%;accent-color:var(--accent)}input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent)}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.segmented{border:1px solid var(--line-strong);border-radius:var(--radius);display:flex;overflow:hidden}.segmented button{background:var(--panel);cursor:pointer;border:0;flex:1;min-height:44px;font-size:14px}.segmented button+button{border-left:1px solid var(--line-strong)}.segmented button[aria-pressed=true]{background:var(--text);color:var(--on-accent);font-weight:600}html.app-page,html.app-page body{height:100%;overflow:hidden}#app{grid-template:"header header header""banner banner banner""tools stage side"minmax(0,1fr)"footer footer footer"/auto minmax(0,1fr) auto;height:100dvh;display:grid}#header{border-bottom:1px solid var(--line);flex-wrap:wrap;grid-area:header;align-items:center;gap:12px;padding:10px 16px;display:flex}.brand{color:var(--muted);font-family:var(--font-cond);flex:none;align-items:center;gap:8px;font-size:16px;font-weight:600;text-decoration:none;display:flex}.brand .logo{display:flex}.divider{background:var(--line);width:1px;height:28px}#title{flex:260px;align-items:center;gap:12px;min-width:0;display:flex}#title input{border:0;border-bottom:1px dashed var(--line-strong);width:100%;min-width:0;min-height:0;font-family:var(--font-cond);background:0 0;border-radius:0;flex:auto;padding:2px;font-size:26px;font-weight:700}#title #date-input{width:auto;font-family:var(--font);flex:none;font-size:15px;font-weight:400}#title .jump-date{color:var(--muted);white-space:nowrap;flex:none;font-size:15px}#title input::placeholder{color:#6f716d}#title h1{min-width:0;font-family:var(--font-cond);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:26px;font-weight:700;line-height:1.1;overflow:hidden}#title .meta{color:var(--muted);font-size:13px;display:none}#save-status{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;font-size:14px;display:flex}#save-status .dot{background:var(--muted);border-radius:50%;width:8px;height:8px}#save-status:not([data-kind]),#save-status[data-kind=""]{display:none}#save-status[data-kind=saved] .dot{background:var(--ok)}#save-status[data-kind=saving] .dot{background:var(--accent)}#save-status[data-kind=draft] .dot{background:#ff7a1a}#save-status[data-kind=error] .dot,#save-status[data-kind=offline] .dot{background:#ff2d20}.actions{align-items:center;gap:8px;display:flex}.menu{position:relative}.menu summary{list-style:none}.menu summary::-webkit-details-marker{display:none}.menu-items{z-index:20;border:1px solid var(--raised);background:var(--bg);border-radius:10px;flex-direction:column;min-width:280px;padding:6px;display:flex;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 12px 32px #00000073}.menu-items button{text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;min-height:44px;padding:0 12px}.menu-items button:hover{background:var(--panel)}.menu-items .danger{color:var(--danger)}#banner{border-radius:var(--radius);background:var(--raised);grid-area:banner;align-items:center;gap:10px;margin:8px 12px 0;padding:10px 12px;display:flex}#banner .icon{color:var(--accent);display:flex}#banner p{flex:1;margin:0;font-size:14px;line-height:1.35}#banner .button{min-height:40px;font-size:14px}#tools{border-right:1px solid var(--line);flex-direction:column;grid-area:tools;gap:2px;width:84px;padding:10px 6px;display:flex;overflow-y:auto}#tools h2{font-family:var(--font-cond);color:var(--muted);margin:0;padding:12px 4px 4px;font-size:13px;font-weight:500}.tool{border-radius:var(--radius);min-height:56px;font-family:var(--font-cond);cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:3px;padding:6px 2px;font-size:14px;font-weight:600;display:flex}.tool:hover{background:var(--panel)}.tool[aria-pressed=true]{background:var(--accent);color:var(--on-accent)}#stage{background:var(--bg-deep);flex-direction:column;grid-area:stage;min-width:0;min-height:0;display:flex}#maps{flex:1;gap:3px;min-height:0;display:grid}#maps[data-layout=stack]{grid-template-rows:repeat(3,minmax(0,1fr))}#maps[data-layout=side]{grid-template-columns:repeat(3,minmax(0,1fr))}#maps[data-layout=single]{grid-template-rows:minmax(0,1fr)}#maps[data-layout=single][data-active=ztm] .map-slot:not([data-kind=ztm]),#maps[data-layout=single][data-active=ortofoto] .map-slot:not([data-kind=ortofoto]),#maps[data-layout=single][data-active=relief] .map-slot:not([data-kind=relief]){display:none}.map-slot{background:#d9dccf;min-height:0;position:relative}.map{position:absolute;inset:0}.map-chip{z-index:2;color:var(--text);font-family:var(--font-cond);pointer-events:none;background:#1b1c1fe6;border-radius:6px;align-items:center;gap:6px;padding:5px 10px;font-size:16px;font-weight:600;display:flex;position:absolute;top:10px;left:10px}.select-chip{pointer-events:auto;padding:0}.select-chip select{width:auto;min-height:32px;font-family:var(--font-cond);appearance:none;cursor:pointer;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23efefea' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") right 10px center no-repeat;border:0;border-radius:6px;padding:0 30px 0 10px;font-size:16px;font-weight:600}.select-chip option{background:var(--bg)}.select-chip .contour-select{border-left:1px solid #efefea40}.contours{mix-blend-mode:multiply}.ol-control{background:0 0;padding:0}.ol-control button{color:var(--text);cursor:pointer;background:#1b1c1fe6;border:0;font-size:20px}.ol-control button:hover,.ol-control button:focus{background:#1b1c1f;outline:none}.ol-zoom{flex-direction:column;gap:2px;display:flex;top:10px;left:auto;right:10px}.ol-zoom button{width:36px;height:36px;margin:0}.ol-zoom .ol-zoom-in{border-radius:6px 6px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 6px 6px}.ol-rotate{top:88px;right:10px}.ol-rotate button{border-radius:6px;width:36px;height:44px;margin:0}.north-arrow{place-items:center;display:grid}#maps:not([data-layout=single]) .map-slot:not([data-kind=ztm]) .ol-scale-bar,html.print-mode .map-slot:not([data-kind=ztm]) .ol-scale-bar{display:none}.ol-scale-bar{background:#1b1c1fe6;border-radius:4px;padding:4px 26px 2px 8px;bottom:10px;left:10px}.ol-scale-bar-inner{color:var(--text)}.ol-scale-step-text,.ol-scale-text{color:var(--text);text-shadow:none;font-family:var(--font);font-size:12px}.ol-scale-singlebar-odd{background-color:var(--text)}.ol-scale-singlebar-even{background-color:#1b1c1fe6}.ol-scale-singlebar{border-color:var(--text)}.cuzk-attribution{background:#ffffffd1;border-radius:0;padding:2px 8px;font-size:11px;bottom:0;right:0}.cuzk-attribution a,.cuzk-attribution span{color:#1f2937;text-decoration:none}.slope-legend{color:var(--text);background:#1b1c1fe6;border-radius:6px;flex-direction:column;gap:2px;padding:6px 8px;font-size:12px;display:flex;top:50px;left:10px}.slope-legend span{align-items:center;gap:6px;display:flex}.slope-legend i{width:14px;height:10px}.popup{border-radius:var(--radius);border:1px solid var(--raised);background:var(--bg);min-width:140px;max-width:240px;color:var(--text);overflow-wrap:anywhere;padding:8px 12px;box-shadow:0 8px 24px #0006}.popup strong{font-family:var(--font-cond);font-size:17px;display:block}.popup .detail{color:var(--muted)}#map-switch{display:none}#panel,#legend{border-left:1px solid var(--line);flex-direction:column;grid-area:side;gap:18px;width:300px;padding:16px;display:flex;overflow-y:auto}.panel-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.panel-head h2,#legend h2{font-family:var(--font-cond);margin:0;font-size:22px;font-weight:700}.panel-head .close{border-radius:var(--radius);width:44px;height:44px;color:var(--muted);cursor:pointer;background:0 0;border:0;justify-content:center;align-items:center;display:inline-flex}.field{flex-direction:column;gap:8px;display:flex}.field>.field-label,.field>label{color:var(--muted);font-size:14px}.field>.field-row{justify-content:space-between;display:flex}.field-row output{color:var(--text);font-variant-numeric:tabular-nums}.big-value{font-family:var(--font-cond);font-size:40px;font-weight:700;line-height:1}.dial-row{align-items:center;gap:14px;display:flex}.swatches{flex-wrap:wrap;gap:6px;display:flex}.swatch{border:2px solid var(--line-strong);background:var(--c);cursor:pointer;border-radius:50%;width:32px;height:32px;padding:0}.swatch[aria-pressed=true]{box-shadow:0 0 0 2px var(--accent);border-color:#fff}.draw-box{flex-direction:column;gap:10px;display:flex}.panel-foot{flex-direction:column;gap:10px;margin-top:auto;display:flex}.rotation .row{flex-wrap:nowrap}.rotation output{text-align:center;min-width:48px;font-family:var(--font-cond);font-size:20px;font-weight:700}.legend-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.legend-list li{align-items:center;gap:10px;display:flex}.legend-list .symbol{flex:none}.legend-list .title{overflow-wrap:anywhere;flex:1;min-width:0}.legend-list .detail{color:var(--muted);text-align:right}#footer{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;grid-area:footer;justify-content:space-between;gap:4px 12px;padding:6px 16px;font-size:12px;display:flex}#footer a{color:inherit}.dialog{border:1px solid var(--raised);background:var(--bg);width:min(600px,100vw - 24px);max-height:calc(100dvh - 24px);color:var(--text);border-radius:14px;padding:28px;box-shadow:0 24px 64px #00000080}.dialog::backdrop{background:#08090ab3}.dialog h2{font-family:var(--font-cond);margin:0 0 6px;font-size:30px;font-weight:700}.dialog-body{flex-direction:column;gap:20px;display:flex}.dialog-body>p{color:var(--muted);margin:0;line-height:1.5}.dialog-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:20px;display:flex}.link-field{flex-direction:column;gap:6px;display:flex}.link-field label{color:var(--muted);font-size:14px}.link-row{gap:8px;display:flex}.link-row input{flex:1;min-width:0;min-height:44px}.link-row .button{background:var(--raised);border-color:var(--line-strong);min-height:44px}.link-row .button.primary{background:var(--accent);border-color:var(--accent)}.edit-box{border:2px solid var(--accent);background:#ffd40012;border-radius:10px;flex-direction:column;gap:10px;padding:16px;display:flex}.edit-box>label{font-family:var(--font-cond);color:var(--text);align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex}.edit-box>label svg{color:var(--accent)}.edit-box p{margin:0;font-size:14px;line-height:1.5}.check{align-items:center;gap:10px;display:flex}.backup summary{cursor:pointer;color:var(--muted)}.backup[open] summary{margin-bottom:10px}.turnstile-box{min-height:70px}#toast{z-index:50;border-radius:var(--radius);border:1px solid var(--raised);background:var(--panel);max-width:calc(100vw - 32px);color:var(--text);padding:10px 16px;position:fixed;bottom:56px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0006}#toast.error{border-color:var(--danger-line);color:var(--danger)}#print-bar{display:none}#home{flex-direction:column;min-height:100dvh;display:flex}.home-header{border-bottom:1px solid #ffffff1f;align-items:center;padding:12px 24px;display:flex}.home-header .brand{color:var(--text);font-size:18px}.home-main{flex-direction:column;flex:1;gap:28px;width:100%;max-width:960px;margin:0 auto;padding:40px 24px;display:flex}#home.is-empty .home-intro{flex:1;justify-content:center;align-items:center;min-height:240px}#home.is-empty #home-new{white-space:normal;text-align:center;width:min(100%,420px);min-height:88px;padding:24px;font-size:28px}.add-link .row{flex-wrap:wrap}.home-intro{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.home-intro h1{font-family:var(--font-cond);margin:0 0 6px;font-size:44px;font-weight:700;line-height:1}.home-intro p{max-width:60ch;margin:0;line-height:1.5}.note{border-radius:var(--radius);background:var(--raised);margin:0;padding:12px 14px;line-height:1.45}.map-list{border-top:1px solid #ffffff1f;margin:0;padding:0;list-style:none}.map-list li{border-bottom:1px solid #ffffff1f;flex-wrap:wrap;align-items:center;gap:12px 20px;padding:16px 0;display:flex}.map-list .info{flex-direction:column;flex:280px;gap:2px;min-width:0;display:flex}.map-list .info a{font-family:var(--font-cond);overflow-wrap:anywhere;font-size:22px;font-weight:700;text-decoration:none}.map-list .info a:hover{text-decoration:underline}.map-list .info span{color:var(--muted);font-size:14px}.map-list .row .button{min-height:44px;font-family:var(--font);border-color:var(--line-strong);font-size:14px;font-weight:400}.map-list .row .button.text{background:0 0}.add-link{background:var(--panel);border-radius:10px;flex-direction:column;gap:8px;padding:20px;display:flex}.add-link label{font-family:var(--font-cond);font-size:18px;font-weight:600}.add-link input{background:var(--bg);flex:320px;min-width:0;min-height:44px}.add-link .button{min-height:44px}.home-footer{color:var(--muted);border-top:1px solid var(--line);padding:12px 24px;font-size:12px}.home-footer a{color:inherit}@media (max-width:767.98px){html.app-page,html.app-page body{height:auto;overflow:auto}#app{flex-direction:column;height:auto;min-height:100dvh;display:flex}#header{border-bottom:0;flex-wrap:nowrap;gap:8px;padding:12px 12px 8px 16px}.brand,.divider,#save-status,#btn-mymaps,#btn-share,#btn-save,#btn-layout,#btn-print .label{display:none!important}#btn-print{width:44px;padding:0}#title{flex-wrap:wrap;flex:1;gap:2px 8px}#title h1{white-space:normal;flex-basis:100%;font-size:24px}#title .jump-date{font-size:13px}#title .meta{display:block}#banner{margin:0 12px 8px}#stage{background:var(--bg);flex:none}#maps{flex:none;height:min(430px,58dvh)}#map-switch{background:var(--panel);border-radius:10px;margin:10px 12px 0;padding:3px;display:flex}#map-switch button{border-radius:var(--radius);min-height:44px;font-family:var(--font-cond);cursor:pointer;background:0 0;border:0;flex:1;font-size:16px;font-weight:700}#map-switch button[aria-pressed=true]{background:var(--text);color:var(--on-accent)}.map-chip:not(.select-chip),.ol-zoom{display:none}.ol-rotate{top:10px}#legend{border:0;width:auto;padding:14px 16px 16px;overflow:visible}#legend h2{font-size:18px}#footer{border-top:0;font-size:11px}.home-main{padding:24px 16px}#home.is-empty .home-intro{display:none}.home-intro h1{font-size:36px}.dialog{padding:20px}.link-row{flex-wrap:wrap}}@page{size:A4 portrait;margin:8mm}.print-only{display:none!important}html.print-mode,html.print-mode body{background:#55585e;height:auto;overflow:auto}html.print-mode #header,html.print-mode #banner,html.print-mode #tools,html.print-mode #panel,html.print-mode #legend,html.print-mode #footer,html.print-mode #map-switch,html.print-mode .screen-only,html.print-mode .ol-zoom,html.print-mode .ol-rotate,html.print-mode .slope-legend,html.print-mode .popup,html.print-mode #toast,html.print-mode .dialog,html.print-mode #relief-mode,html.print-mode .contour-select{display:none!important}html.print-mode .print-only{display:revert!important}html.print-mode #print-bar{z-index:30;background:var(--bg);color:var(--text);justify-content:center;align-items:center;gap:10px;padding:8px;display:flex;position:sticky;top:0}html.print-mode #app{height:auto;min-height:0;display:block}html.print-mode #stage{color:#1b1c1f;background:#fff;flex-direction:column;gap:3.5mm;width:210mm;min-height:297mm;margin:12px auto;padding:8mm 9mm;display:flex;box-shadow:0 4px 20px #0006}html.print-mode #print-head{border-bottom:.6mm solid #1b1c1f;justify-content:space-between;align-items:flex-end;gap:4mm;padding-bottom:2.5mm;display:flex!important}#print-head h1{font-family:var(--font-cond);margin:0;font-size:22pt;font-weight:700;line-height:1.05}#print-head p{color:#4a4c50;margin:.5mm 0 0;font-size:11pt}#print-landing{font-family:var(--font-cond);align-items:center;gap:2.5mm;font-size:16pt;font-weight:700;display:flex}html.print-mode #maps{flex-direction:column;flex:none;gap:3.5mm;height:auto;display:flex!important}html.print-mode .map-slot{border:.3mm solid #1b1c1f;width:192mm;height:69mm;overflow:hidden;display:block!important}html.print-mode .map{transform-origin:0 0;width:384mm;height:138mm;inset:0 auto auto 0;transform:scale(.5)}html.print-mode.print-quick .map{width:192mm;height:69mm;transform:none}html.print-mode.print-landscape #stage{width:297mm;min-height:210mm}html.print-mode.print-landscape #maps{flex-direction:row}html.print-mode.print-landscape .map-slot{width:90.5mm;height:133mm}html.print-mode.print-landscape .map{width:181mm;height:266mm}html.print-mode.print-quick.print-landscape .map{width:90.5mm;height:133mm}html.print-mode .map-chip{padding:.6mm 2mm;font-size:10pt;top:2mm;left:2mm;display:flex!important}html.print-mode .select-chip{padding:.6mm 2mm}html.print-mode #maps:not([data-layout=single]) .map-slot:not([data-kind=ztm]) .ol-scale-bar,html.print-mode .map-slot:not([data-kind=ztm]) .ol-scale-bar{display:none}.ol-scale-bar{padding:8px 52px 4px 16px;bottom:8px;left:8px}html.print-mode .ol-scale-step-text,html.print-mode .ol-scale-text{font-size:22px}html.print-mode .cuzk-attribution{padding:2px 10px;font-size:20px}html.print-mode.print-quick .ol-scale-step-text,html.print-mode.print-quick .ol-scale-text,html.print-mode.print-quick .cuzk-attribution{font-size:10px}html.print-mode #print-foot{align-items:stretch;gap:5mm;display:flex!important}.print-north{width:14mm;font-family:var(--font-cond);color:#1b1c1f;flex-direction:column;justify-content:center;align-items:center;gap:.5mm;font-size:12pt;font-weight:700;display:flex}#print-north{width:9mm;height:11mm}#print-legend{flex:1;grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:1.5mm 4mm;margin:0;padding:0;font-size:10pt;list-style:none;display:grid}#print-legend li{align-items:center;gap:2mm;min-width:0;display:flex}#print-legend .detail{color:#4a4c50}#print-qr{color:#4a4c50;text-align:center;flex-direction:column;flex:none;align-items:center;gap:1mm;width:30mm;font-size:8pt;display:flex}#print-qr svg{width:22mm;height:22mm}#print-source{color:#4a4c50;overflow-wrap:anywhere;margin:0;font-size:8.5pt;line-height:1.4}#print-source a{color:inherit}@media print{html.print-mode,html.print-mode body{background:#fff}html.print-mode #print-bar{display:none!important}html.print-mode #stage{width:194mm;min-height:0;box-shadow:none;margin:0;padding:0}html.print-mode.print-landscape #stage{width:281mm;min-height:0}*{-webkit-print-color-adjust:exact;-moz-print-color-adjust:exact;print-color-adjust:exact}}
