    * {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      padding: 16px;
      font-family: sans-serif;
      color: #222;
      background: #fff;
    }

    .dashboard {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      gap: 8px;
      max-width: 1500px;
      margin: 0 auto;
    }

    .panel {
      min-width: 0;
      padding: 8px;
      border: 1px solid #fff;
      border-radius: 8px;
      background: #fff;
    }

    .panel-title {
      display: block;
      margin-bottom: 8px;
      font-size: clamp(1.0rem, 2vw, 1.2rem);
    }

    .temperature { color: #d71920; }
    .humidity { color: #1769c2; }
    .pressure { color: #21833b; }

    .chart {
      width: 100%;
      height: 240px;
      min-width: 0;
    }

    .map-image {
      display: block;
      width: 100%;
      height: auto;
      object-fit: contain;
    }

    .info-heading {
      margin: 20px 0 0;
      text-align: left;
      font-size: clamp(0.8rem, 2.2vw, 1.0rem);
    }

    .station-list {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
    }

    .station-name {
      margin: 0 0 12px;
      font-size: clamp(1.0rem, 2vw, 1.4rem);
    }

    .station-data {
      margin: 0;
      padding: 0;
      list-style: none;
      font-size: clamp(1rem, 1.6vw, 1.25rem);
      line-height: 1.8;
    }

    .station-data li {
      overflow-wrap: anywhere;
    }

    @media (max-width: 900px) {
      .dashboard {
        grid-template-columns: minmax(0, 1fr);
      }
    }

    @media (max-width: 768px) {
      body {
        padding: 8px;
      }

      .panel {
        padding: 12px;
      }

      .station-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
      }

      .station-list .panel {
        padding: 8px;
      }

      .station-list .station-data {
        font-size: 0.9rem;
        line-height: 1.7;
      }

      .chart {
        height: 220px;
      }
    }