.calendar td.shop-day {
      background: rgba(255,165,0,.15);
      border-color: rgba(255,165,0,.35);
    }
    /* キャンセルポリシー（カレンダーの上） */
    .tsuki-cancel-policy {
      margin: 14px 0 20px;
      padding: 12px 16px;
      border: 1px solid rgba(230, 202, 116, 0.45);
      border-radius: 8px;
      line-height: 1.9;
    }
    .tsuki-cancel-policy strong { color: #e6ca74; }
    .tsuki-cancel-policy .cancel-policy-small { font-size: 0.88em; opacity: 0.85; }

    /* 「情報のみ（Web予約なし）」の枠しか無い日は、予約フォーム部分を隠す */
    #reserve-form.tsuki-info-only .userinfo,
    #reserve-form.tsuki-info-only .btn-submit,
    #reserve-form.tsuki-info-only .selected-summary {
      display: none;
    }
    .time-item.shop {
      display:flex;
      flex-direction:column;
      align-items:flex-start;
      background: rgba(255,165,0,.10);
      border: 1px dashed rgba(255,165,0,.5);
      padding:8px 10px;
      border-radius:6px;
      line-height:1.4;
      font-size:14px;
      margin-bottom:6px;
    }
    .time-item.shop .shop-row {
      width:100%;
      display:flex;
      flex-direction:row;
      align-items:center;
      gap:8px;
    }
    .time-item.shop .shop-time {
      flex-shrink:0;
      white-space:nowrap;
      font-size:13px;
      line-height:1.4;
    }
    .time-item {
      display:flex;
      flex-direction:row;
      align-items:center;
      gap:6px;
      padding:8px 10px;
      border-radius:6px;
      border:1px solid #ccc;
      margin-bottom:6px;
      background:#fff;
      line-height:1.4;
      font-size:14px;
      box-sizing:border-box;
      width:100%;
    }
    .tag-wrap {
      margin-top:6px;
      display:flex;
      gap:4px;
      flex-wrap:wrap;
      flex-direction:row;
    }
    .shop-tag,
    .personal-tag {
      display:inline-flex;
      flex-direction:column;
      gap:2px;
      padding:4px 8px;
      border-radius:999px;
      font-size:11px;
      line-height:1.2;
      user-select:none;
    }
    .shop-tag {
      background:rgba(255,165,0,.12);
      border:1px solid rgba(255,165,0,.45);
    }
    .shop-tag .shop-name { font-weight:700; }
    .shop-tag .shop-time { opacity:.9; }
    .personal-tag {
      background:rgba(14,165,233,.12);
      border:1px solid rgba(14,165,233,.45);
      font-weight:700;
      align-items:center;
      justify-content:center;
    }
    .shop-group {
      border:1px solid rgba(255,165,0,.35);
      background:rgba(255,165,0,.05);
      border-radius:10px;
      padding:10px;
      margin-bottom:12px;
    }
    .shop-group h3 {
      margin:0 0 6px;
      font-size:16px;
    }
    .shop-group .shop-meta {
      font-size:13px;
      color:#444;
      margin-bottom:8px;
      line-height:1.5;
      white-space:pre-line;
    }
    .shop-link {
      display:inline-block;
      margin-bottom:8px;
      font-size:13px;
    }
    .mini-note {
      display:block;
      font-size:12px;
      color:#666;
      margin-top:2px;
      margin-bottom:8px;
    }
    .time-list.grid-choices {
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:8px;
      align-items:stretch;
    }
    .time-list.grid-choices .time-item {
      margin-bottom:0;
    }
    .time-grid {
      display:grid;
      grid-template-columns:repeat(3, minmax(0, 1fr));
      gap:8px;
    }
    .time-grid .time-item {
      margin-bottom:0;
    }
    .selected-summary {
      margin:10px 0 0;
      font-size:13px;
      color:#374151;
    }
    .inline-duration-picker {
      margin:8px 0 12px;
      display:flex;
      flex-wrap:wrap;
      gap:12px;
      align-items:center;
      font-size:14px;
    }
    .option-disabled {
      opacity:.5;
      cursor:not-allowed;
    }
    .chk-disabled {
      opacity:.5;
      cursor:not-allowed;
    }
    @media (max-width: 1024px) {
      .time-list.grid-choices,
      .time-grid {
        grid-template-columns:repeat(2, minmax(0, 1fr));
      }
    }
    @media (max-width: 640px) {
      .time-list.grid-choices,
      .time-grid {
        grid-template-columns:repeat(2, minmax(0, 1fr));
      }
      .time-item,
      .time-item.shop {
        font-size:13px;
        padding:8px;
      }
      .inline-duration-picker {
        gap:10px;
        font-size:13px;
      }
    }
