@import"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200";: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{--color-primary: #0b3d91;--color-primary-light: #1e90ff;--color-secondary: #1e90ff;--color-link-accent: #0066cc;--color-background: #ffffff;--color-text: #0b172a;--color-text-secondary: #666666;--color-error: #dc2626;--color-error-dark: #d32f2f;--color-border: #e5e7eb;--color-border-light: #f0f0f0;--color-border-medium: #e8e8e8;--color-border-dark: #d0d0d0;--color-gray-100: #f5f5f5;--color-gray-200: #f0f0f0;--color-gray-300: #e8e8e8;--color-gray-400: #e0e0e0;--color-gray-500: #d0d0d0;--color-gray-600: #999999;--color-gray-700: #666666;--font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Apple Color Emoji", "Segoe UI Emoji";--font-size-base: 1rem;--line-height-base: 1.5;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-modal: 0 4px 20px rgba(0, 0, 0, .15);--shadow-panel: 0 2px 8px rgba(0, 0, 0, .15);--shadow-item: 0 2px 4px rgba(0, 0, 0, .3);--breakpoint-mobile: 640px;--breakpoint-tablet: 768px}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;height:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text);background-color:var(--color-background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6{margin:0;font-weight:600;line-height:1.2}p{margin:0}a{color:var(--color-primary);text-decoration:none;transition:color .2s ease}a:hover{color:var(--color-primary-light)}button{font-family:inherit;font-size:inherit;border:none}button:focus,a:focus,input:focus,textarea:focus,select:focus{outline:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}:root{--compass-rose-size-desktop: 300px;--compass-rose-size-mobile: 200px;--compass-rose-bottom-desktop: 20px;--compass-rose-right-desktop: 10px;--compass-rose-bottom-mobile: 10px;--compass-rose-right-mobile: 5px;--compass-rose-text-width: 280px;--compass-rose-text-width-mobile: 220px;--compass-rose-text-gap: 40px;--compass-rose-text-gap-mobile: 60px;--compass-rose-color: #e50083}.compass-rose-container{position:absolute;bottom:var(--compass-rose-bottom-desktop);right:var(--compass-rose-right-desktop);z-index:50;display:flex;justify-content:flex-end;pointer-events:none}.compass-rose-wrapper{position:relative;width:var(--compass-rose-size-desktop);height:var(--compass-rose-size-desktop);pointer-events:auto;-webkit-user-select:none;user-select:none;-webkit-user-drag:none}.compass-rose-svg{position:absolute;top:0;left:0;width:100%;height:100%;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2));-webkit-user-drag:none;-webkit-user-select:none;user-select:none}.compass-rose-geo{z-index:1}.compass-rose-magnetic{z-index:2;transition:transform .3s ease-out}.compass-rose-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:var(--compass-rose-text-width);background:transparent;border:none;border-radius:0;padding:0;font-size:9px;font-family:Courier New,monospace;text-align:center;white-space:normal;pointer-events:none;z-index:3;box-shadow:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--compass-rose-text-gap)}.compass-rose-text p{margin:0;color:var(--compass-rose-color);font-weight:600}.compass-rose-text-top{color:var(--compass-rose-color);font-weight:600;font-size:9px}.compass-rose-text-bottom{color:var(--compass-rose-color);font-size:8px;font-weight:500}@media(max-width:600px){.compass-rose-container{bottom:var(--compass-rose-bottom-mobile);right:var(--compass-rose-right-mobile)}.compass-rose-wrapper{width:var(--compass-rose-size-mobile);height:var(--compass-rose-size-mobile)}.compass-rose-text{width:var(--compass-rose-text-width-mobile);font-size:8px;gap:var(--compass-rose-text-gap-mobile)}}:root{--layer-tile-size: 24px}.layer-tile{display:flex;align-items:center;justify-content:center;width:var(--layer-tile-size);height:var(--layer-tile-size);padding:0;margin:0;border:2px solid #d0d0d0;border-radius:4px;background-color:#fff;font-size:12px;font-weight:500;text-align:center;color:#333;cursor:pointer;transition:all .15s ease-in-out;position:relative}.layer-tile:hover{background-color:#f5f5f5;border-color:#999}.layer-tile:focus{outline:none;border-color:#1e90ff;box-shadow:0 0 0 3px #1e90ff33}.layer-tile--active{background-color:#e3f2fd;border-color:#1e90ff}.layer-tile--active:hover{background-color:#bbdefb}.layer-tile--focused{outline:2px solid #1e90ff;outline-offset:-2px}.layer-tile--disabled{opacity:.5;cursor:not-allowed;background-color:#f5f5f5}.layer-tile--disabled:hover{background-color:#f5f5f5;border-color:#d0d0d0}.layer-tile--disabled:focus{outline:none;border-color:#d0d0d0;box-shadow:none}.layer-tile--error{opacity:.6;cursor:not-allowed;background-color:#fadbd8;border-color:#e74c3c}.layer-tile--error:hover{background-color:#fadbd8;border-color:#c0392b}.layer-tile--error:focus{outline:none;border-color:#c0392b;box-shadow:0 0 0 3px #e74c3c33}.layer-tile__error-badge{position:absolute;top:-4px;right:-4px;width:12px;height:12px;background-color:#e74c3c;border:2px solid #ffffff;border-radius:50%;box-shadow:0 2px 4px #0000004d}.layer-tile__content{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;width:100%;height:100%;padding:4px}.layer-tile__label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.layer-tile__icon{flex-shrink:0;width:calc(var(--layer-tile-size) - 4px);height:calc(var(--layer-tile-size) - 4px)}.layer-tile__icon--image{width:calc(var(--layer-tile-size) - 4px);height:calc(var(--layer-tile-size) - 4px);object-fit:contain}.layer-tile__icon--matsym{display:flex!important;align-items:center!important;justify-content:center!important;font-size:calc(var(--layer-tile-size) - 4px);width:calc(var(--layer-tile-size) - 4px);height:calc(var(--layer-tile-size) - 4px);line-height:1}.layer-tile__label{font-size:11px;line-height:1.2;word-break:break-word;overflow:hidden;text-overflow:ellipsis;max-width:100%}:root{--layer-panel-width: calc(7 * var(--layer-tile-size) + 6 * 2px + 16px + 16px + 4px)}.layer-panel{position:absolute;top:50px;right:var(--spacing-sm);background-color:#fffffff2;border:1px solid #cccccc;border-radius:4px;box-shadow:var(--shadow-panel);padding:var(--spacing-sm);z-index:100;max-height:calc(100% - 70px);overflow-y:auto;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);width:var(--layer-panel-width)}.layer-panel__main{display:flex;flex-direction:column;gap:12px}.layer-panel__title{font-size:14px;font-weight:600;color:#333;padding:0 4px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.layer-panel__group{display:flex;flex-direction:column;gap:6px;padding-bottom:8px;border-bottom:1px solid #ddd}.layer-panel__group:last-child{border-bottom:none;padding-bottom:0}.layer-panel__group-title{font-size:12px;font-weight:600;color:#666;text-transform:uppercase;letter-spacing:.3px;padding:0 4px}.layer-panel__group-tiles{display:flex;flex-wrap:wrap;gap:2px;justify-content:flex-start}.layer-panel__separator{height:1px;background-color:#e5e7eb;margin:8px 0}.layer-panel__control{display:flex;flex-direction:column;gap:4px}.layer-tile--control{display:flex;align-items:center;gap:8px;width:100%;padding:8px;border:1px solid #d1d5db;border-radius:4px;background-color:#fff;cursor:pointer;font-size:13px;color:#333;transition:all .2s ease}.layer-tile--control:hover{background-color:#f3f4f6;border-color:#9ca3af}.layer-tile--control.layer-tile--active{background-color:#dbeafe;border-color:#3b82f6;color:#1e40af}.layer-tile--control.layer-tile--active:hover{background-color:#bfdbfe;border-color:#1d4ed8}.layer-tile--control:disabled{opacity:.5;cursor:not-allowed}.layer-tile__title{flex:1}.layer-tile__checkbox{display:flex;align-items:center;justify-content:center;width:16px;height:16px}.layer-tile__checkbox input{width:100%;height:100%;cursor:pointer}.help-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem;animation:fadeIn .2s ease-in}.help-modal{background:#fff;border-radius:8px;box-shadow:var(--shadow-modal);max-width:600px;max-height:80vh;width:100%;display:flex;flex-direction:column;animation:slideUp .3s cubic-bezier(.34,1.56,.64,1)}.help-modal__header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--color-border-medium);gap:1rem}.help-modal__title{margin:0;font-size:1.5rem;color:#222;flex:1}.help-modal__close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-gray-700);padding:var(--spacing-sm);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.help-modal__close:hover{background-color:var(--color-gray-200);color:#222}.help-modal__close:active{transform:scale(.95)}.help-modal__content{flex:1;overflow-y:auto;padding:var(--spacing-lg)}.help-section{margin-bottom:var(--spacing-xl)}.help-section__title{margin:0 0 1rem;font-size:1.1rem;color:var(--color-link-accent);font-weight:600}.help-section__list{list-style:none;padding:0;margin:0}.help-section__list li{margin-bottom:.75rem;line-height:1.5;color:#444}.help-section__list li strong{color:#222;font-weight:600}.help-modal__footer{padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--color-border-medium);margin:0;font-size:.9rem;color:var(--color-gray-700);text-align:center;background-color:var(--color-gray-100)}.help-modal__footer-section{padding:var(--spacing-md) var(--spacing-lg) 0 var(--spacing-lg);margin-bottom:var(--spacing-md);display:flex;justify-content:center}.help-modal__manual-btn{padding:var(--spacing-sm) var(--spacing-lg);background-color:var(--color-link-accent);color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;transition:background-color .2s ease}.help-modal__manual-btn:hover{background-color:#0052a3}.help-modal__manual-btn:active{transform:scale(.98)}@media(max-width:600px){.help-modal{max-height:90vh;border-radius:4px 4px 8px 8px}.help-modal__header{padding:1rem}.help-modal__title{font-size:1.25rem}.help-modal__content{padding:1rem}.help-section{margin-bottom:1.5rem}.help-section__list li{margin-bottom:.5rem}.help-modal__footer{padding:.75rem 1rem;font-size:.85rem}}.search-result-item{background:#fff;border:1px solid #ddd;border-radius:4px;padding:.75rem;text-align:left;cursor:pointer;transition:all .2s ease;width:100%}.search-result-item:hover{background-color:#e3f2fd;border-color:#06c;box-shadow:0 2px 4px #06c3}.search-result-item:active{transform:scale(.98)}.search-result-item__content{display:flex;flex-direction:column;gap:.35rem}.search-result-item__name{font-weight:600;color:#222;font-size:.95rem;line-height:1.3;word-break:break-word}.search-result-item__coordinates{font-size:.75rem;color:#999;font-family:monospace;margin-top:.25rem}.search-results-list{flex:1;display:flex;flex-direction:column;overflow:hidden}.search-results-list__items{list-style:none;margin:0;padding:0;flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.search-results-list__items li{margin:0;padding:0}.search-results-list__message{padding:2rem 1rem;text-align:center;color:#666;font-size:.95rem;flex:1;display:flex;align-items:center;justify-content:center;min-height:100px}.search-results-list__message--error{color:#d32f2f;background-color:#ffebee;border-radius:4px;padding:1rem}.search-panel-overlay{position:fixed;top:70px;left:50%;transform:translate(-50%);background-color:#fff;z-index:100;max-width:500px;width:calc(100% - 2rem);border-radius:0 0 8px 8px;box-shadow:0 4px 12px #00000026;max-height:70vh;display:flex;flex-direction:column;animation:slideDown .3s cubic-bezier(.34,1.56,.64,1)}@keyframes slideDown{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.search-panel{display:flex;flex-direction:column;width:100%;height:100%}.search-panel__header{display:none}.search-panel__title{margin:0;font-size:1.5rem;color:#222;flex:1}.search-panel__close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-gray-700);padding:var(--spacing-sm);min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.search-panel__close:hover{background-color:var(--color-gray-200);color:#222}.search-panel__close:active{transform:scale(.95)}.search-panel__content{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:.5rem 1rem 1rem;gap:.5rem}@media(max-width:640px){.search-panel-overlay{top:60px;width:calc(100% - 1rem)}.search-panel{max-height:90vh;max-width:none;border-radius:12px 12px 0 0}.search-panel-overlay{align-items:flex-end}}.search-bar{display:flex;gap:.5rem;align-items:center;background:var(--color-gray-100);padding:var(--spacing-sm);border-radius:4px;border:1px solid var(--color-border-dark)}.search-bar__input{flex:1;border:none;background:#fff;padding:.625rem .75rem;border-radius:4px;font-size:1rem;outline:none;border:1px solid #ddd;transition:border-color .2s ease}.search-bar__input:focus{border-color:var(--color-link-accent);box-shadow:0 0 0 2px #0066cc1a}.search-bar__input:disabled{background-color:var(--color-gray-100);color:var(--color-gray-600);cursor:not-allowed}.search-bar__clear{background:none;border:none;cursor:pointer;color:var(--color-gray-700);padding:var(--spacing-sm);min-width:36px;min-height:36px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:all .2s ease}.search-bar__clear:hover:not(:disabled){background-color:var(--color-gray-300);color:#333}.search-bar__clear:disabled{cursor:not-allowed;opacity:.4}.search-bar__loading{display:flex;align-items:center;justify-content:center;width:36px;height:36px}.spinner{width:20px;height:20px;border:2px solid var(--color-gray-200);border-top-color:var(--color-link-accent);border-radius:50%;animation:spin .8s linear infinite}.search-bottom-sheet-overlay{position:fixed;inset:0;background-color:#0000004d;z-index:98;animation:fadeIn .2s ease-out}.search-bottom-sheet{position:fixed;bottom:0;left:0;right:0;z-index:99;background-color:#fff;border-radius:12px 12px 0 0;max-height:70vh;display:flex;flex-direction:column;box-shadow:0 -2px 12px #00000026;animation:slideUpFromBottom .3s cubic-bezier(.34,1.56,.64,1)}@keyframes slideUpFromBottom{0%{transform:translateY(100%);opacity:0}to{transform:translateY(0);opacity:1}}.search-bottom-sheet__handle{height:4px;background-color:#d0d0d0;border-radius:2px;margin:8px auto;width:40px;flex-shrink:0}.search-bottom-sheet__content{flex:1;display:flex;flex-direction:column;overflow:hidden;padding:.5rem 1rem 1rem;gap:.75rem}.search-bottom-sheet__content .search-bar{background:#f5f5f5;padding:.5rem;border:1px solid #e0e0e0}.search-bottom-sheet__content .search-bar__input{background:#fff;padding:.75rem;font-size:1rem;height:auto}.search-bottom-sheet__content .search-bar__clear{display:flex}.search-bottom-sheet__content .search-results-list{flex:1;overflow-y:auto}.download-bundle-details{display:flex;flex-direction:column;gap:16px;border:1px solid #e0e0e0;border-radius:6px;padding:16px;background-color:#fafafa}.download-bundle-details__name{margin:0;font-size:1.1rem;font-weight:600;color:#1a1a1a;word-break:break-word}.download-bundle-details__grid{display:flex;flex-direction:column;gap:12px}.download-bundle-details__item{display:flex;flex-direction:column;gap:4px}.download-bundle-details__label{font-weight:600;font-size:.85rem;color:#666;text-transform:uppercase;letter-spacing:.3px}.download-bundle-details__value{font-size:.95rem;color:#333;word-break:break-word}.download-bundle-details__date{display:flex;flex-direction:column;gap:2px}.download-bundle-details__relative{font-size:.85rem;color:#999;font-style:italic}.download-bundle-details__download-btn{display:inline-block;padding:10px 16px;background-color:#2196f3;color:#fff;border:none;border-radius:4px;font-size:.95rem;font-weight:600;text-decoration:none;text-align:center;cursor:pointer;transition:background-color .2s}.download-bundle-details__download-btn:hover{background-color:#1976d2}.download-bundle-details__download-btn:active{background-color:#1565c0}@media(max-width:640px){.download-bundle-details{padding:12px;gap:12px;border-radius:4px}.download-bundle-details__name{font-size:1rem}.download-bundle-details__value{font-size:.9rem}.download-bundle-details__download-btn{padding:12px;font-size:1rem}}.download-bundles-panel-backdrop{position:fixed;inset:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in-out;padding:20px}.download-bundles-panel{background:#fff;border-radius:8px;width:100%;max-width:500px;max-height:70vh;display:flex;flex-direction:column;box-shadow:var(--shadow-modal);animation:slideIn .3s ease-out}.download-bundles-panel__header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid var(--color-border-medium)}.download-bundles-panel__title{margin:0;font-size:1.25rem;font-weight:600;color:#333}.download-bundles-panel__close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:var(--color-gray-700);padding:4px 8px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.download-bundles-panel__close:hover{background-color:var(--color-gray-200);color:#333}.download-bundles-panel__content{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:1rem}.download-bundles-panel__empty{display:flex;align-items:center;justify-content:center;min-height:200px;color:var(--color-gray-600);text-align:center;font-size:.9rem}.download-bundles-panel__empty p{margin:0;padding:0 1rem}.download-bundles-panel__loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:1rem;color:var(--color-gray-700)}.download-bundles-panel__loading p{margin:0;font-size:.95rem}.download-bundles-panel__loading .spinner{width:40px;height:40px;border:4px solid var(--color-border-medium);border-top-color:var(--color-secondary);border-radius:50%;animation:spin .8s linear infinite}.download-bundles-panel__error{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:200px;gap:12px;padding:16px;background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404}.download-bundles-panel__error-message{margin:0;font-weight:600;font-size:.95rem}.download-bundles-panel__error-hint{margin:0;font-size:.85rem;opacity:.8}.download-bundles-panel__format-selector{display:flex;flex-direction:column;gap:8px;padding:12px;background:#f5f5f5;border-radius:6px;margin-bottom:12px}.download-bundles-panel__format-label{font-size:.85rem;font-weight:600;color:#333}.download-bundles-panel__format-select{padding:8px 10px;border:1px solid #ccc;border-radius:4px;font-size:.9rem;background:#fff;color:#333;cursor:pointer;transition:all .2s ease}.download-bundles-panel__format-select:hover{border-color:#999;box-shadow:0 1px 3px #0000001a}.download-bundles-panel__format-select:focus{outline:none;border-color:#ff8c2b;box-shadow:0 0 0 2px #ff8c2b33}@media(max-width:600px){.download-bundles-panel{border-radius:12px 12px 0 0}.download-bundles-panel__header{padding:12px}.download-bundles-panel__title{font-size:1.1rem}.download-bundles-panel__content{padding:12px;gap:12px}}.harbour-info{background:#fff;border:1px solid #ccc;border-radius:8px;box-shadow:var(--shadow-panel);max-width:320px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;animation:slideIn .2s ease-out;pointer-events:auto}.harbour-info-content{padding:1rem}.harbour-info h3{margin:0 0 12px;font-size:16px;font-weight:600;color:#222;word-break:break-word}.harbour-details{margin-bottom:12px;border-top:1px solid #e5e5e5;padding-top:12px}.harbour-details p{margin:6px 0;font-size:13px;color:#555;line-height:1.4}.harbour-details strong{color:#333;font-weight:500}.harbour-details a{color:#06c;text-decoration:none;word-break:break-all;font-size:12px}.harbour-details a:hover{text-decoration:underline}.close-btn{background:#f0f0f0;border:1px solid #d0d0d0;border-radius:4px;padding:8px 12px;cursor:pointer;font-size:13px;color:#333;width:100%;font-weight:500;transition:background .2s ease}.close-btn:hover{background:#e0e0e0}.close-btn:active{background:#d0d0d0}.settings-menu-overlay{position:fixed;inset:0;background-color:#00000080;z-index:1000;display:flex;align-items:flex-start;justify-content:flex-end;padding-top:60px;padding-right:10px}.settings-menu{background:#fff;border-radius:8px;box-shadow:0 2px 8px #00000026;max-width:320px;width:auto;max-height:calc(100vh - 100px);overflow-y:auto;display:flex;flex-direction:column}.settings-menu-header{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e0e0e0;padding:12px 16px}.settings-menu-header h2{margin:0;font-size:18px;font-weight:600}.settings-menu-header .btn-icon{padding:4px;min-width:auto}.settings-menu-content{padding:12px 0}.settings-menu-item{display:flex;align-items:center;padding:12px 16px;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background-color .2s}.settings-menu-item:hover{background-color:#f5f5f5}.checkbox-item{gap:12px}.settings-checkbox{margin:0;cursor:pointer;accent-color:#4a90e2}.settings-label{flex:1;font-size:14px;font-weight:500}.settings-status{font-size:12px;color:#999;text-transform:capitalize}.settings-menu-divider{height:1px;background-color:#e0e0e0;margin:8px 0}.settings-menu-item.btn-danger{background-color:#f5f5f5;color:#d32f2f;font-weight:500;border:none;padding:12px 16px;display:block;width:100%;text-align:left;margin:0}.settings-menu-item.btn-danger:hover{background-color:#ffe6e6}.settings-confirmation{padding:16px;background-color:#fff3cd;border-top:1px solid #e0e0e0;border-radius:0}.settings-confirmation p{margin:0 0 16px;font-size:14px;color:#333;line-height:1.4}.confirmation-buttons{display:flex;gap:8px;justify-content:flex-end}.confirmation-buttons .btn{flex:1;padding:8px 12px;font-size:13px}.confirmation-buttons .btn-secondary{background-color:#f0f0f0;color:#333;border:1px solid #ddd}.confirmation-buttons .btn-secondary:hover{background-color:#e0e0e0}.confirmation-buttons .btn-danger{background-color:#d32f2f;color:#fff;border:none;padding:8px 12px}.confirmation-buttons .btn-danger:hover{background-color:#b71c1c}.keep-zone-alarm-flash{position:fixed;inset:0;background-color:#fff;z-index:999;pointer-events:none;animation:screenFlash 1s ease-in-out infinite}.keep-zone-alarm-overlay{position:fixed;inset:0;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-in}.keep-zone-alarm{background-color:#fff;border-radius:.5rem;padding:2rem;max-width:90vw;width:100%;max-width:500px;box-shadow:0 4px 20px #0000004d;text-align:center;animation:slideUp .3s ease-out}.alarm-icon{font-size:3rem;margin-bottom:1rem;animation:pulse .6s ease-in-out infinite}.alarm-title{color:var(--color-error-dark);font-size:1.5rem;margin:var(--spacing-sm) 0;font-weight:700}.alarm-message{color:var(--color-gray-700);font-size:1rem;margin:var(--spacing-md) 0;line-height:1.5}.alarm-dismiss-btn{background-color:#0b3d91;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:.375rem;font-size:1rem;font-weight:600;cursor:pointer;margin-top:1rem;transition:background-color .2s ease}.alarm-dismiss-btn:hover{background-color:#1e90ff}.alarm-dismiss-btn:active{background-color:#0b3d91;transform:scale(.98)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slideIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes screenFlash{0%,to{opacity:0}50%{opacity:.7}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}:root{--map-control-width: 24px;--map-control-height: 24px;--map-control-gap: .375rem;--map-control-padding: .375rem;--map-control-border-radius: 4px;--map-control-fg-color: white;--map-control-bg-base: rgba(0, 0, 0, .6);--map-control-bg-hover: rgba(0, 0, 0, .8);--map-control-bg-active: rgba(0, 0, 0, .7);--map-control-bg-pressed: rgba(0, 0, 0, .9);--map-control-border-color: rgba(0, 0, 0, .3);--map-control-shadow: 0 1px 4px rgba(0, 0, 0, .3);--map-control-transition: all .15s ease-in-out;--map-control-icon-size: 18px;--compass-rose-color: #e50083}.app-shell{display:grid;grid-template-rows:auto 1fr auto;height:100vh;height:100dvh;width:100%}.map-wrap{position:relative;height:100%;overflow:hidden}.map{position:absolute;inset:0;width:100%;height:100%}.map-controls-left{position:absolute;top:.5rem;left:.5rem;display:flex;flex-direction:column;gap:.375rem;z-index:100;pointer-events:auto}.map-controls-right{position:absolute;top:.5rem;right:.5rem;display:flex;flex-direction:column;gap:.375rem;z-index:100;pointer-events:auto}.map-controls-left .btn--follow-me,.map-controls-right .btn--menu,.map-wrap .ol-viewport .ol-zoom button,.attribution-toggle-btn{padding:var(--map-control-padding);display:flex;align-items:center;justify-content:center;width:var(--map-control-width);height:var(--map-control-height);background-color:var(--map-control-bg-base);border:1px solid var(--map-control-border-color);border-radius:var(--map-control-border-radius);box-shadow:var(--map-control-shadow);color:var(--map-control-fg-color);cursor:pointer;transition:var(--map-control-transition);flex-shrink:0}.map-controls-left .btn--follow-me:hover,.map-controls-right .btn--menu:hover,.map-wrap .ol-viewport .ol-zoom button:hover,.attribution-toggle-btn:hover{background-color:var(--map-control-bg-hover)}.map-controls-left .btn--follow-me:active,.map-controls-right .btn--menu:active,.map-wrap .ol-viewport .ol-zoom button:active,.attribution-toggle-btn:active{background-color:var(--map-control-bg-active)}.map-controls-right .btn--menu[aria-pressed=true]{background-color:var(--map-control-bg-pressed)}.map-wrap .ol-viewport .ol-unselectable.ol-control{background-color:transparent;border:none}.map-wrap .ol-viewport .ol-zoom{position:absolute;top:3.25rem;left:.5rem;background-color:transparent;border:none;box-shadow:none;display:flex;flex-direction:column;gap:var(--map-control-gap);flex-shrink:0;width:var(--map-control-width)}.btn--follow-me__icon{font-size:var(--map-control-icon-size);width:var(--map-control-icon-size);height:var(--map-control-icon-size)}.btn--follow-me .material-symbols-outlined{font-size:var(--map-control-icon-size);width:var(--map-control-icon-size);height:var(--map-control-icon-size);line-height:var(--map-control-icon-size)}.header-controls .btn-icon{width:var(--map-control-width);height:var(--map-control-height);padding:0;display:flex;align-items:center;justify-content:center}.header-controls .btn-icon .material-symbols-outlined{font-size:var(--map-control-icon-size)}.btn{padding:.5rem .75rem;border:none;border-radius:4px;background-color:transparent;color:#fff;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease-in-out;white-space:nowrap}.btn:hover:not(:disabled){background-color:#ffffff26}.btn:active:not(:disabled){background-color:#fff3}.header-icon-button{background:none;border:none;padding:0;width:var(--map-control-width);height:var(--map-control-height);display:flex;align-items:center;justify-content:center;color:#fff;cursor:pointer;transition:opacity .15s ease-in-out}.header-icon-button .material-symbols-outlined{font-size:var(--map-control-icon-size)}.header-icon-button:hover{opacity:.7}.header-icon-button:active{opacity:.5}.header-bell{background:none;border:none;padding:0;width:var(--map-control-width);height:var(--map-control-height);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:color .15s ease-in-out,opacity .15s ease-in-out}.header-bell .material-symbols-outlined{font-size:24px}.header-bell--armed{color:#ff5252}.header-bell--armed:hover{opacity:.8}.header-bell--armed:active{opacity:.6}.header-bell--elapsed{color:#fff;opacity:.6}.header-bell--elapsed:hover{opacity:.8}.header-bell--elapsed:active{opacity:.5}.btn:focus{outline:2px solid rgba(255,255,255,.5);outline-offset:-2px}.app-header{background:linear-gradient(90deg,#0b3d91,#1e90ff);color:#fff;box-shadow:0 2px 8px #00000026;flex-shrink:0}.header-content{display:flex;align-items:center;gap:1rem;padding:.75rem 1rem;max-width:100%}.app-title{font-size:1.25rem;font-weight:600;margin:0;white-space:nowrap}.header-logo-section{display:flex;align-items:center;gap:.75rem}.app-logo{height:32px;width:auto}.header-live-data{display:flex;align-items:center;gap:.5rem}.coordinates-badge{background-color:#ffffff1a;padding:.25rem .5rem;border-radius:4px;font-size:1rem;color:var(--map-control-fg-color);white-space:nowrap}.coord-value{font-weight:500}.header-search-section{flex:0 0 auto;display:flex;align-items:center;margin-right:.75rem}.header-search-section .search-bar{width:auto;background:transparent;border:none;padding:0;gap:0}.header-search-section .search-bar__input{background:#ffffffe6;border:1px solid rgba(255,255,255,.4);height:auto;padding:.5rem .75rem;font-size:.875rem;min-width:200px;border-radius:4px;color:#333}.header-search-section .search-bar__input::placeholder{color:#999}.header-search-section .search-bar__input:focus{border-color:#fffc;box-shadow:0 0 0 2px #fff3}.header-search-section .search-bar__clear{display:none}.header-mobile-search-btn{display:none;background:none;border:none;color:#fff;cursor:pointer;padding:.5rem;margin:0 .25rem;border-radius:4px;transition:all .15s ease-in-out}.header-spacer{flex:1}.header-controls{display:flex;gap:.5rem;align-items:center}.attribution-panel{position:fixed;bottom:.5rem;right:.5rem;z-index:99}.attribution-panel__content{display:flex;align-items:center;flex-direction:row;gap:0}.attribution-panel[data-open=false] .attribution-panel__content{width:auto;height:auto}.attribution-panel[data-open=false] .attribution-area{display:none}.attribution-panel[data-open=true] .attribution-panel__content{background-color:#fff;border:1px solid #e5e7eb;border-radius:.5rem;box-shadow:0 2px 12px #00000026;padding:.5rem;gap:.5rem;max-width:calc(100vw - 1rem);max-height:50vh;overflow-y:auto}.attribution-panel[data-open=true] .attribution-area{flex:1;font-size:.9rem;line-height:1.5;color:#333;word-wrap:break-word}@media(max-width:768px){.attribution-panel[data-open=true] .attribution-panel__content{max-height:40vh}}.attribution{color:#666;font-size:1rem}.attribution a{color:#0b3d91;text-decoration:none;transition:color .2s ease}.attribution a:hover{color:#1e90ff;text-decoration:underline}.btn{padding:.5rem .75rem;background-color:#fff3;border:1px solid rgba(255,255,255,.3);color:#fff;border-radius:.375rem;cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color .2s ease,border-color .2s ease}.btn:hover:not(:disabled){background-color:#ffffff4d;border-color:#ffffff80}.btn:active:not(:disabled){background-color:#fff6}.btn:disabled{opacity:.5;cursor:not-allowed}.btn:focus{outline:3px solid #ffbf47;outline-offset:2px}.skip-link{position:absolute;left:.5rem;top:-2.5rem;background-color:#fff;color:#000;padding:.5rem .75rem;border-radius:.375rem;text-decoration:none;font-size:.875rem;font-weight:600;z-index:1000;box-shadow:0 2px 6px #0003}.skip-link:focus{top:.5rem}.context-menu{background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 2px 8px #0003;padding:0;min-width:120px}.context-menu__item{display:block;width:100%;padding:.5rem 1rem;background:none;border:none;text-align:left;font-size:.875rem;color:#333;cursor:pointer;transition:background-color .15s ease}.context-menu__item:first-child{border-radius:3px 3px 0 0}.context-menu__item:last-child{border-radius:0 0 3px 3px}.context-menu__item:hover{background-color:#f0f0f0}.context-menu__item:active{background-color:#e0e0e0}.context-menu__item:disabled{color:#ccc;cursor:not-allowed;opacity:.6}.context-menu__item:disabled:hover{background-color:transparent}.context-menu__item--delete{color:#d32f2f}.context-menu__item--delete:hover{background-color:#ffebee}.context-menu__item--delete:active{background-color:#ffcdd2}@media(max-width:768px){.app-title{font-size:1.1rem}.app-logo,.header-search-section{display:none}.header-mobile-search-btn{display:flex;align-items:center;justify-content:center}.header-mobile-search-btn:hover{background-color:#ffffff26}.header-mobile-search-btn:active{background-color:#fff3}.header-search-section .search-bar__clear{display:none}.attribution-panel__content{padding:.5rem .75rem;gap:.5rem}.footer-section-center{padding:0 .5rem}}@media(max-width:640px){.app-title{display:none}.header-content{padding:.5rem .75rem;gap:.5rem}.header-search-section{display:none}.header-mobile-search-btn{display:flex;align-items:center;justify-content:center}.header-mobile-search-btn:hover{background-color:#ffffff26}.header-mobile-search-btn:active{background-color:#fff3}.header-spacer{display:none}.btn{padding:.375rem .5rem;font-size:.75rem}.attribution-panel__content{flex-direction:column;gap:.25rem;padding:.5rem;font-size:.75rem}.footer-section{width:100%;flex-direction:column;align-items:flex-start}.footer-section-center{border:none;padding:0;width:10%;justify-content:flex-start}}
