    <style>
        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        body {
            font-family: font-family: 'M PLUS Rounded 1c', sans-serif;
            /*background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);*/
            background: #afeeee; 
            min-height: 100vh;
            color: #333;
            padding: 10px;
        }
    
        #starCanvas {
          position: fixed;
          top: 0;
          left: 0;
          width: 100vw;
          height: 100vh;
          pointer-events: none;
          z-index: 9999;
        }
        .container {
            max-width: 1200px;
            margin: 0 auto;
            padding: 20px;
        }

        .header {
            text-align: center;
            margin-bottom: 30px;
            background: rgba(255, 255, 255, 0.95);
            padding: 20px;
            border-radius: 15px;
            box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
        }
    
        iframe {
            margin-top: 20px;
            width: 100%;
            max-width: 100%;
            height: auto;
            border: none;
            border-radius: 10px;
            box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
        }
        
        .header a {
            display: block;
            margin: 10px auto;
            padding: 12px 24px;
            background-color: #3498db;
            color: #fff;
            text-decoration: none;
            border-radius: 8px;
            font-size: 16px;
            max-width: 300px;
            transition: background-color 0.3s ease;
        }

       h1 {
          font-family: 'M PLUS Rounded 1c', sans-serif;
          font-size: 1.5rem; /* 小さめに */
          color: #007acc;     /* 優しい青系カラー */
          text-align: center;
          margin-bottom: 1rem;
        }
        
        .header a:hover {
            background-color: #2980b9;
        }
    
    /* fullscreen-calendar */
        .fc {
            font-family: 'M PLUS Rounded 1c', sans-serif;
    }


        /* ナビゲーション */
        .navbar {
          background: #a5d6a7; /* ライムグリーン */
          color: #333;
          position: sticky;
          top: 0;
          z-index: 1000;
          box-shadow: 0 2px 6px rgba(0,0,0,0.1);
        }
        .nav-container {
          max-width: 1100px;
          margin: auto;
          display: flex;
          justify-content: space-between;
          align-items: center;
          padding: 0.8rem 1rem;
        }
        .nav-logo {
          font-size: 1.3rem;
          font-weight: bold;
          text-decoration: none;
          color: #2e7d32;
        }
        .nav-menu {
          list-style: none;
          display: flex;
          gap: 1rem;
          margin: 0;
          padding: 0;
        }
        .nav-menu a {
          color: #2e7d32;
          text-decoration: none;
          font-weight: 600;
          padding: 0.5rem 0.8rem;
          border-radius: 6px;
          transition: background 0.3s, color 0.3s;
        }
        .nav-menu a:hover {
          background: #81c784;
          color: white;
        }
        .menu-toggle {
          display: none;
          font-size: 1.8rem;
          cursor: pointer;
          color: #2e7d32;
        }

    /* スマホ用メニュー */
    @media (max-width: 768px) {
      .nav-menu {
        display: none;
        flex-direction: column;
        background: #a5d6a7;
        width: 100%;
        position: absolute;
        top: 60px;
        left: 0;
        padding: 1rem 0;
      }
      .nav-menu.active {
        display: flex;
      }
      .menu-toggle {
        display: block;
      }
    }

    h2, h3 {
      text-align: center;
      color: #4d7c2e;
      margin-top: 20px;
    }

    #calendar {
      max-width: 900px;
      margin: 20px auto;
      background: #fff;
      border-radius: 12px;
      box-shadow: 0 4px 12px rgba(0,0,0,0.05);
      padding: 15px;
      border: 2px solid #d6e8c4;
      height: auto;
      min-height: 700px;
    }

    form {
      max-width: 400px;
      width: 90%;
      margin: 30px auto;
      padding: 20px;
      background: #fff;
      border-radius: 12px;
      box-shadow: 0 4px 12px rgba(0,0,0,0.05);
      border: 2px solid #d6e8c4;
    }
    label {
      display: block;
      margin-bottom: 6px;
      font-weight: bold;
      color: #4d7c2e;
    }
    input[type="text"],
    input[type="email"] {
      width: 100%;
      padding: 10px;
      margin-bottom: 18px;
      border-radius: 6px;
      border: 1.5px solid #bcd8a0;
      outline: none;
      transition: border-color 0.3s ease, box-shadow 0.3s ease;
      font-size: 14px;
      background: #fdfdfc;
    }
    input[type="text"]:focus,
    input[type="email"]:focus {
      border-color: #7fbf4d;
      box-shadow: 0 0 4px rgba(127,191,77,0.3);
    }
    button {
      display: block;
      width: 100%;
      padding: 12px;
      font-size: 16px;
      font-weight: bold;
      color: white;
      background: linear-gradient(135deg, #9cd77d, #7fbf4d);
      border: none;
      border-radius: 25px;
      cursor: pointer;
      transition: transform 0.2s, background 0.3s;
    }
    button:hover {
      background: linear-gradient(135deg, #7fbf4d, #9cd77d);
      transform: scale(1.03);
    }

    /* イベントの色 */
    .fc-event.available {
      background-color: #a8e27d !important;  /* ライムグリーン */
      border: 1px solid #7fbf4d !important;
      color: #333 !important;
      font-weight: 500;
    }
    .fc-event.reserved {
      background-color: #c5d9e2 !important;  /* くすみブルー */
      border: 1px solid #9fb8c4 !important;
      color: #4a5a66 !important;
      font-weight: 500;
      text-decoration: line-through;
    }
        /* レスポンシブ対応 */
        @media (max-width: 768px) {
            .header iframe,
            .header a {
                width: 90%;
            }
        
            .header h1 {
                font-size: 1.4em;
            }

        .header p {
            font-size: 0.95em;
        }
    }

        #calendar {
            min-height: 650px; /* JSの指定と揃えておく */
         }

        .header h1 {
            color: #2c3e50;
            margin-bottom: 10px;
            font-size: 2.2em;
        }

        .header p {
            color: #7f8c8d;
            font-size: 1.1em;
        }

 

        .nav-btn {
            background: #3498db;
            color: white;
            border: none;
            padding: 10px 20px;
            border-radius: 25px;
            cursor: pointer;
            font-size: 16px;
            transition: all 0.3s ease;
        }

        .nav-btn:hover {
            background: #2980b9;
            transform: translateY(-2px);
        }

        .current-month {
            font-size: 1.5em;
            font-weight: bold;
            color: #2c3e50;
        }

        .calendar {
            display: grid;
            grid-template-columns: repeat(7, 1fr);
            gap: 1px;
            background: #b0e0e6;
            border-radius: 10px;
            overflow: hidden;
            margin-bottom: 30px;
            max-height: 650px;
            overflow-y: auto;
        }
 
        .day-header {
            background: #34495e;
            color: white;
            padding: 15px 5px;
            text-align: center;
            font-weight: bold;
        }

        .day {
            background: white;
            min-height: 100px;
            padding: 8px;
            cursor: pointer;
            transition: all 0.2s ease;
            border: 2px solid transparent;
        }

        .day:hover {
            background: #f8f9fa;
            border-color: #3498db;
        }

        .day.other-month {
            background: #f8f9fa;
            color: #bdc3c7;
        }

        .day.today {
            background: #e8f5e8;
            border-color: #27ae60;
        }

        .day.has-holiday {
            background: #ffeaa7;
        }

        .day-number {
            font-weight: bold;
            margin-bottom: 5px;
        }

        .schedule-active, .schedule-cancelled {
            font-size: 0.75em;
            margin-bottom: 2px;
            padding: 2px 5px;
            border-radius: 3px;
        }

        .holiday-form {
            background: #f8f9fa;
            padding: 20px;
            border-radius: 10px;
            margin-bottom: 20px;
        }

        .holiday-form h3 {
            color: #2c3e50;
            margin-bottom: 15px;
        }

        .form-group {
            margin-bottom: 15px;
        }

        .form-group label {
            display: block;
            margin-bottom: 5px;
            font-weight: bold;
            color: #2c3e50;
        }

        .form-group select,
        .form-group input {
            width: 100%;
            padding: 10px;
            border: 2px solid #ddd;
            border-radius: 8px;
            font-size: 16px;
            transition: border-color 0.3s ease;
        }

        .form-group select:focus,
        .form-group input:focus {
            outline: none;
            border-color: #3498db;
        }


        .holidays-list {
            background: #f8f9fa;
            padding: 20px;
            border-radius: 10px;
        }

        .holidays-list h3 {
            color: #2c3e50;
            margin-bottom: 15px;
        }

        .holiday-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            padding: 10px;
            background: white;
            margin-bottom: 10px;
            border-radius: 8px;
            box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
        }

 
        .save-indicator {
            position: fixed;
            top: 20px;
            right: 20px;
            background: #27ae60;
            color: white;
            padding: 10px 20px;
            border-radius: 25px;
            box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
            z-index: 1000;
        }

        /* スマートフォン対応のレスポンシブデザイン */
        @media (max-width: 768px) {
            .container {
                padding: 10px;
            }

            .header h1 {
                font-size: 1.5em;
            }

            .header p {
                font-size: 0.9em;
            }

            .coaches-grid {
                grid-template-columns: repeat(2, 1fr);
                gap: 10px;
            }

            .coach-card {
                padding: 10px;
                font-size: 0.9em;
            }

            .calendar-section {
                padding: 15px;
            }

            .month-nav {
                flex-direction: column;
                gap: 15px;
            }

            .nav-btn {
                padding: 8px 15px;
                font-size: 14px;
            }

            .current-month {
                font-size: 1.2em;
            }

            .calendar {
                gap: 1px;
            }

            .day-header {
                padding: 10px 3px;
                font-size: 0.8em;
            }

            .day {
                min-height: 80px;
                padding: 5px;
                font-size: 0.8em;
            }

            .schedule-active, .schedule-cancelled {
                font-size: 0.6em;
                padding: 1px 3px;
                margin-bottom: 1px;
            }

            .holiday-form,
            .holidays-list {
                padding: 15px;
            }

            .holiday-item {
                flex-direction: column;
                align-items: flex-start;
                gap: 10px;
            }

            .delete-btn {
                align-self: flex-end;
            }

            .save-indicator {
                top: 10px;
                right: 10px;
                padding: 8px 15px;
                font-size: 0.8em;
            }
        }

        /* より小さなスマートフォン対応 */
        @media (max-width: 480px) {
            .container {
                padding: 5px;
            }

            .header {
                padding: 15px;
            }

            .header h1 {
                font-size: 1.3em;
            }

            .coaches-grid {
                grid-template-columns: 1fr;
            }

            .calendar-section {
                padding: 10px;
            }

            .day {
                min-height: 60px;
                padding: 3px;
            }

            .day-header {
                padding: 8px 2px;
                font-size: 0.7em;
            }

            .schedule-active, .schedule-cancelled {
                font-size: 0.5em;
                padding: 1px 2px;
            }

            .form-group select,
            .form-group input {
                font-size: 16px; /* iOSでのズーム防止 */
            }
        }

        /* タブレット対応 */
        @media (min-width: 769px) and (max-width: 1024px) {
            .coaches-grid {
                grid-template-columns: repeat(3, 1fr);
            }

            .day {
                min-height: 90px;
            }
        }

        /* 横向きスマートフォン対応 */
        @media (max-width: 768px) and (orientation: landscape) {
            .coaches-grid {
                grid-template-columns: repeat(3, 1fr);
            }

            .day {
                min-height: 70px;
            }
        }
    </style>

