/* Global mobile hardening loaded after page-level styles. */
@media (max-width: 1280px){
  .start-page__wrap,
  .blog,
  .calendar-page,
  .opady-page,
  .radar-wrap,
  .bary-wrap,
  .tornado,
  .wir-page,
  .satelita-page,
  .europa-page,
  .jakosc-page,
  .zdrowie-page,
  .papier-page,
  .pokrywa-page,
  .ws,
  .pwa-page,
  .live-page,
  .energia,
  .legal-page{
    width: min(100%, calc(100% - 24px));
    margin-inline: auto;
  }

  .hero,
  .blog-hero,
  .blog-overview,
  .opady-grid,
  .radar-body,
  .bary-grid,
  .calendar-layout,
  .satelita-body,
  .europa-page,
  .plGrid,
  .jakosc-mapwrap,
  .zdrowie-mapwrap,
  .papier-grid,
  .pokrywa-mapwrap,
  .wir-app,
  .zorza-grid,
  .z3d-grid,
  .energia__grid,
  .legal-grid,
  .live-inner{
    grid-template-columns: 1fr !important;
  }

  .hero__aside,
  .hero-panel,
  .blog-sidecard,
  .calendar-side,
  .opady-side,
  .radar-side,
  .baryczna-panel,
  .europa-panel,
  .plSide,
  .jakosc-side,
  .zdrowie-side,
  .papier-side,
  .pokrywa-side,
  .satelita-side,
  .wir-panel,
  .tornado__panel,
  .zorza-side,
  .z3d-grid > .side,
  .live-side{
    position: static !important;
    top: auto !important;
  }

  .module-spotlights,
  .hero-stats,
  .calendar-stats,
  .calendar-day-summary,
  .summary-grid,
  .blog-kpis,
  .support-grid,
  .hall-grid{
    grid-template-columns: 1fr 1fr !important;
  }
}

@media (max-width: 980px){
  .main{ overflow-x: clip; }

  .page,
  .start-page__wrap,
  .blog,
  .calendar-page,
  .opady-page,
  .radar-wrap,
  .bary-wrap,
  .tornado,
  .wir-page,
  .satelita-page,
  .europa-page,
  .jakosc-page,
  .zdrowie-page,
  .papier-page,
  .pokrywa-page,
  .ws,
  .pwa-page,
  .live-page,
  .energia,
  .legal-page{
    width: min(100%, calc(100% - 16px));
  }

  .hero__content,
  .hero-panel,
  .module-spotlight,
  .module-card,
  .support-card,
  .hall-card,
  .app-band,
  .blog-hero,
  .blog-overview,
  .blog-toolbar,
  .blog-card,
  .blog-post,
  .blog-sidecard,
  .modal__dialog,
  .calendar-hero,
  .card-glass,
  .opady-hero,
  .card,
  .side-card,
  .radar-topbar,
  .bary-topbar,
  .satelita-card,
  .legend,
  .panel,
  .europa-panel,
  .plPanel,
  .tornado__top,
  .tornado__panel .panel,
  .jakosc-header,
  .zdrowie-header,
  .papier-header,
  .pokrywa-header,
  .wir-panel,
  .z3d-top,
  .live-inner,
  .energia__card,
  .legal-shell,
  .legal-hero{
    border-radius: 22px !important;
  }

  .hero__content,
  .hero-panel,
  .blog-hero,
  .calendar-hero,
  .card-glass,
  .opady-hero,
  .radar-topbar,
  .bary-topbar,
  .satelita-card,
  .legend,
  .panel,
  .europa-panel,
  .plPanel,
  .tornado__top,
  .jakosc-header,
  .zdrowie-header,
  .papier-header,
  .pokrywa-header,
  .wir-panel,
  .z3d-top,
  .live-inner,
  .energia__card,
  .legal-shell,
  .legal-hero{
    padding: 18px !important;
  }

  .hero__title,
  .blog-title,
  .calendar-hero h1,
  .opady-hero h1,
  .tb-head h1,
  .panelTitle h1,
  .tornado__title,
  .page__title,
  .legal-hero h1,
  .live-title{
    font-size: clamp(28px, 6vw, 40px) !important;
    line-height: 1.04 !important;
  }

  .hero__actions,
  .hero__chips,
  .blog-toolbar__left,
  .blog-toolbar__right,
  .calendar-toolbar,
  .calendar-toolbar__nav,
  .calendar-toolbar__meta,
  .opady-hero,
  .radar-topbar,
  .bary-topbar,
  .tornado__top,
  .satelita-header,
  .satelita-controls,
  .jakosc-controls,
  .zdrowie-controls,
  .papier-controls,
  .wir-stage-hud,
  .wir-stage-legend,
  .z3d-top,
  .europa-panel .btnRow,
  .plBtns,
  .energia__row,
  .legal-contact__grid{
    width: 100%;
    flex-wrap: wrap;
  }

  .quick__row,
  .energia__row,
  .blog-toolbar__left,
  .blog-toolbar__right{
    display: grid !important;
    grid-template-columns: 1fr !important;
    align-items: stretch;
  }

  .module-grid,
  .blog-grid,
  .blog-featured,
  .legal-cards,
  .legal-contact__grid{
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  .module-card,
  .module-spotlight,
  .blog-kpi,
  .calendar-stat,
  .calendar-day-summary__item,
  .summary-item{
    min-width: 0 !important;
  }

  .module-card{
    min-height: 0 !important;
    padding: 16px !important;
  }

  .hero-stats,
  .blog-kpis,
  .calendar-stats,
  .calendar-day-summary,
  .summary-grid,
  .support-grid,
  .hall-grid{
    grid-template-columns: 1fr !important;
  }

  .calendar-select,
  .calendar-month-input,
  .quick__input,
  .quick__btn,
  .energia__input,
  .energia__btn,
  .blog-search input,
  .satelita-controls .ctl--select,
  .satelita-controls .btn,
  .segmented,
  .segmented-btn,
  .calendar-btn,
  .btn,
  .plBtn{
    width: 100%;
    max-width: 100%;
  }

  .segmented,
  .plBtns,
  .satelita-controls{
    gap: 8px !important;
  }

  .map-hud{
    top: 10px;
    left: 10px;
    right: 10px;
  }

  .map-hud__stats,
  .satelita-hud,
  .satelita-stagebar,
  .map-footer-note,
  .opady-hero__meta .muted,
  .radar-topbar .toggles,
  .bary-topbar .toggles{
    display: none !important;
  }

  .opady-map,
  .radar-map,
  .tornado__map,
  .jakosc-map,
  .zdrowie-map,
  .pokrywa-map,
  .plMap,
  .satelita-canvas,
  #globeRoot,
  #plMap,
  #jakosc-map,
  #zdrowie-map,
  #opady-map,
  #map,
  #mapa,
  #wirStage,
  .wir-stage,
  .chartViewport,
  .z3d-canvas,
  #z3dCanvas,
  .zorza-map{
    min-height: 54vh !important;
    height: min(62vh, 620px) !important;
  }

  .chartTools{
    flex-wrap: wrap;
    gap: 8px;
  }

  .calendar-grid,
  .calendar-weekdays{
    gap: 8px;
  }

  .calendar-cell{
    min-height: 104px;
    padding: 10px;
  }

  .calendar-cell__day{
    color: #f7fbff;
  }

  .calendar-pill--notes,
  .calendar-note-card,
  .calendar-note-list .calendar-note{
    box-shadow: 0 0 0 1px rgba(45, 212, 191, 0.24);
  }

  .viewer,
  .viewer__body,
  .viewer__content,
  .viewer__side,
  .modal__dialog,
  .modal__body{
    max-width: 100% !important;
  }

  .viewer__body,
  .viewer__content,
  .viewer__side{
    display: block;
  }

  .admin-page{
    padding: 10px !important;
  }

  .admin-topbar,
  .admin-actions,
  .admin-shell,
  .admin-grid,
  .admin-cards,
  .admin-kpis,
  .admin-panel-grid,
  .traffic-grid,
  .security-grid,
  .api-grid,
  .content-grid,
  .calendar-admin-grid{
    grid-template-columns: 1fr !important;
    flex-wrap: wrap;
  }
}

@media (max-width: 760px){
  .module-grid,
  .blog-grid,
  .blog-featured,
  .legal-cards,
  .legal-contact__grid{
    grid-template-columns: 1fr !important;
  }

  .hero__content,
  .hero-panel,
  .blog-hero,
  .calendar-hero,
  .card-glass,
  .opady-hero,
  .radar-topbar,
  .bary-topbar,
  .satelita-card,
  .legend,
  .panel,
  .europa-panel,
  .plPanel,
  .tornado__top,
  .jakosc-header,
  .zdrowie-header,
  .papier-header,
  .pokrywa-header,
  .wir-panel,
  .z3d-top,
  .live-inner,
  .energia__card,
  .legal-shell,
  .legal-hero{
    padding: 16px !important;
  }

  .calendar-toolbar__nav,
  .calendar-toolbar__meta,
  .blog-toolbar,
  .satelita-controls,
  .jakosc-controls,
  .zdrowie-controls,
  .papier-controls,
  .radar-topbar .controls,
  .bary-topbar .controls,
  .europa-panel .btnRow{
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  .calendar-weekdays span{
    font-size: 11px;
    letter-spacing: 0.08em;
  }

  .calendar-cell{
    min-height: 92px;
    gap: 8px;
  }

  .calendar-cell__day{
    font-size: 1rem;
  }

  .calendar-cell__titles span{
    font-size: 0.74rem;
  }

  .opady-map,
  .radar-map,
  .tornado__map,
  .jakosc-map,
  .zdrowie-map,
  .pokrywa-map,
  .plMap,
  .satelita-canvas,
  #globeRoot,
  #plMap,
  #jakosc-map,
  #zdrowie-map,
  #opady-map,
  #map,
  #mapa,
  #wirStage,
  .wir-stage,
  .chartViewport,
  .z3d-canvas,
  #z3dCanvas,
  .zorza-map{
    min-height: 50vh !important;
    height: min(56vh, 520px) !important;
  }

  .tornado__status,
  .tb-right .meta .muted,
  .hero-panel__footer,
  .blog-hero__note{
    font-size: 12px;
  }
}

@media (max-width: 560px){
  .page,
  .start-page__wrap,
  .blog,
  .calendar-page,
  .opady-page,
  .radar-wrap,
  .bary-wrap,
  .tornado,
  .wir-page,
  .satelita-page,
  .europa-page,
  .jakosc-page,
  .zdrowie-page,
  .papier-page,
  .pokrywa-page,
  .ws,
  .pwa-page,
  .live-page,
  .energia,
  .legal-page{
    width: min(100%, calc(100% - 12px));
  }

  .hero__title,
  .blog-title,
  .calendar-hero h1,
  .opady-hero h1,
  .tb-head h1,
  .panelTitle h1,
  .tornado__title,
  .page__title,
  .legal-hero h1,
  .live-title{
    font-size: clamp(24px, 8vw, 34px) !important;
  }

  .hero__subtitle,
  .blog-subtitle,
  .calendar-lead,
  .opady-sub,
  .satelita-lead,
  .panelTitle span,
  .legal-hero p,
  .page__subtitle{
    font-size: 14px !important;
    line-height: 1.58 !important;
  }

  .hero-chip,
  .blog-badge,
  .calendar-side__badge,
  .calendar-pill,
  .badge,
  .map-chip,
  .stage-chip,
  .legend-item,
  .panel-note{
    font-size: 12px !important;
  }

  .calendar-cell{
    min-height: 84px;
    padding: 8px;
  }

  .calendar-cell__day{
    font-size: 0.96rem;
  }

  .calendar-grid,
  .calendar-weekdays{
    gap: 6px;
  }
}
/* 2026-03-11 Final mobile audit */
@media (max-width: 980px){
  html,
  body{
    max-width: 100%;
    overflow-x: hidden;
  }

  .main,
  .main > *,
  .page,
  .admin-main,
  .admin-main > *,
  .hero,
  .hero__content,
  .hero-panel,
  .blog-hero,
  .calendar-hero,
  .card-glass,
  .opady-hero,
  .radar-topbar,
  .bary-topbar,
  .satelita-card,
  .legend,
  .panel,
  .europa-panel,
  .plPanel,
  .tornado__top,
  .jakosc-header,
  .zdrowie-header,
  .papier-header,
  .pokrywa-header,
  .wir-panel,
  .z3d-top,
  .legal-shell,
  .legal-hero,
  .live-inner,
  .energia__card,
  .modal__dialog,
  .modal__panel,
  .statusModal__box,
  .viewer,
  .viewer__body,
  .viewer__content,
  .viewer__side{
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .chartWrap,
  .chartViewport,
  .viewer__content,
  .viewer__body,
  .modal__body,
  .table-wrap,
  .tableWrap{
    max-width: 100% !important;
    overflow-x: auto !important;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-x;
  }

  .card-head,
  .table-head,
  .api-head,
  .admin-page .admin-topbar{
    align-items: stretch !important;
  }

  .admin-page .admin-topbar{
    gap: 12px !important;
  }

  .admin-page .admin-actions{
    width: 100%;
  }

  .hero__actions > *,
  .hero__chips > *,
  .quick__row > *,
  .blog-toolbar__left > *,
  .blog-toolbar__right > *,
  .calendar-toolbar > *,
  .calendar-toolbar__nav > *,
  .calendar-toolbar__meta > *,
  .satelita-controls > *,
  .jakosc-controls > *,
  .zdrowie-controls > *,
  .papier-controls > *,
  .radar-topbar .controls > *,
  .bary-topbar .controls > *,
  .europa-panel .btnRow > *,
  .plBtns > *,
  .energia__row > *,
  .admin-page .admin-actions > *,
  .admin-page .card-actions > *,
  .admin-page .card__actions > *{
    flex: 1 1 200px;
    min-width: 0;
  }

  .admin-page .table-search,
  .admin-page input,
  .admin-page select,
  .admin-page textarea{
    width: 100%;
    max-width: 100%;
  }

  img,
  video,
  iframe,
  svg,
  canvas{
    max-width: 100%;
  }
}

@media (max-width: 760px){
  .card-head,
  .table-head,
  .api-head,
  .admin-page .admin-topbar{
    flex-direction: column !important;
  }

  .admin-page .admin-actions,
  .admin-page .card-actions,
  .admin-page .card__actions{
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
    width: 100%;
  }

  .hero__actions,
  .calendar-toolbar,
  .calendar-toolbar__nav,
  .calendar-toolbar__meta,
  .satelita-controls,
  .jakosc-controls,
  .zdrowie-controls,
  .papier-controls,
  .radar-topbar .controls,
  .bary-topbar .controls,
  .europa-panel .btnRow,
  .plBtns,
  .energia__row{
    gap: 10px !important;
  }

  .statusModal__box,
  .modal__dialog,
  .modal__panel{
    width: min(100%, calc(100vw - 16px)) !important;
    margin-inline: auto;
  }

  .admin-page .table{
    min-width: 640px;
  }
}

@media (max-width: 560px){
  .hero__actions,
  .calendar-toolbar,
  .calendar-toolbar__nav,
  .calendar-toolbar__meta,
  .quick__row,
  .blog-toolbar__left,
  .blog-toolbar__right,
  .satelita-controls,
  .jakosc-controls,
  .zdrowie-controls,
  .papier-controls,
  .radar-topbar .controls,
  .bary-topbar .controls,
  .europa-panel .btnRow,
  .plBtns,
  .energia__row,
  .admin-page .admin-actions,
  .admin-page .card-actions,
  .admin-page .card__actions{
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100%;
  }

  .admin-page .btn,
  .admin-page .admin-actions > *,
  .admin-page .card-actions > *,
  .admin-page .card__actions > *{
    width: 100%;
  }

  .statusModal__box,
  .modal__dialog,
  .modal__panel{
    width: min(100%, calc(100vw - 12px)) !important;
  }

  .viewer,
  .viewer__body,
  .viewer__content,
  .viewer__side,
  .modal__dialog,
  .modal__panel,
  .statusModal__box{
    border-radius: 18px !important;
  }
}