section {
  margin-top: 20px;
}

body {
  background: linear-gradient(
    135deg,
    #a2e3fa 0%,
    /* メインの水色 */ #cbefff 35%,
    /* 明るい水色 */ #ffffff 70%,
    /* なじませるための白 */ #ffd3ec 100% /* アクセントの淡いピンク */
  );
  background-attachment: fixed;
  min-height: 100vh;

  /* Macフォント */
  font-family:
    -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue",
    Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;

  color: #1d1d1f;
  padding: 40px 20px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.dashboard-container {
  width: 100%;
  max-width: 1200px;
  display: flex;
  flex-direction: column;
}

/* ==========================================
  2. Bentoグリッドレイアウト
========================================== */
.grid-layout {
  display: grid;
  /* 左にカレンダー(1.2倍)、右に2列のリンク集(1倍ずつ)の3列構造 */
  grid-template-columns: 60% 20% 20%;
  gap: 20px;
}

/* 今日の予定（カレンダー）を縦に2マス分結合 */
.calendar-tile {
  grid-row: span 2;
  min-height: 280px;
  font-size: 1.1rem;
  font-weight: 600;
  margin-bottom: 12px;
}

.calendar-tile iframe {
  width: 100%;
  flex-grow: 1;
  border: 0;
  border-radius: 12px;
  margin-top: 20px;
}

/* ==========================================
  3. リキッドグラス（ガラスモルフィズム）共通
========================================== */
.bento-tile {
  /* 背景を白の透過22%にして後ろのグラデーションを透かす */
  background: rgba(255, 255, 255, 0.22);

  /* ガラスの最大の肝：背面ぼかし */
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);

  /* Macウィジェット風の強めの角丸 */
  border-radius: 24px;

  /* 内側の光を表現する細い境界線（立体感が出ます） */
  border: 1px solid rgba(255, 255, 255, 0.45);

  /* 柔らかな影と、内側のハイライト */
  box-shadow:
    0 8px 32px 0 rgba(31, 38, 135, 0.04),
    inset 0 1px 1px 0 rgba(255, 255, 255, 0.3);

  padding: 24px;

  /* アニメーションを滑らかに（Mac特有のヌルヌル感を再現） */
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
}

/* マウスホバー時のエフェクト：少し浮き上がり、ガラスの輝きが増す */
.bento-tile:hover {
  transform: translateY(-5px);
  background: rgba(255, 255, 255, 0.32);
  border-color: rgba(255, 255, 255, 0.6);
  box-shadow: 0 16px 40px 0 rgba(31, 38, 135, 0.08);
}

/* 各タイルの見出し */
.bento-tile h3 {
  font-size: 1.1rem;
  font-weight: 600;
  color: #2c3e50;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}


/*-------------------------------------------
 ヘッダー
-------------------------------------------*/
.header-tile {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 20px 32px;
    }

    .clock-display {
      font-size: 2.4rem;
      font-weight: 700;
      letter-spacing: -0.03em;
      color: #00668c; /* 深みのある水色 */
    }

    .date-display {
      font-size: 0.9rem;
      color: #55687a;
      margin-top: 4px;
    }

    .weather-display {
      text-align: right;
      font-size: 1.1rem;
      font-weight: 600;
      color: #2c3e50;
    }

    .weather-sub {
      font-size: 0.85rem;
      color: #55687a;
      font-weight: normal;
      margin-top: 2px;
    }

/*-------------------------------------------
 中身
-------------------------------------------*/
.link-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 10px;
}

.link-grid a {
  font-size: 14px;
}
/* ==========================================
  6. レスポンシブ対応（画面が狭いとき）
 ========================================== */
    @media (max-width: 960px) {
      .grid-layout {
        grid-template-columns: repeat(2, 1fr);
      }
      .calendar-tile {
        grid-row: auto;
      }
    }

    @media (max-width: 640px) {
      .grid-layout {
        grid-template-columns: 1fr;
      }
      .header-tile {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
      }
      .weather-display {
        text-align: left;
      }
    }
