    .gs-page { max-width: 900px; }

    /* カレンダーヘッダ */
    .cal-head {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
      background: var(--color-surface-2);
      border-bottom: 1px solid var(--color-border);
    }
    .cal-day-label {
      padding: 8px 0;
      text-align: center;
      font-size: 11px;
      font-weight: 500;
      color: var(--color-text-muted);
    }
    .cal-day-label.sat { color: #1a73e8; }
    .cal-day-label.sun { color: #c5221f; }

    /* カレンダー本体 */
    .cal-body {
      display: grid;
      grid-template-columns: repeat(7, 1fr);
    }
    .cal-cell {
      min-height: 72px;
      padding: 8px 8px 6px;
      border-right: 0.5px solid var(--color-divider);
      border-bottom: 0.5px solid var(--color-divider);
      cursor: pointer;
      transition: background 180ms;
      display: flex; flex-direction: column; gap: 3px;
    }
    .cal-cell:hover { background: var(--color-surface-3); }
    .cal-cell:nth-child(7n) { border-right: none; }
    .cal-cell.other-month { opacity: .3; cursor: default; background: transparent; }
    .cal-cell.other-month:hover { background: transparent; }
    .cal-cell.past { opacity: .45; cursor: not-allowed; }
    .cal-cell.past:hover { background: transparent; }
    .cal-cell.is-sunday { background: rgba(197,34,31,.03); }
    .cal-cell.is-saturday { background: rgba(26,115,232,.03); }
    .cal-cell.is-selected { background: rgba(26,115,232,.12) !important; outline: 2px solid rgba(26,115,232,.6); outline-offset: -2px; }

    .date-num {
      font-size: 13px; font-weight: 500;
      width: 24px; height: 24px;
      display: flex; align-items: center; justify-content: center;
      color: var(--color-text);
    }
    .date-num.sat { color: #1a73e8; }
    .date-num.sun { color: #c5221f; }
    .cal-cell.is-today .date-num {
      background: #1a73e8;
      color: #fff;
      border-radius: 50%;
    }

    /* 申請状態チップ */
    .req-chip {
      margin-top: 2px;
      height: 20px;
      padding: 0 7px;
      border-radius: 9999px;
      font-size: 10px;
      font-weight: 600;
      display: inline-flex;
      align-items: center;
      width: fit-content;
    }
    .req-chip.pending  { background: rgba(242,153,0,.12);  color: #92400e; }
    .req-chip.approved { background: rgba(24,128,56,.10);  color: #065f46; }
    .req-chip.rejected { background: rgba(197,34,31,.10);  color: #7f1d1d; }

    /* gs-table の上書き（このページ専用） */
    .gs-panel .gs-table th {
      background: var(--color-surface-2, #f8fafd) !important;
      color: var(--color-text-muted, #5f6368) !important;
      font-size: 11px !important;
      font-weight: 600;
      letter-spacing: .04em;
    }
    .gs-panel .gs-table td {
      border-bottom: 0.5px solid var(--color-divider);
    }
    .gs-panel .gs-table tr:hover td {
      background: var(--color-surface-2);
    }

    /* 取消ボタン（控えめな赤ピル） */
    .cancel-btn {
      height: 28px;
      padding: 0 12px;
      border-radius: 9999px;
      background: rgba(197,34,31,.10);
      border: none;
      color: #c5221f;
      font-size: 11px;
      font-weight: 600;
      cursor: pointer;
      font-family: inherit;
      transition: background 180ms;
    }
    .cancel-btn:hover { background: rgba(197,34,31,.18); }

    /* 選択中バー */
    .selection-bar {
      display: flex; align-items: center; gap: 8px;
      padding: 10px 14px;
      background: var(--color-surface-2);
      border-top: 1px solid var(--color-border);
      font-size: 12px; color: var(--color-text);
    }

    /* トースト */
    .toast {
      position: fixed; top: 80px; right: 20px; z-index: 500;
      padding: 12px 18px; border-radius: var(--radius-sm);
      color: #fff; font-size: 14px; font-weight: 500;
      box-shadow: var(--shadow-md); opacity: 0; transform: translateY(-10px);
      transition: opacity 0.25s, transform 0.25s;
      background: var(--color-primary);
    }
    .toast.show { opacity: 1; transform: translateY(0); }
    .toast.success { background: var(--color-green); }
    .toast.error   { background: var(--color-red); }
    .toast.warning { background: var(--color-amber); color: #000; }

    /* 共通モーダル（複数用・動的active方式） */
    .modal-ov {
      position: fixed; inset: 0; background: rgba(0,0,0,.55);
      display: none; align-items: flex-start; justify-content: center;
      padding: 40px 16px; z-index: 300; overflow-y: auto;
    }
    .modal-ov.active { display: flex; }
    .modal-bx {
      background: var(--color-surface); border-radius: 20px;
      width: 100%; max-width: 480px; padding: 24px;
      box-shadow: var(--shadow-2);
    }
    .modal-title { font-size: 16px; font-weight: 600; margin-bottom: 14px; color: var(--color-text); }
    .field-label { font-size: 12px; font-weight: 600; color: var(--color-text-muted); margin-bottom: 4px; }
    .field-value { font-size: 14px; color: var(--color-text); }
    .date-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
    .date-chip {
      padding: 4px 10px; background: var(--color-primary-soft);
      color: var(--color-primary); border-radius: 9999px;
      font-size: 12px; font-weight: 600;
    }
    .modal-actions { display: flex; justify-content: flex-end; gap: 8px; margin-top: 16px; flex-wrap: wrap; }
