.notification-viewport{position:fixed;inset:calc(max(env(safe-area-inset-top,0px),var(--safe-top, 0px)) + 12px) auto auto calc(50% + var(--rail-width, 0px) / 2);transform:translate(-50%);width:min(400px,calc(100% - var(--rail-width, 0px) - 24px));margin:0;padding:0;border:0;overflow:visible;background:transparent;color:var(--color-text);z-index:10000;pointer-events:none}.notification-viewport:not(.has-notification){display:none}.notification-viewport::backdrop{background:transparent;pointer-events:none}.app-notification{--notification-accent: var(--color-info);display:flex;align-items:flex-start;gap:10px;padding:14px 8px 14px 14px;border:1px solid var(--color-stroke-strong);border-radius:17px;background:var(--color-surface);box-shadow:0 12px 38px #0003,0 2px 6px #0001;pointer-events:auto;touch-action:pan-x;animation:notification-in .26s cubic-bezier(.22,1,.36,1);overflow-wrap:anywhere}.notification-success{--notification-accent: var(--color-positive)}.notification-warning{--notification-accent: var(--color-attention)}.notification-error{--notification-accent: var(--color-alert)}.notification-symbol{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:12px;color:var(--notification-accent);background:color-mix(in srgb,var(--notification-accent) 13%,var(--color-surface));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--notification-accent) 15%,transparent)}.notification-copy{flex:1;min-width:0;padding-top:2px}.notification-title{display:flex;align-items:baseline;gap:8px}.notification-title strong{font-size:13px;line-height:1.45;font-weight:600}.notification-copy p{margin:5px 0 0;font-size:12px;line-height:1.5;color:var(--color-text-secondary)}.notification-count{flex-shrink:0;font-size:11px;color:var(--notification-accent);font-variant-numeric:tabular-nums}.notification-close{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border-radius:10px;color:var(--color-text-secondary);margin:-5px 0}.notification-close:hover,.notification-close:focus-visible{background:var(--color-surface-hover);color:var(--color-text)}.notification-action{display:flex;align-items:center;gap:7px;color:var(--notification-accent);min-height:44px;font-size:12px;font-weight:600}.notification-queued{display:block;margin-top:6px;font-size:11px;color:var(--color-text-secondary)}@keyframes notification-in{0%{opacity:0;transform:translateY(-12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media(min-width:768px){.notification-viewport{top:calc(var(--safe-top, 0px) + 24px)}}@media(prefers-reduced-motion:reduce){.app-notification{animation:none}}.collection-toolbar{display:flex;align-items:center;gap:10px;width:fit-content;max-width:calc(100% - 36px);margin:0 18px 10px;padding:3px 6px 3px 10px;border:1px solid var(--color-stroke);border-radius:11px;background:var(--color-surface);color:var(--color-text-secondary)}.collection-state{display:flex;align-items:center;gap:8px;min-width:0;font-size:11px;max-width:210px}.collection-state>span:last-child{min-width:0}.collection-state strong{font-size:11px;font-weight:500;color:var(--color-text);display:block}.collection-state small{display:block;font-size:10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}.service-dot{width:6px;height:6px;flex-shrink:0;border-radius:50%;background:var(--color-positive)}.unavailable .service-dot{background:var(--color-attention)}.collection-refresh{min-height:44px;display:flex;align-items:center;justify-content:center;gap:5px;font-size:11px;color:var(--color-primary);padding:4px 6px;border-radius:7px;white-space:nowrap}.collection-refresh:hover:not(:disabled){background:var(--color-surface-hover)}.collection-refresh:disabled{opacity:.5}.small-spinner{display:inline-block;width:13px;height:13px;border:1.5px solid var(--color-stroke-strong);border-top-color:var(--color-primary);border-radius:50%;flex-shrink:0;animation:collection-spin .85s linear infinite}.refresh-spinning{animation:collection-spin 1.2s linear infinite}.loading-indicator{display:inline-flex;align-items:center;gap:8px;width:fit-content;max-width:100%;align-self:flex-start;padding:9px 10px;color:var(--color-text-secondary);font-size:11px;line-height:1.4}.map-scene .map-message{left:50%;right:auto;top:50%;transform:translate(-50%,-50%);width:max-content;max-width:calc(100% - 36px);padding:8px 10px;font-size:11px}.map-message .loading-indicator{padding:0}@keyframes collection-spin{to{transform:rotate(360deg)}}@media(max-width:360px){.collection-toolbar{gap:7px;padding-left:8px;max-width:calc(100% - 32px);margin-left:16px;margin-right:16px}.collection-state{max-width:170px}.collection-state small{max-width:165px}.collection-refresh{font-size:10px}}@media(prefers-reduced-motion:reduce){.small-spinner,.refresh-spinning{animation:none}}.page-content>.collection-toolbar{margin-left:0;margin-right:0;max-width:100%}@media(min-width:768px){.map-page.situation-page,.map-page.airport-map-page{grid-template-rows:auto minmax(0,1fr)}.route-container>.collection-toolbar{margin-left:max(24px,calc((100% - var(--content-width)) / 2 + 24px))}}.nav-service{display:none}.menu-service{padding-top:12px}.menu-service .collection-toolbar{margin:0;max-width:100%}@media(min-width:768px){.nav-service{display:block;margin:0 0 14px}.bottom-navigation>.nav-brand{margin-bottom:8px}.nav-service .collection-toolbar{margin:0;width:100%;max-width:100%;padding:4px;flex-direction:column;gap:0}.nav-service .collection-state{justify-content:center;min-height:20px}.nav-service .collection-state>span:last-child,.nav-service .collection-refresh>span{display:none}.nav-service .collection-refresh{width:44px}.map-page.situation-page{grid-template-rows:88px minmax(0,1fr)}.map-page.airport-map-page{grid-template-rows:144px minmax(0,1fr)}}@media(min-width:1200px){.nav-service .collection-toolbar{flex-direction:row;gap:4px;justify-content:space-between;padding:3px 5px 3px 9px}.nav-service .collection-state{justify-content:flex-start}.nav-service .collection-state>span:last-child{display:block}.nav-service .collection-state small{max-width:110px}}.menu-service .collection-toolbar{width:100%;justify-content:space-between}.menu-service .collection-state{flex:1;max-width:none}.information-page{display:flex;flex-direction:column;gap:18px}.information-card{background:var(--color-surface);border:1px solid var(--color-stroke);padding:22px;border-radius:var(--radius-md)}.information-card h2{margin-bottom:14px}.information-card p+p{margin-top:12px}.information-card p{color:var(--color-text-secondary);line-height:1.7}.information-footer{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;padding:8px 16px;color:var(--color-text-tertiary);font-size:10px;flex-shrink:0}.information-footer a{min-height:44px;display:inline-flex;align-items:center;text-decoration:underline;text-underline-offset:3px}.legal-links{display:flex;gap:12px;flex-wrap:wrap}.legal-links a{display:inline-flex;align-items:center;min-height:44px;color:var(--color-info);text-decoration:underline;text-underline-offset:3px}.not-found-shell{padding:0!important}.not-found-page{min-height:calc(100dvh - 60px - var(--safe-top) - var(--safe-bottom));display:grid;place-items:center;padding:24px}.not-found-card{width:min(100%,500px);text-align:center;border:1px solid var(--color-stroke);background:var(--color-surface);border-radius:24px;padding:36px 24px}.not-found-card .brand{justify-content:center}.not-found-code{color:var(--color-primary);font-size:clamp(84px,15vw,120px);font-weight:750;letter-spacing:-6px;line-height:1.3;margin-top:20px}.not-found-card p{color:var(--color-text-secondary);margin:16px 0 28px}.not-found-card small{color:var(--color-text-tertiary);display:block;margin-top:24px}.not-found-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center}.not-found-actions .button{width:auto;min-width:140px}.sheet-grab-area>.section-heading{margin-top:0}.sheet-grab-area>.section-heading h2{font-size:20px}.sheet-grab-area.swipe-enabled{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab;padding-top:6px}.sheet-grab-area.swipe-enabled:active{cursor:grabbing}.animated-sheet{will-change:transform;overscroll-behavior:contain}.animated-sheet[open]::backdrop{animation:sheet-backdrop-in .24s ease-out both}.animated-sheet[data-closing=true]::backdrop{animation:sheet-backdrop-out .22s ease-in both}@keyframes sheet-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-backdrop-out{0%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.animated-sheet{will-change:auto}.animated-sheet[open]::backdrop,.animated-sheet[data-closing=true]::backdrop{animation:none}}.map-timeline.simple-timeline{padding:6px 12px 7px;max-width:none}.simple-timeline .timeline-heading{gap:8px;min-height:44px}.simple-timeline .timeline-heading strong{flex:1;min-width:0;font-size:11px;line-height:1.35}.simple-timeline .timeline-heading select{margin-left:0;min-width:68px;max-width:90px;font-size:11px}.simple-timeline .timeline-play{flex-shrink:0;color:var(--color-primary)}.timeline-track{position:relative;height:28px}.simple-timeline .timeline-range{position:relative;z-index:1;height:28px;display:block;margin:0;width:100%;padding:0}.timeline-ticks{position:absolute;left:8px;right:8px;bottom:1px;pointer-events:none;height:5px}.timeline-ticks i{position:absolute;top:0;width:1px;height:5px;background:var(--color-text-tertiary)}.timeline-scale{height:32px;position:relative;margin:0 8px;font-size:9px;color:var(--color-text-secondary)}.timeline-scale>span{position:absolute;top:2px;transform:translate(-50%);white-space:nowrap;text-align:center;line-height:1.2}.timeline-scale>span.first{transform:none}.timeline-scale>span.last{transform:translate(-100%)}.timeline-scale small{display:block;font-size:9px;margin-top:2px;color:var(--color-text-tertiary)}.timeline-feedback{min-height:19px;font-size:10px;color:var(--color-text-secondary);line-height:1.3;display:flex;align-items:center;gap:6px}.timeline-feedback .loading-indicator{padding:0;font-size:10px}.timeline-feedback button{color:var(--color-primary);min-height:28px}@media(max-width:360px){.map-timeline.simple-timeline{padding:5px 8px 6px}.simple-timeline .timeline-heading strong{font-size:10px}.simple-timeline .timeline-heading{gap:3px}.simple-timeline .timeline-heading select{padding:5px;min-width:62px;max-width:70px}.timeline-scale{font-size:8px}}@media(min-width:768px){.map-scene .map-timeline.simple-timeline{left:16px;right:16px;bottom:16px}.simple-timeline .timeline-heading strong{font-size:12px}}.simple-timeline[data-step=days] .timeline-scale{height:20px}@media(min-width:1200px){.map-scene:not(.compact-map) .map-context-legend{bottom:calc(var(--map-timeline-height, 0px) + 28px)}.map-scene:not(.compact-map) .map-timeline.simple-timeline{left:16px;right:16px;width:auto;max-width:none;margin:0}}.sources-page .notice{margin-bottom:12px}.sources-search{margin-bottom:16px}.sources-page>p{line-height:1.6}.sources-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 10px;font-size:12px;color:var(--color-text-secondary)}.sources-toolbar button{display:flex;align-items:center;gap:6px;min-height:44px}.source-preference{display:flex;gap:12px;align-items:flex-start;padding:16px 14px;border-bottom:1px solid var(--color-stroke)}.source-preference:last-child{border:0}.source-preference>.grow{min-width:0}.source-preference .source-title{display:inline-flex;gap:6px;align-items:center;font-size:13px;font-weight:600;min-height:28px;overflow-wrap:anywhere}.source-title>svg{flex-shrink:0;color:var(--color-text-tertiary)}.source-preference .source-coverage{font-size:11px;line-height:1.5;color:var(--color-text-secondary);margin:3px 0 5px;overflow-wrap:anywhere}.source-preference small{display:block;font-size:10px;line-height:1.5}.source-preference .freshness{font-size:10px;margin-top:5px}.source-preference>.toggle{flex-shrink:0}.source-health-error{color:var(--color-attention)}.map-context-legend{position:absolute;z-index:2;left:12px;bottom:54px;max-width:calc(100% - 90px);padding:7px 10px;background:var(--color-overlay);border:1px solid var(--color-stroke);border-radius:9px;color:var(--color-text-secondary);font-size:10px;line-height:1.5;pointer-events:none}.map-context-legend span{color:var(--color-attention)}.map-label.city.attention>span:first-child,.status-icon.attention{color:var(--color-attention);background:var(--color-attention-bg)}.map-label.city.info>span:first-child,.status-icon.info{color:var(--color-info);background:#63a1ff15}.map-label.city.unknown>span:first-child{color:var(--color-unknown)}.event-row .event-source-link{display:inline-flex;align-items:center;gap:5px;min-height:32px;font-size:10px;color:var(--color-info)}.event-content-link{display:block}.region-context-source{font-size:11px;line-height:1.5;margin-top:10px;color:var(--color-text-secondary)}.region-context-source a{color:var(--color-info)}@media(max-width:360px){.source-preference{gap:8px;padding:14px 10px}.source-preference>.source-icon{display:none}}@media(min-width:768px){.map-context-legend{bottom:55px;left:14px;max-width:calc(100% - 100px)}}.map-label.region{min-width:44px}.map-label.region>span:first-child{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid currentColor;border-radius:50%;flex-shrink:0;color:var(--color-unknown);background:var(--color-surface)}.map-label.region.attention>span:first-child{color:var(--color-attention);background:#3c2c1c}.map-label.region.alert>span:first-child{color:var(--color-alert);background:#3a1d26}.map-label.region.info>span:first-child{color:#8aa9ca;background:#1d2a38}.event-row>.icon-button{width:44px;min-width:44px}.event-row>.grow{min-width:0}.event-row p{overflow-wrap:anywhere}.map-page .map-context-legend{top:146px;bottom:auto;max-width:calc(100% - 90px)}@media(min-width:768px){.map-page .map-context-legend{top:auto;bottom:55px}}.map-resource-state{position:absolute;z-index:3;bottom:12px;left:12px;right:70px;background:var(--color-surface);border-radius:8px;padding:4px 8px}.map-resource-state .resource-state{margin:0}.map-page .map-resource-state{bottom:55px}@media(min-width:768px){.map-page .map-resource-state{bottom:12px}}.airport-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.airport-hero:has(.airport-hero-image):after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#06101a30,transparent 55%,#06101a80)}.airport-photo-credit{font-size:10px;line-height:1.5;color:var(--color-text-tertiary);margin:-7px 0 12px;overflow-wrap:anywhere}.airport-photo-credit a:hover,.airport-catalog-credit a:hover{text-decoration:underline}.airport-reference-summary{display:grid;gap:5px;padding:14px 0;border-bottom:1px solid var(--color-stroke);font-size:12px;margin-top:10px}.airport-reference-summary>span{color:var(--color-text-secondary)}.airport-reference-summary a{color:var(--color-info);display:inline-flex;min-height:36px;align-items:center}.airport-metric-label{margin-top:18px}.airport-info-rows .setting-row{gap:12px;justify-content:space-between}.airport-info-rows .setting-row>strong{text-align:right;overflow-wrap:anywhere}.airport-catalog-credit{font-size:11px;line-height:1.6;margin:12px 0;color:var(--color-text-secondary)}.airport-catalog-credit a{color:var(--color-info)}.board-source{display:flex;align-items:center;gap:6px;min-height:44px;font-size:12px;color:var(--color-info);overflow-wrap:anywhere}.board-empty{font-size:12px;color:var(--color-text-secondary);padding:22px 0;line-height:1.6}@media(max-width:420px){.airport-photo-credit{font-size:9px}.airport-info-rows .setting-row{font-size:12px}.airport-info-rows .setting-row>strong{max-width:60%}}.map-scene .map-controls{display:flex;flex-direction:column;align-items:flex-end;gap:6px;right:12px;top:calc(var(--map-header-height, 0px) + 12px)}.map-controls-row{display:flex;gap:6px}.map-controls .timeline-toggle[aria-pressed=true]{color:var(--color-primary);border-color:var(--color-primary)}.map-scene .map-context-legend{inset:auto auto calc(var(--map-panel-height, 0px) + var(--map-timeline-height, 0px) + 38px) 12px;padding:0;max-width:calc(100% - 124px);pointer-events:auto;font-size:10px;line-height:1.5;background:var(--color-overlay);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.map-context-legend>button{display:flex;gap:7px;align-items:center;min-height:44px;text-align:left;padding:8px 10px;font-size:10px}.map-legend-content{padding:0 10px 10px;max-width:260px}.map-timeline{position:absolute;z-index:4;bottom:calc(var(--map-panel-height, 0px) + 12px);left:12px;right:12px;padding:8px 12px 10px;border:1px solid var(--color-stroke-strong);border-radius:12px;background:var(--color-surface);box-shadow:0 6px 28px #0004;min-width:0}.timeline-heading{display:flex;align-items:center;gap:8px;font-size:12px;min-height:30px}.timeline-heading>span{font-size:10px;color:var(--color-text-secondary);flex:1}.timeline-heading>.icon-button{width:44px;height:44px;min-width:44px}.timeline-navigation{display:flex;align-items:center;gap:3px}.timeline-date{display:flex;align-items:center;gap:4px;min-width:0;flex:1}.timeline-date input{border:0;background:none;color-scheme:dark;font-size:12px;min-height:44px;min-width:0;width:100%}.timeline-date small{font-size:9px}.timeline-navigation>.icon-button{width:44px;min-width:44px}.timeline-now{min-height:44px;padding:6px 9px;border-radius:8px;border:1px solid var(--color-stroke-strong);font-size:11px;color:var(--color-text-secondary)}.timeline-now.selected{color:var(--color-primary);background:var(--color-surface-raised)}.timeline-range{width:100%;height:26px;accent-color:var(--color-primary);margin:0;cursor:ew-resize}.timeline-bounds{display:flex;justify-content:space-between;gap:8px;font-size:9px;color:var(--color-text-tertiary)}.timeline-event{font-size:10px;color:var(--color-text-secondary);margin-top:7px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.timeline-event button{color:var(--color-primary);margin-left:8px;min-height:28px}.timeline-disclaimer{font-size:9px;color:var(--color-attention);margin-top:3px}.map-history-banner{position:absolute;z-index:3;top:calc(var(--map-header-height, 0px) + 12px);left:12px;max-width:calc(100% - 126px);padding:7px 9px;display:flex;align-items:center;gap:6px;background:var(--color-surface);border:1px solid var(--color-attention);color:var(--color-attention);border-radius:8px;font-size:10px;pointer-events:none}.map-scene.has-map-timeline .map-resource-state{bottom:calc(var(--map-panel-height, 0px) + var(--map-timeline-height, 0px) + 62px)}.map-page .map-caption{max-width:calc(100% - 100px)}.map-label.airport.attention>span:first-child{background:#6a4c22;color:#ffd187;border-color:#ffb347}.map-label.airport.info>span:first-child{background:#425a73;color:#c4dbef}.airport-restriction-note{font-size:11px;color:var(--color-text-secondary);line-height:1.6;margin:16px 0}.airport-restrictions>.notice{margin-top:12px}.airport-restrictions .notice a{min-height:36px;display:inline-flex;align-items:center}.archive-preview-label{color:var(--color-attention);font-size:10px;margin:8px 0}.map-scene.compact-map .map-controls{top:auto;bottom:35px}.map-scene.compact-map .map-context-legend{max-width:calc(100% - 76px)}@media(min-width:768px){.map-scene .map-controls{top:16px;right:16px}.map-scene .map-context-legend{max-width:calc(100% - 140px);bottom:calc(var(--map-timeline-height, 0px) + 44px)}.map-timeline{left:16px;right:16px;max-width:700px;margin:0 auto;bottom:16px}.timeline-heading>.icon-button{height:44px}.map-history-banner{top:16px;left:16px}.map-scene.has-map-timeline .map-caption{bottom:calc(var(--map-timeline-height, 0px) + 26px)}}@media(max-width:360px){.map-timeline{left:6px;right:6px;padding:6px 8px 8px}.timeline-date input{font-size:10px}.timeline-heading>span{font-size:9px}.timeline-now{padding:5px}.timeline-navigation>.icon-button{width:44px;min-width:44px}.map-scene .map-context-legend{left:8px;max-width:calc(100% - 118px)}}@media(max-width:767px)and (max-height:700px){.map-page:has(.has-map-timeline) .preview-sheet{display:none}}@media(max-width:767px)and (max-height:480px){.map-page:has(.has-map-timeline) .map-top .app-header{display:none}.has-map-timeline .timeline-heading,.has-map-timeline .timeline-disclaimer{display:none}.has-map-timeline .map-controls>.map-controls-row:nth-child(2){display:none}.has-map-timeline .map-context-legend{display:none}.map-timeline{padding-top:5px;padding-bottom:7px}}.map-label.airport.unknown>span:first-child{background:#263342;color:#aebcce;border-color:#8494a9}.region-preview-title .grow>.status-pill{display:table;margin-top:4px}.region-alert .status-pill{margin:3px 4px 3px 0}.bottom-navigation>.nav-secondary{display:none}.map-label.region{width:44px;min-height:44px;z-index:2}.map-label.region>span:last-child{position:absolute;width:max-content;max-width:150px;white-space:normal;font-size:10px;font-weight:600;line-height:1.3;padding:3px 5px;border-radius:5px;background:var(--color-overlay);text-align:center;box-shadow:0 1px 4px #0002}.region-label-leaders{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:1}.region-label-leaders line{stroke:var(--color-text-secondary);stroke-width:1;stroke-opacity:.5;visibility:hidden}.map-selection-actions{display:grid;gap:10px;margin-top:18px}.map-selection-actions>.text-link{justify-content:center;min-height:44px}.map-selection-toolbar{display:flex;justify-content:flex-end}.preview-sheet[aria-label="Сведения о территории"]{padding-top:14px}.timeline-heading select{margin-left:auto;min-height:44px;max-width:145px;border:1px solid var(--color-stroke);border-radius:8px;background:var(--color-surface);color:var(--color-text);font-size:11px;padding:5px 8px}@media(min-width:768px){.bottom-navigation>.nav-secondary{display:flex}.bottom-navigation>.nav-more{display:none}.bottom-navigation{overflow-y:auto;overscroll-behavior:contain}.situation-page .map-top .brand-header{display:none}.map-page.situation-page{grid-template-rows:88px minmax(0,1fr)}.situation-page .map-top{padding-top:22px}.map-page:not(.has-map-selection){grid-template-columns:minmax(0,1fr)}.map-page:not(.has-map-selection)>.map-scene{grid-column:1}.map-page:not(.has-map-selection)>.map-top{position:absolute;top:0;left:0;width:var(--map-panel-width)}}@media(max-width:767px)and (max-height:700px){.map-page.has-map-selection .preview-sheet{display:block!important;z-index:6;max-height:65%}.map-page.has-map-selection .map-timeline{display:none}}@media(max-width:767px)and (max-height:480px){.has-map-timeline .timeline-heading{display:flex!important}.has-map-timeline .timeline-event,.has-map-timeline .timeline-bounds{display:none}}.district-attribution{position:absolute;right:8px;bottom:calc(var(--map-timeline-height, 0px) + 5px);z-index:3;font-size:9px;color:var(--text-muted, #a0b1bf);background:var(--surface, #101d28);padding:2px 5px;border-radius:3px}.map-label.region>span:first-child{display:flex;align-items:center;justify-content:center;gap:2px;min-width:28px;width:auto;padding:5px}.map-label.region>span:first-child:has(svg+svg){min-width:43px}.event-evidence{font-size:12px;margin-top:5px;color:var(--text-muted, #a0b1bf)}.event-evidence summary{cursor:pointer;min-height:24px}.event-row strong svg{vertical-align:middle}.map-publications{margin-top:12px;font-size:12px;color:var(--color-text-secondary)}.map-publications summary{cursor:pointer;min-height:34px;padding:8px 0}.district-attribution{color:var(--color-text-secondary);background:var(--color-surface)}.map-scene .map-controls{flex-direction:row;align-items:center}.map-controls-row{display:contents}.map-label.airport{min-height:44px;padding:5px 8px;gap:7px;max-width:190px;border:1px solid var(--color-stroke-strong);border-radius:10px;background:var(--color-overlay);color:var(--color-text);text-shadow:none;z-index:3;box-shadow:0 2px 6px #0002}.map-label.airport>span:last-child{font-size:11px;line-height:1.25;white-space:normal;text-align:left;max-width:135px}.map-label.airport>span:first-child{flex-shrink:0;color:#fff}.brand{--brand-accent: #7a88ff;gap:9px;color:var(--color-text)}.brand .brand-radar{width:44px;height:44px;color:#97b9df;flex-shrink:0}.brand-copy{display:flex;flex-direction:column;gap:3px;min-width:0}.brand-copy strong{font-size:21px;line-height:1.05;letter-spacing:.12em;font-weight:800}.brand-copy small{font-size:7px;line-height:1.5;letter-spacing:.09em;text-transform:uppercase;color:var(--color-text-secondary);font-weight:500}.brand-header{min-height:76px}@media(max-width:360px){.brand-copy strong{font-size:19px}.brand-copy small{font-size:6px}}@media(min-width:1200px){.nav-brand .brand{gap:7px}.nav-brand .brand>svg{width:38px;height:38px}.nav-brand .brand-copy strong{font-size:17px}.nav-brand .brand-copy small{font-size:6px;letter-spacing:.04em}.bottom-navigation>.nav-brand{min-height:64px}}@media(min-width:1200px){.nav-brand .brand>.brand-copy{display:flex}}.brand .brand-copy small{font-size:8px;letter-spacing:.04em}@media(max-width:360px){.brand .brand-copy small{font-size:7px}}@media(min-width:1200px){.nav-brand .brand>svg.brand-radar{width:40px;height:40px}.nav-brand .brand-copy strong{font-size:19px}.nav-brand .brand .brand-copy small{font-size:7px;letter-spacing:0}.bottom-navigation>a.nav-brand{min-height:64px}}.brand-radar .radar-sweep{transform-origin:32px 32px;animation:brand-radar-turn 6s linear infinite}@keyframes brand-radar-turn{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.brand-radar .radar-sweep{animation:none}}.detailed-basemaps{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.detailed-basemaps button{text-align:left;min-height:132px;display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start}.detailed-basemaps strong{font-size:12px;color:var(--color-text)}.detailed-basemaps small{font-size:10px;line-height:1.4;margin-top:4px}.detailed-basemaps .basemap-preview{height:64px;position:relative;overflow:hidden}.basemap-preview.streets{background:#dce8d1;color:#40623c}.basemap-preview.bright{background:#f1e6c8;color:#706145}.basemap-preview.positron{background:#e8edf1;color:#526478}.basemap-preview.night{background:#202c39;color:#a0b8ce}.basemap-roads{position:absolute;width:140%;height:12px;transform:rotate(-25deg);border-top:2px solid currentColor;border-bottom:1px solid currentColor;opacity:.4}.basemap-preview>svg{position:relative;z-index:1}.basemap-fallback{position:absolute;left:8px;top:calc(var(--map-header-height, 0px) + 64px);z-index:3;max-width:calc(100% - 16px);font-size:10px;padding:6px 8px;border-radius:8px;background:var(--color-overlay);border:1px solid var(--color-stroke);color:var(--color-text-secondary);display:flex;gap:8px;align-items:center}.basemap-fallback button{min-height:44px;color:var(--color-primary)}.yandex-map-logo{position:absolute;z-index:3;left:0;bottom:calc(var(--map-panel-height, 0px) + var(--map-timeline-height, 0px) + 18px);display:block;line-height:0}.yandex-map-logo img{width:92px;height:auto;display:block}.basemap-preview.yandex-driving{background:#eee9dd;color:#746333}.basemap-preview.yandex-admin{background:#e6e9d8;color:#4c6374}.map-engine .map-label{touch-action:none;-webkit-user-select:none;user-select:none}.map-user-location{position:absolute;left:0;top:0;width:46px;height:46px;pointer-events:none;z-index:3;display:grid;place-items:center}.location-halo{position:absolute;inset:0;border-radius:50%;background:#4d84ff24;border:1px solid #79a7ff66}.location-dot{width:17px;height:17px;border-radius:50%;background:#4d84ff;border:3px solid white;box-shadow:0 0 0 4px #4d84ff26,0 2px 8px #07163166}.location-halo:before,.location-halo:after{content:"";position:absolute;inset:-1px;border:1px solid #79a7ff99;border-radius:50%;background:#4d84ff18;animation:location-pulse 2.8s ease-out infinite}.location-halo:after{animation-delay:-1.4s}@keyframes location-pulse{0%{transform:scale(.55);opacity:.7}to{transform:scale(1.8);opacity:0}}@media(prefers-reduced-motion:reduce){.location-halo:before,.location-halo:after{animation:none;display:none}}.place-input{position:relative;flex:1;min-width:0;width:100%}.place-input>input{width:100%}.place-popup{position:absolute;z-index:30;top:calc(100% + 8px);left:0;right:0;min-width:0;background:var(--color-surface);border:1px solid var(--color-stroke-strong);border-radius:11px;box-shadow:0 8px 26px #0003;padding:4px;overflow:hidden}.place-popup>[role=listbox]{max-height:min(240px,35dvh);overflow:auto;overscroll-behavior:contain}.place-popup [role=option]{display:block;width:100%;min-height:44px;padding:10px;text-align:left;font-size:12px;line-height:1.5;white-space:normal;overflow-wrap:anywhere;border-radius:7px}.place-popup [role=option]:hover,.place-popup [aria-selected=true]{background:var(--color-surface-raised);color:var(--color-primary)}.place-attribution{display:block;text-align:right;padding:8px;font-size:10px;color:var(--color-text-secondary)}.place-message{font-size:11px;line-height:1.5;color:var(--color-text-secondary);padding:8px;margin:0}.map-search:has(.place-popup)>.search-results{display:none}.trip-endpoints label:focus-within{position:relative;z-index:2}.trip-endpoints label .place-popup{left:-28px;right:0}.search-field:has(.place-popup){position:relative;z-index:10}.trip-endpoints .place-input>input{min-height:32px}:root{color-scheme:dark;--color-app: #080f18;--color-surface: #101a27;--color-surface-raised: #152233;--color-surface-hover: #1b2a3c;--color-overlay: rgba(9, 17, 27, .97);--color-stroke: rgba(164, 184, 213, .14);--color-stroke-strong: rgba(164, 184, 213, .24);--color-text: #f4f7fd;--color-text-secondary: #a2b0c3;--color-text-tertiary: #718298;--color-primary: #4e7bff;--color-primary-pressed: #3f65df;--color-secondary-accent: #8660f7;--color-alert: #ff5b62;--color-alert-bg: rgba(235, 61, 76, .13);--color-attention: #ffb347;--color-attention-bg: rgba(236, 151, 45, .13);--color-positive: #43c888;--color-positive-bg: rgba(53, 172, 111, .13);--color-unknown: #96a4b8;--color-info: #63a1ff;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-sheet: 22px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--nav-height: 68px;--safe-top: max(env(safe-area-inset-top), var(--platform-top, 0px));--safe-bottom: max(env(safe-area-inset-bottom), var(--platform-bottom, 0px));--motion-fast: .14s;--motion-normal: .22s;--motion-sheet: .3s}*{box-sizing:border-box}html{background:var(--color-app);scroll-behavior:smooth}body{margin:0;color:var(--color-text);font:14px/1.45 Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased}button,input,select{font:inherit;color:inherit}button,a,input{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}button{border:0;background:none}a{color:inherit;text-decoration:none}button,a,input{outline-offset:4px}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--color-primary)}input{min-width:0;max-width:100%}svg{flex-shrink:0;vertical-align:middle}h1,h2,h3,p{margin:0}h1{font-size:23px;line-height:1.2;font-weight:700}h2{font-size:17px;line-height:1.3;font-weight:650}h3{font-size:14px;font-weight:600;margin:22px 0 10px}p{line-height:1.45}strong{font-weight:600}.grow{flex:1;min-width:0}.muted,small{color:var(--color-text-secondary)}.small,small{font-size:12px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip-link{position:fixed;top:-70px;z-index:100;padding:14px;background:var(--color-primary)}.skip-link:focus{top:0}.app-shell{min-height:100dvh;padding-top:var(--safe-top);padding-bottom:calc(var(--nav-height) + var(--safe-bottom));position:relative}.detail-shell{padding-bottom:var(--safe-bottom)}.route-container{min-height:calc(100dvh - var(--nav-height) - var(--safe-top) - var(--safe-bottom) - 25px)}.demo-banner{background:var(--color-surface-raised);color:var(--color-text-secondary);font-size:10px;letter-spacing:.025em;text-align:center;padding:5px 10px;min-height:25px;border-bottom:1px solid var(--color-stroke)}.offline-banner{background:var(--color-attention-bg);color:var(--color-attention);font-size:12px;padding:8px 16px;text-align:center}.app-header{display:flex;align-items:center;gap:6px;height:64px;padding:8px 12px;border-bottom:1px solid transparent}.app-header h1{flex:1;font-size:22px;padding-left:6px}.app-header:has(>.icon-button) h1{font-size:17px;text-align:center;padding:0}.header-action{min-width:44px;display:flex;justify-content:flex-end;margin-left:auto}.brand-header{height:68px;padding:10px 18px}.brand{display:flex;align-items:center;gap:10px;white-space:nowrap}.brand>span{font-size:21px;letter-spacing:.15em;font-weight:700}.icon-button{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:44px;height:44px;border-radius:12px;color:var(--color-text);background:transparent}.icon-button:hover{background:var(--color-surface-hover)}.page-content{padding:0 18px 24px;max-width:560px;margin:0 auto}.page-content>h2{margin:6px 0 12px}.button{display:flex;align-items:center;justify-content:center;gap:8px;min-height:49px;padding:12px 16px;border:1px solid var(--color-primary);border-radius:12px;background:var(--color-primary);color:var(--color-text);font-size:14px;font-weight:550;width:100%;transition:background var(--motion-fast)}.button:hover{background:var(--color-primary-pressed)}.button.secondary{background:transparent;border-color:var(--color-stroke-strong);color:var(--color-text-secondary)}.button.secondary:hover{background:var(--color-surface-hover)}.button.gradient{background:linear-gradient(105deg,#346eff,#885bfa);border-color:transparent}.button-pair{display:flex;gap:10px;margin-top:15px}.button-pair>*{flex:1;min-width:0;font-size:12px}.text-link{color:var(--color-info);display:inline-flex;gap:7px;align-items:center;font-size:13px;min-height:44px}.search-field{display:flex;align-items:center;gap:9px;background:var(--color-surface-raised);border:1px solid var(--color-stroke);border-radius:11px;min-height:44px;padding:0 12px;color:var(--color-text-secondary)}.search-field:focus-within{border-color:var(--color-primary)}.search-field input{border:0;background:transparent;outline:none;flex:1;width:100%;height:43px;font-size:12px}.search-field input::placeholder{color:var(--color-text-tertiary)}.search-field .icon-button{width:28px;margin-right:-6px}.segments{display:flex;gap:4px;border:1px solid var(--color-stroke);border-radius:12px;background:var(--color-surface);padding:3px}.segments button{flex:1;min-width:0;min-height:42px;border-radius:9px;color:var(--color-text-secondary);font-size:12px;display:flex;gap:6px;justify-content:center;align-items:center;padding:6px}.segments button.selected{background:var(--color-primary);color:var(--color-text);box-shadow:0 0 0 1px #8dadff40 inset}.status-pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;line-height:1.3;color:var(--color-unknown);background:var(--color-surface-raised);border-radius:8px;padding:6px 8px;max-width:100%;font-weight:500}.status-pill.alert{color:var(--color-alert);background:var(--color-alert-bg)}.status-pill.attention{color:var(--color-attention);background:var(--color-attention-bg)}.status-pill.positive{color:var(--color-positive);background:var(--color-positive-bg)}.status-dot{height:7px;width:7px;flex-shrink:0;background:currentColor;border-radius:50%;display:inline-block}.status-icon{height:42px;width:42px;border-radius:11px;background:var(--color-surface-raised);display:flex;align-items:center;justify-content:center;flex-shrink:0}.status-icon.alert{color:var(--color-alert);background:var(--color-alert-bg)}.freshness{display:flex;align-items:center;gap:6px;color:var(--color-text-secondary);font-size:11px;margin:12px 0;line-height:1.5}.notice{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--color-stroke);background:var(--color-surface);border-radius:12px;padding:13px;margin:14px 0;font-size:12px;line-height:1.5;color:var(--color-text-secondary)}.notice>svg{color:var(--color-info);margin-top:1px}.notice strong{color:var(--color-text)}.notice p{margin-top:4px}.notice.attention{background:var(--color-attention-bg)}.notice.attention>svg{color:var(--color-attention)}.empty-state{display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:12px;color:var(--color-text-secondary);padding:30px 14px;min-height:160px}.empty-state strong{color:var(--color-text);font-size:14px}.empty-state p{font-size:12px;max-width:280px}.empty-state .button{width:auto;min-width:140px}.skeletons{display:grid;gap:12px;padding:18px 0}.skeletons>div{height:65px;border-radius:12px;background:var(--color-surface-raised);animation:pulse 1.2s ease-in-out infinite alternate}.skeletons>div:nth-child(2){opacity:.7}.skeletons>div:nth-child(3){opacity:.4}@keyframes pulse{to{opacity:.35}}.section-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin:19px 0 10px}.section-heading>a{display:inline-flex;align-items:center;min-height:30px;font-size:12px;color:var(--color-info)}.bottom-navigation{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;z-index:20;bottom:0;left:0;right:0;border-top:1px solid var(--color-stroke);background:var(--color-overlay);height:calc(var(--nav-height) + var(--safe-bottom));padding:6px 8px calc(6px + var(--safe-bottom))}.bottom-navigation>a,.bottom-navigation>button{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;font-size:10px;color:var(--color-text-secondary);border-radius:10px}.bottom-navigation .active{color:var(--color-primary)}.bottom-navigation a:hover,.bottom-navigation button:hover{background:var(--color-surface-hover)}.bottom-sheet{padding:0;border:1px solid var(--color-stroke-strong);border-bottom:0;background:var(--color-overlay);color:var(--color-text);border-radius:22px 22px 0 0;margin:auto auto 0;max-width:440px;width:100%;max-height:90dvh;overflow-y:auto;box-shadow:0 -15px 50px #0000003d}.bottom-sheet::backdrop{background:#02080f80}.sheet-content{padding:8px 18px calc(24px + var(--safe-bottom))}.sheet-content>.section-heading{margin-top:0}.sheet-content>.section-heading h2{font-size:20px}.drag-handle{height:4px;background:var(--color-stroke-strong);width:38px;border-radius:4px;margin:1px auto 7px}.menu-link{display:flex;align-items:center;gap:12px;width:100%;text-align:left;min-height:54px;border-bottom:1px solid var(--color-stroke);padding:12px 4px;font-size:14px}.menu-link svg{color:var(--color-info)}.menu-link small{margin-left:auto}.toggle{min-height:44px;min-width:44px;position:relative;background:transparent;padding:0;flex-shrink:0}.toggle:before{content:"";position:absolute;left:3px;top:12px;width:38px;height:22px;background:#3a4557;border-radius:22px}.toggle>span{position:absolute;left:6px;top:15px;width:16px;height:16px;border-radius:50%;background:#e0e8f4;box-shadow:0 1px 4px #0004;transition:transform var(--motion-fast)}.toggle.on:before{background:var(--color-primary)}.toggle.on>span{transform:translate(16px);background:#fff}.row-group{background:var(--color-surface);border:1px solid var(--color-stroke);border-radius:13px;overflow:hidden}.setting-row,.subscription-row{display:flex;gap:11px;align-items:center;padding:7px 12px;min-height:48px;border-bottom:1px solid var(--color-stroke);width:100%;text-align:left;font-size:12px}.setting-row:last-child,.subscription-row:last-child{border-bottom:0}.setting-row>svg,.subscription-row>svg{color:var(--color-text-secondary)}button.setting-row:hover{background:var(--color-surface-hover)}.setting-row>.muted{text-align:right;font-size:11px;max-width:45%;overflow-wrap:anywhere}.layer-row{min-height:65px;padding:7px 10px}.layer-row strong{font-size:12px}.layer-row small,.subscription-row small{display:block;font-size:10px;line-height:1.4;margin-top:3px}.layer-row>svg,.subscription-row>svg{color:var(--color-info)}.basemap-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.basemap-options button{font-size:12px;color:var(--color-text-secondary);padding:0;min-height:95px}.basemap-preview{height:70px;display:flex;align-items:center;justify-content:center;border-radius:10px;border:1px solid var(--color-stroke-strong);margin-bottom:7px;background:#112b3b}.basemap-preview.light{background:#d0dbe0;color:#6889aa}.basemap-preview.satellite{background:#233e30;color:#6c8e6f}.basemap-options .selected{color:var(--color-info)}.basemap-options .selected .basemap-preview{outline:2px solid var(--color-primary)}.sheet-content>p{margin:14px 0}.map-page{position:relative;height:calc(100dvh - var(--nav-height) - var(--safe-top) - var(--safe-bottom) - 25px);min-height:540px;overflow:hidden}.map-scene{height:100%;min-height:220px;position:relative;overflow:hidden;background:#0a202d}.map-engine,.map-canvas{position:absolute;inset:0}.map-canvas{overflow:hidden;background:#0a202d}.map-engine .maplibregl-canvas:focus{outline:none}.maplibregl-ctrl-attrib{font-size:9px!important;max-width:160px}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.map-top{position:absolute;z-index:3;left:0;right:0;top:0;background:linear-gradient(var(--color-app) 25%,rgba(8,15,24,.9) 75%,transparent);padding-bottom:15px;pointer-events:none}.map-top>*{pointer-events:auto}.map-search{padding:0 18px}.map-top .app-header{background:transparent}.map-controls{position:absolute;right:16px;top:150px;display:flex;flex-direction:column;gap:8px;z-index:2}.map-controls .icon-button{background:#09131deb;border:1px solid var(--color-stroke-strong);border-radius:12px;box-shadow:0 2px 8px #0004}.map-controls .icon-button:hover{background:var(--color-surface-hover)}.map-label{position:absolute;z-index:1;display:flex;gap:6px;align-items:center;transform:translate(-15px,-50%);color:#e2edf6;text-shadow:0 1px 3px #000,0 0 4px #000;font-size:11px;min-height:44px;padding:0 5px;white-space:nowrap}.map-label.airport>span:first-child{display:flex;width:28px;height:28px;border-radius:50%;background:var(--color-primary);align-items:center;justify-content:center;border:1px solid #bdd4ff}.map-label.airport.alert>span:first-child{background:var(--color-alert)}.city-dot{display:block;background:#c8d8e6;border:2px solid #254457;border-radius:50%;width:9px;height:9px}.map-message{position:absolute;left:16px;right:16px;top:46%;padding:16px;background:var(--color-overlay);border:1px solid var(--color-stroke);border-radius:12px;font-size:13px;text-align:center;z-index:2}.map-message span{color:var(--color-text-secondary);font-size:11px}.map-caption{position:absolute;left:10px;bottom:24px;color:#afbfcb;font-size:9px;background:#0a1520bb;padding:4px 6px;border-radius:5px}.preview-sheet{position:absolute;z-index:4;bottom:0;left:0;right:0;border:1px solid var(--color-stroke);border-bottom:0;border-radius:22px 22px 0 0;background:var(--color-overlay);padding:0 18px 16px;box-shadow:0 -5px 30px #00000024;max-height:58%;overflow:auto}.preview-handle{display:flex;justify-content:center;align-items:center;height:24px;width:100%;padding:0}.preview-handle>span{height:4px;width:38px;border-radius:6px;background:var(--color-stroke-strong)}.region-preview-title{display:flex;align-items:center;gap:10px}.region-preview-title h2{font-size:16px;margin-bottom:5px}.region-preview-title .status-pill{padding:0;background:none;font-size:11px}.region-preview-title .icon-button{width:28px}.preview-shortcuts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.preview-shortcuts button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:76px;padding:8px 2px;background:var(--color-surface);border-radius:12px;color:var(--color-text-secondary);font-size:10px;border:1px solid var(--color-stroke)}.preview-shortcuts svg{height:20px;width:20px}.preview-details{min-height:30px;margin-top:6px;font-size:11px}.compact-map{height:220px;min-height:180px;border:1px solid var(--color-stroke);border-radius:14px;margin:12px 0}.compact-map .map-controls{right:8px;top:auto;bottom:35px}.compact-map .map-controls .icon-button{width:38px;height:44px}.compact-map .map-controls .icon-button:last-child{display:none}.region-alert{display:flex;gap:12px;align-items:center;background:var(--color-surface);border:1px solid var(--color-stroke);border-radius:13px;padding:15px 12px}.region-alert.alert{background:var(--color-alert-bg);color:var(--color-alert);border-color:#ff5b6233}.region-alert .status-pill{background:none;padding:0;font-size:13px}.region-alert p{color:var(--color-text-secondary);font-size:11px;margin-top:6px}.source-row{display:flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--color-stroke)}.source-icon{display:flex;align-items:center;justify-content:center;background:var(--color-surface-raised);width:36px;height:36px;border-radius:10px;color:var(--color-info)}.source-row strong{display:block;font-size:13px}.source-row small{display:block;font-size:11px;margin-top:3px}.event-feed{margin-bottom:10px}.event-row{display:flex;gap:10px;align-items:flex-start;padding:15px 0;border-bottom:1px solid var(--color-stroke);min-height:90px}.event-row .event-dot{height:8px;width:8px;border-radius:50%;margin-top:5px;flex-shrink:0;background:var(--color-info)}.event-row .event-dot.alert{background:var(--color-alert)}.event-row .event-dot.attention{background:var(--color-attention)}.event-row .event-dot.positive{background:var(--color-positive)}.event-row time{font-size:11px;color:var(--color-text-secondary);padding-top:1px}.event-row strong{font-size:12px;line-height:1.4;display:block}.event-row p{font-size:11px;color:var(--color-text-secondary);line-height:1.4;margin-top:4px}.event-row small{display:block;color:var(--color-text-tertiary);font-size:10px;line-height:1.5;margin-top:5px}.event-row>svg{color:var(--color-text-secondary);margin-top:3px}.timeline .event-row{border:0;position:relative;padding:9px 0;min-height:74px}.timeline .event-row:not(:last-child):before{content:"";position:absolute;left:3px;top:22px;bottom:-10px;width:1px;background:var(--color-stroke-strong)}.day-heading{border-bottom:1px solid var(--color-stroke);padding-bottom:12px;font-size:14px;margin:20px 0 0}.trip-form form{display:grid;gap:14px}.trip-endpoints{position:relative;background:var(--color-surface);border:1px solid var(--color-stroke);border-radius:13px}.trip-endpoints label{padding:13px 15px;display:block}.trip-endpoints label:first-child{border-bottom:1px solid var(--color-stroke)}.trip-endpoints label>span,.date-field>span{font-size:11px;color:var(--color-text-secondary);display:block;margin-bottom:5px}.trip-endpoints label>div{display:flex;gap:9px;align-items:center}.trip-endpoints input{background:transparent;border:0;font-size:14px;height:27px;flex:1;width:100%;padding-right:20px}.trip-endpoints .swap-button{position:absolute;right:6px;top:50%;transform:translateY(-50%);border-radius:50%;background:var(--color-app);border:1px solid var(--color-stroke);width:44px;height:44px}.date-field{padding:12px 14px;background:var(--color-surface);border:1px solid var(--color-stroke);border-radius:12px}.date-field input{width:100%;background:transparent;border:0;min-height:30px;font-size:14px;color-scheme:dark}.form-error{color:var(--color-alert);font-size:12px;border-left:2px solid var(--color-alert);padding-left:12px}.trip-result-map{height:300px}.result-panel{background:var(--color-app);position:relative;border-top:1px solid var(--color-stroke);border-radius:20px 20px 0 0;margin-top:-16px;padding-top:8px}.route-metrics{display:flex;flex-wrap:wrap;gap:20px;font-size:13px;margin:12px 0}.route-metrics>span{display:flex;gap:8px;align-items:center}.route-region{display:flex;gap:10px;align-items:center;padding:11px 12px;border-bottom:1px solid var(--color-stroke);font-size:12px}.route-region:last-child{border:0}.route-region>.status-dot{color:var(--color-unknown)}.route-region .status-pill{margin-top:4px;padding:0;background:none;font-size:10px}.filter-chips{display:flex;align-items:center;gap:7px;overflow-x:auto;scrollbar-width:none;margin:12px -18px;padding:0 18px;min-height:44px}.filter-chips button{font-size:11px;white-space:nowrap;min-height:44px;border:1px solid var(--color-stroke-strong);border-radius:18px;padding:6px 12px;background:var(--color-surface);color:var(--color-text-secondary)}.filter-chips .selected{background:var(--color-primary);color:var(--color-text);border-color:var(--color-primary)}.list-toolbar{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:var(--color-text-tertiary);border-bottom:1px solid var(--color-stroke)}.list-toolbar button{display:flex;align-items:center;gap:5px;min-height:36px;color:var(--color-text-secondary);font-size:10px}.airport-row{display:flex;gap:10px;align-items:center;min-height:86px;border-bottom:1px solid var(--color-stroke);padding:12px 0}.iata-tile{display:flex;align-items:center;justify-content:center;width:48px;height:52px;border:1px solid var(--color-stroke);background:var(--color-surface-raised);border-radius:13px;font-size:16px;font-weight:700;flex-shrink:0}.airport-row strong{display:block;font-size:13px}.airport-row small{display:block;font-size:10px}.airport-meta{font-size:10px;color:var(--color-text-tertiary);margin-top:5px;display:block}.airport-status{display:flex;align-items:flex-end;flex-direction:column;gap:6px;max-width:115px}.airport-status .status-pill{font-size:9px;padding:5px 6px}.airport-status .status-dot{width:5px;height:5px}.airport-status>small{font-size:9px;color:var(--color-text-tertiary)}.airport-row>svg{width:12px;color:var(--color-text-secondary)}.airport-preview-heading{display:flex;align-items:center;gap:10px}.airport-preview-heading h2{font-size:15px}.airport-preview-heading p{font-size:11px;color:var(--color-text-secondary);margin-top:3px}.airport-preview-heading>.status-pill{max-width:100px;font-size:10px}.metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:17px 0 12px}.metric-grid>div{padding:12px;background:var(--color-surface);border:1px solid var(--color-stroke);border-radius:12px;display:flex;flex-direction:column;gap:5px;justify-content:center}.metric-grid strong{font-size:23px;line-height:1.2}.metric-grid small{font-size:10px}.airport-map-page .metric-grid>div:last-child strong{font-size:12px}.airport-hero{height:240px;position:relative;overflow:hidden;background:linear-gradient(140deg,#162b49,#1b2450 55%,#101a27);border-bottom:1px solid var(--color-stroke)}.hero-controls{position:relative;z-index:2;display:flex;justify-content:space-between;padding:12px}.hero-controls>div{display:flex;gap:6px}.hero-controls .icon-button{border-radius:50%;background:#080f1899}.hero-plane{position:absolute;left:50%;top:50%;transform:translate(-50%,-40%) rotate(-15deg);color:#7390bb;opacity:.5}.hero-caption{position:absolute;left:22px;bottom:22px;font-size:10px;color:#8fa6c6;letter-spacing:.18em}.airport-detail-content{padding-top:20px}.airport-detail-content>h1{font-size:23px;margin-bottom:8px}.airport-detail-content>h1>span{font-size:30px}.airport-detail-content>p.muted{font-size:12px;line-height:1.6}.airport-status-banner{margin:16px 0 0;padding:12px;background:var(--color-surface);border:1px solid var(--color-stroke);border-radius:12px}.airport-status-banner p{font-size:11px;color:var(--color-text-secondary);margin-top:7px}.airport-detail-content .segments button{font-size:11px}.official-button{margin-top:22px}.notification-intro{padding:20px 16px;margin:18px 0;background:var(--color-surface);border:1px solid var(--color-stroke);border-radius:13px;display:grid;grid-template-columns:35px 1fr;gap:14px}.notification-intro>svg{color:var(--color-secondary-accent)}.notification-intro strong{font-size:13px}.notification-intro p{grid-column:1/-1;color:var(--color-text-secondary);font-size:12px}.subscription-row{min-height:66px;padding:8px 12px}.subscription-row strong{font-size:12px}.page-content>.row-group+.button{margin-top:14px}.profile-row{padding:14px;display:flex;gap:12px;align-items:center;background:var(--color-surface);border:1px solid var(--color-stroke);border-radius:13px}.avatar{background:#29344f;width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#a4b0dd}.profile-row strong{font-size:14px}.profile-row small{display:block;margin-top:3px;font-size:11px}.settings-page h3{margin:20px 3px 8px}.settings-page .setting-row{min-height:48px}.settings-page .notice{margin-bottom:0}html[data-text-size=large] body{font-size:17px}html[data-text-size=large] .setting-row,html[data-text-size=large] .event-row strong,html[data-text-size=large] .airport-row strong,html[data-text-size=large] .subscription-row strong{font-size:15px}html[data-text-size=large] .event-row p,html[data-text-size=large] .muted,html[data-text-size=large] small{font-size:13px}@media(max-width:360px){.page-content{padding-left:16px;padding-right:16px}.map-search{padding:0 16px}.brand>span{font-size:19px}.preview-sheet{padding-left:14px;padding-right:14px}.airport-row{gap:7px;flex-wrap:wrap;position:relative;padding-right:16px}.airport-row>.grow{flex-basis:calc(100% - 62px)}.airport-row>.airport-status{flex-direction:row;align-items:center;gap:8px;margin-left:55px;max-width:none}.airport-row>svg{position:absolute;right:0;top:40px}.airport-row .iata-tile{width:44px;height:48px}.airport-preview-heading{flex-wrap:wrap}.airport-preview-heading>.status-pill{margin-left:58px;max-width:none}.region-preview-title .status-pill{font-size:10px}.preview-shortcuts{gap:5px}.preview-shortcuts button{font-size:9px}.metric-grid>div{padding:10px 8px}.settings-page .setting-row{padding:7px 10px;gap:8px}.settings-page .setting-row>.muted{max-width:40%}.trip-form .segments button{gap:4px;font-size:11px}.layer-row strong{font-size:11px}.layer-row small{font-size:9px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media(max-width:360px){.filter-chips{margin-left:-16px;margin-right:-16px;padding-left:16px;padding-right:16px}}.map-canvas>.map-engine{position:absolute;inset:0;width:100%;height:100%}.search-field .icon-button{width:44px;min-width:44px}.map-label.airport,.map-label.city{min-width:44px}.airport-detail-content{padding-bottom:90px}.official-button{position:fixed;z-index:12;bottom:calc(12px + var(--safe-bottom));left:50%;transform:translate(-50%);max-width:604px;width:calc(100% - 36px);box-shadow:0 -7px 25px var(--color-app)}.search-results{position:relative;z-index:6;margin-top:6px;padding:4px 10px;background:var(--color-overlay);border:1px solid var(--color-stroke-strong);border-radius:12px;max-height:320px;overflow:auto;box-shadow:0 10px 20px #0003}.search-results>button{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:48px;text-align:left;font-size:12px;border-bottom:1px solid var(--color-stroke)}.search-results>button:hover{color:var(--color-info)}.search-results>p{padding:12px;font-size:12px;color:var(--color-text-secondary)}.event-row strong{font-size:13px}.event-row p{font-size:12px}.event-row small{font-size:10px}.map-canvas .maplibregl-ctrl-attrib{background:var(--color-overlay);color:var(--color-text-secondary);border:1px solid var(--color-stroke)}.map-canvas .maplibregl-ctrl-attrib a{color:inherit}.consent-field{display:flex;gap:10px;align-items:flex-start;margin:16px 0;font-size:12px;color:var(--color-text-secondary)}.consent-field input{min-width:22px;min-height:22px;accent-color:var(--color-primary)}.subscription-row .icon-button{width:32px}.subscription-row .text-link{font-size:10px;min-height:32px}.subscription-row .icon-button{width:44px;min-width:44px}.subscription-row{flex-wrap:wrap}.subscription-row>.grow{min-width:80px}.trip-result-map .map-controls{top:16px}.route-region strong{display:block}.app-shell{display:flex;flex-direction:column}.route-container{flex:1;min-width:0;min-height:calc(100dvh - var(--nav-height) - var(--safe-top) - var(--safe-bottom))}.detail-shell .route-container{min-height:calc(100dvh - var(--safe-top) - var(--safe-bottom))}.detail-shell .bottom-navigation,.bottom-navigation>.nav-brand{display:none}.app-shell:has(.map-page){height:100dvh;min-height:0}.app-shell:has(.map-page)>.route-container{display:flex;flex-direction:column;min-height:0}.map-page{flex:1;width:100%;height:auto;min-height:0}.map-page>.map-scene{min-height:0}.map-top{max-width:none}.map-search{min-width:0}.wide-preview-toggle{display:none}@media(min-width:600px)and (max-width:767px){.app-header,.airport-hero{max-width:560px;margin:0 auto}.app-header{height:74px}.map-top{width:100%}.map-top .app-header{max-width:none}.map-search{max-width:440px}.preview-sheet{width:380px;left:18px;right:auto;bottom:18px;border:1px solid var(--color-stroke);border-radius:18px;max-height:60%}.map-controls{top:150px;right:18px}.airport-hero{height:260px}}@media(min-width:768px){:root{--rail-width: 80px;--map-panel-width: 320px;--content-width: 760px}.app-shell,.detail-shell{padding-left:var(--rail-width);padding-bottom:var(--safe-bottom)}.route-container,.detail-shell .route-container{min-height:calc(100dvh - var(--safe-top) - var(--safe-bottom))}.bottom-navigation,.detail-shell .bottom-navigation{display:flex;flex-direction:column;align-items:stretch;gap:8px;inset:0 auto 0 0;width:var(--rail-width);height:auto;max-width:none;margin:0;padding:calc(18px + var(--safe-top)) 12px calc(18px + var(--safe-bottom));border-top:0;border-right:1px solid var(--color-stroke);border-radius:0;background:var(--color-app)}.bottom-navigation>a,.bottom-navigation>button{flex:none;min-height:48px;flex-direction:row;gap:12px;justify-content:center;padding:0 10px;font-size:13px}.bottom-navigation>a:not(.nav-brand)>span,.bottom-navigation>button>span{display:none}.bottom-navigation .active{background:var(--color-surface-raised)}.bottom-navigation>.nav-brand{display:flex;min-height:48px;margin-bottom:22px;padding:0}.nav-brand .brand{gap:9px}.nav-brand .brand>span{display:none}.nav-brand .brand>svg{width:30px;height:30px}.app-header{height:80px;max-width:var(--content-width);margin:0 auto;padding:16px 24px}.page-content{max-width:var(--content-width);width:100%;padding:0 24px 32px}.map-page{display:grid;grid-template-columns:var(--map-panel-width) minmax(0,1fr);grid-template-rows:144px minmax(0,1fr);background:var(--color-app)}.map-page>.map-scene{grid-column:2;grid-row:1 / 3;width:100%;height:100%;margin:0;border-left:1px solid var(--color-stroke)}.map-top{position:relative;grid-column:1;grid-row:1;inset:auto;width:auto;height:auto;z-index:5;background:var(--color-app);padding-bottom:16px}.map-top .app-header{width:100%;max-width:none;height:80px;padding:14px 18px}.map-top .brand{gap:8px}.map-top .brand>span{font-size:19px}.map-search{padding:0 18px}.preview-sheet{position:relative;grid-column:1;grid-row:2;inset:auto;width:auto;max-height:none;min-height:0;margin:0;padding:0 18px 24px;border:0;border-radius:0;background:var(--color-app);box-shadow:none;overflow:auto;overscroll-behavior:contain}.preview-handle{display:none}.region-preview-title{padding:12px 10px;align-items:flex-start;background:var(--color-surface);border:1px solid var(--color-stroke);border-radius:12px}.region-preview-title h2{font-size:15px}.region-preview-title .icon-button{display:inline-flex;width:28px;height:44px}.region-preview-title .status-icon{width:34px;height:34px}.region-preview-title .status-pill{font-size:10px}.preview-shortcuts{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:16px}.preview-shortcuts button{min-height:72px;font-size:11px}.preview-details{margin-top:12px}.map-controls{top:20px;right:20px}.map-page .map-caption{left:10px;right:auto;bottom:28px}.airport-preview-heading{flex-wrap:wrap}.airport-map-page .preview-handle{display:flex;justify-content:flex-end;min-height:36px;height:auto;color:var(--color-text-secondary);font-size:11px;margin-bottom:8px}.airport-map-page .preview-handle>span:first-child{display:none}.airport-map-page .wide-preview-toggle{display:inline;width:auto;height:auto;background:none}.airport-preview-heading>.status-pill{margin-left:58px;max-width:none}.airport-map-page .metric-grid{gap:6px}.airport-map-page .metric-grid>div{padding:10px 6px}.airport-map-page .button-pair{flex-direction:column}.airport-hero{max-width:var(--content-width);margin:0 auto;height:280px;border-radius:0 0 18px 18px}.official-button{left:calc(var(--rail-width) + (100% - var(--rail-width)) / 2);max-width:calc(var(--content-width) - 48px);width:calc(100% - var(--rail-width) - 48px)}.bottom-sheet{width:420px;max-width:calc(100vw - var(--rail-width) - 40px);margin:auto 20px 20px auto;border:1px solid var(--color-stroke-strong);border-radius:20px;max-height:calc(100dvh - 40px - var(--safe-top) - var(--safe-bottom))}.sheet-content{padding-bottom:24px}.compact-map{height:260px}.compact-map .map-controls{top:auto;right:10px;bottom:35px}.settings-page{padding-bottom:40px}.app-shell:has(.trip-result-map){height:100dvh;min-height:0}.route-container:has(>.trip-result-map){display:grid;grid-template-columns:var(--map-panel-width) minmax(0,1fr);grid-template-rows:80px minmax(0,1fr);min-height:0}.route-container:has(>.trip-result-map)>.app-header{grid-column:1;grid-row:1;width:100%;padding:12px}.trip-result-map{position:relative;grid-column:2;grid-row:1 / 3;inset:auto;width:100%;height:100%;max-width:none;margin:0;min-height:0;border-left:1px solid var(--color-stroke)}.result-panel{grid-column:1;grid-row:2;width:100%;max-width:none;min-height:0;margin:0;padding:0 18px 24px;border:0;border-radius:0;overflow:auto;overscroll-behavior:contain}.result-panel>.drag-handle{display:none}}@media(min-width:1200px){:root{--rail-width: 208px;--map-panel-width: 360px;--content-width: 840px}.bottom-navigation{padding-left:16px;padding-right:16px}.bottom-navigation>a,.bottom-navigation>button{justify-content:flex-start;padding:0 14px}.bottom-navigation>a:not(.nav-brand)>span,.bottom-navigation>button>span,.nav-brand .brand>span{display:block}.bottom-navigation>.nav-brand{padding-left:8px;margin-bottom:28px}.nav-brand .brand>span{font-size:17px;letter-spacing:.12em}.map-top .app-header,.map-search,.preview-sheet,.result-panel{padding-left:22px;padding-right:22px}.region-preview-title h2{font-size:16px}.airport-row strong{font-size:14px}.airport-status{max-width:160px}.airport-status .status-pill{font-size:11px}.event-row strong{font-size:14px}.event-row p{font-size:13px}.airport-map-page .button-pair{flex-direction:row}}@media(min-width:1600px){:root{--rail-width: 224px;--map-panel-width: 400px;--content-width: 920px}.preview-shortcuts{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-height:540px)and (max-width:767px){.map-controls{display:grid;grid-template-columns:44px 44px;gap:6px;top:142px;right:12px}.preview-sheet{max-height:42%}}.route-container:has(>.trip-form-page){display:flex;flex-direction:column}.trip-form-page{flex:1;display:flex;flex-direction:column;min-width:0}.trip-form-page>.app-header{flex-shrink:0}.trip-form-page>.trip-form{flex:1;display:flex;flex-direction:column;width:100%}.trip-form>.compact-map{flex:1;height:auto;min-height:220px}.trip-form>form,.trip-form>.notice,.trip-form>p,.trip-form>.text-link{flex-shrink:0}@media(min-width:768px){.trip-form>.compact-map{min-height:260px}}.trip-form-controls{display:contents}.trip-form-controls>form{order:0;flex-shrink:0}.trip-form-controls>:not(form){order:2;flex-shrink:0}.trip-form>.compact-map{order:1;min-height:260px}@media(min-width:768px){.app-shell:has(.trip-form-page){height:100dvh;min-height:0}.route-container:has(>.trip-form-page){min-height:0}.trip-form-page{display:grid;min-height:0;grid-template-columns:var(--map-panel-width) minmax(0,1fr);grid-template-rows:80px minmax(0,1fr)}.trip-form-page>.app-header{grid-column:1;grid-row:1;width:100%;max-width:none;padding:12px}.trip-form-page>.trip-form{display:contents}.trip-form-controls{display:block;grid-column:1;grid-row:2;min-height:0;padding:0 18px 24px;overflow:auto;overscroll-behavior:contain}.trip-form>.compact-map{grid-column:2;grid-row:1/3;min-height:0;height:100%;margin:0;border:0;border-left:1px solid var(--color-stroke);border-radius:0}.trip-form-controls .route-choice-list{flex-direction:column;overflow:visible}.trip-form-controls .route-choice-list>button{flex:none}}:root[data-theme=light]{color-scheme:light;--color-app: #f4f6fa;--color-surface: #ffffff;--color-surface-raised: #eaf0f7;--color-surface-hover: #e0e8f3;--color-overlay: rgba(255, 255, 255, .97);--color-stroke: rgba(41, 62, 92, .15);--color-stroke-strong: rgba(41, 62, 92, .28);--color-text: #17263b;--color-text-secondary: #4c5e75;--color-text-tertiary: #596a80;--color-primary: #275bd6;--color-primary-pressed: #214db6;--color-secondary-accent: #7045d6;--color-alert: #be2938;--color-alert-bg: #fff0f1;--color-attention: #87500c;--color-attention-bg: #fff4df;--color-positive: #176b46;--color-positive-bg: #e7f6ee;--color-unknown: #53657c;--color-info: #255fc1}[data-theme=light] .button:not(.secondary),[data-theme=light] .segments button.selected,[data-theme=light] .filter-chips .selected,[data-theme=light] .skip-link{color:#fff}[data-theme=light] .button.gradient{background:linear-gradient(105deg,#275bd6,#7045d6)}[data-theme=light] .toggle:before{background:#8290a3}[data-theme=light] .toggle.on:before{background:var(--color-primary)}[data-theme=light] .toggle>span{background:#fff}[data-theme=light] .avatar{background:var(--color-surface-raised);color:var(--color-info)}[data-theme=light] .date-field input,[data-theme=light] .timeline-date input{color-scheme:light}[data-theme=light] .map-top{background:linear-gradient(var(--color-app) 25%,rgba(244,246,250,.92) 75%,transparent)}[data-theme=light] .map-scene,[data-theme=light] .map-canvas{background:#e1e8ed}[data-theme=light] .map-controls .icon-button{background:var(--color-overlay);box-shadow:0 2px 8px #17263b18}[data-theme=light] .map-controls .icon-button:hover{background:var(--color-surface-hover)}[data-theme=light] .map-label{color:#17263b;text-shadow:0 1px 3px #fff,0 0 4px #fff}[data-theme=light] .map-label.airport>span:first-child{color:#fff;text-shadow:none;border-color:#fff}[data-theme=light] .map-label.region>span:first-child{text-shadow:none}[data-theme=light] .map-label.region.attention>span:first-child{background:var(--color-attention-bg)}[data-theme=light] .map-label.region.alert>span:first-child{background:var(--color-alert-bg)}[data-theme=light] .map-label.region.info>span:first-child{color:var(--color-info);background:var(--color-surface-raised)}[data-theme=light] .city-dot{background:#46617d;border-color:#fff}[data-theme=light] .map-caption{color:var(--color-text-secondary);background:var(--color-overlay)}[data-theme=light] .bottom-sheet,[data-theme=light] .preview-sheet,[data-theme=light] .map-timeline,[data-theme=light] .search-results{box-shadow:0 6px 28px #17263b18}[data-theme=light] .bottom-sheet::backdrop{background:#17263b59}[data-theme=light] .airport-hero{background:linear-gradient(140deg,#d8e5f7,#e5e0f5 55%,#eaf0f7)}[data-theme=light] .hero-controls .icon-button{color:#fff}[data-theme=light] .hero-caption{color:#fff;text-shadow:0 1px 4px #000}[data-theme=light] .airport-hero:not(:has(.airport-hero-image)) .hero-caption{color:var(--color-text-secondary);text-shadow:none}.theme-options{display:grid;gap:8px;margin:12px 0}.theme-option{display:flex;align-items:center;gap:12px;min-height:52px;padding:12px;border:1px solid var(--color-stroke-strong);border-radius:12px;cursor:pointer}.theme-option:has(input:checked){border-color:var(--color-primary);background:var(--color-surface-raised)}.theme-option input{width:20px;height:20px;accent-color:var(--color-primary)}@media(min-width:768px){[data-theme=light] .map-top{background:var(--color-app)}}[data-theme=light] .map-label.region>span:last-child{color:var(--color-text);text-shadow:none;background:#fffffff5;box-shadow:0 1px 5px #17263b20}[data-theme=light] .map-label.region.attention>span:first-child{color:#87500c;border-color:#ad6818}[data-theme=light] .map-label.region.alert>span:first-child{color:#be2938;border-color:#be2938}[data-theme=light] .map-label.region.unknown>span:first-child{color:#53657c;background:#edf1f6;border-color:#67788d}[data-theme=light] .district-attribution{color:var(--color-text-secondary);background:var(--color-surface)}[data-theme=light] .map-context-legend{box-shadow:0 2px 12px #17263b12}[data-theme=light] .bottom-navigation .active{background:#275bd612}[data-theme=light] .iata-tile{background:var(--color-surface-raised);color:var(--color-text)}[data-theme=light] .region-preview-title .status-icon.info{background:#255fc112}[data-theme=light] .brand{--brand-accent: #4c56d7}[data-theme=light] .brand .brand-radar{color:#406284}[data-theme=light] .map-label.airport{color:var(--color-text);text-shadow:none;box-shadow:0 2px 8px #17263b20}
