    body {
      font-family: sans-serif;
      margin: 0;
      padding: 1px 20px 20px;
    }

    h2 {
      margin-bottom: 10px;
      font-size: 22px;
    }

    .back-button {
      font-size: 15px;
      margin-left: 38px;
      color: #0066cc;
      text-decoration: none;

      position: relative;
      top: -3px;
    }

    .back-button:hover {
      color: #003366;
      text-decoration: underline;
    }

    .board-grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      grid-template-rows: 232px 232px;
      gap: 20px;
    }

    .panel {
      border: 1px solid #999;
      border-radius: 12px;
      padding: 16px;
      background: #fafafa;
      overflow: auto;
    }

    .panel h3 {
      margin-top: 0;
      font-size: 18px;
    }

    .status-panel p {
      margin: 4px 0;
    }

    textarea {
      width: 100%;
      height: 145px;
      resize: none;
      border: 1px solid #aaa;
      border-radius: 8px;
      padding: 12px;
      font-size: 15px;
      box-sizing: border-box;  
    }

    .progress-row {
      display: flex;
      align-items: center;
      gap: 8px;
    }

    .progress-bar {
      width: 130px;
      height: 12px;
      border: 1px solid #aaa;
      border-radius: 3px;
      background: #eee;
      overflow: hidden;
    }

    .progress-fill {
      height: 100%;
      width: 0%;
      background: #0066cc;
      transition: width 0.3s;
    }

    #progress-text {
      font-size: 14px;
      white-space: nowrap;
    }

    #elapsed-text {
      font-size: 14px;
      color: #003366;
      margin-left: 6px;
    }

    #study-days-text {
      font-size: 14px;
      color: #003366;
      margin-left: 6px;
    }

    .chapter-text {
      margin-top: 6px;
      margin-left: 4px;
      font-size: 14px;
      white-space: pre-line;
    }

    .calendar-panel {
      overflow: hidden;
    }

    .calendar-header {
      display: flex;
      justify-content: center;
      align-items: center;
      gap: 12px;
    }

    .calendar-header button {
      width: 26px;
      height: 24px;
      border: 1px solid #aaa;
      border-radius: 6px;
      background: white;
      cursor: pointer;
      font-size: 12px;
    }

    #calendar-title {
      font-size: 15px;
    }

    .calendar-weekdays,
    .calendar-grid {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      text-align: center;
    }

    .calendar-grid,
    .calendar-weekdays,
    .calendar-header {
      width: 78%;
      margin: 0 auto;
    }

    .calendar-weekdays {
      font-size: 12px;
      color: #666;
      margin-top: 8px;
      margin-bottom: 2px;
    }

    .calendar-day {
      height: 24px;
      line-height: 24px;
      padding: 0;
      margin: 1px;
      border-radius: 5px;
      cursor: pointer;
      font-size: 13px;
    }

    .calendar-day:hover {
      background: #eef5ff;
    }

    .calendar-day.empty {
      cursor: default;
    }

    .calendar-day.today {
      border: 1px solid #0066cc;
    }

    .calendar-day.has-record {
      background: #dceeff;
      font-weight: bold;
      color: #0055aa;
    }

    .calendar-day.selected {
      outline: 2px solid #0066cc;
    }
    
    @media (min-height: 720px) {
      .board-grid {
         grid-template-rows: 305px 305px;
         gap: 25px;
         padding: 3px 2px 2px;
      }
      textarea {
        height: 220px;
      }
    }

    @media (min-height: 850px) {
      .board-grid {
        grid-template-rows: 370px 370px;
        gap: 30px;
        padding: 4px 8px 8px;
      }
      textarea {
        height: 285px;
      }
    }