/* Smartphone-only overrides. Desktop and the 1024×600 Pi kiosk remain untouched. */
@media (max-width: 600px), (max-width: 950px) and (max-height: 500px) {
  :root { --mobile-gutter: 10px; }

  html, body {
    width: 100%;
    max-width: 100%;
    min-height: 100%;
    overflow-x: clip;
    overflow-y: auto;
    -webkit-text-size-adjust: 100%;
  }

  body {
    padding-top: calc(50px + env(safe-area-inset-top, 0px));
    font-size: 15px;
  }

  .topbar {
    height: calc(50px + env(safe-area-inset-top, 0px));
    padding: env(safe-area-inset-top, 0px) max(6px, env(safe-area-inset-right, 0px)) 0 max(6px, env(safe-area-inset-left, 0px));
    gap: 5px;
  }

  .project-logo {
    height: 40px;
    margin-right: 2px;
    padding-right: 5px;
    gap: 0;
  }

  .project-logo-mark { width: 32px; height: 32px; }
  .project-wordmark,
  .access-session-separator { display: none !important; }

  .datetime {
    min-width: 0;
    overflow: hidden;
    font-size: .78rem;
    font-variant-numeric: tabular-nums;
    text-overflow: ellipsis;
  }

  .extra { display: flex; align-items: center; gap: 5px; margin-left: auto; }
  .scripts-topbar-link,
  .access-session-link,
  #kitty-toggle { min-width: 34px; min-height: 34px; padding: 4px 6px; justify-content: center; }

  main,
  .dashboard-page,
  .scripts-page,
  .history-page,
  .admin-page,
  .detail-page,
  .forecast-detail-page,
  .kachelmann-detail-page,
  .hitlist-page,
  .health-page {
    width: 100%;
    max-width: 100%;
    height: auto;
    min-height: calc(100dvh - 50px - env(safe-area-inset-top, 0px));
    overflow: visible;
  }

  /* Dashboard */
  .dashboard-page { display: block; }
  .dashboard-page > .equal-column { width: 100%; height: auto; padding: 6px; }
  #station-container,
  #forecast-container,
  #shelly-container { height: auto; min-height: 0; margin: 0; padding: 6px; gap: 8px; }
  .station-box { min-height: min(570px, calc(100dvh - 74px)); padding: 14px 10px; }
  #forecast-container { min-height: 0; }
  .forecast-grid { grid-template-rows: none; }
  .forecast-entry { min-height: 112px; }
  #shelly-container { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(3, minmax(112px, auto)) minmax(76px, auto) minmax(112px, auto); }
  #shelly-container .hit-combined { grid-column: 1 / 3; grid-row: 5; }
  #shelly-container .hit-combined-link { font-size: 1.45rem; }

  /* Shared content pages */
  .scripts-page,
  .history-page,
  .admin-page,
  .health-page { padding: 18px var(--mobile-gutter) calc(32px + env(safe-area-inset-bottom, 0px)); }
  .scripts-hero,
  .admin-hero { margin-bottom: 16px; }
  .scripts-kicker { margin-top: 17px; font-size: .7rem; }
  .scripts-hero h1,
  .history-heading h1,
  .admin-hero h1 { font-size: clamp(1.65rem, 8vw, 2rem); line-height: 1.08; overflow-wrap: anywhere; }

  .scripts-grid { grid-template-columns: minmax(0, 1fr); gap: 10px; }
  .script-group + .script-group { margin-top: 0; }
  .scripts-page .script-group[aria-labelledby="local-tools-title"] { margin-top: 18px; }
  .script-card { grid-template-columns: 42px minmax(0, 1fr) 20px; min-height: 92px; gap: 10px; padding: 14px; }
  .script-card-icon { width: 40px; height: 40px; font-size: 1.3rem; }
  .script-card strong { margin-bottom: 3px; font-size: 1rem; }
  .script-card small { font-size: .78rem; line-height: 1.35; }
  .script-card-arrow { font-size: 1.2rem; }

  /* Admin */
  .admin-hero-meta { gap: 10px; }
  .admin-external-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .admin-kuma-link,
  .admin-search-link,
  .admin-cloudflare-link,
  .admin-connect-link,
  .admin-shelly-link { min-width: 0; min-height: 44px; padding: 7px 10px; justify-content: center; text-align: center; font-size: .75rem; line-height: 1.2; }
  .admin-service-strip { grid-template-columns: minmax(0, 1fr); margin: 0 auto 12px; }
  .admin-service-strip a { grid-template-columns: auto minmax(0, 1fr); min-height: 48px; }
  .admin-service-strip strong { grid-column: 2; }
  .admin-attention { padding: 13px; }
  .admin-attention > div { grid-template-columns: minmax(0, 1fr); }
  .admin-attention > p { align-items: flex-start; flex-wrap: wrap; }
  .admin-nav { top: 0; margin-inline: calc(-1 * var(--mobile-gutter)); padding-inline: var(--mobile-gutter); border-radius: 0; scrollbar-width: none; }
  .admin-nav::-webkit-scrollbar { display: none; }
  .admin-nav a { min-height: 40px; display: inline-flex; align-items: center; }
  .admin-section { padding: 15px 13px; border-radius: 13px; }
  .admin-section-heading h2 { font-size: 1.15rem; }
  .admin-status-grid,
  .admin-jobs,
  .admin-form,
  .admin-room-grid,
  .admin-threshold-grid,
  .admin-metric-grid,
  .admin-security-grid,
  .admin-archive-grid,
  .admin-growth-grid,
  .admin-sitemap { grid-template-columns: minmax(0, 1fr); }
  .admin-jobs div { align-items: flex-start; flex-direction: column; }
  .admin-heading-actions { flex-wrap: wrap; }
  .admin-integrity article > div { align-items: flex-start; flex-wrap: wrap; }
  .admin-integrity p { overflow-wrap: anywhere; }
  .admin-gap-form { grid-template-columns: minmax(0, 1fr); }
  .admin-gap-form button { width: 100%; min-height: 44px; }
  .admin-backups article > div:last-child { width: 100%; flex-direction: row; flex-wrap: wrap; }
  .admin-audit code { font-size: .68rem; }
  .admin-audit-filter { grid-template-columns: minmax(0, 1fr); }
  .admin-explained-metric { grid-column:auto; }
  .admin-save,
  .admin-action,
  .admin-download { width: 100%; min-height: 44px; }
  .admin-action-grid { display: grid; grid-template-columns: minmax(0, 1fr); }

  /* Forms, date navigation and summaries */
  .history-filter,
  .log-date-navigation,
  .hitlist-date-navigation { width: 100%; max-width: 100%; }
  .history-filter { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; padding: 13px; }
  .history-filter label,
  .history-filter select,
  .history-filter input,
  .history-filter button { width: 100%; min-width: 0; }
  .log-date-navigation { display: grid; grid-template-columns: 42px minmax(0, 1fr) 42px; align-items: end; gap: 7px; }
  .log-local-toggle { grid-column: 1 / -1; min-height: 44px; }
  .log-date-picker-button { width: 100%; min-width: 0; }
  .history-summary,
  .history-weather-summary,
  .room-history-summary,
  .log-analysis-summary { grid-template-columns: minmax(0, 1fr); }

  /* Logs and wide tables */
  .log-columns { grid-template-columns: minmax(0, 1fr); }
  .log-panel { width: 100%; }
  .log-output { height: min(62dvh, 560px); min-height: 320px; overscroll-behavior: contain; }
  .log-output > div { grid-template-columns: 58px minmax(0, 1fr); gap: 6px; padding-inline: 8px; }
  .log-output code { overflow-wrap: anywhere; word-break: break-word; }
  .history-table-wrap,
  .hitlist-table-scroll { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
  .history-table,
  .history-combined-table { min-width: 680px; }

  /* Detail and chart pages */
  .back-button { top: calc(56px + env(safe-area-inset-top, 0px)); left: 10px; min-height: 38px; }
  .detail-page,
  .forecast-detail-page,
  .hitlist-page { padding: 52px var(--mobile-gutter) 28px; }
  .energy-detail-page { overflow-x: clip; }
  .detail-header-card,
  .forecast-detail-header,
  .hitlist-header { margin-top: 0; padding: 13px; border-radius: 14px; }
  .forecast-detail-header h1,
  .detail-header-card h1 { font-size: 1.3rem; line-height: 1.15; }
  .detail-summary-grid,
  .detail-section-grid,
  .forecast-detail-summary,
  .forecast-weather-summary,
  .shelly-detail-page .forecast-detail-summary { grid-template-columns: minmax(0, 1fr); }
  .forecast-detail-summary article { min-width: 0; min-height: 48px; padding: 9px 11px; }
  .forecast-detail-summary strong { min-width: 0; white-space: normal; text-align: right; overflow-wrap: anywhere; }
  .forecast-chart-grid,
  .shelly-chart-grid { display: grid; grid-template-columns: minmax(0, 1fr); width: 100%; }
  .forecast-chart { width: 100%; min-width: 0; padding: 10px 8px; overflow: hidden; }
  .forecast-chart-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
  .forecast-chart-heading span { line-height: 1.35; }
  .forecast-chart-body { width: 100%; min-width: 0; height: 240px; overflow: hidden; }
  .forecast-chart-body svg { width: 100%; max-width: 100%; height: 100%; }
  .energy-month-select { max-width: 190px; }
  .hitlist-header { align-items: flex-start; flex-direction: column; }
  .hitlist-tabs { grid-template-columns: minmax(0, 1fr); }
  .hitlist-table { min-width: 650px; }
  .kachelmann-days { grid-template-columns: minmax(0, 1fr); }
}

/* Phones in landscape: preserve vertical space without affecting the 1024×600 kiosk. */
@media (max-width: 950px) and (max-height: 500px) {
  .station-box { min-height: 420px; }
  .admin-external-links { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .admin-service-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .forecast-detail-summary,
  .forecast-weather-summary,
  .shelly-detail-page .forecast-detail-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .forecast-chart-body { height: 210px; }
}
