/* =====================================================
   船長機能用スタイル
   ===================================================== */

/* 注：ボタンスタイルは統一済み（.btn-* を使用）
   captain-btn-* は廃止されました */

/* =====================================================
   共通フォームスタイル（予約フォーム等）
   ===================================================== */

/* 戻るリンク（統一済み：ユーザー向け・船長向け共通） */
.back-link {
  display: inline-flex;
  align-items: center;
  color: var(--color-text-muted);
  text-decoration: none;
  font-size: 14px;
  margin-bottom: 16px;
}

.back-link:hover {
  color: var(--color-primary);
}

/* フォームグループ */
.form-group {
  margin-bottom: 20px;
}

.form-group label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: #475569;
  margin-bottom: 8px;
}

/* フォームコントロール */
.form-control {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  font-size: 15px;
  color: #1e293b;
  background: white;
  transition: all 0.2s;
  box-sizing: border-box;
}

.form-control:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.form-control::placeholder {
  color: #94a3b8;
}

textarea.form-control {
  resize: vertical;
  min-height: 80px;
}

select.form-control {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px;
}

/* フォームエラー */
.form-errors {
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 10px;
  padding: 16px;
  margin-bottom: 20px;
}

.form-errors h3 {
  font-size: 14px;
  font-weight: 600;
  color: #dc2626;
  margin: 0 0 8px;
}

.form-errors ul {
  margin: 0;
  padding-left: 20px;
}

.form-errors li {
  font-size: 13px;
  color: #b91c1c;
  line-height: 1.5;
}

/* フォームアクション */
.form-actions {
  margin-top: 24px;
}

/* 共通ボタン（ユーザー向け・船長向け統一） */
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 24px;
  border: none;
  border-radius: var(--radius-sm);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s;
}

.btn:hover {
  transform: translateY(-1px);
}

.btn-primary {
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
  color: white;
}

.btn-primary:hover {
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
}

.btn-success {
  background: linear-gradient(135deg, var(--color-success) 0%, var(--color-success-dark) 100%);
  color: white;
}

.btn-success:hover {
  box-shadow: 0 4px 12px rgba(34, 197, 94, 0.4);
}

.btn-secondary {
  background: var(--color-bg-secondary);
  color: var(--color-text-secondary);
}

.btn-secondary:hover {
  background: var(--color-border);
}

.btn-danger {
  background: linear-gradient(135deg, var(--color-danger) 0%, var(--color-danger-dark) 100%);
  color: white;
}

.btn-danger:hover {
  box-shadow: 0 4px 12px rgba(239, 68, 68, 0.4);
}

.btn-disabled {
  background: var(--color-border);
  color: var(--color-text-light);
  cursor: not-allowed;
}

.btn-disabled:hover {
  transform: none;
  box-shadow: none;
}

.btn-large {
  width: 100%;
  padding: 14px 24px;
  font-size: 16px;
}

.btn-small {
  padding: 8px 16px;
  font-size: 13px;
}

/* =====================================================
   釣船フォーム
   ===================================================== */
.captain-ship-form-container,
.captain-schedule-form-container {
  max-width: 600px;
  margin: 0 auto;
  padding: 20px;
}

.captain-ship-form-header,
.captain-schedule-form-header {
  margin-bottom: 24px;
}

.captain-ship-form-header h1,
.captain-schedule-form-header h1 {
  font-size: 1.3em;
  color: #1e293b;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 8px;
}

.captain-ship-form-header h1 i,
.captain-schedule-form-header h1 i {
  color: #3b82f6;
}

.captain-schedule-form-ship-name {
  font-size: 14px;
  color: #64748b;
  margin: 0 0 12px;
}

.captain-form-public-notice {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  border: 1px solid #93c5fd;
  border-radius: 10px;
  margin-bottom: 20px;
  color: #1e40af;
  font-size: 14px;
  font-weight: 500;
}

.captain-form-public-notice i {
  font-size: 16px;
  color: #3b82f6;
}

.captain-form-errors {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 16px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 10px;
  margin-bottom: 20px;
}

.captain-form-errors-icon {
  color: #dc2626;
  flex-shrink: 0;
  font-size: 20px;
  line-height: 1;
}

.captain-form-errors-messages {
  font-size: 13px;
  color: #b91c1c;
  line-height: 1.5;
}

/* フィールド単位のエラー */
.captain-form-field-error .captain-form-label {
  color: #dc2626;
}

.captain-form-error {
  font-size: 13px;
  color: #dc2626;
  margin-top: 8px;
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.captain-form-error::before {
  content: "⚠";
  flex-shrink: 0;
}

/* 必須フィールドのラベル */
.captain-form-label-required::after {
  content: " *";
  color: #dc2626;
}

.captain-form-section {
  background: white;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.captain-form-section h2 {
  font-size: 1em;
  color: #1e293b;
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-form-section h2 i {
  color: #3b82f6;
}

.captain-form-section-description {
  font-size: 13px;
  color: #64748b;
  margin: -12px 0 16px;
}

.captain-form-field {
  margin-bottom: 16px;
  max-width: 100%;
  overflow: hidden;
}

.captain-form-field:last-child {
  margin-bottom: 0;
}

.captain-form-label {
  display: block;
  font-size: 13px;
  font-weight: 500;
  color: #475569;
  margin-bottom: 6px;
}

.captain-form-label-required::after {
  content: " *";
  color: #ef4444;
}

.captain-form-input,
.captain-form-select,
.captain-form-textarea {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  font-size: 15px;
  transition: all 0.2s;
  box-sizing: border-box;
}

.captain-form-input:focus,
.captain-form-select:focus,
.captain-form-textarea:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.captain-form-textarea {
  resize: vertical;
  min-height: 100px;
}

.captain-form-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 16px;
}

.captain-form-stack {
  display: flex;
  flex-direction: column;
}

.captain-form-field-grow {
  grid-column: span 2;
}

@media (max-width: 480px) {
  .captain-form-field-grow {
    grid-column: span 1;
  }
}

.captain-form-input-wrapper {
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-form-input-wrapper .captain-form-input {
  flex: 1;
}

.captain-form-input-suffix {
  font-size: 14px;
  color: #64748b;
  white-space: nowrap;
}

.captain-form-hint {
  font-size: 12px;
  color: #64748b;
  margin-top: 6px;
}

.captain-form-checkbox {
  display: flex;
  align-items: center;
  gap: 10px;
  cursor: pointer;
  padding: 12px 16px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  transition: all 0.2s;
}

.captain-form-checkbox:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
}

.captain-form-checkbox:has(.captain-form-checkbox-input:checked) {
  background: #eff6ff;
  border-color: #3b82f6;
}

.captain-form-checkbox-input {
  width: 18px;
  height: 18px;
  accent-color: #3b82f6;
  cursor: pointer;
}

.captain-form-checkbox-label {
  font-size: 14px;
  color: #334155;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-form-checkbox-label i {
  color: #64748b;
}

.captain-form-checkbox:has(.captain-form-checkbox-input:checked) .captain-form-checkbox-label i {
  color: #3b82f6;
}

/* 位置選択コンポーネント */
.location-picker {
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  background: white;
}

.location-picker-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
  gap: 12px;
}

.location-picker-info {
  flex: 1;
  min-width: 0;
}

.location-picker-display {
  font-size: 14px;
  color: #1e293b;
  font-family: monospace;
}

.location-picker-display.location-picker-no-selection {
  color: #94a3b8;
  font-family: inherit;
}

.location-picker-actions {
  display: flex;
  gap: 8px;
  flex-shrink: 0;
}

.location-picker-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  font-size: 13px;
  color: #475569;
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  cursor: pointer;
  transition: all 0.2s;
}

.location-picker-btn:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
}

.location-picker-btn i {
  font-size: 14px;
}

.location-picker-btn-clear {
  color: #dc2626;
}

.location-picker-btn-clear:hover {
  background: #fef2f2;
  border-color: #fecaca;
}

.location-picker-map {
  width: 100%;
  height: 300px;
}

/* 画像アップロードコンポーネント */
.captain-image-upload {
  position: relative;
  max-width: 100%;
  overflow: hidden;
  box-sizing: border-box;
}

.captain-image-upload-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.captain-image-upload-dropzone {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 32px 20px;
  border: 2px dashed #d1d5db;
  border-radius: 12px;
  background: #f9fafb;
  cursor: pointer;
  transition: all 0.2s;
  text-align: center;
  box-sizing: border-box;
}

.captain-image-upload-dropzone:hover {
  border-color: #3b82f6;
  background: #f0f9ff;
}

.captain-image-upload-dropzone.has-image {
  display: none;
}

.captain-image-upload-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.captain-image-upload-dropzone.has-image .captain-image-upload-content {
  display: none;
}

.captain-image-upload-icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e0e7ff;
  border-radius: 50%;
  color: #3b82f6;
  font-size: 24px;
}

.captain-image-upload-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.captain-image-upload-main {
  font-size: 15px;
  font-weight: 600;
  color: #1e293b;
}

.captain-image-upload-sub {
  font-size: 13px;
  color: #64748b;
}

.captain-image-upload-formats {
  font-size: 12px;
  color: #94a3b8;
}

.captain-image-upload-preview {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  background: #f1f5f9;
  max-width: 100%;
  box-sizing: border-box;
  cursor: pointer;
}

.captain-image-upload-preview img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: 300px;
  object-fit: cover;
}

.captain-image-upload-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: rgba(0, 0, 0, 0.5);
  color: white;
  opacity: 0;
  transition: opacity 0.2s;
  cursor: pointer;
}

.captain-image-upload-preview:hover .captain-image-upload-overlay {
  opacity: 1;
}

.captain-image-upload-overlay i {
  font-size: 28px;
}

.captain-image-upload-overlay span {
  font-size: 14px;
  font-weight: 500;
}

/* 遊漁船業者登録票アップロード */
.captain-certificate-upload {
  position: relative;
  max-width: 100%;
  overflow: hidden;
  box-sizing: border-box;
}

.captain-certificate-upload-input {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.captain-certificate-upload-dropzone {
  display: block;
  width: 100%;
  max-width: 100%;
  padding: 24px 20px;
  border: 2px dashed #bae6fd;
  border-radius: 12px;
  background: #f0f9ff;
  cursor: pointer;
  transition: all 0.2s;
  text-align: center;
  box-sizing: border-box;
}

.captain-certificate-upload-dropzone:hover {
  border-color: #3b82f6;
  background: #e0f2fe;
}

.captain-certificate-upload-dropzone.has-image {
  display: none;
}

.captain-certificate-upload-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.captain-certificate-upload-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0284c7;
  border-radius: 50%;
  color: white;
  font-size: 20px;
}

.captain-certificate-upload-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.captain-certificate-upload-main {
  font-size: 14px;
  font-weight: 600;
  color: #0369a1;
}

.captain-certificate-upload-sub {
  font-size: 12px;
  color: #0284c7;
}

.captain-certificate-upload-formats {
  font-size: 11px;
  color: #64748b;
}

.captain-certificate-upload-preview {
  position: relative;
  border-radius: 12px;
  overflow: hidden;
  background: #f0f9ff;
  border: 1px solid #bae6fd;
  max-width: 100%;
  box-sizing: border-box;
  cursor: pointer;
}

.captain-certificate-upload-preview img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  max-height: 300px;
  object-fit: cover;
}

.captain-certificate-upload-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  background: rgba(0, 0, 0, 0.5);
  color: white;
  opacity: 0;
  transition: opacity 0.2s;
  cursor: pointer;
}

.captain-certificate-upload-preview:hover .captain-certificate-upload-overlay {
  opacity: 1;
}

.captain-certificate-upload-overlay i {
  font-size: 24px;
}

.captain-certificate-upload-overlay span {
  font-size: 13px;
  font-weight: 500;
}

/* 登録票の注意書き */
.captain-certificate-notice {
  margin-top: 12px;
  padding: 16px;
  background: #fefce8;
  border: 1px solid #fde047;
  border-radius: 8px;
}

.captain-certificate-notice-header {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #854d0e;
  font-size: 13px;
  margin-bottom: 10px;
}

.captain-certificate-notice-header i {
  color: #ca8a04;
}

.captain-certificate-notice-list {
  margin: 0;
  padding-left: 20px;
  columns: 2;
  column-gap: 24px;
  font-size: 13px;
  color: #713f12;
}

.captain-certificate-notice-list li {
  margin-bottom: 4px;
}

@media (max-width: 600px) {
  .captain-certificate-notice-list {
    columns: 1;
  }
}

.captain-form-actions {
  margin-top: 24px;
}

.captain-form-pending-notice {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 16px;
  background-color: #fff3cd;
  color: #856404;
  border-radius: 8px;
  font-size: 14px;
}

.captain-form-pending-notice i {
  font-size: 18px;
}

/* =====================================================
   スケジュールステータスバッジ
   ===================================================== */
.captain-schedule-status-badge {
  display: inline-block;
  font-size: 12px;
  padding: 4px 12px;
  border-radius: 12px;
  font-weight: 500;
}

.captain-schedule-status-badge.open {
  background: #dcfce7;
  color: #166534;
}

.captain-schedule-status-badge.full {
  background: #fef3c7;
  color: #92400e;
}

.captain-schedule-status-badge.cancelled {
  background: #fee2e2;
  color: #991b1b;
}

.captain-schedule-status-badge.closed {
  background: #e2e8f0;
  color: #334155;
}

.captain-schedule-status-badge.large {
  font-size: 14px;
  padding: 6px 16px;
}

/* =====================================================
   スケジュール詳細ページ（リニューアル）
   ===================================================== */
.captain-schedule-show {
  max-width: 1100px;
  margin: 0 auto;
  padding: 20px;
}

.captain-schedule-show__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #64748b;
  font-size: 14px;
  text-decoration: none;
  margin-bottom: 20px;
  transition: color 0.2s;
}

.captain-schedule-show__back:hover {
  color: #3b82f6;
}

/* ヒーローセクション */
.captain-schedule-show__hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px;
  background: linear-gradient(135deg, #1e3a5f 0%, #2d5a87 100%);
  border-radius: 16px;
  margin-bottom: 24px;
}

.captain-schedule-show__date-block {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.captain-schedule-show__date-large {
  display: flex;
  align-items: baseline;
  gap: 4px;
  color: white;
}

.captain-schedule-show__month {
  font-size: 24px;
  font-weight: 500;
}

.captain-schedule-show__month small {
  font-size: 16px;
  font-weight: 400;
}

.captain-schedule-show__day {
  font-size: 64px;
  font-weight: 700;
  line-height: 1;
}

.captain-schedule-show__weekday {
  font-size: 18px;
  font-weight: 500;
  margin-left: 8px;
}

.captain-schedule-show__date-large.sunday .captain-schedule-show__weekday {
  color: #f87171;
}

.captain-schedule-show__date-large.saturday .captain-schedule-show__weekday {
  color: #60a5fa;
}

.captain-schedule-show__today-badge {
  display: inline-block;
  padding: 6px 16px;
  background: #fbbf24;
  color: #1e293b;
  font-size: 14px;
  font-weight: 600;
  border-radius: 20px;
}

.captain-schedule-show__past-badge {
  display: inline-block;
  padding: 6px 16px;
  background: rgba(255, 255, 255, 0.2);
  color: white;
  font-size: 14px;
  font-weight: 500;
  border-radius: 20px;
}

.captain-schedule-show__status-block {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

.captain-schedule-show__target-fish {
  display: flex;
  align-items: center;
  gap: 8px;
  color: white;
  font-size: 20px;
  font-weight: 600;
}

.captain-schedule-show__target-fish i {
  color: #fbbf24;
}

/* グリッドレイアウト */
.captain-schedule-show__grid {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 24px;
  align-items: start;
}

/* メインカラム */
.captain-schedule-show__main {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* カード共通 */
.captain-schedule-show__card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  padding: 20px;
}

.captain-schedule-show__card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 600;
  color: #334155;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}

.captain-schedule-show__card-header i {
  color: #3b82f6;
}

/* 情報グリッド */
.captain-schedule-show__info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.captain-schedule-show__info-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.captain-schedule-show__info-label {
  font-size: 12px;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.captain-schedule-show__info-value {
  font-size: 16px;
  font-weight: 600;
  color: #1e293b;
}

.captain-schedule-show__info-value.time {
  font-size: 24px;
  font-family: "SF Mono", "Monaco", monospace;
}

/* 料金グリッド */
.captain-schedule-show__price-grid {
  display: flex;
  gap: 16px;
}

.captain-schedule-show__price-item {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  padding: 10px 12px;
  background: #f8fafc;
  border-radius: 10px;
}

.captain-schedule-show__price-item.main {
  background: linear-gradient(135deg, #dbeafe 0%, #e0f2fe 100%);
}

.captain-schedule-show__price-type {
  font-size: 13px;
  color: #64748b;
  font-weight: 500;
}

.captain-schedule-show__price-value {
  font-size: 18px;
  font-weight: 700;
  color: #1e293b;
  white-space: nowrap;
}

.captain-schedule-show__price-value small {
  font-size: 12px;
  font-weight: 500;
}

.captain-schedule-show__price-item.main .captain-schedule-show__price-value {
  color: #1e40af;
}

.captain-schedule-show__price-item.female {
  background: linear-gradient(135deg, #fce7f3 0%, #fdf2f8 100%);
}

.captain-schedule-show__price-item.female .captain-schedule-show__price-type {
  color: #be185d;
}

.captain-schedule-show__price-item.female .captain-schedule-show__price-value {
  color: #be185d;
}

.captain-schedule-show__price-item.child {
  background: linear-gradient(135deg, #dbeafe 0%, #eff6ff 100%);
}

.captain-schedule-show__price-item.child .captain-schedule-show__price-type {
  color: #1d4ed8;
}

.captain-schedule-show__price-item.child .captain-schedule-show__price-value {
  color: #1d4ed8;
}

/* タグ */
.captain-schedule-show__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 16px;
}

.captain-schedule-show__tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 14px;
  background: #e0f2fe;
  color: #0369a1;
  font-size: 14px;
  font-weight: 500;
  border-radius: 20px;
}

.captain-schedule-show__tag i {
  font-size: 13px;
}

.captain-schedule-show__tag.beginner {
  background: #dcfce7;
  color: #166534;
}

/* セクション */
.captain-schedule-show__section {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px dashed #e2e8f0;
}

.captain-schedule-show__section:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

.captain-schedule-show__section-title {
  font-size: 13px;
  color: #64748b;
  font-weight: 600;
  margin: 0 0 8px 0;
}

.captain-schedule-show__section-content {
  font-size: 14px;
  color: #334155;
  line-height: 1.6;
}

.captain-schedule-show__section-content p {
  margin: 0;
}

/* アクションボタン */
.captain-schedule-show__actions {
  display: flex;
  gap: 12px;
}

.captain-schedule-show__actions .btn {
  flex: 1;
  justify-content: center;
  padding: 14px 20px;
  font-size: 15px;
}

.captain-schedule-show__actions form {
  flex: 1;
  display: flex;
}

.captain-schedule-show__actions form .btn {
  flex: 1;
}

/* サイドバー */
.captain-schedule-show__sidebar {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* サマリーカード */
.captain-schedule-show__summary-card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  padding: 20px;
}

.captain-schedule-show__summary-header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 600;
  color: #334155;
  margin-bottom: 16px;
}

.captain-schedule-show__summary-header i {
  color: #3b82f6;
}

.captain-schedule-show__summary-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}

.captain-schedule-show__stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

.captain-schedule-show__stat-value {
  font-size: 32px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1.2;
}

.captain-schedule-show__stat-label {
  font-size: 12px;
  color: #64748b;
  margin-top: 4px;
}

.captain-schedule-show__capacity-bar {
  height: 8px;
  background: #e2e8f0;
  border-radius: 4px;
  overflow: hidden;
}

.captain-schedule-show__capacity-fill {
  height: 100%;
  background: linear-gradient(90deg, #3b82f6 0%, #2563eb 100%);
  border-radius: 4px;
  transition: width 0.3s ease;
}

/* 最低出船人数未満の警告スタイル */
.captain-schedule-show__capacity-bar.below-minimum {
  background: #fef3c7;
}

.captain-schedule-show__capacity-bar.below-minimum .captain-schedule-show__capacity-fill {
  background: linear-gradient(90deg, #f59e0b 0%, #d97706 100%);
}

.captain-schedule-show__minimum-warning {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 12px;
  padding: 10px 12px;
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  color: #92400e;
  font-size: 13px;
  font-weight: 600;
  border-radius: 8px;
  border-left: 4px solid #f59e0b;
}

.captain-schedule-show__minimum-warning i {
  color: #d97706;
}

.captain-schedule-show__pending-alert {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 16px;
  padding: 12px;
  background: #fef3c7;
  color: #92400e;
  font-size: 14px;
  font-weight: 500;
  border-radius: 8px;
}

.captain-schedule-show__pending-alert i {
  color: #f59e0b;
}

/* 予約者カード */
.captain-schedule-show__reservations-card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

.captain-schedule-show__reservations-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 20px;
  font-size: 15px;
  font-weight: 600;
  color: #334155;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

.captain-schedule-show__count-badge {
  font-size: 12px;
  padding: 3px 10px;
  border-radius: 12px;
  font-weight: 500;
}

.captain-schedule-show__count-badge.confirmed {
  background: #dcfce7;
  color: #166534;
}

.captain-schedule-show__count-badge.pending {
  background: #fef3c7;
  color: #92400e;
}

.captain-schedule-show__count-badge.completed {
  background: #e0e7ff;
  color: #4338ca;
}

.captain-schedule-show__count-badge.no_show {
  background: #f1f5f9;
  color: #64748b;
}

.captain-schedule-show__reservations-list {
  padding: 12px;
}

.captain-schedule-show__reservation {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 14px;
  margin-bottom: 8px;
  background: #f8fafc;
  border-radius: 10px;
  border-left: 4px solid #3b82f6;
}

.captain-schedule-show__reservation:last-child {
  margin-bottom: 0;
}

.captain-schedule-show__reservation.pending {
  background: #fffbeb;
  border-left-color: #f59e0b;
}

.captain-schedule-show__reservation.completed {
  background: #f0f9ff;
  border-left-color: #6366f1;
  opacity: 0.85;
}

.captain-schedule-show__reservation.no_show {
  background: #f8fafc;
  border-left-color: #94a3b8;
  opacity: 0.7;
}

.captain-schedule-show__reservation-main {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.captain-schedule-show__reservation-user {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.captain-schedule-show__reservation-name {
  font-weight: 600;
  color: #1e293b;
}

.captain-schedule-show__reservation-people {
  font-size: 13px;
  color: #64748b;
}

.captain-schedule-show__reservation-breakdown {
  font-size: 12px;
  color: #94a3b8;
}

.captain-schedule-show__reservation-phone {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #3b82f6;
  text-decoration: none;
}

.captain-schedule-show__reservation-phone:hover {
  text-decoration: underline;
}

.captain-schedule-show__reservation-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.captain-schedule-show__reservation-actions .status-badge {
  margin-right: auto;
}

/* button_toで生成されるフォームをインライン表示 */
.captain-schedule-show__reservation-actions form {
  display: inline;
}

.captain-schedule-show__reservation-actions form button {
  cursor: pointer;
}

/* 支払い金額表示（乗船記録時） */
.captain-schedule-show__reservation.with-price {
  flex-wrap: wrap;
}

.captain-schedule-show__reservation-price {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin-top: 8px;
  padding-top: 10px;
  border-top: 1px dashed #e2e8f0;
}

.captain-schedule-show__reservation-price-label {
  font-size: 12px;
  color: #64748b;
}

.captain-schedule-show__reservation-price-value {
  font-size: 16px;
  font-weight: 700;
  color: #059669;
}

.captain-schedule-show__reservation-price-value i {
  font-size: 13px;
  margin-right: 2px;
}

.captain-schedule-show__no-reservations {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 32px 20px;
  color: #94a3b8;
}

.captain-schedule-show__no-reservations i {
  font-size: 32px;
}

.captain-schedule-show__no-reservations p {
  margin: 0;
  font-size: 14px;
}

/* 乗船記録済みカード */
.captain-schedule-show__completed-card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  margin-bottom: 16px;
}

.captain-schedule-show__completed-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 20px;
  font-size: 14px;
  font-weight: 500;
  color: #059669;
  background: #ecfdf5;
  border-radius: 12px 12px 0 0;
}

.captain-schedule-show__completed-header i {
  color: #10b981;
}

.captain-schedule-show__completed-list {
  padding: 12px 16px;
}

.captain-schedule-show__completed-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  font-size: 14px;
  border-bottom: 1px solid #f1f5f9;
}

.captain-schedule-show__completed-item:last-child {
  border-bottom: none;
}

.captain-schedule-show__completed-info {
  display: flex;
  align-items: center;
  gap: 12px;
}

.captain-schedule-show__completed-name {
  color: #374151;
}

/* キャンセル済みカード */
.captain-schedule-show__cancelled-card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  opacity: 0.7;
}

.captain-schedule-show__cancelled-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 20px;
  font-size: 14px;
  font-weight: 500;
  color: #64748b;
  background: #f1f5f9;
  border-radius: 12px 12px 0 0;
}

.captain-schedule-show__cancelled-header i {
  color: #94a3b8;
}

.captain-schedule-show__cancelled-list {
  padding: 12px 16px;
}

.captain-schedule-show__cancelled-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 0;
  font-size: 14px;
  color: #64748b;
  border-bottom: 1px solid #f1f5f9;
}

.captain-schedule-show__cancelled-item:last-child {
  border-bottom: none;
}

/* レスポンシブ */
@media (max-width: 900px) {
  .captain-schedule-show__grid {
    grid-template-columns: 1fr;
  }

  .captain-schedule-show__sidebar {
    order: -1;
  }
}

@media (max-width: 640px) {
  .captain-schedule-show {
    padding: 16px;
  }

  .captain-schedule-show__hero {
    flex-direction: column;
    text-align: center;
    padding: 20px;
  }

  .captain-schedule-show__status-block {
    align-items: center;
  }

  .captain-schedule-show__day {
    font-size: 48px;
  }

  .captain-schedule-show__info-grid {
    grid-template-columns: 1fr;
  }

  .captain-schedule-show__price-grid {
    flex-direction: column;
  }

  .captain-schedule-show__actions {
    flex-direction: column;
  }

  .captain-schedule-show__reservation-main {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .captain-schedule-show__reservation-actions {
    width: 100%;
    justify-content: flex-start;
  }
}

/* =====================================================
   船長ダッシュボード（釣船一覧）
   ===================================================== */
.captain-dashboard {
  max-width: 1100px;
  margin: 0 auto;
  padding: 20px;
}

.captain-dashboard__hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 28px 32px;
  background: linear-gradient(135deg, #1e3a5f 0%, #2d5a87 100%);
  border-radius: 16px;
  margin-bottom: 24px;
}

.captain-dashboard__hero-content {
  flex: 1;
}

.captain-dashboard__title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 28px;
  font-weight: 700;
  color: white;
  margin: 0 0 8px 0;
}

.captain-dashboard__title i {
  color: #60a5fa;
}

.captain-dashboard__subtitle {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
}

.captain-dashboard__add-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 24px;
  background: white;
  color: #1e3a5f;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 10px;
  transition: all 0.2s;
}

.captain-dashboard__add-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.captain-dashboard__hero-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.captain-dashboard__manual-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 20px;
  background: rgba(255, 255, 255, 0.2);
  color: white;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 10px;
  border: 1px solid rgba(255, 255, 255, 0.3);
  transition: all 0.2s;
}

.captain-dashboard__manual-btn:hover {
  background: rgba(255, 255, 255, 0.3);
  transform: translateY(-2px);
}

.captain-dashboard__alerts {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 24px;
}

.captain-dashboard__alert {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 500;
}

.captain-dashboard__alert.pending {
  background: #fef3c7;
  color: #92400e;
}

.captain-dashboard__alert.pending i {
  color: #f59e0b;
}

.captain-dashboard__alert.rejected {
  background: #fee2e2;
  color: #991b1b;
}

.captain-dashboard__alert.rejected i {
  color: #dc2626;
}

.captain-dashboard__ships {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 20px;
}

/* 船カードv2 */
.captain-ship-card-v2 {
  background: white;
  border-radius: 14px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  overflow: hidden;
  transition: all 0.2s;
}

.captain-ship-card-v2:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.captain-ship-card-v2.approval_pending,
.captain-ship-card-v2.rejected {
  opacity: 0.85;
}

.captain-ship-card-v2__image {
  position: relative;
  height: 160px;
  background: #f1f5f9;
  overflow: hidden;
}

.captain-ship-card-v2__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.captain-ship-card-v2__no-image {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  color: #94a3b8;
  font-size: 48px;
}

.captain-ship-card-v2__status-overlay {
  position: absolute;
  top: 12px;
  right: 12px;
}

.captain-ship-card-v2__status-badge {
  display: inline-block;
  padding: 6px 14px;
  font-size: 13px;
  font-weight: 600;
  border-radius: 20px;
}

.captain-ship-card-v2__status-badge.approval_pending {
  background: #fef3c7;
  color: #92400e;
}

.captain-ship-card-v2__status-badge.rejected {
  background: #fee2e2;
  color: #991b1b;
}

.captain-ship-card-v2__body {
  padding: 20px;
}

.captain-ship-card-v2__name {
  font-size: 18px;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 12px 0;
}

.captain-ship-card-v2__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 14px;
  color: #64748b;
  margin-bottom: 16px;
}

.captain-ship-card-v2__meta i {
  margin-right: 4px;
  color: #94a3b8;
}

.captain-ship-card-v2__actions {
  display: flex;
  gap: 10px;
}

.captain-ship-card-v2__btn {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 16px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 8px;
  transition: all 0.2s;
}

.captain-ship-card-v2__btn.primary {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  color: white;
}

.captain-ship-card-v2__btn.primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

.captain-ship-card-v2__btn.secondary {
  background: #f1f5f9;
  color: #475569;
}

.captain-ship-card-v2__btn.secondary:hover {
  background: #e2e8f0;
}

.captain-ship-card-v2__notice {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px;
  border-radius: 8px;
  font-size: 13px;
  margin-bottom: 12px;
}

.captain-ship-card-v2__notice.pending {
  background: #fef9e7;
  color: #92400e;
}

.captain-ship-card-v2__notice.rejected {
  background: #fef2f2;
  color: #991b1b;
}

.captain-ship-card-v2__pending-reservations {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  border: 1px solid #fcd34d;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #92400e;
  margin-bottom: 12px;
}

.captain-ship-card-v2__pending-reservations i {
  color: #f59e0b;
}

.captain-ship-card-v2__rejection-reason {
  font-size: 13px;
  color: #64748b;
  margin-bottom: 12px;
  padding: 10px 12px;
  background: #f8fafc;
  border-radius: 6px;
}

.captain-ship-card-v2__link {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 10px;
  color: #3b82f6;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  border-radius: 8px;
  transition: background 0.2s;
}

.captain-ship-card-v2__link:hover {
  background: #f1f5f9;
}

/* ダッシュボード空状態 */
.captain-dashboard__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 60px 20px;
  background: white;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.captain-dashboard__empty-icon {
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1f5f9;
  border-radius: 50%;
  margin-bottom: 20px;
}

.captain-dashboard__empty-icon i {
  font-size: 36px;
  color: #94a3b8;
}

.captain-dashboard__empty h2 {
  font-size: 20px;
  color: #1e293b;
  margin: 0 0 8px 0;
}

.captain-dashboard__empty p {
  font-size: 15px;
  color: #64748b;
  margin: 0 0 24px 0;
}

/* =====================================================
   釣船詳細ページ
   ===================================================== */
.captain-ship-show {
  max-width: 1100px;
  margin: 0 auto;
  padding: 20px;
}

.captain-ship-show__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #64748b;
  font-size: 14px;
  text-decoration: none;
  margin-bottom: 20px;
  transition: color 0.2s;
}

.captain-ship-show__back:hover {
  color: #3b82f6;
}

/* ヒーローセクション */
.captain-ship-show__hero {
  position: relative;
  height: 280px;
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 24px;
}

.captain-ship-show__hero-image {
  position: absolute;
  inset: 0;
}

.captain-ship-show__hero-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.captain-ship-show__no-image {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100%;
  background: linear-gradient(135deg, #e2e8f0 0%, #f1f5f9 100%);
  color: #94a3b8;
  font-size: 64px;
}

.captain-ship-show__hero-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  padding: 24px;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.7) 0%, transparent 100%);
}

.captain-ship-show__hero-content {
  flex: 1;
}

.captain-ship-show__title {
  font-size: 28px;
  font-weight: 700;
  color: white;
  margin: 0 0 8px 0;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.captain-ship-show__hero-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.9);
}

.captain-ship-show__hero-meta i {
  margin-right: 4px;
}

.captain-ship-show__status-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  font-size: 14px;
  font-weight: 600;
  border-radius: 20px;
}

.captain-ship-show__status-badge.approved {
  background: #dcfce7;
  color: #166534;
}

.captain-ship-show__status-badge.pending {
  background: #fef3c7;
  color: #92400e;
}

.captain-ship-show__status-badge.rejected {
  background: #fee2e2;
  color: #991b1b;
}

/* 通知 */
.captain-ship-show__notice {
  display: flex;
  gap: 16px;
  padding: 20px;
  border-radius: 12px;
  margin-bottom: 24px;
}

.captain-ship-show__notice.pending {
  background: #fef9e7;
  border: 1px solid #fcd34d;
}

.captain-ship-show__notice.pending > i {
  color: #f59e0b;
  font-size: 24px;
}

.captain-ship-show__notice.rejected {
  background: #fef2f2;
  border: 1px solid #fca5a5;
}

.captain-ship-show__notice.rejected > i {
  color: #dc2626;
  font-size: 24px;
}

.captain-ship-show__notice strong {
  display: block;
  font-size: 16px;
  margin-bottom: 4px;
}

.captain-ship-show__notice p {
  font-size: 14px;
  color: #64748b;
  margin: 0;
}

.captain-ship-show__rejection-reason {
  margin-top: 12px;
  padding: 12px;
  background: rgba(0, 0, 0, 0.05);
  border-radius: 8px;
}

.captain-ship-show__reapply-actions {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}

/* グリッド */
.captain-ship-show__grid {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 24px;
  align-items: start;
}

.captain-ship-show__main {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* カード */
.captain-ship-show__card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  padding: 20px;
}

.captain-ship-show__card.registration {
  background: linear-gradient(135deg, #f0fdf4 0%, #ecfdf5 100%);
  border: 1px solid #86efac;
}

.captain-ship-show__card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 600;
  color: #334155;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}

.captain-ship-show__card-header i {
  color: #3b82f6;
}

.captain-ship-show__registration-icon {
  font-size: 20px;
}

/* 情報グリッド */
.captain-ship-show__info-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.captain-ship-show__info-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.captain-ship-show__info-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.captain-ship-show__info-value {
  font-size: 16px;
  font-weight: 600;
  color: #1e293b;
}

.captain-ship-show__info-value.price {
  color: #2563eb;
}

.captain-ship-show__x-link {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
}

.captain-ship-show__x-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: #0f1419;
  color: white;
  border-radius: 6px;
  text-decoration: none;
  transition: all 0.2s ease;
}

.captain-ship-show__x-button:hover {
  background: #272c30;
  transform: translateY(-1px);
}

.captain-ship-show__x-button i {
  font-size: 14px;
}

.captain-ship-show__description {
  margin-top: 16px;
}

.captain-ship-show__description-text {
  font-size: 14px;
  color: #475569;
  line-height: 1.7;
}

.captain-ship-show__description-text p {
  margin: 0;
}

/* 登録情報 */
.captain-ship-show__registration-details {
  display: flex;
  gap: 24px;
  margin-bottom: 16px;
}

.captain-ship-show__registration-item {
  display: flex;
  gap: 8px;
  font-size: 14px;
}

.captain-ship-show__registration-item strong {
  color: #64748b;
}

.captain-ship-show__certificate {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px dashed #86efac;
}

.captain-ship-show__certificate-img {
  display: block;
  max-width: 100%;
  border-radius: 8px;
  margin-top: 12px;
}

/* 地図 */
.captain-ship-show__map {
  margin-bottom: 16px;
}

.captain-ship-show__map-container {
  height: 200px;
  border-radius: 8px;
  overflow: hidden;
}

/* セクション */
.captain-ship-show__section {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px dashed #e2e8f0;
}

.captain-ship-show__section:first-child {
  margin-top: 0;
  padding-top: 0;
  border-top: none;
}

/* サイドバー */
.captain-ship-show__sidebar {
  display: flex;
  flex-direction: column;
  gap: 20px;
  min-width: 0;
  overflow: hidden;
}

/* チケット情報カード */
.captain-ship-show__ticket-card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

.captain-ship-show__ticket-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 20px;
  background: #f8fafc;
  font-size: 14px;
  font-weight: 600;
  color: #1e293b;
  border-bottom: 1px solid #f1f5f9;
}

.captain-ship-show__ticket-header i {
  color: #f59e0b;
}

.captain-ship-show__ticket-content {
  padding: 16px 20px;
  box-sizing: border-box;
}

.captain-ship-show__ticket-status {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 14px;
}

.captain-ship-show__ticket-date {
  font-size: 14px;
  color: #1e293b;
}

.captain-ship-show__ticket-days {
  font-size: 13px;
  color: #64748b;
}

.captain-ship-show__ticket-status.ok .captain-ship-show__ticket-date {
  color: #059669;
}

.captain-ship-show__ticket-status.warning .captain-ship-show__ticket-date {
  color: #d97706;
}

.captain-ship-show__ticket-status.warning .captain-ship-show__ticket-days {
  color: #d97706;
}

.captain-ship-show__ticket-status.expired .captain-ship-show__ticket-date {
  color: #dc2626;
}

.captain-ship-show__ticket-status.expired .captain-ship-show__ticket-days {
  color: #dc2626;
}

.captain-ship-show__ticket-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 12px 16px;
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: white;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s;
  box-sizing: border-box;
}

.captain-ship-show__ticket-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(245, 158, 11, 0.3);
}

.captain-ship-show__ticket-btn.disabled {
  background: #d1d5db;
  color: #6b7280;
  cursor: not-allowed;
  pointer-events: none;
}

.captain-ship-show__ticket-btn.disabled:hover {
  transform: none;
  box-shadow: none;
}

.captain-ship-show__action-card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  padding: 20px;
}

.captain-ship-show__action-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  color: #334155;
  margin-bottom: 16px;
}

.captain-ship-show__action-header i {
  color: #3b82f6;
}

.captain-ship-show__action-buttons {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.captain-ship-show__action-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 20px;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 10px;
  transition: all 0.2s;
}

.captain-ship-show__action-btn.primary {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  color: white;
}

.captain-ship-show__action-btn.primary:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

.captain-ship-show__action-btn.secondary {
  background: #f1f5f9;
  color: #475569;
}

.captain-ship-show__action-btn.secondary:hover {
  background: #e2e8f0;
}

.captain-ship-show__action-notice {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 20px;
  font-size: 14px;
  color: #64748b;
  background: #f8fafc;
  border-radius: 10px;
  margin: 0;
}

.captain-ship-show__action-notice i {
  color: #94a3b8;
}

/* 危険なアクション */
.captain-ship-show__danger-card {
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 12px;
  padding: 20px;
  overflow: hidden;
}

.captain-ship-show__danger-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  font-weight: 600;
  color: #991b1b;
  margin-bottom: 8px;
}

.captain-ship-show__danger-text {
  font-size: 13px;
  color: #b91c1c;
  margin: 0 0 16px 0;
}

.captain-ship-show__danger-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 12px;
  background: #dc2626;
  color: white;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 8px;
  transition: background 0.2s;
  box-sizing: border-box;
}

.captain-ship-show__danger-btn:hover {
  background: #b91c1c;
}

.captain-ship-show__danger-btn.disabled {
  background: #d1d5db;
  color: #6b7280;
  cursor: not-allowed;
}

.captain-ship-show__danger-btn.disabled:hover {
  background: #d1d5db;
}

/* =====================================================
   スケジュール一覧ページ
   ===================================================== */
.captain-schedules {
  max-width: 900px;
  margin: 0 auto;
  padding: 20px;
}

.captain-schedules__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #64748b;
  font-size: 14px;
  text-decoration: none;
  margin-bottom: 20px;
  transition: color 0.2s;
}

.captain-schedules__back:hover {
  color: #3b82f6;
}

.captain-schedules__hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 28px;
  background: linear-gradient(135deg, #1e3a5f 0%, #2d5a87 100%);
  border-radius: 16px;
  margin-bottom: 24px;
}

.captain-schedules__hero-content {
  flex: 1;
}

.captain-schedules__title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 24px;
  font-weight: 700;
  color: white;
  margin: 0 0 6px 0;
}

.captain-schedules__title i {
  color: #60a5fa;
}

.captain-schedules__subtitle {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
}

.captain-schedules__add-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 20px;
  background: white;
  color: #1e3a5f;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  border-radius: 10px;
  transition: all 0.2s;
}

.captain-schedules__add-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.captain-schedules__alert {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  background: #fef3c7;
  color: #92400e;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 20px;
}

.captain-schedules__alert i {
  color: #f59e0b;
}

.captain-schedules__alert.warning {
  background: #fee2e2;
  color: #991b1b;
}

.captain-schedules__alert.warning i {
  color: #dc2626;
}

.captain-schedules__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.captain-schedules__section {
  margin-bottom: 24px;
}

.captain-schedules__section-title {
  font-size: 18px;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* スケジュールカードv2 */
.captain-schedule-card-v2 {
  display: grid;
  grid-template-columns: 100px 1fr auto;
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  text-decoration: none;
  overflow: hidden;
  transition: all 0.2s;
}

.captain-schedule-card-v2:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

.captain-schedule-card-v2.past {
  opacity: 0.6;
}

.captain-schedule-card-v2.today {
  box-shadow: 0 0 0 2px #fbbf24, 0 4px 16px rgba(251, 191, 36, 0.3);
}

.captain-schedule-card-v2__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 16px 12px;
  background: #1e3a5f;
  color: white;
  gap: 2px;
}

.captain-schedule-card-v2__month {
  font-size: 14px;
  font-weight: 500;
  opacity: 0.9;
}

.captain-schedule-card-v2__month small {
  font-size: 11px;
}

.captain-schedule-card-v2__day {
  font-size: 32px;
  font-weight: 700;
  line-height: 1;
}

.captain-schedule-card-v2__weekday {
  font-size: 13px;
  font-weight: 500;
  margin-top: 2px;
}

.captain-schedule-card-v2__date.sunday .captain-schedule-card-v2__weekday {
  color: #f87171;
}

.captain-schedule-card-v2__date.saturday .captain-schedule-card-v2__weekday {
  color: #60a5fa;
}

.captain-schedule-card-v2__today-badge {
  margin-top: 6px;
  padding: 3px 10px;
  background: #fbbf24;
  color: #1e293b;
  font-size: 11px;
  font-weight: 700;
  border-radius: 10px;
}

.captain-schedule-card-v2__main {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 16px 20px;
}

.captain-schedule-card-v2__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.captain-schedule-card-v2__fish {
  font-size: 16px;
  font-weight: 600;
  color: #1e293b;
}

.captain-schedule-card-v2__fish i {
  color: #f59e0b;
  margin-right: 6px;
}

.captain-schedule-card-v2__details {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 14px;
  color: #475569;
}

.captain-schedule-card-v2__details i {
  margin-right: 4px;
  color: #94a3b8;
}

.captain-schedule-card-v2__reservations {
  display: flex;
  align-items: center;
  gap: 16px;
}

.captain-schedule-card-v2__capacity {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  max-width: 200px;
}

.captain-schedule-card-v2__capacity-bar {
  flex: 1;
  height: 6px;
  background: #e2e8f0;
  border-radius: 3px;
  overflow: hidden;
}

.captain-schedule-card-v2__capacity-fill {
  height: 100%;
  background: linear-gradient(90deg, #3b82f6 0%, #2563eb 100%);
  border-radius: 3px;
}

.captain-schedule-card-v2__capacity-text {
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  white-space: nowrap;
}

/* 最低出船人数未満の警告スタイル */
.captain-schedule-card-v2__capacity.below-minimum .captain-schedule-card-v2__capacity-bar {
  background: #fef3c7;
}

.captain-schedule-card-v2__capacity.below-minimum .captain-schedule-card-v2__capacity-fill {
  background: linear-gradient(90deg, #f59e0b 0%, #d97706 100%);
}

.captain-schedule-card-v2__capacity.below-minimum .captain-schedule-card-v2__capacity-text {
  color: #b45309;
}

.captain-schedule-card-v2__minimum-warning {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  color: #b45309;
  background: #fef3c7;
  border-radius: 10px;
  white-space: nowrap;
}

.captain-schedule-card-v2__minimum-warning i {
  font-size: 10px;
}

.captain-schedule-card-v2__badges {
  display: flex;
  gap: 8px;
}

.captain-schedule-card-v2__badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 500;
  border-radius: 12px;
}

.captain-schedule-card-v2__badge.confirmed {
  background: #dcfce7;
  color: #166534;
}

.captain-schedule-card-v2__badge.pending {
  background: #fef3c7;
  color: #92400e;
}

.captain-schedule-card-v2__empty {
  font-size: 13px;
  color: #94a3b8;
}

.captain-schedule-card-v2__note {
  font-size: 13px;
  color: #64748b;
}

.captain-schedule-card-v2__note i {
  margin-right: 4px;
  color: #94a3b8;
}

.captain-schedule-card-v2__arrow {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 16px;
  color: #94a3b8;
}

/* 空状態 */
.captain-schedules__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: 60px 20px;
  background: white;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.captain-schedules__empty-icon {
  width: 80px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1f5f9;
  border-radius: 50%;
  margin-bottom: 20px;
}

.captain-schedules__empty-icon i {
  font-size: 36px;
  color: #94a3b8;
}

.captain-schedules__empty h2 {
  font-size: 20px;
  color: #1e293b;
  margin: 0 0 8px 0;
}

.captain-schedules__empty p {
  font-size: 15px;
  color: #64748b;
  margin: 0 0 24px 0;
}

/* =====================================================
   予約詳細ページ
   ===================================================== */
.captain-reservation-show {
  max-width: var(--layout-width-wide);
  margin: 0 auto;
  padding: 20px;
}

.captain-reservation-show__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #64748b;
  font-size: 14px;
  text-decoration: none;
  margin-bottom: 20px;
  transition: color 0.2s;
}

.captain-reservation-show__back:hover {
  color: #3b82f6;
}

/* ヒーロー */
.captain-reservation-show__hero {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 28px;
  background: linear-gradient(135deg, #1e3a5f 0%, #2d5a87 100%);
  border-radius: 16px;
  margin-bottom: 24px;
}

.captain-reservation-show__date {
  display: flex;
  align-items: baseline;
  gap: 4px;
  color: white;
}

.captain-reservation-show__month {
  font-size: 20px;
  font-weight: 500;
}

.captain-reservation-show__month small {
  font-size: 14px;
}

.captain-reservation-show__day {
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
}

.captain-reservation-show__weekday {
  font-size: 16px;
  font-weight: 500;
  margin-left: 8px;
}

.captain-reservation-show__date.sunday .captain-reservation-show__weekday {
  color: #f87171;
}

.captain-reservation-show__date.saturday .captain-reservation-show__weekday {
  color: #60a5fa;
}

.captain-reservation-show__hero-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 12px;
}

.captain-reservation-show__summary {
  display: flex;
  gap: 20px;
  color: white;
}

.captain-reservation-show__people {
  font-size: 24px;
  font-weight: 700;
}

.captain-reservation-show__price {
  font-size: 24px;
  font-weight: 700;
}

/* グリッド */
.captain-reservation-show__grid {
  display: grid;
  grid-template-columns: 1fr 340px;
  gap: 24px;
  align-items: start;
}

.captain-reservation-show__main {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* カード */
.captain-reservation-show__card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  padding: 20px;
}

.captain-reservation-show__card.cancelled {
  background: #fef2f2;
  border: 1px solid #fecaca;
}

.captain-reservation-show__card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 600;
  color: #334155;
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid #e2e8f0;
}

.captain-reservation-show__card-header i {
  color: #3b82f6;
}

.captain-reservation-show__card.cancelled .captain-reservation-show__card-header {
  border-bottom-color: #fecaca;
}

.captain-reservation-show__card.cancelled .captain-reservation-show__card-header i {
  color: #dc2626;
}

/* ユーザー情報 */
.captain-reservation-show__user-name {
  margin-bottom: 16px;
}

.captain-reservation-show__name-display {
  font-size: 20px;
  font-weight: 700;
  color: #1e293b;
}

.captain-reservation-show__real-name {
  font-size: 14px;
  color: #64748b;
  margin-left: 8px;
}

.captain-reservation-show__contact-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.captain-reservation-show__contact-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.captain-reservation-show__contact-label {
  font-size: 12px;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.captain-reservation-show__phone {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 16px;
  font-weight: 600;
  color: #3b82f6;
  text-decoration: none;
}

.captain-reservation-show__phone:hover {
  text-decoration: underline;
}

.captain-reservation-show__warning {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 16px;
  padding: 12px;
  background: #fef3c7;
  color: #92400e;
  font-size: 14px;
  border-radius: 8px;
}

.captain-reservation-show__warning i {
  color: #f59e0b;
}

/* 情報行 */
.captain-reservation-show__info-row {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid #f1f5f9;
}

.captain-reservation-show__info-row:last-child {
  border-bottom: none;
}

.captain-reservation-show__info-label {
  font-size: 14px;
  color: #64748b;
}

.captain-reservation-show__info-value {
  font-size: 14px;
  font-weight: 500;
  color: #1e293b;
}

.captain-reservation-show__info-value.time {
  font-size: 18px;
  font-weight: 700;
  font-family: "SF Mono", "Monaco", monospace;
}

.captain-reservation-show__info-value.fish {
  color: #f59e0b;
}

/* 予約詳細 */
.captain-reservation-show__detail-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 16px;
}

.captain-reservation-show__detail-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 16px;
  background: #f8fafc;
  border-radius: 10px;
}

.captain-reservation-show__detail-label {
  font-size: 12px;
  color: #64748b;
  margin-bottom: 4px;
}

.captain-reservation-show__detail-value {
  font-size: 28px;
  font-weight: 700;
  color: #1e293b;
}

.captain-reservation-show__detail-value small {
  font-size: 14px;
  font-weight: 500;
}

.captain-reservation-show__detail-value.price {
  color: #2563eb;
}

/* 料金内訳テーブル */
.captain-reservation-show__price-breakdown {
  margin-bottom: 16px;
}

.captain-reservation-show__price-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.captain-reservation-show__price-table th,
.captain-reservation-show__price-table td {
  padding: 10px 12px;
  text-align: right;
}

.captain-reservation-show__price-table th:first-child,
.captain-reservation-show__price-table td:first-child {
  text-align: left;
}

.captain-reservation-show__price-table thead th {
  font-size: 12px;
  font-weight: 500;
  color: #64748b;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

.captain-reservation-show__price-table tbody td {
  border-bottom: 1px solid #f1f5f9;
}

.captain-reservation-show__price-table tbody tr.female td:first-child {
  color: #be185d;
}

.captain-reservation-show__price-table tbody tr.child td:first-child {
  color: #1d4ed8;
}

.captain-reservation-show__price-table tfoot td {
  font-weight: 600;
  background: #f8fafc;
  border-top: 2px solid #e2e8f0;
}

.captain-reservation-show__price-table tfoot td:last-child {
  color: #2563eb;
}

/* ノート */
.captain-reservation-show__note {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px dashed #e2e8f0;
}

.captain-reservation-show__note-content {
  margin-top: 8px;
  padding: 12px;
  background: #f8fafc;
  border-radius: 8px;
  font-size: 14px;
  color: #475569;
  line-height: 1.6;
}

.captain-reservation-show__note-content p {
  margin: 0;
}

/* サイドバー */
.captain-reservation-show__sidebar {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* アクションカード */
.captain-reservation-show__action-card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  padding: 20px;
}

.captain-reservation-show__action-card.approve {
  background: #f0fdf4;
  border: 1px solid #86efac;
}

.captain-reservation-show__action-card.reject {
  background: #fef2f2;
  border: 1px solid #fecaca;
}

.captain-reservation-show__action-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  color: #334155;
  margin-bottom: 12px;
}

.captain-reservation-show__action-header i {
  color: #3b82f6;
}

.captain-reservation-show__action-header.approve {
  color: #166534;
}

.captain-reservation-show__action-header.approve i {
  color: #22c55e;
}

.captain-reservation-show__action-header.reject {
  color: #991b1b;
}

.captain-reservation-show__action-header.reject i {
  color: #dc2626;
}

.captain-reservation-show__action-desc {
  font-size: 13px;
  color: #64748b;
  margin: 0 0 16px 0;
}

.captain-reservation-show__action-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  padding: 14px 20px;
  font-size: 15px;
  font-weight: 600;
  border: none;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s;
}

.captain-reservation-show__action-btn.approve {
  background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
  color: white;
}

.captain-reservation-show__action-btn.approve:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(22, 163, 74, 0.3);
}

.captain-reservation-show__action-btn.reject {
  background: #dc2626;
  color: white;
}

.captain-reservation-show__action-btn.reject:hover {
  background: #b91c1c;
}

.captain-reservation-show__action-btn.complete {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  color: white;
}

.captain-reservation-show__action-btn.complete:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.3);
}

.captain-reservation-show__action-btn.no-show {
  background: #f1f5f9;
  color: #64748b;
  border: 1px solid #e2e8f0;
}

.captain-reservation-show__action-btn.no-show:hover {
  background: #fee2e2;
  color: #dc2626;
  border-color: #fecaca;
}

.captain-reservation-show__action-buttons {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

/* 却下フォーム */
.captain-reservation-show__reject-form {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.captain-reservation-show__form-group label {
  display: block;
  font-size: 13px;
  color: #64748b;
  margin-bottom: 6px;
}

.captain-reservation-show__form-group textarea {
  width: 100%;
  padding: 10px 12px;
  font-size: 14px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  resize: vertical;
  box-sizing: border-box;
}

.captain-reservation-show__form-group textarea:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

/* ステータスカード */
.captain-reservation-show__status-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 24px 20px;
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  text-align: center;
}

.captain-reservation-show__status-card i {
  font-size: 32px;
}

.captain-reservation-show__status-card span {
  font-size: 16px;
  font-weight: 600;
}

.captain-reservation-show__status-card p {
  font-size: 13px;
  color: #64748b;
  margin: 0;
}

.captain-reservation-show__status-card.completed {
  background: #f0fdf4;
  border: 1px solid #86efac;
}

.captain-reservation-show__status-card.completed i {
  color: #22c55e;
}

.captain-reservation-show__status-card.completed span {
  color: #166534;
}

.captain-reservation-show__status-card.no-show {
  background: #fef2f2;
  border: 1px solid #fecaca;
}

.captain-reservation-show__status-card.no-show i {
  color: #dc2626;
}

.captain-reservation-show__status-card.no-show span {
  color: #991b1b;
}

.captain-reservation-show__status-card.cancelled {
  background: #f1f5f9;
}

.captain-reservation-show__status-card.cancelled i {
  color: #94a3b8;
}

.captain-reservation-show__status-card.cancelled span {
  color: #64748b;
}

.captain-reservation-show__status-card.confirmed {
  background: #eff6ff;
  border: 1px solid #bfdbfe;
}

.captain-reservation-show__status-card.confirmed i {
  color: #3b82f6;
}

.captain-reservation-show__status-card.confirmed span {
  color: #1e40af;
}

/* =====================================================
   船長向け新デザイン レスポンシブ
   ===================================================== */
@media (max-width: 900px) {
  .captain-ship-show__grid,
  .captain-reservation-show__grid {
    grid-template-columns: 1fr;
  }

  .captain-ship-show__sidebar,
  .captain-reservation-show__sidebar {
    order: -1;
  }
}

@media (max-width: 768px) {
  .captain-dashboard__hero,
  .captain-schedules__hero,
  .captain-reservation-show__hero {
    flex-direction: column;
    text-align: center;
    padding: 20px;
  }

  .captain-dashboard__hero-actions {
    flex-direction: column;
    width: 100%;
    gap: 8px;
  }

  .captain-dashboard__add-btn,
  .captain-schedules__add-btn {
    width: 100%;
    justify-content: center;
  }

  .captain-dashboard__manual-btn {
    width: 100%;
    justify-content: center;
    padding: 12px 20px;
  }

  .captain-dashboard__ships {
    grid-template-columns: 1fr;
  }

  .captain-ship-show__hero {
    height: 220px;
  }

  .captain-ship-show__title {
    font-size: 22px;
  }

  .captain-ship-show__info-grid {
    grid-template-columns: 1fr;
  }

  .captain-schedule-card-v2 {
    grid-template-columns: 80px 1fr;
  }

  .captain-schedule-card-v2__arrow {
    display: none;
  }

  .captain-schedule-card-v2__day {
    font-size: 26px;
  }

  .captain-schedule-card-v2__reservations {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .captain-schedule-card-v2__capacity {
    max-width: none;
    width: 100%;
  }

  .captain-reservation-show__hero-right {
    align-items: center;
  }

  .captain-reservation-show__day {
    font-size: 36px;
  }

  .captain-reservation-show__contact-grid {
    grid-template-columns: 1fr;
  }

  .captain-reservation-show__detail-grid {
    grid-template-columns: 1fr;
  }
}

/* =====================================================
   スケジュールフォームページ
   ===================================================== */
.captain-schedule-form-page {
  max-width: var(--layout-width-form);
  margin: 0 auto;
  padding: 20px;
  overflow-x: hidden;
}

.captain-schedule-form-page__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #64748b;
  font-size: 14px;
  text-decoration: none;
  margin-bottom: 20px;
  transition: color 0.2s;
}

.captain-schedule-form-page__back:hover {
  color: #3b82f6;
}

/* ヒーロー */
.captain-schedule-form-page__hero {
  display: flex;
  align-items: center;
  gap: 24px;
  padding: 24px 28px;
  background: linear-gradient(135deg, #1e3a5f 0%, #2d5a87 100%);
  border-radius: 16px;
  margin-bottom: 24px;
}

.captain-schedule-form-page__hero.new {
  justify-content: flex-start;
}

.captain-schedule-form-page__hero-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: white;
  min-width: 90px;
}

.captain-schedule-form-page__month {
  font-size: 16px;
  font-weight: 500;
  opacity: 0.9;
}

.captain-schedule-form-page__month small {
  font-size: 12px;
}

.captain-schedule-form-page__day {
  font-size: 48px;
  font-weight: 700;
  line-height: 1;
}

.captain-schedule-form-page__weekday {
  font-size: 14px;
  font-weight: 500;
  margin-top: 4px;
}

.captain-schedule-form-page__hero-date.sunday .captain-schedule-form-page__weekday {
  color: #f87171;
}

.captain-schedule-form-page__hero-date.saturday .captain-schedule-form-page__weekday {
  color: #60a5fa;
}

.captain-schedule-form-page__hero-icon {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.15);
  border-radius: 16px;
}

.captain-schedule-form-page__hero-icon i {
  font-size: 28px;
  color: white;
}

.captain-schedule-form-page__hero-content {
  flex: 1;
}

.captain-schedule-form-page__title {
  font-size: 24px;
  font-weight: 700;
  color: white;
  margin: 0 0 4px 0;
}

.captain-schedule-form-page__title i {
  margin-right: 8px;
  color: #60a5fa;
}

.captain-schedule-form-page__subtitle {
  font-size: 14px;
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
}

/* フォーム本体 */
.captain-schedule-form-page__body {
  background: white;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  padding: 24px;
  overflow: hidden;
}

/* =====================================================
   スケジュールフォーム v2
   ===================================================== */
.captain-schedule-form-v2 {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.captain-schedule-form-v2 *,
.captain-schedule-form-v2 *::before,
.captain-schedule-form-v2 *::after {
  box-sizing: border-box;
}

/* エラー */
.captain-schedule-form-v2__errors {
  display: flex;
  gap: 16px;
  padding: 16px 20px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 12px;
}

.captain-schedule-form-v2__errors-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  color: #dc2626;
}

.captain-schedule-form-v2__errors-content strong {
  display: block;
  font-size: 14px;
  color: #991b1b;
  margin-bottom: 8px;
}

.captain-schedule-form-v2__errors-content ul {
  margin: 0;
  padding-left: 20px;
  font-size: 13px;
  color: #b91c1c;
}

.captain-schedule-form-v2__errors-content li {
  margin-bottom: 4px;
}

/* 警告 */
.captain-schedule-form-v2__warning {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  background: #fef3c7;
  border: 1px solid #fcd34d;
  border-radius: 12px;
  font-size: 14px;
  color: #92400e;
}

.captain-schedule-form-v2__warning i {
  color: #f59e0b;
}

/* カード */
.captain-schedule-form-v2__card {
  background: #f8fafc;
  border-radius: 12px;
  overflow: hidden;
}

.captain-schedule-form-v2__card-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  background: #f1f5f9;
  font-size: 15px;
  font-weight: 600;
  color: #334155;
}

.captain-schedule-form-v2__card-header i {
  color: #3b82f6;
}

.captain-schedule-form-v2__card-body {
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  overflow: hidden;
}

/* フィールド */
.captain-schedule-form-v2__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.captain-schedule-form-v2__field.grow {
  flex: 1;
}

.captain-schedule-form-v2__row {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  width: 100%;
}

.captain-schedule-form-v2__row > * {
  min-width: 0;
}

.captain-schedule-form-v2__label {
  font-size: 14px;
  font-weight: 600;
  color: #334155;
}

.captain-schedule-form-v2__label.required::after {
  content: " *";
  color: #dc2626;
}

.captain-schedule-form-v2__input,
.captain-schedule-form-v2__select,
.captain-schedule-form-v2__textarea {
  width: 100%;
  max-width: 100%;
  padding: 12px 14px;
  font-size: 15px;
  font-size: 16px; /* iOS zoom防止 */
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  background: white;
  transition: all 0.2s;
}

.captain-schedule-form-v2__input:focus,
.captain-schedule-form-v2__select:focus,
.captain-schedule-form-v2__textarea:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.captain-schedule-form-v2__textarea {
  resize: vertical;
  min-height: 80px;
}

.captain-schedule-form-v2__hint {
  font-size: 12px;
  color: #64748b;
  margin: 0;
}

.captain-schedule-form-v2__charter-note {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  background: #f0f9ff;
  border-radius: 8px;
  font-size: 14px;
  color: #0369a1;
  margin: 0;
}

.captain-schedule-form-v2__charter-note i {
  color: #0ea5e9;
}

/* 入力グループ */
.captain-schedule-form-v2__input-group {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 100%;
}

.captain-schedule-form-v2__input-group .captain-schedule-form-v2__input {
  flex: 1;
  min-width: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-right: none;
}

.captain-schedule-form-v2__input-suffix {
  flex-shrink: 0;
  padding: 12px 14px;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-left: none;
  border-radius: 0 8px 8px 0;
  font-size: 14px;
  color: #64748b;
  white-space: nowrap;
}

/* ロック状態 */
.captain-schedule-form-v2__locked {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 14px;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  font-size: 15px;
  color: #64748b;
}

.captain-schedule-form-v2__locked i {
  color: #94a3b8;
}

/* チェックボックス */
.captain-schedule-form-v2__checkboxes {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
}

.captain-schedule-form-v2__checkbox-item {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  padding: 14px 16px;
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  cursor: pointer;
  transition: all 0.2s;
}

.captain-schedule-form-v2__checkbox-item:hover {
  border-color: #3b82f6;
}

.captain-schedule-form-v2__checkbox-item:has(.captain-schedule-form-v2__checkbox:checked) {
  background: #eff6ff;
  border-color: #3b82f6;
}

.captain-schedule-form-v2__checkbox {
  width: 18px;
  height: 18px;
  accent-color: #3b82f6;
}

.captain-schedule-form-v2__checkbox-label {
  font-size: 14px;
  font-weight: 600;
  color: #1e293b;
}

.captain-schedule-form-v2__checkbox-label i {
  margin-right: 4px;
  color: #3b82f6;
}

.captain-schedule-form-v2__checkbox-hint {
  width: 100%;
  font-size: 12px;
  color: #64748b;
  padding-left: 28px;
}

/* ステータスオプション */
.captain-schedule-form-v2__status-options {
  display: flex;
  gap: 12px;
}

.captain-schedule-form-v2__status-option {
  flex: 1;
  position: relative;
}

.captain-schedule-form-v2__radio {
  position: absolute;
  opacity: 0;
}

.captain-schedule-form-v2__status-label {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 16px;
  background: white;
  border: 2px solid #e2e8f0;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  transition: all 0.2s;
}

.captain-schedule-form-v2__status-label:hover {
  border-color: #94a3b8;
}

.captain-schedule-form-v2__radio:checked + .captain-schedule-form-v2__status-label.open {
  background: #dcfce7;
  border-color: #22c55e;
  color: #166534;
}

.captain-schedule-form-v2__radio:checked + .captain-schedule-form-v2__status-label.open i {
  color: #22c55e;
}

.captain-schedule-form-v2__radio:checked + .captain-schedule-form-v2__status-label.full {
  background: #fef3c7;
  border-color: #f59e0b;
  color: #92400e;
}

.captain-schedule-form-v2__radio:checked + .captain-schedule-form-v2__status-label.full i {
  color: #f59e0b;
}

.captain-schedule-form-v2__radio:checked + .captain-schedule-form-v2__status-label.cancelled {
  background: #fee2e2;
  border-color: #dc2626;
  color: #991b1b;
}

.captain-schedule-form-v2__radio:checked + .captain-schedule-form-v2__status-label.cancelled i {
  color: #dc2626;
}

/* 無効化されたステータスオプション（仕立ての場合の受付中など） */
.captain-schedule-form-v2__status-option.disabled .captain-schedule-form-v2__status-label {
  background: #f1f5f9;
  border-color: #e2e8f0;
  color: #94a3b8;
  cursor: not-allowed;
  opacity: 0.6;
}

.captain-schedule-form-v2__status-option.disabled .captain-schedule-form-v2__status-label:hover {
  border-color: #e2e8f0;
}

/* ロックされたチェックボックス表示 */
.captain-schedule-form-v2__locked-checkboxes {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.captain-schedule-form-v2__locked-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  color: #166534;
}

.captain-schedule-form-v2__locked-tag i {
  color: #22c55e;
}

.captain-schedule-form-v2__locked-tag.disabled {
  background: #f8fafc;
  border-color: #e2e8f0;
  color: #94a3b8;
}

/* 送信ボタン */
.captain-schedule-form-v2__actions {
  display: flex;
  justify-content: center;
  padding-top: 8px;
}

.captain-schedule-form-v2__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 200px;
  padding: 16px 32px;
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  color: white;
  font-size: 16px;
  font-weight: 600;
  border: none;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.2s;
}

.captain-schedule-form-v2__submit:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(37, 99, 235, 0.4);
}

/* レスポンシブ */
@media (max-width: 640px) {
  .captain-schedule-form-page {
    padding: 16px;
  }

  .captain-schedule-form-page__hero {
    flex-direction: column;
    text-align: center;
    padding: 20px;
  }

  .captain-schedule-form-page__day {
    font-size: 36px;
  }

  .captain-schedule-form-page__body {
    padding: 16px;
  }

  .captain-schedule-form-v2__row {
    grid-template-columns: 1fr;
  }

  .captain-schedule-form-v2__checkboxes {
    grid-template-columns: 1fr;
  }

  .captain-schedule-form-v2__status-options {
    flex-direction: column;
  }

  .captain-schedule-form-v2__submit {
    width: 100%;
  }
}

/* =====================================================
   予約関連（ユーザー向け）
   ===================================================== */
.reservations-container,
.reservation-detail-container,
.reservation-form-container {
  max-width: var(--layout-width-compact);
  margin: 0 auto;
  padding: 20px;
}

.reservations-header,
.reservation-detail-header,
.reservation-form-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}

.reservations-header h1,
.reservation-detail-header h1,
.reservation-form-header h1 {
  font-size: 1.5em;
  color: #1e293b;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
}

.reservations-header h1 i,
.reservation-detail-header h1 i,
.reservation-form-header h1 i {
  color: #3b82f6;
}

.reservations-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.reservations-tabs {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px;
  border-radius: 999px;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  margin-bottom: 18px;
}

.reservations-tab {
  flex: 1;
  border: none;
  background: transparent;
  border-radius: 999px;
  padding: 8px 12px;
  font-size: 14px;
  font-weight: 600;
  color: #64748b;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  transition: all 0.2s;
}

.reservations-tab:hover {
  color: #1e293b;
}

.reservations-tab.is-active {
  background: #ffffff;
  color: #1e293b;
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.12);
}

.reservations-tab-count {
  font-size: 12px;
  font-weight: 600;
  color: #475569;
  background: #e2e8f0;
  border-radius: 999px;
  padding: 2px 8px;
}

.reservations-tab.is-active .reservations-tab-count {
  background: #dbeafe;
  color: #1d4ed8;
}

.reservations-section {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 24px;
}

.reservations-section.is-hidden {
  display: none;
}

.reservations-section-empty {
  margin: 0;
  font-size: 13px;
  color: #64748b;
}

.reservation-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border-left: 4px solid #3b82f6;
  text-decoration: none;
  transition: all 0.2s;
}

.reservation-card.past {
  background: #f8fafc;
  box-shadow: none;
}

.reservation-card.past .reservation-card-day {
  color: #64748b;
}

.reservation-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.reservation-card.pending {
  border-left-color: #f59e0b;
}

.reservation-card.confirmed {
  border-left-color: #22c55e;
}

.reservation-card.cancelled {
  border-left-color: #ef4444;
  opacity: 0.7;
}

.reservation-card.completed {
  border-left-color: #6366f1;
  opacity: 0.8;
}

.reservation-card.no_show {
  border-left-color: #64748b;
  opacity: 0.6;
}

.reservation-card-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 70px;
  padding-right: 16px;
  border-right: 1px solid #e2e8f0;
}

.reservation-card-month {
  font-size: 12px;
  color: #64748b;
}

.reservation-card-day {
  font-size: 28px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1;
}

.reservation-card-weekday {
  font-size: 12px;
  color: #64748b;
}

.reservation-card-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.reservation-card-ship {
  font-size: 15px;
  font-weight: 600;
  color: #1e293b;
  display: flex;
  align-items: center;
  gap: 6px;
}

.reservation-card-ship i {
  color: #3b82f6;
}

.reservation-card-time {
  font-size: 13px;
  color: #475569;
  display: flex;
  align-items: center;
  gap: 6px;
}

.reservation-card-time i {
  color: #64748b;
}

.reservation-card-details {
  display: flex;
  gap: 16px;
  font-size: 13px;
  color: #64748b;
}

.reservation-card-details i {
  margin-right: 4px;
}

.reservation-card-status {
  min-width: 80px;
  text-align: center;
}

/* ステータスバッジ（統一済み：ユーザー向け・船長向け共通） */
.status-badge {
  display: inline-block;
  font-size: 12px;
  padding: 4px 12px;
  border-radius: var(--radius-md);
  font-weight: 500;
}

.status-badge.pending {
  background: var(--color-status-pending-bg);
  color: var(--color-status-pending-text);
}

.status-badge.confirmed {
  background: var(--color-status-confirmed-bg);
  color: var(--color-status-confirmed-text);
}

.status-badge.cancelled {
  background: var(--color-status-cancelled-bg);
  color: var(--color-status-cancelled-text);
}

.status-badge.completed {
  background: var(--color-status-completed-bg);
  color: var(--color-status-completed-text);
}

.status-badge.no_show {
  background: var(--color-status-no-show-bg);
  color: var(--color-status-no-show-text);
}

.status-badge.large {
  font-size: 14px;
  padding: 6px 16px;
}

.status-badge.small {
  font-size: 11px;
  padding: 2px 8px;
}

.reservation-card-arrow {
  color: #cbd5e1;
}

.reservations-empty {
  text-align: center;
  padding: 60px 20px;
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.reservations-empty-icon {
  font-size: 48px;
  color: #cbd5e1;
  margin-bottom: 16px;
}

.reservations-empty p {
  color: #64748b;
  margin: 0 0 8px;
}

.reservations-empty-hint {
  font-size: 14px;
  color: #94a3b8;
}

.reservations-empty .btn {
  margin-top: 16px;
}

/* 予約詳細 */
.reservation-detail-card {
  background: white;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  margin-bottom: 16px;
}

.reservation-detail-card h2 {
  font-size: 1em;
  color: #1e293b;
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.reservation-detail-card h2 i {
  color: #3b82f6;
}

.reservation-detail-card.cancelled {
  background: #fef2f2;
}

.reservation-detail-card.cancelled h2 i {
  color: #ef4444;
}

.reservation-detail-list {
  display: grid;
  grid-template-columns: 100px 1fr;
  gap: 12px 16px;
  margin: 0;
}

.reservation-detail-list dt {
  font-size: 13px;
  color: #64748b;
}

.reservation-detail-list dd {
  font-size: 14px;
  color: #1e293b;
  margin: 0;
}

.reservation-ship-link {
  color: #3b82f6;
  text-decoration: none;
}

.reservation-ship-link:hover {
  text-decoration: underline;
}

.reservation-ship-link i {
  font-size: 11px;
  margin-left: 4px;
}

.reservation-detail-text {
  font-size: 14px;
  color: #475569;
  line-height: 1.7;
}

.reservation-detail-text p {
  margin: 0 0 8px;
}

.reservation-detail-text p:last-child {
  margin-bottom: 0;
}

.reservation-price {
  font-size: 18px !important;
  font-weight: 700;
  color: #3b82f6 !important;
}

.reservation-detail-actions {
  margin-top: 24px;
}

.reservation-cancel-deadline {
  margin: 0 0 12px;
  padding: 12px 16px;
  background-color: #fef3c7;
  border-radius: 8px;
  color: #92400e;
  font-size: 14px;
}

.reservation-cancel-deadline i {
  margin-right: 8px;
}

.reservation-cancel-closed {
  margin: 0;
  padding: 12px 16px;
  background-color: #f3f4f6;
  border-radius: 8px;
  color: #6b7280;
  font-size: 14px;
}

.reservation-cancel-closed i {
  margin-right: 8px;
}

/* 予約詳細 - 出船日時カード */
.reservation-schedule-card {
  display: flex;
  align-items: stretch;
  gap: 20px;
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 16px;
  color: white;
}

.reservation-schedule-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 80px;
  padding-right: 20px;
  border-right: 1px solid rgba(255, 255, 255, 0.3);
}

.reservation-schedule-month {
  font-size: 14px;
  opacity: 0.9;
}

.reservation-schedule-day {
  font-size: 42px;
  font-weight: 700;
  line-height: 1;
  margin: 4px 0;
}

.reservation-schedule-weekday {
  font-size: 14px;
  opacity: 0.9;
}

.reservation-schedule-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
}

.reservation-schedule-time {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 18px;
  font-weight: 600;
}

.reservation-schedule-time i {
  opacity: 0.9;
}

.reservation-schedule-ship {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
}

.reservation-schedule-ship i {
  opacity: 0.9;
}

.reservation-schedule-ship a {
  color: white;
  text-decoration: none;
}

.reservation-schedule-ship a:hover {
  text-decoration: underline;
}

.reservation-schedule-location {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  opacity: 0.9;
}

/* 予約詳細 - 釣船画像カード */
.reservation-detail-card.with-image {
  padding: 0;
  overflow: hidden;
}

.reservation-ship-image {
  width: 100%;
  height: 200px;
  overflow: hidden;
}

.reservation-ship-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.reservation-ship-info {
  padding: 20px;
}

.reservation-ship-info h2 {
  margin: 0 0 8px;
}

.reservation-ship-description {
  font-size: 14px;
  color: #64748b;
  margin: 0 0 16px;
  line-height: 1.6;
}

.reservation-ship-link-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  background: #f1f5f9;
  color: #3b82f6;
  border-radius: 8px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s;
}

.reservation-ship-link-btn:hover {
  background: #e2e8f0;
}

/* 予約詳細 - グリッドレイアウト */
.reservation-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}

.reservation-detail-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.reservation-detail-item label {
  font-size: 12px;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 6px;
}

.reservation-detail-item label i {
  color: #94a3b8;
}

.reservation-detail-item span {
  font-size: 15px;
  color: #1e293b;
  font-weight: 500;
}

.reservation-price-value {
  font-size: 18px !important;
  color: #3b82f6 !important;
  font-weight: 700 !important;
}

.reservation-detail-note {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
}

.reservation-detail-note label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  color: #64748b;
  margin-bottom: 8px;
}

.reservation-detail-note label i {
  color: #94a3b8;
}

.reservation-detail-note p {
  font-size: 14px;
  color: #475569;
  margin: 0;
  line-height: 1.6;
}

/* 予約詳細 - 人数・料金内訳 */
.reservation-passenger-breakdown {
  margin-top: 20px;
  padding: 16px;
  background: #f8fafc;
  border-radius: 10px;
}

.reservation-passenger-breakdown h3 {
  font-size: 14px;
  font-weight: 600;
  color: #334155;
  margin: 0 0 12px 0;
}

.reservation-breakdown-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
}

.reservation-breakdown-table th,
.reservation-breakdown-table td {
  padding: 8px 12px;
  text-align: right;
  border-bottom: 1px solid #e2e8f0;
}

.reservation-breakdown-table th:first-child,
.reservation-breakdown-table td:first-child {
  text-align: left;
}

.reservation-breakdown-table thead th {
  font-size: 12px;
  font-weight: 500;
  color: #64748b;
  background: #f1f5f9;
}

.reservation-breakdown-table tbody tr.female td {
  background: #fdf2f8;
  color: #be185d;
}

.reservation-breakdown-table tbody tr.child td {
  background: #eff6ff;
  color: #1d4ed8;
}

.reservation-breakdown-table tfoot th {
  font-size: 14px;
  font-weight: 700;
  color: #059669;
  background: #ecfdf5;
}

/* 予約詳細 - 申請中の案内 */
.reservation-detail-card.pending-notice {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  border: 1px solid #f59e0b;
}

.reservation-pending-icon {
  width: 48px;
  height: 48px;
  background: #f59e0b;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.reservation-pending-icon i {
  color: white;
  font-size: 20px;
}

.reservation-pending-content h3 {
  font-size: 16px;
  color: #92400e;
  margin: 0 0 8px;
}

.reservation-pending-content p {
  font-size: 14px;
  color: #78350f;
  margin: 0;
  line-height: 1.6;
}

.reservation-pending-hint {
  margin-top: 8px !important;
  font-size: 13px !important;
  opacity: 0.8;
}

/* 予約詳細 - 地図 */
.reservation-location-map {
  margin-bottom: 16px;
}

.reservation-map-container {
  width: 100%;
  height: 200px;
  border-radius: 8px;
  overflow: hidden;
}

/* 予約フォーム */
.reservation-form-schedule-info {
  background: white;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  margin-bottom: 20px;
}

.reservation-schedule-info h2 {
  font-size: 1.2em;
  color: #1e293b;
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.reservation-schedule-info h2 i {
  color: #3b82f6;
}

.reservation-schedule-details {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: 8px 16px;
  margin: 0;
}

.reservation-schedule-details dt {
  font-size: 13px;
  color: #64748b;
}

.reservation-schedule-details dd {
  font-size: 14px;
  color: #1e293b;
  margin: 0;
}

.reservation-form {
  background: white;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.reservation-price-preview {
  background: #f0f9ff;
  border: 2px solid #3b82f6;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
  margin: 20px 0;
}

.reservation-price-label {
  font-size: 13px;
  color: #64748b;
  margin-bottom: 4px;
}

.reservation-price-value {
  font-size: 28px;
  font-weight: 700;
  color: #3b82f6;
}

.reservation-price-note {
  font-size: 12px;
  color: #64748b;
  margin-top: 8px;
}

/* 料金一覧（スケジュール情報内） */
.reservation-price-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.reservation-price-item {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  background: #f1f5f9;
  border-radius: 6px;
  font-size: 14px;
  font-weight: 500;
}

.reservation-price-item.female {
  background: #fce7f3;
  color: #be185d;
}

.reservation-price-item.child {
  background: #dbeafe;
  color: #1d4ed8;
}

/* 人数内訳セクション */
.reservation-passenger-counts {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
}

.reservation-passenger-counts-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 15px;
  color: #1e293b;
  margin-bottom: 16px;
}

.reservation-passenger-counts-header i {
  color: #3b82f6;
}

.reservation-passenger-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}

.reservation-passenger-item {
  flex: 1;
  min-width: 100px;
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  padding: 12px;
  text-align: center;
}

.reservation-passenger-item.female {
  border-color: #f9a8d4;
  background: #fdf2f8;
}

.reservation-passenger-item.child {
  border-color: #93c5fd;
  background: #eff6ff;
}

.reservation-passenger-label-row {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
}

.reservation-passenger-label {
  font-weight: 600;
  font-size: 14px;
  color: #334155;
}

.reservation-passenger-item.female .reservation-passenger-label {
  color: #be185d;
}

.reservation-passenger-item.child .reservation-passenger-label {
  color: #1d4ed8;
}

.reservation-passenger-price {
  font-size: 13px;
  color: #64748b;
  margin-bottom: 8px;
}

.reservation-passenger-age {
  font-size: 10px;
  font-weight: 600;
  color: #1d4ed8;
  background: #dbeafe;
  padding: 2px 8px;
  border-radius: 10px;
}

.reservation-passenger-select {
  width: 100%;
  text-align: center;
  font-size: 16px;
  font-weight: 600;
}

.reservation-passenger-total {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid #e2e8f0;
  font-size: 15px;
  font-weight: 600;
  color: #334155;
}

.reservation-passenger-error {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 12px;
  color: #dc2626;
  font-size: 13px;
}

/* 仕立て（貸切）プラン用スタイル */
.reservation-charter-notice {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  border: 1px solid #f59e0b;
  border-radius: 8px;
  margin-bottom: 20px;
  color: #92400e;
  font-weight: 500;
}

.reservation-charter-notice i {
  font-size: 24px;
  color: #d97706;
}

.reservation-price-item.charter {
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  color: #92400e;
  font-weight: 600;
}

/* 船長管理画面の仕立てバッジ */
.schedule-card__price-main--charter .schedule-card__price-label {
  color: #d97706;
  font-weight: 600;
}

/* 本名登録セクション */
.reservation-real-name-section {
  background: #fffbeb;
  border: 1px solid #fbbf24;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
}

.reservation-real-name-header {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  color: #92400e;
  margin-bottom: 12px;
  font-size: 16px;
}

.reservation-real-name-header i {
  color: #f59e0b;
  font-size: 20px;
}

.reservation-real-name-notice {
  margin-bottom: 16px;
}

.reservation-real-name-notice p {
  margin: 0 0 8px;
  font-size: 14px;
  color: #78350f;
  display: flex;
  align-items: flex-start;
  gap: 8px;
}

.reservation-real-name-notice p i {
  margin-top: 2px;
  flex-shrink: 0;
}

.reservation-real-name-privacy {
  font-size: 13px !important;
  color: #92400e !important;
  background: rgba(251, 191, 36, 0.2);
  padding: 10px 12px;
  border-radius: 8px;
}

.reservation-real-name-section .form-group {
  margin-bottom: 0;
}

.reservation-real-name-section .form-label {
  font-weight: 600;
  color: #78350f;
  margin-bottom: 8px;
  display: block;
}

.reservation-real-name-section .form-control {
  border-color: #fbbf24;
}

.reservation-real-name-section .form-control:focus {
  border-color: #f59e0b;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.2);
}

/* 予約注意事項・同意チェック */
.reservation-terms {
  background: #ffffff;
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  margin: 24px 0;
  overflow: hidden;
}

.reservation-terms-header {
  background: #f8fafc;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  color: #475569;
  border-bottom: 1px solid #e2e8f0;
}

.reservation-terms-header i {
  color: #f59e0b;
  font-size: 18px;
}

.reservation-terms-content {
  padding: 16px;
}

.reservation-terms-content > p {
  margin: 0 0 16px 0;
  font-size: 14px;
  color: #64748b;
}

.reservation-terms-items {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.reservation-terms-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  padding: 10px 12px;
  background: #f8fafc;
  border-radius: 8px;
  border: 1px solid transparent;
  transition: all 0.2s;
}

.reservation-terms-item:hover {
  background: #f1f5f9;
}

.reservation-terms-item input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 0;
  flex-shrink: 0;
  margin-top: 1px;
  accent-color: #3b82f6;
  cursor: pointer;
}

.reservation-terms-item span {
  font-size: 14px;
  color: #475569;
  line-height: 1.5;
}

.reservation-terms-item:has(input:checked) {
  background: #eff6ff;
  border-color: #bfdbfe;
}

.reservation-terms-item:has(input:checked) span {
  color: #1e40af;
}

.reservation-terms .form-actions {
  padding: 16px;
  padding-top: 0;
}

.reservation-terms .btn:disabled {
  background: #cbd5e1;
  color: #94a3b8;
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.reservation-terms .btn:disabled:hover {
  background: #cbd5e1;
  transform: none;
  box-shadow: none;
}

/* =====================================================
   船長向け予約管理（新UI）
   ===================================================== */
.reservation-mgmt {
  max-width: 600px;
  margin: 0 auto;
  padding: 16px;
  min-height: 100vh;
  background: #f8fafc;
}

.reservation-mgmt-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.reservation-mgmt-header h1 {
  font-size: 20px;
  font-weight: 700;
  color: #1e293b;
  margin: 0;
}

.reservation-mgmt-header p {
  font-size: 13px;
  color: #64748b;
  margin: 2px 0 0;
}

.reservation-mgmt-back {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: white;
  border-radius: 10px;
  color: #64748b;
  text-decoration: none;
  box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}

.reservation-mgmt-back:hover {
  background: #f1f5f9;
}

.reservation-mgmt-empty {
  text-align: center;
  padding: 60px 20px;
  background: white;
  border-radius: 16px;
}

.reservation-mgmt-empty i {
  font-size: 48px;
  color: #cbd5e1;
  margin-bottom: 16px;
}

.reservation-mgmt-empty p {
  color: #64748b;
  margin: 0;
}

/* 承認待ちアラート */
.reservation-mgmt-alert {
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  border-radius: 16px;
  margin-bottom: 20px;
  overflow: hidden;
}

.reservation-mgmt-alert-header {
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: 15px;
  color: #92400e;
}

.reservation-mgmt-alert-header i {
  font-size: 18px;
}

.reservation-mgmt-alert-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 0 12px 12px;
}

.reservation-pending-card {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.reservation-pending-main {
  display: flex;
  gap: 16px;
  padding: 16px;
}

.reservation-pending-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 60px;
  padding: 8px;
  background: #f8fafc;
  border-radius: 10px;
}

.reservation-pending-date-num {
  font-size: 28px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1;
}

.reservation-pending-date-month {
  font-size: 12px;
  color: #64748b;
}

.reservation-pending-date-week {
  font-size: 11px;
  color: #94a3b8;
  margin-top: 2px;
}

.reservation-pending-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.reservation-pending-time {
  font-size: 13px;
  color: #64748b;
}

.reservation-pending-time i {
  margin-right: 4px;
}

.reservation-pending-customer {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.reservation-pending-name {
  font-size: 18px;
  font-weight: 600;
  color: #1e293b;
}

.reservation-pending-people {
  font-size: 14px;
  color: #64748b;
}

.reservation-pending-phone {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: #eff6ff;
  color: #2563eb;
  border-radius: 20px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  width: fit-content;
}

.reservation-pending-phone:hover {
  background: #dbeafe;
}

.reservation-pending-note {
  padding: 0 16px 12px;
  font-size: 13px;
  color: #64748b;
  background: #f8fafc;
  margin: 0;
  border-top: 1px solid #e2e8f0;
  padding-top: 12px;
}

.reservation-pending-note i {
  margin-right: 8px;
  color: #94a3b8;
}

.reservation-pending-actions {
  display: flex;
  gap: 8px;
  padding: 12px 16px;
  background: #f8fafc;
  border-top: 1px solid #e2e8f0;
}

.reservation-btn-approve {
  flex: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px 20px;
  background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
  color: white;
  border: none;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.reservation-btn-approve:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(34, 197, 94, 0.4);
}

.reservation-btn-detail {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 14px 16px;
  background: white;
  color: #64748b;
  border: 1px solid #e2e8f0;
  border-radius: 10px;
  font-size: 14px;
  text-decoration: none;
  transition: all 0.2s;
}

.reservation-btn-detail:hover {
  background: #f8fafc;
  color: #1e293b;
}

/* セクション共通 */
.reservation-mgmt-section {
  margin-bottom: 20px;
}

.reservation-mgmt-section.past {
  margin-bottom: 0;
}

.reservation-mgmt-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 15px;
  font-weight: 600;
  color: #1e293b;
  margin-bottom: 12px;
  padding: 0 4px;
}

.reservation-mgmt-section-title i {
  color: #64748b;
}

.reservation-mgmt-section-title.today {
  color: #2563eb;
}

.reservation-mgmt-section-title.today i {
  color: #2563eb;
}

.reservation-mgmt-section-title.muted {
  color: #94a3b8;
  cursor: pointer;
  padding: 12px 16px;
  background: white;
  border-radius: 12px;
  margin-bottom: 0;
}

.reservation-mgmt-section-title.muted i:first-child {
  color: #94a3b8;
}

.reservation-toggle-icon {
  margin-left: auto;
  transition: transform 0.2s;
}

details[open] .reservation-toggle-icon {
  transform: rotate(180deg);
}

/* 本日の予約 */
.reservation-today-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.reservation-today-schedule {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  border: 2px solid #2563eb;
}

.reservation-today-schedule-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  background: #eff6ff;
}

.reservation-today-time {
  font-weight: 600;
  color: #1e40af;
}

.reservation-today-total {
  font-size: 14px;
  color: #3b82f6;
  font-weight: 500;
}

.reservation-today-customers {
  display: flex;
  flex-direction: column;
}

.reservation-today-customer {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid #f1f5f9;
}

.reservation-today-customer:last-child {
  border-bottom: none;
}

.reservation-today-customer-info {
  flex: 1;
  min-width: 0;
}

.reservation-today-customer-name {
  font-size: 16px;
  font-weight: 600;
  color: #1e293b;
}

.reservation-today-customer-people {
  font-size: 14px;
  color: #64748b;
  margin-left: 8px;
}

.reservation-today-customer-phone {
  padding: 8px 14px;
  background: #f0fdf4;
  color: #16a34a;
  border-radius: 20px;
  font-size: 13px;
  text-decoration: none;
  white-space: nowrap;
}

.reservation-today-customer-phone:hover {
  background: #dcfce7;
}

.reservation-today-customer-actions {
  display: flex;
  gap: 6px;
}

.reservation-icon-btn {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s;
}

.reservation-icon-btn.success {
  background: #dcfce7;
  color: #16a34a;
}

.reservation-icon-btn.success:hover {
  background: #bbf7d0;
}

.reservation-icon-btn.danger {
  background: #fee2e2;
  color: #dc2626;
}

.reservation-icon-btn.danger:hover {
  background: #fecaca;
}

/* 今後の予約 */
.reservation-upcoming-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.reservation-upcoming-date {
  background: white;
  border-radius: 12px;
  overflow: hidden;
}

.reservation-upcoming-date-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10px 16px;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

.reservation-upcoming-date-label {
  font-weight: 600;
  color: #1e293b;
  font-size: 14px;
}

.reservation-upcoming-date-count {
  font-size: 13px;
  color: #64748b;
}

.reservation-upcoming-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid #f1f5f9;
}

.reservation-upcoming-item:last-child {
  border-bottom: none;
}

.reservation-upcoming-time {
  font-size: 14px;
  font-weight: 600;
  color: #64748b;
  min-width: 50px;
}

.reservation-upcoming-name {
  flex: 1;
  font-size: 15px;
  font-weight: 500;
  color: #1e293b;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.reservation-upcoming-people {
  font-size: 14px;
  color: #64748b;
}

.reservation-upcoming-phone {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eff6ff;
  color: #2563eb;
  border-radius: 50%;
  text-decoration: none;
}

.reservation-upcoming-phone:hover {
  background: #dbeafe;
}

.reservation-upcoming-detail {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  text-decoration: none;
}

.reservation-upcoming-detail:hover {
  color: #1e293b;
}

/* 過去の予約 */
.reservation-past-list {
  padding: 8px 0;
}

.reservation-past-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 10px 16px;
  font-size: 14px;
}

.reservation-past-date {
  min-width: 45px;
  color: #94a3b8;
}

.reservation-past-name {
  flex: 1;
  color: #64748b;
}

.reservation-past-people {
  color: #94a3b8;
}

.reservation-past-status {
  font-size: 12px;
  padding: 2px 8px;
  border-radius: 10px;
}

.reservation-past-status.completed {
  background: #e0e7ff;
  color: #4338ca;
}

.reservation-past-status.cancelled {
  background: #fee2e2;
  color: #dc2626;
}

.reservation-past-status.no_show {
  background: #f1f5f9;
  color: #64748b;
}

.reservation-past-status.confirmed {
  background: #fef3c7;
  color: #b45309;
}

/* =====================================================
   船長向け予約管理（旧UI - 互換性維持）
   ===================================================== */
.captain-reservations-container {
  max-width: 900px;
  margin: 0 auto;
  padding: 20px;
}

.captain-reservations-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
}

.captain-reservations-header h1 {
  font-size: 1.5em;
  color: #1e293b;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
}

.captain-reservations-header h1 i {
  color: #3b82f6;
}

.captain-reservations-ship-name {
  font-size: 14px;
  color: #64748b;
  margin: 4px 0 0;
}

.captain-reservations-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.captain-reservations-date-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.captain-reservations-date {
  font-size: 14px;
  color: #64748b;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-reservations-past {
  font-size: 11px;
  padding: 2px 8px;
  background: #f1f5f9;
  color: #64748b;
  border-radius: 10px;
}

.captain-reservations-today {
  font-size: 11px;
  padding: 2px 8px;
  background: #dcfce7;
  color: #166534;
  border-radius: 10px;
}

.captain-reservation-card {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border-left: 4px solid #22c55e;
}

.captain-reservation-card.pending {
  border-left-color: #f59e0b;
}

.captain-reservation-card.cancelled {
  border-left-color: #ef4444;
  opacity: 0.7;
}

.captain-reservation-card.completed {
  border-left-color: #6366f1;
  opacity: 0.8;
}

.captain-reservation-card.no_show {
  border-left-color: #64748b;
  opacity: 0.6;
}

.captain-reservation-card-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.captain-reservation-card-user {
  font-size: 15px;
  font-weight: 600;
  color: #1e293b;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-reservation-card-user i {
  color: #64748b;
}

.captain-reservation-card-details {
  display: flex;
  gap: 16px;
  font-size: 13px;
  color: #64748b;
}

.captain-reservation-card-contact {
  font-size: 13px;
  color: #3b82f6;
}

.captain-reservation-card-note {
  font-size: 12px;
  color: #64748b;
  margin-top: 4px;
}

.captain-reservation-card-status {
  min-width: 80px;
  text-align: center;
}

/* captain-reservation-status-badge は廃止 → .status-badge を使用 */

.captain-reservation-card-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.captain-reservations-empty {
  text-align: center;
  padding: 60px 20px;
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.captain-reservations-empty-icon {
  font-size: 48px;
  color: #cbd5e1;
  margin-bottom: 16px;
}

.captain-reservations-empty p {
  color: #64748b;
  margin: 0 0 8px 0;
}

.captain-reservations-empty-hint {
  font-size: 13px;
  color: #94a3b8;
}

/* 予約管理 - サマリーカード */
.captain-reservations-summary {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  margin-bottom: 24px;
}

.captain-reservations-summary-card {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.captain-reservations-summary-card.pending {
  border-left: 4px solid #f59e0b;
}

.captain-reservations-summary-card.confirmed {
  border-left: 4px solid #22c55e;
}

.captain-reservations-summary-card.today {
  border-left: 4px solid #3b82f6;
}

.captain-reservations-summary-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}

.captain-reservations-summary-card.pending .captain-reservations-summary-icon {
  background: #fef3c7;
  color: #f59e0b;
}

.captain-reservations-summary-card.confirmed .captain-reservations-summary-icon {
  background: #dcfce7;
  color: #22c55e;
}

.captain-reservations-summary-card.today .captain-reservations-summary-icon {
  background: #dbeafe;
  color: #3b82f6;
}

.captain-reservations-summary-content {
  display: flex;
  flex-direction: column;
}

.captain-reservations-summary-count {
  font-size: 24px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1;
}

.captain-reservations-summary-label {
  font-size: 12px;
  color: #64748b;
  margin-top: 4px;
}

/* 予約管理 - セクション */
.captain-reservations-section {
  margin-bottom: 24px;
}

.captain-reservations-section.pending-section {
  background: #fffbeb;
  border: 1px solid #fcd34d;
  border-radius: 12px;
  padding: 16px;
}

.captain-reservations-section-header {
  margin-bottom: 16px;
}

.captain-reservations-section-header h2 {
  font-size: 16px;
  font-weight: 600;
  color: #1e293b;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-reservations-section.pending-section .captain-reservations-section-header h2 {
  color: #92400e;
}

.captain-reservations-section.pending-section .captain-reservations-section-header h2 i {
  color: #f59e0b;
}

/* 予約管理 - 承認待ちカード */
.captain-reservations-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 12px;
}

.captain-reservation-card-new {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.captain-reservation-card-new.pending {
  border: 2px solid #fcd34d;
}

.captain-reservation-card-new-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

.captain-reservation-card-new-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  line-height: 1;
}

.captain-reservation-card-new-date .date-month {
  font-size: 16px;
  font-weight: 700;
  color: #1e293b;
}

.captain-reservation-card-new-date .date-weekday {
  font-size: 11px;
  color: #64748b;
}

.captain-reservation-card-new-time {
  flex: 1;
  font-size: 14px;
  color: #64748b;
}

.captain-reservation-card-new-time i {
  margin-right: 4px;
}

.captain-reservation-card-new-body {
  padding: 16px;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
}

.captain-reservation-card-new-user-name {
  font-size: 16px;
  font-weight: 600;
  color: #1e293b;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-reservation-card-new-user-name i {
  color: #64748b;
  font-size: 14px;
}

.captain-reservation-card-new-user-detail {
  font-size: 14px;
  color: #64748b;
  margin-top: 4px;
}

.captain-reservation-card-new-contact {
  flex-shrink: 0;
}

.captain-phone-link-compact {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  background: #eff6ff;
  color: #3b82f6;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.2s;
}

.captain-phone-link-compact:hover {
  background: #dbeafe;
}

.captain-reservation-card-new-note {
  padding: 0 16px 12px;
  font-size: 13px;
  color: #64748b;
}

.captain-reservation-card-new-note i {
  margin-right: 6px;
  color: #94a3b8;
}

.captain-reservation-card-new-actions {
  display: flex;
  gap: 8px;
  padding: 12px 16px;
  background: #f8fafc;
  border-top: 1px solid #e2e8f0;
}

.captain-btn-action {
  flex: 1;
  justify-content: center;
  padding: 10px 16px;
}

/* 予約管理 - 予約一覧（リスト形式） */
.captain-reservations-list-new {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.captain-reservations-date-group-new {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

.captain-reservations-date-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: #f8fafc;
  border-bottom: 1px solid #e2e8f0;
}

.captain-reservations-date-text {
  font-size: 14px;
  font-weight: 600;
  color: #1e293b;
}

.captain-reservations-date-badge {
  font-size: 11px;
  padding: 2px 8px;
  border-radius: 10px;
  font-weight: 500;
}

.captain-reservations-date-badge.past {
  background: #f1f5f9;
  color: #64748b;
}

.captain-reservations-date-badge.today {
  background: #dcfce7;
  color: #166534;
}

.captain-reservations-date-items {
  display: flex;
  flex-direction: column;
}

.captain-reservation-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-bottom: 1px solid #f1f5f9;
}

.captain-reservation-row:last-child {
  border-bottom: none;
}

.captain-reservation-row.cancelled,
.captain-reservation-row.no_show {
  opacity: 0.6;
  background: #f8fafc;
}

.captain-reservation-row-time {
  width: 50px;
  font-size: 14px;
  font-weight: 600;
  color: #64748b;
}

.captain-reservation-row-user {
  flex: 1;
  min-width: 0;
}

.captain-reservation-row-name {
  font-size: 15px;
  font-weight: 600;
  color: #1e293b;
}

.captain-reservation-row-people {
  font-size: 13px;
  color: #64748b;
  margin-left: 8px;
}

.captain-reservation-row-contact {
  flex-shrink: 0;
}

.captain-phone-link-small {
  font-size: 13px;
  color: #3b82f6;
  text-decoration: none;
}

.captain-phone-link-small:hover {
  text-decoration: underline;
}

.captain-reservation-row-status {
  flex-shrink: 0;
  min-width: 70px;
  text-align: center;
}

/* .captain-reservation-status-badge.small は廃止 → .status-badge.small を使用 */

.captain-reservation-row-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}

.captain-btn-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 8px;
  background: #f1f5f9;
  color: #64748b;
  cursor: pointer;
  transition: all 0.2s;
  text-decoration: none;
}

.captain-btn-icon:hover {
  background: #e2e8f0;
  color: #1e293b;
}

.captain-btn-icon.success {
  background: #dcfce7;
  color: #22c55e;
}

.captain-btn-icon.success:hover {
  background: #bbf7d0;
}

.captain-btn-icon.danger {
  background: #fee2e2;
  color: #ef4444;
}

.captain-btn-icon.danger:hover {
  background: #fecaca;
}

.inline-form {
  display: inline;
}

/* 船長向け予約詳細 */
.captain-reservation-detail-container {
  max-width: 700px;
  margin: 0 auto;
  padding: 20px;
}

.captain-reservation-detail-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}

.captain-reservation-detail-header h1 {
  font-size: 1.5em;
  color: #1e293b;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
}

.captain-reservation-detail-header h1 i {
  color: #3b82f6;
}

.captain-reservation-detail-card {
  background: white;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  margin-bottom: 16px;
}

.captain-reservation-detail-card h2 {
  font-size: 1em;
  color: #1e293b;
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-reservation-detail-card h2 i {
  color: #3b82f6;
}

.captain-reservation-detail-card.cancelled {
  background: #fef2f2;
}

.captain-reservation-detail-card.cancelled h2 i {
  color: #ef4444;
}

.captain-reservation-detail-list {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 12px 16px;
  margin: 0;
}

.captain-reservation-detail-list dt {
  font-size: 13px;
  color: #64748b;
}

.captain-reservation-detail-list dd {
  font-size: 14px;
  color: #1e293b;
  margin: 0;
}

.captain-phone-link {
  color: #3b82f6;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.captain-phone-link:hover {
  text-decoration: underline;
}

.captain-no-show-warning {
  color: #ef4444;
  font-weight: 600;
}

.captain-reservation-price {
  font-size: 18px !important;
  font-weight: 700;
  color: #3b82f6 !important;
}

/* 承認・却下セクション */
.captain-approval-section {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 24px;
}

.captain-approval-card {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.captain-approval-card.approve {
  border: 2px solid #22c55e;
}

.captain-approval-card.reject {
  border: 2px solid #e5e7eb;
}

.captain-approval-card-header {
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: 14px;
}

.captain-approval-card.approve .captain-approval-card-header {
  background: #dcfce7;
  color: #166534;
}

.captain-approval-card.approve .captain-approval-card-header i {
  color: #22c55e;
}

.captain-approval-card.reject .captain-approval-card-header {
  background: #f8fafc;
  color: #64748b;
}

.captain-approval-card.reject .captain-approval-card-header i {
  color: #94a3b8;
}

.captain-approval-card-body {
  padding: 16px;
}

.captain-approval-card-body p {
  margin: 0 0 16px 0;
  font-size: 13px;
  color: #64748b;
}

/* captain-btn-block, captain-btn-large は廃止 → .btn-block, .btn-large を使用 */

.captain-reservation-detail-actions {
  display: flex;
  gap: 12px;
  margin-top: 24px;
}

/* 却下フォーム */
.captain-reject-form {
  margin: 0;
}

.captain-reject-form .form-group {
  margin-bottom: 16px;
}

.captain-reject-form .form-group label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: #374151;
  margin-bottom: 8px;
}

.captain-reject-form .form-control {
  width: 100%;
  padding: 12px;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  font-size: 14px;
  resize: vertical;
  transition: border-color 0.2s;
}

.captain-reject-form .form-control:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.captain-reject-form .form-actions {
  text-align: right;
}

/* =====================================================
   公開用釣船一覧・詳細ページ
   ===================================================== */
.fishing-ships-container,
.fishing-ship-show-container {
  max-width: var(--layout-width-default);
  margin: 0 auto;
  padding: 20px;
}

.fishing-ships-header,
.fishing-ship-show-header {
  margin-bottom: 24px;
}

.fishing-ships-header h1,
.fishing-ship-show-header h1 {
  font-size: 1.5em;
  color: #1e293b;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
}

.fishing-ships-header h1 i,
.fishing-ship-show-header h1 i {
  color: #3b82f6;
}

/* フィルターフォーム */
.fishing-ships-filter {
  background: white;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.fishing-ships-filter-form {
  width: 100%;
}

.fishing-ships-filter-row {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-items: flex-end;
}

.fishing-ships-filter-item {
  flex: 1;
  min-width: 150px;
}

.fishing-ships-filter-item label {
  display: block;
  font-size: 13px;
  color: #475569;
  margin-bottom: 6px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.fishing-ships-filter-item label i {
  color: #64748b;
}

.fishing-ships-filter-select,
.fishing-ships-filter-input {
  width: 100%;
  padding: 10px 12px;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  font-size: 14px;
  background: white;
  transition: all 0.2s;
  box-sizing: border-box;
}

.fishing-ships-filter-select:focus,
.fishing-ships-filter-input:focus {
  outline: none;
  border-color: #3b82f6;
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.fishing-ships-filter-btn {
  padding: 10px 20px;
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  color: white;
  border: none;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.2s;
}

.fishing-ships-filter-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
}

/* フィルター検索入力 */
.fishing-ships-filter-item--search {
  flex: 1.5;
}

/* 日付入力ラッパー */
.fishing-ships-date-wrapper {
  position: relative;
}

.fishing-ships-date-icon {
  position: absolute;
  left: 12px;
  top: 50%;
  transform: translateY(-50%);
  color: #64748b;
  pointer-events: none;
  z-index: 1;
}

.fishing-ships-filter-date {
  padding-left: 36px !important;
}

/* フィルターセクション */
.fishing-ships-filter-section {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
  flex-wrap: wrap;
}

.fishing-ships-filter-section-title {
  font-size: 13px;
  font-weight: 500;
  color: #475569;
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 60px;
}

.fishing-ships-filter-section-title i {
  color: #64748b;
}

/* フィルターチップ */
.fishing-ships-filter-chips {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.fishing-ships-filter-chip {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 20px;
  cursor: pointer;
  transition: all 0.2s;
  font-size: 13px;
  color: #475569;
}

.fishing-ships-filter-chip:hover {
  background: #f1f5f9;
  border-color: #cbd5e1;
}

.fishing-ships-filter-chip input[type="checkbox"] {
  display: none;
}

.fishing-ships-filter-chip:has(input:checked) {
  background: #dbeafe;
  border-color: #3b82f6;
  color: #1d4ed8;
}

.fishing-ships-filter-chip:has(input:checked) i {
  color: #3b82f6;
}

.fishing-ships-filter-chip i {
  font-size: 12px;
  color: #64748b;
}

/* フィルターアクション（リニューアル） */
.fishing-ships-filter-actions {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
}

.fishing-ships-filter-clear-btn {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  background: #f1f5f9;
  color: #64748b;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  text-decoration: none;
  font-size: 14px;
  transition: all 0.2s;
}

.fishing-ships-filter-clear-btn:hover {
  background: #e2e8f0;
  color: #475569;
}

/* 釣船カードリスト */
.fishing-ships-list {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.fishing-ship-card {
  display: block;
  background: white;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  text-decoration: none;
  transition: all 0.2s;
}

.fishing-ship-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.fishing-ship-card-image {
  margin: -20px -20px 16px -20px;
  height: 160px;
  background: #f1f5f9;
  overflow: hidden;
}

.fishing-ship-card-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fishing-ship-card-no-image {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #94a3b8;
  font-size: 48px;
}

.fishing-ship-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
}

.fishing-ship-card-name {
  font-size: 1.2em;
  color: #1e293b;
  margin: 0;
}

.fishing-ship-card-price {
  font-size: 16px;
  font-weight: 600;
  color: #3b82f6;
  white-space: nowrap;
}

.fishing-ship-card-details {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 12px;
}

.fishing-ship-card-detail {
  font-size: 13px;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 6px;
}

.fishing-ship-card-detail i {
  color: #94a3b8;
}

.fishing-ship-card-available {
  color: #16a34a;
}

.fishing-ship-card-available i {
  color: #22c55e;
}

.fishing-ship-card-description {
  font-size: 14px;
  color: #64748b;
  margin: 0 0 12px;
  line-height: 1.5;
}

/* 釣船カード特徴タグ */
.fishing-ship-card-features {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.fishing-ship-card-feature {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 16px;
  font-size: 12px;
  font-weight: 500;
}

.fishing-ship-card-feature i {
  font-size: 11px;
}

.fishing-ship-card-feature--beginner {
  background: #dcfce7;
  color: #15803d;
}

.fishing-ship-card-feature--rental {
  background: #fef3c7;
  color: #b45309;
}

.fishing-ship-card-footer {
  display: flex;
  justify-content: flex-end;
  padding-top: 12px;
  border-top: 1px solid #e2e8f0;
}

.fishing-ship-card-link {
  font-size: 14px;
  color: #3b82f6;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* 釣船が見つからない場合 */
.fishing-ships-empty {
  text-align: center;
  padding: 60px 20px;
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.fishing-ships-empty-icon {
  font-size: 48px;
  color: #cbd5e1;
  margin-bottom: 16px;
}

.fishing-ships-empty p {
  color: #64748b;
  margin: 0 0 8px;
}

.fishing-ships-empty-hint {
  font-size: 14px;
  color: #94a3b8;
}

.fishing-ships-reset-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  color: white;
  border-radius: 8px;
  text-decoration: none;
  font-weight: 500;
  margin-top: 16px;
  transition: all 0.2s;
}

.fishing-ships-reset-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
}

/* 釣船詳細ページ */
.fishing-ship-show-header .back-link {
  display: inline-flex;
  align-items: center;
  color: #64748b;
  text-decoration: none;
  font-size: 14px;
  margin-bottom: 12px;
}

.fishing-ship-show-header .back-link:hover {
  color: #3b82f6;
}

.fishing-ship-page-views {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #f1f5f9;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 13px;
  color: #64748b;
  margin-top: 8px;
}

.fishing-ship-page-views i {
  color: #94a3b8;
}

.fishing-ship-page-views span {
  font-weight: 600;
  color: #475569;
}

.fishing-ship-page-views small {
  color: #64748b;
}

.fishing-ship-show-content {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.fishing-ship-show-image {
  border-radius: 12px;
  overflow: hidden;
  background: #f1f5f9;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.fishing-ship-show-image img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
  max-height: 400px;
}

.fishing-ship-show-no-image {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 250px;
  color: #94a3b8;
  font-size: 72px;
}

/* 遊漁船業登録情報セクション */
.fishing-ship-registration-section {
  background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
  border: 1px solid #bae6fd;
  border-radius: 12px;
  padding: 20px;
}

.fishing-ship-registration-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.fishing-ship-registration-icon {
  font-size: 24px;
}

.fishing-ship-registration-title {
  font-size: 14px;
  font-weight: 600;
  color: #0369a1;
}

.fishing-ship-registration-details {
  background: white;
  border-radius: 8px;
  padding: 12px 16px;
  margin-bottom: 12px;
}

.fishing-ship-registration-number {
  font-size: 16px;
  font-weight: 500;
  color: #1e293b;
}

.fishing-ship-registration-representative {
  font-size: 14px;
  color: #475569;
  margin-top: 6px;
}

.fishing-ship-registration-disclaimer {
  font-size: 11px;
  color: #64748b;
  display: flex;
  align-items: flex-start;
  gap: 6px;
  line-height: 1.5;
}

.fishing-ship-registration-disclaimer i {
  color: #94a3b8;
  margin-top: 2px;
  flex-shrink: 0;
}

/* 登録票画像表示 */
.fishing-ship-certificate-display {
  background: white;
  border-radius: 8px;
  padding: 12px;
  margin: 12px 0;
}

.fishing-ship-certificate-label {
  font-size: 13px;
  color: #0369a1;
  font-weight: 500;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.fishing-ship-certificate-img {
  display: block;
  max-width: 100%;
  height: auto;
  border-radius: 6px;
  border: 1px solid #e2e8f0;
}

/* 登録票の説明 */
.fishing-ship-registration-info {
  display: flex;
  gap: 10px;
  padding: 12px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 8px;
  margin: 12px 0;
  font-size: 13px;
  color: #166534;
}

.fishing-ship-registration-info > i {
  color: #22c55e;
  flex-shrink: 0;
  margin-top: 2px;
}

.fishing-ship-registration-info strong {
  display: block;
  margin-bottom: 4px;
}

.fishing-ship-registration-info p {
  margin: 0;
  line-height: 1.5;
}

.fishing-ship-show-section {
  background: white;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.fishing-ship-show-section h2 {
  font-size: 1.1em;
  color: #1e293b;
  margin: 0 0 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.fishing-ship-show-section h2 i {
  color: #3b82f6;
}

.fishing-ship-schedule-group {
  margin-bottom: 20px;
}

.fishing-ship-schedule-subtitle {
  font-size: 0.95em;
  font-weight: 600;
  color: #475569;
  margin: 0 0 12px;
}

/* この船で釣れた釣果 */
.fishing-ship-reports-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 1fr));
  gap: 12px;
}

.fishing-ship-report-card {
  display: block;
  text-decoration: none;
  border-radius: 8px;
  overflow: hidden;
  background: white;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s, box-shadow 0.2s;
}

.fishing-ship-report-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.fishing-ship-report-image {
  aspect-ratio: 1;
  overflow: hidden;
  background: #f1f5f9;
}

.fishing-ship-report-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fishing-ship-report-info {
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.fishing-ship-report-fish {
  font-size: 13px;
  font-weight: 600;
  color: #1e293b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.fishing-ship-report-date {
  font-size: 11px;
  color: #64748b;
}

.fishing-ship-show-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
}

.fishing-ship-show-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.fishing-ship-show-item label {
  font-size: 12px;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 6px;
}

.fishing-ship-show-item label i {
  font-size: 12px;
}

.fishing-ship-show-item span {
  font-size: 15px;
  color: #1e293b;
  font-weight: 500;
}

.fishing-ship-show-x-link {
  margin-top: 12px;
}

.fishing-ship-x-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: #0f1419;
  color: white;
  border-radius: 6px;
  text-decoration: none;
  transition: all 0.2s ease;
}

.fishing-ship-x-button:hover {
  background: #272c30;
  transform: translateY(-1px);
}

.fishing-ship-x-button i {
  font-size: 14px;
}

.fishing-ship-show-description {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
}

.fishing-ship-show-description label {
  font-size: 12px;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 8px;
}

.fishing-ship-show-description p {
  font-size: 14px;
  color: #475569;
  line-height: 1.6;
  margin: 0;
}

/* 出港地マップ */
.fishing-ship-location-map {
  margin-bottom: 16px;
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #e2e8f0;
}

.fishing-ship-map-container {
  width: 100%;
  height: 250px;
}

/* 船長情報 */
.fishing-ship-captain-info {
  display: flex;
  align-items: center;
  gap: 12px;
}

.fishing-ship-captain-name {
  font-size: 15px;
  color: #1e293b;
  font-weight: 500;
}

/* スケジュールリスト */
.fishing-ship-schedules-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.fishing-ship-schedule-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px;
  background: #f8fafc;
  border-radius: 10px;
  border-left: 4px solid #3b82f6;
}

.fishing-ship-schedule-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 60px;
}

.fishing-ship-schedule-month {
  font-size: 12px;
  color: #64748b;
}

.fishing-ship-schedule-day {
  font-size: 24px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1;
}

.fishing-ship-schedule-weekday {
  font-size: 12px;
  color: #64748b;
}

.fishing-ship-schedule-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.fishing-ship-schedule-target-fish {
  font-size: 15px;
  font-weight: 600;
  color: #0369a1;
  display: flex;
  align-items: center;
  gap: 6px;
}

.fishing-ship-schedule-target-fish i {
  color: #0ea5e9;
}

.fishing-ship-schedule-time {
  font-size: 14px;
  color: #1e293b;
  display: flex;
  align-items: center;
  gap: 6px;
}

.fishing-ship-schedule-time i {
  color: #64748b;
}

.fishing-ship-schedule-details {
  display: flex;
  gap: 16px;
  font-size: 13px;
  color: #64748b;
}

.fishing-ship-schedule-price {
  display: flex;
  align-items: center;
  gap: 4px;
}

.fishing-ship-schedule-slots {
  display: flex;
  align-items: center;
  gap: 4px;
}

.fishing-ship-schedule-meeting-time {
  font-size: 12px;
  color: #64748b;
  margin-left: 4px;
}

.fishing-ship-schedule-boarding-type {
  display: flex;
  align-items: center;
  gap: 4px;
}

.fishing-ship-schedule-discounts {
  display: flex;
  gap: 12px;
  font-size: 12px;
  color: #059669;
}

.fishing-ship-schedule-discount {
  display: flex;
  align-items: center;
  gap: 4px;
}

.fishing-ship-schedule-options {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.fishing-ship-schedule-option-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  background: #e0f2fe;
  color: #0369a1;
  font-size: 12px;
  font-weight: 500;
  border-radius: 12px;
}

.fishing-ship-schedule-option-badge i {
  font-size: 10px;
}

.fishing-ship-schedule-included {
  font-size: 12px;
  color: #16a34a;
  display: flex;
  align-items: flex-start;
  gap: 6px;
}

.fishing-ship-schedule-included i {
  margin-top: 2px;
}

.fishing-ship-schedule-note {
  font-size: 12px;
  color: #64748b;
  margin-top: 4px;
}

.fishing-ship-schedule-note i {
  margin-right: 4px;
}

.fishing-ship-schedule-action {
  display: flex;
  align-items: center;
}

.fishing-ship-reserve-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 20px;
  background: linear-gradient(135deg, #22c55e 0%, #16a34a 100%);
  color: white;
  border-radius: 8px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s;
  white-space: nowrap;
}

.fishing-ship-reserve-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(34, 197, 94, 0.4);
}

.fishing-ship-reserve-btn-disabled {
  background: linear-gradient(135deg, #94a3b8 0%, #64748b 100%);
}

.fishing-ship-reserve-btn-disabled:hover {
  box-shadow: 0 4px 12px rgba(100, 116, 139, 0.4);
}

.fishing-ship-reserve-btn-closed {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  cursor: default;
}

.fishing-ship-reserve-btn-closed:hover {
  transform: none;
  box-shadow: 0 2px 8px rgba(217, 119, 6, 0.3);
}

/* スケジュールが無い場合 */
.fishing-ship-schedules-empty {
  text-align: center;
  padding: 40px 20px;
}

.fishing-ship-schedules-empty-icon {
  font-size: 36px;
  color: #cbd5e1;
  margin-bottom: 12px;
}

.fishing-ship-schedules-empty p {
  color: #64748b;
  margin: 0 0 8px;
}

.fishing-ship-schedules-empty-hint {
  font-size: 14px;
  color: #94a3b8;
}

/* =====================================================
   スケジュールカード（新デザイン）
   ===================================================== */
.schedule-cards {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.schedule-card {
  display: grid;
  grid-template-columns: 80px 1fr 100px;
  gap: 0;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  overflow: hidden;
  transition: box-shadow 0.2s, transform 0.2s;
}

.schedule-card--reserved {
  box-shadow: 0 0 0 2px #fcd34d, 0 4px 16px rgba(245, 158, 11, 0.18);
}

.schedule-card:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

/* 週末スタイル */
.schedule-card.weekend {
  border: 2px solid #fef3c7;
}

/* 空き状況による色分け */
.schedule-card.sold-out {
  opacity: 0.7;
}

.schedule-card.few-left {
  border-left: 4px solid #f59e0b;
}

/* === 日付セクション === */
.schedule-card__date {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 16px 12px;
  background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
  border-right: 1px solid #e2e8f0;
}

.schedule-card__month {
  font-size: 13px;
  color: #64748b;
  font-weight: 500;
}

.schedule-card__month small {
  font-size: 11px;
}

.schedule-card__day {
  font-size: 32px;
  font-weight: 800;
  color: #1e293b;
  line-height: 1.1;
  letter-spacing: -1px;
}

.schedule-card__weekday {
  font-size: 13px;
  font-weight: 600;
  color: #64748b;
  padding: 2px 8px;
  border-radius: 4px;
  margin-top: 4px;
}

.schedule-card__weekday.sun {
  color: #dc2626;
  background: #fef2f2;
}

.schedule-card__weekday.sat {
  color: #2563eb;
  background: #eff6ff;
}

/* === メインコンテンツ === */
.schedule-card__content {
  padding: 16px 20px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* ヘッダー（魚種 + タイプ） */
.schedule-card__header {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.schedule-card__fish {
  font-size: 18px;
  font-weight: 700;
  color: #0369a1;
  margin: 0;
  line-height: 1.3;
}

.schedule-card__fish--none {
  color: #94a3b8;
  font-weight: 500;
}

.schedule-card__type {
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border-radius: 20px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.schedule-card__type--charter {
  background: #fef3c7;
  color: #b45309;
}

.schedule-card__type--shared {
  background: #dbeafe;
  color: #1d4ed8;
}

.schedule-card.schedule-card--shared {
  border: 2px solid #dbeafe;
}

.schedule-card.schedule-card--charter {
  border: 2px solid #fef3c7;
}

/* 時間情報 */
.schedule-card__time {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  font-size: 14px;
  color: #475569;
}

.schedule-card__time-main {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 600;
}

.schedule-card__time-main i {
  color: #3b82f6;
}

.schedule-card__time-separator {
  color: #94a3b8;
  font-size: 12px;
}

.schedule-card__time-meeting {
  display: flex;
  align-items: center;
  gap: 6px;
  color: #64748b;
  font-size: 13px;
}

.schedule-card__time-meeting i {
  color: #f59e0b;
  font-size: 11px;
}

/* 料金グリッド */
.schedule-card__pricing {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  padding: 12px 16px;
  background: #f8fafc;
  border-radius: 10px;
  margin: 4px 0;
}

.schedule-card__price-main {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.schedule-card__price-main .schedule-card__price-value {
  font-size: 22px;
  font-weight: 800;
  color: #1e293b;
}

.schedule-card__price-sub {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding-left: 16px;
  border-left: 2px solid #e2e8f0;
}

.schedule-card__price-sub .schedule-card__price-value {
  font-size: 16px;
  font-weight: 700;
  color: #059669;
}

/* 女性料金スタイル */
.schedule-card__price-sub--female {
  border-left-color: #f9a8d4;
}

.schedule-card__price-sub--female .schedule-card__price-label {
  color: #be185d;
}

.schedule-card__price-sub--female .schedule-card__price-value {
  color: #be185d;
}

/* 子供料金スタイル */
.schedule-card__price-sub--child {
  border-left-color: #93c5fd;
}

.schedule-card__price-sub--child .schedule-card__price-label {
  color: #1d4ed8;
}

.schedule-card__price-sub--child .schedule-card__price-value {
  color: #1d4ed8;
}

.schedule-card__price-label {
  font-size: 11px;
  color: #64748b;
  font-weight: 500;
}

.schedule-card__price-value small {
  font-size: 12px;
  font-weight: 500;
}

/* 特徴タグ */
.schedule-card__features {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
}

.schedule-card__tag {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 6px;
}

.schedule-card__tag i {
  font-size: 11px;
}

.schedule-card__tag--beginner {
  background: #dcfce7;
  color: #166534;
}

.schedule-card__tag--rental {
  background: #e0f2fe;
  color: #0369a1;
}

.schedule-card__included {
  font-size: 12px;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 5px;
}

.schedule-card__included i {
  color: #10b981;
}

/* 備考 */
.schedule-card__note {
  font-size: 13px;
  color: #64748b;
  margin: 0;
  padding: 8px 12px;
  background: #fefce8;
  border-radius: 6px;
  border-left: 3px solid #facc15;
}

/* === アクションセクション === */
.schedule-card__action {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background: #f8fafc;
  border-left: 1px solid #e2e8f0;
  gap: 8px;
}

.schedule-card__slots {
  text-align: center;
}

.schedule-card__slots-num {
  font-size: 28px;
  font-weight: 800;
  color: #1e293b;
  line-height: 1;
}

.schedule-card__slots-label {
  font-size: 12px;
  color: #64748b;
  display: block;
}

.schedule-card__slots--few-left .schedule-card__slots-num {
  color: #f59e0b;
}

.schedule-card__slots--sold-out .schedule-card__slots-label {
  font-size: 14px;
  font-weight: 600;
  color: #dc2626;
}

/* 予約ボタン */
.schedule-card__btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 84px;
  min-height: 44px;
  font-size: 13px;
  font-weight: 700;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.2s;
}

.schedule-card__btn--book {
  background: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);
  color: #fff;
  box-shadow: 0 2px 8px rgba(37, 99, 235, 0.3);
}

.schedule-card__btn--book:hover {
  transform: scale(1.05);
  box-shadow: 0 4px 12px rgba(37, 99, 235, 0.4);
}

.schedule-card__btn--closed,
.schedule-card__btn--soldout {
  background: #e2e8f0;
  color: #94a3b8;
  cursor: default;
}

.schedule-card__info {
  font-size: 11px;
  color: #64748b;
  text-align: center;
  line-height: 1.4;
}

/* スケジュール管理用 */
.schedule-card--management {
  text-decoration: none;
  color: inherit;
  cursor: pointer;
}

.schedule-card--management.schedule-card--pending {
  box-shadow: 0 0 0 2px #f59e0b, 0 6px 20px rgba(245, 158, 11, 0.25);
}

.schedule-card--management:visited {
  color: inherit;
}

.schedule-card--management:hover {
  text-decoration: none;
}

.schedule-card--management.schedule-card--past {
  opacity: 0.6;
}

.schedule-card--management.schedule-card--today {
  box-shadow: 0 0 0 2px #fbbf24, 0 4px 16px rgba(251, 191, 36, 0.3);
}

.schedule-card__pending-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  font-size: 11px;
  font-weight: 700;
  color: #92400e;
  background: #fef3c7;
  border-radius: 999px;
}

.schedule-card__pending-badge i {
  font-size: 11px;
}

.schedule-card__management {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.schedule-card__reservation-summary {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px;
  padding: 10px 12px;
  background: #f8fafc;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
}

.schedule-card__capacity {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 1;
  min-width: 160px;
}

.schedule-card__capacity-bar {
  flex: 1;
  height: 6px;
  background: #e2e8f0;
  border-radius: 3px;
  overflow: hidden;
}

.schedule-card__capacity-fill {
  height: 100%;
  background: linear-gradient(90deg, #3b82f6 0%, #2563eb 100%);
  border-radius: 3px;
}

.schedule-card__capacity-text {
  font-size: 13px;
  font-weight: 600;
  color: #475569;
  white-space: nowrap;
}

.schedule-card__capacity.below-minimum .schedule-card__capacity-bar {
  background: #fef3c7;
}

.schedule-card__capacity.below-minimum .schedule-card__capacity-fill {
  background: linear-gradient(90deg, #f59e0b 0%, #d97706 100%);
}

.schedule-card__capacity.below-minimum .schedule-card__capacity-text {
  color: #b45309;
}

.schedule-card__minimum-warning {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 8px;
  font-size: 11px;
  font-weight: 600;
  color: #b45309;
  background: #fef3c7;
  border-radius: 10px;
  white-space: nowrap;
}

.schedule-card__minimum-warning i {
  font-size: 10px;
}

.schedule-card__reservation-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.schedule-card__reservation-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  font-size: 12px;
  font-weight: 600;
  border-radius: 12px;
}

.schedule-card__reservation-badge.confirmed {
  background: #dcfce7;
  color: #166534;
}

.schedule-card__reservation-badge.pending {
  background: #fef3c7;
  color: #92400e;
}

.schedule-card__reservation-empty {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 12px;
  font-size: 13px;
  color: #94a3b8;
  background: #f8fafc;
  border-radius: 10px;
  border: 1px dashed #e2e8f0;
}

.schedule-card__action--manage {
  gap: 10px;
}

.schedule-card__btn--manage {
  background: #f1f5f9;
  color: #475569;
  border: 1px solid #e2e8f0;
}

.schedule-card--management:hover .schedule-card__btn--manage {
  background: #e2e8f0;
}

.schedule-card__btn--auth,
.schedule-card__btn--login {
  background: #f1f5f9;
  color: #64748b;
  border: 1px solid #e2e8f0;
}

.schedule-card__btn--auth:hover,
.schedule-card__btn--login:hover {
  background: #e2e8f0;
  color: #475569;
}

.schedule-card__reservation-status {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 600;
  color: #475569;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 4px 8px;
  text-align: center;
}

.schedule-card__reservation-status--pending {
  color: #92400e;
  background: #fef3c7;
  border-color: #fcd34d;
}

.schedule-card__reservation-status--confirmed {
  color: #166534;
  background: #dcfce7;
  border-color: #86efac;
}

.schedule-card__reservation-status--cancelled {
  color: #991b1b;
  background: #fee2e2;
  border-color: #fecaca;
}

.schedule-card__reservation-status--completed {
  color: #1e40af;
  background: #dbeafe;
  border-color: #bfdbfe;
}

.schedule-card__reservation-status--no_show {
  color: #4b5563;
  background: #e5e7eb;
  border-color: #d1d5db;
}

.schedule-card__btn--reserved {
  width: 100%;
  background: #fffbeb;
  color: #92400e;
  border: 1px solid #fcd34d;
  cursor: default;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  padding: 6px 8px;
  text-align: center;
}

/* =====================================================
   スケジュールカード レスポンシブ
   ===================================================== */
@media (max-width: 700px) {
  .schedule-card {
    grid-template-columns: 70px 1fr;
    grid-template-rows: auto auto;
  }

  .schedule-card__date {
    grid-row: 1 / 3;
    padding: 12px 8px;
  }

  .schedule-card__day {
    font-size: 26px;
  }

  .schedule-card__content {
    padding: 12px 14px;
    gap: 10px;
  }

  .schedule-card__fish {
    font-size: 16px;
  }

  .schedule-card__pricing {
    padding: 10px 12px;
    gap: 12px;
  }

  .schedule-card__price-main .schedule-card__price-value {
    font-size: 18px;
  }

  .schedule-card__action {
    grid-column: 2;
    flex-direction: row;
    justify-content: space-between;
    padding: 10px 14px;
    border-left: none;
    border-top: 1px solid #e2e8f0;
  }

  .schedule-card__slots {
    display: flex;
    align-items: baseline;
    gap: 4px;
  }

  .schedule-card__slots-num {
    font-size: 20px;
  }

  .schedule-card__btn {
    width: 88px;
  }
}

@media (max-width: 480px) {
  .schedule-card__time {
    flex-direction: column;
    gap: 6px;
  }

  .schedule-card__pricing {
    flex-direction: column;
    gap: 8px;
  }

  .schedule-card__price-sub {
    padding-left: 0;
    padding-top: 8px;
    border-left: none;
    border-top: 1px dashed #e2e8f0;
    flex-direction: row;
    gap: 8px;
    align-items: center;
  }
}

/* =====================================================
   レスポンシブ対応
   ===================================================== */
@media (max-width: 600px) {
  /* =====================================================
     共通コンテナ
     ===================================================== */
  .captain-ships-container,
  .captain-ship-show-container,
  .captain-reservations-container,
  .captain-reservation-detail-container,
  .fishing-ships-container,
  .fishing-ship-show-container {
    padding: 12px;
  }

  /* =====================================================
     公開用釣船ページ
     ===================================================== */
  .fishing-ships-header h1,
  .fishing-ship-show-header h1 {
    font-size: 1.3em;
  }

  .fishing-ships-filter {
    padding: 16px;
  }

  .fishing-ships-filter-row {
    flex-direction: column;
  }

  .fishing-ships-filter-item {
    width: 100%;
  }

  .fishing-ships-filter-item--search {
    flex: none;
  }

  .fishing-ships-filter-section {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .fishing-ships-filter-section-title {
    margin-bottom: 4px;
  }

  .fishing-ships-filter-chips {
    width: 100%;
  }

  .fishing-ships-filter-chip {
    font-size: 12px;
    padding: 5px 10px;
  }

  .fishing-ships-filter-actions {
    width: 100%;
    flex-direction: row;
    gap: 8px;
  }

  .fishing-ships-filter-btn {
    flex: 1;
  }

  .fishing-ships-filter-clear-btn {
    flex: 0 0 auto;
  }

  .fishing-ship-card {
    padding: 0;
    overflow: hidden;
  }

  .fishing-ship-card-image {
    margin: 0;
    height: 140px;
    border-radius: 12px 12px 0 0;
  }

  .fishing-ship-card-header {
    flex-direction: column;
    gap: 8px;
    padding: 16px 16px 0;
  }

  .fishing-ship-card-details {
    padding: 0 16px;
    gap: 8px;
  }

  .fishing-ship-card-detail {
    font-size: 12px;
  }

  .fishing-ship-card-features {
    padding: 0 16px;
    margin-bottom: 8px;
  }

  .fishing-ship-card-feature {
    font-size: 11px;
    padding: 3px 8px;
  }

  .fishing-ship-card-description {
    padding: 0 16px;
    font-size: 13px;
  }

  .fishing-ship-card-footer {
    margin: 0 16px 16px;
    padding-top: 12px;
  }

  /* 公開用釣船詳細 */
  .fishing-ship-show-section {
    padding: 16px;
  }

  .fishing-ship-show-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .fishing-ship-show-item {
    flex-direction: row;
    justify-content: space-between;
  }

  .fishing-ship-show-item label {
    font-size: 13px;
  }

  .fishing-ship-show-item span {
    font-size: 14px;
    text-align: right;
  }

  .fishing-ship-schedule-item {
    flex-wrap: wrap;
    padding: 12px;
  }

  .fishing-ship-schedule-date {
    width: 100%;
    flex-direction: row;
    gap: 8px;
    padding-bottom: 12px;
    margin-bottom: 12px;
    border-bottom: 1px solid #e2e8f0;
    justify-content: flex-start;
    align-items: center;
  }

  .fishing-ship-schedule-month {
    font-size: 14px;
  }

  .fishing-ship-schedule-day {
    font-size: 20px;
  }

  .fishing-ship-schedule-info {
    width: 100%;
  }

  .fishing-ship-schedule-details {
    flex-wrap: wrap;
    gap: 8px;
  }

  .fishing-ship-schedule-action {
    width: 100%;
    margin-top: 12px;
  }

  .fishing-ship-reserve-btn {
    width: 100%;
    justify-content: center;
    padding: 14px;
  }

  /* =====================================================
     船長向け釣船管理
     ===================================================== */
  .captain-ships-header {
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
  }

  .captain-ships-header h1 {
    font-size: 1.3em;
  }

  .captain-ships-add-btn {
    text-align: center;
    padding: 12px;
  }

  .captain-ship-card {
    padding: 12px;
  }

  .captain-ship-card-image {
    width: 80px;
    height: 60px;
    border-radius: 6px;
  }

  .captain-ship-card-no-image {
    font-size: 24px;
  }

  .captain-ship-name {
    font-size: 1em;
  }

  .captain-ship-details {
    gap: 8px;
  }

  .captain-ship-detail {
    font-size: 12px;
  }

  .captain-ship-description {
    font-size: 13px;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .captain-ship-actions {
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
    padding-top: 12px;
  }

  .captain-ship-action-btn {
    flex: 1;
    min-width: calc(50% - 3px);
    justify-content: center;
    padding: 10px 8px;
    font-size: 12px;
  }

  /* 船長向け釣船詳細 */
  .captain-ship-show-title-row {
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
  }

  .captain-ship-show-title-row h1 {
    font-size: 1.3em;
  }

  .captain-ship-show-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .captain-ship-show-actions .captain-btn {
    justify-content: center;
    padding: 10px;
  }

  .captain-ship-show-section {
    padding: 16px;
  }

  .captain-ship-show-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .captain-ship-show-item {
    display: flex;
    justify-content: space-between;
  }

  .captain-ship-show-item label {
    font-size: 13px;
  }

  .captain-ship-show-item span {
    font-size: 14px;
  }

  .captain-ship-show-section-header {
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
  }

  .captain-ship-show-section-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }

  .captain-ship-show-section-header .captain-btn {
    justify-content: center;
  }

  /* =====================================================
     船長向け予約管理
     ===================================================== */
  .captain-reservations-header h1 {
    font-size: 1.3em;
  }

  .captain-reservations-date {
    font-size: 1em;
  }

  .captain-reservation-card {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    padding: 14px;
  }

  .captain-reservation-card-info {
    gap: 8px;
  }

  .captain-reservation-card-user {
    font-size: 14px;
  }

  .captain-reservation-card-details {
    flex-wrap: wrap;
    gap: 8px;
    font-size: 12px;
  }

  .captain-reservation-card-details span {
    white-space: nowrap;
  }

  .captain-reservation-card-contact {
    font-size: 12px;
  }

  .captain-reservation-card-status {
    display: flex;
    justify-content: flex-start;
  }

  .captain-reservation-card-actions {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
    width: 100%;
    padding-top: 12px;
    border-top: 1px solid #e2e8f0;
  }

  .captain-reservation-card-actions .captain-btn {
    justify-content: center;
    padding: 10px 8px;
    font-size: 12px;
  }

  /* 船長向け予約詳細 */
  .captain-reservation-detail-header {
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
  }

  .captain-reservation-detail-header h1 {
    font-size: 1.3em;
  }

  .captain-reservation-detail-card {
    padding: 16px;
  }

  .captain-reservation-detail-list dt {
    font-size: 13px;
  }

  .captain-reservation-detail-list dd {
    font-size: 14px;
  }

  /* 予約管理 新UI（モバイル） */
  .reservation-mgmt {
    padding: 12px;
  }

  .reservation-mgmt-header h1 {
    font-size: 18px;
  }

  .reservation-pending-main {
    flex-direction: column;
    gap: 12px;
  }

  .reservation-pending-date {
    flex-direction: row;
    justify-content: flex-start;
    gap: 8px;
    padding: 10px 12px;
  }

  .reservation-pending-date-num {
    font-size: 24px;
  }

  .reservation-pending-phone {
    width: 100%;
    justify-content: center;
  }

  .reservation-pending-actions {
    flex-direction: column;
  }

  .reservation-btn-approve,
  .reservation-btn-detail {
    flex: none;
    width: 100%;
  }

  .reservation-today-customer {
    flex-wrap: wrap;
  }

  .reservation-today-customer-phone {
    width: 100%;
    justify-content: center;
    order: 10;
    margin-top: 8px;
  }

  .reservation-today-customer-actions {
    margin-left: auto;
  }

  .reservation-upcoming-item {
    flex-wrap: wrap;
  }

  .reservation-upcoming-name {
    width: calc(100% - 130px);
  }

  /* 予約管理 旧UI（モバイル） */
  .captain-reservations-summary {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .captain-reservations-summary-card {
    padding: 12px;
  }

  .captain-reservations-summary-count {
    font-size: 20px;
  }

  .captain-reservations-section.pending-section {
    padding: 12px;
  }

  .captain-reservations-cards {
    grid-template-columns: 1fr;
  }

  .captain-reservation-card-new-body {
    flex-direction: column;
    gap: 12px;
  }

  .captain-reservation-card-new-contact {
    width: 100%;
  }

  .captain-phone-link-compact {
    width: 100%;
    justify-content: center;
  }

  .captain-reservation-row {
    flex-wrap: wrap;
    padding: 12px;
  }

  .captain-reservation-row-time {
    width: auto;
  }

  .captain-reservation-row-user {
    flex: 1;
    min-width: 0;
  }

  .captain-reservation-row-contact {
    width: 100%;
    order: 10;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #f1f5f9;
  }

  .captain-reservation-row-status {
    min-width: auto;
  }

  /* 承認・却下セクション（モバイル） */
  .captain-approval-section {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .captain-approval-card-header {
    padding: 10px 14px;
  }

  .captain-approval-card-body {
    padding: 14px;
  }

  .captain-reservation-detail-actions {
    flex-direction: column;
    gap: 10px;
  }

  .captain-reservation-detail-actions .captain-btn {
    width: 100%;
    justify-content: center;
    padding: 14px;
  }

  .captain-reject-form .captain-btn {
    width: 100%;
    padding: 14px;
  }

  /* =====================================================
     フォーム
     ===================================================== */
  .captain-form-section {
    padding: 16px;
  }

  .captain-form-section h2 {
    font-size: 1em;
  }

  .captain-form-row {
    grid-template-columns: 1fr;
  }

  .captain-form-label {
    font-size: 13px;
  }

  .captain-form-input,
  .captain-form-select,
  .captain-form-textarea {
    padding: 12px;
    font-size: 16px; /* iOS Safari のズーム防止 */
  }

  .captain-form-actions .captain-btn {
    width: 100%;
    padding: 14px;
    font-size: 15px;
  }

  .captain-form-image-preview img {
    max-width: 100%;
  }

  /* 画像アップロード */
  .captain-image-upload-dropzone {
    padding: 24px 16px;
  }

  .captain-image-upload-icon {
    width: 48px;
    height: 48px;
    font-size: 20px;
  }

  .captain-image-upload-main {
    font-size: 14px;
  }

  .captain-image-upload-sub {
    font-size: 12px;
  }

  .captain-image-upload-preview img {
    max-height: 200px;
  }

  .captain-image-upload-overlay {
    opacity: 1;
    background: rgba(0, 0, 0, 0.4);
  }

  .captain-image-upload-overlay i {
    font-size: 24px;
  }

  .captain-image-upload-overlay span {
    font-size: 13px;
  }

  /* =====================================================
     ユーザー向け予約フォーム
     ===================================================== */
  .reservation-form-container {
    padding: 12px;
  }

  .reservation-form-section {
    padding: 16px;
  }

  .reservation-form-ship-info {
    flex-direction: column;
    gap: 12px;
  }

  .reservation-form-schedule-details {
    flex-wrap: wrap;
    gap: 8px;
  }

  .reservation-summary-row {
    flex-wrap: wrap;
    gap: 4px;
  }

  /* 予約注意事項・同意チェック（モバイル） */
  .reservation-terms {
    margin: 16px 0;
  }

  .reservation-terms-header {
    padding: 10px 14px;
    font-size: 14px;
  }

  .reservation-terms-content {
    padding: 14px;
  }

  .reservation-terms-content > p {
    font-size: 13px;
  }

  .reservation-terms-items {
    gap: 10px;
  }

  .reservation-terms-item {
    padding: 10px;
  }

  .reservation-terms-item span {
    font-size: 13px;
  }

  /* =====================================================
     ユーザー向け予約一覧・詳細
     ===================================================== */
  .reservations-container {
    max-width: 100%;
    padding: 8px 0;
  }

  .reservations-header {
    padding: 0 12px 8px;
  }

  .reservations-header h1 {
    font-size: 1.3em;
    margin-bottom: 0;
  }

  .reservations-list {
    gap: 10px;
    margin: 0;
    padding: 0 12px;
  }

  .reservation-card {
    flex-direction: column;
    align-items: stretch;
    padding: 14px 12px;
    gap: 10px;
    border-radius: 10px;
    box-shadow: var(--shadow-sm);
    border-left: none;
    border-top: 3px solid #3b82f6;
    width: 100%;
    margin: 0;
  }

  .reservation-card.pending {
    border-top-color: #f59e0b;
  }

  .reservation-card.confirmed {
    border-top-color: #22c55e;
  }

  .reservation-card.cancelled {
    border-top-color: #ef4444;
  }

  .reservation-card.completed {
    border-top-color: #6366f1;
  }

  .reservation-card.no_show {
    border-top-color: #64748b;
  }

  .reservation-card-date {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding-right: 0;
    padding-bottom: 10px;
    border-right: none;
    border-bottom: 1px solid #e2e8f0;
    width: 100%;
  }

  .reservation-card-day {
    font-size: 24px;
  }

  .reservation-card-info {
    gap: 6px;
    width: 100%;
  }

  .reservation-card-ship {
    font-size: 15px;
    font-weight: 600;
  }

  .reservation-card-time {
    font-size: 13px;
  }

  .reservation-card-details {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 13px;
    width: 100%;
  }

  .reservation-card-status {
    display: flex;
    justify-content: flex-end;
    padding-top: 10px;
    border-top: 1px solid #e2e8f0;
    width: 100%;
  }

  .reservation-card-arrow {
    display: none;
  }

  .reservations-empty {
    padding: 40px 12px;
    border-radius: 10px;
    box-shadow: var(--shadow-sm);
  }

  .reservations-empty-icon {
    font-size: 40px;
  }

  .reservations-empty .btn {
    width: 100%;
  }

  /* 予約詳細ページ */
  .reservation-detail-container {
    padding: 12px;
  }

  .reservation-detail-header {
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
  }

  .reservation-detail-header h1 {
    font-size: 1.3em;
  }

  .reservation-detail-card {
    padding: 16px;
  }

  .reservation-detail-card h2 {
    font-size: 0.95em;
  }

  .reservation-detail-list {
    gap: 12px;
  }

  .reservation-detail-list dt {
    font-size: 12px;
  }

  .reservation-detail-list dd {
    font-size: 14px;
  }

  .reservation-detail-actions {
    flex-direction: column;
    gap: 10px;
  }

  .reservation-detail-actions .captain-btn {
    width: 100%;
    justify-content: center;
    padding: 14px;
  }

  /* 予約詳細 - 出船日時カード（モバイル） */
  .reservation-schedule-card {
    flex-direction: column;
    gap: 16px;
    padding: 16px;
  }

  .reservation-schedule-date {
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding-right: 0;
    padding-bottom: 16px;
    border-right: none;
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
  }

  .reservation-schedule-day {
    font-size: 36px;
  }

  .reservation-schedule-time {
    font-size: 16px;
  }

  .reservation-ship-image {
    height: 160px;
  }

  .reservation-detail-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .reservation-detail-card.pending-notice {
    flex-direction: column;
    text-align: center;
  }

  .reservation-map-container {
    height: 180px;
  }
}

/* 小さいスマホ向け（iPhone SE等） */
@media (max-width: 375px) {
  .captain-ship-card {
    flex-direction: column;
  }

  .captain-ship-card-image {
    width: 100%;
    height: 120px;
  }

  .captain-ship-action-btn {
    min-width: 100%;
  }

  .captain-reservation-card-actions {
    grid-template-columns: 1fr;
  }

  .fishing-ship-card-details {
    flex-direction: column;
    gap: 4px;
  }

  .reservation-card-details {
    flex-direction: column;
    gap: 4px;
  }

  .fishing-ship-schedule-details {
    flex-direction: column;
    gap: 4px;
  }

  .captain-ship-show-actions {
    grid-template-columns: 1fr;
  }
}

/* ========================================
   釣船承認ステータスバッジ
   ======================================== */

.captain-ship-name-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.captain-ship-status-badge {
  font-size: 11px;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 12px;
  white-space: nowrap;
}

.captain-ship-status-badge.approval_pending {
  background-color: #fff3cd;
  color: #856404;
}

.captain-ship-status-badge.approved {
  background-color: #d4edda;
  color: #155724;
}

.captain-ship-status-badge.rejected {
  background-color: #f8d7da;
  color: #721c24;
}

.captain-ship-pending-notice {
  font-size: 13px;
  color: #856404;
  background-color: #fff3cd;
  padding: 8px 12px;
  border-radius: 6px;
  margin: 8px 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-ship-rejected-notice {
  font-size: 13px;
  color: #721c24;
  background-color: #f8d7da;
  padding: 10px 12px;
  border-radius: 6px;
  margin: 8px 0;
}

.captain-ship-rejected-notice p {
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-ship-rejection-reason {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(114, 28, 36, 0.2);
  font-size: 12px;
}

.captain-ship-rejection-reason strong {
  display: block;
  margin-bottom: 4px;
}

/* 詳細ページのステータス通知 */
.captain-ship-status-notice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  border-radius: 8px;
  margin-bottom: 20px;
}

.captain-ship-status-notice.pending {
  background-color: #fff3cd;
  color: #856404;
}

.captain-ship-status-notice.rejected {
  background-color: #f8d7da;
  color: #721c24;
}

.captain-ship-status-notice i {
  font-size: 24px;
  flex-shrink: 0;
  margin-top: 2px;
}

.captain-ship-status-notice strong {
  display: block;
  font-size: 15px;
  margin-bottom: 4px;
}

.captain-ship-status-notice > div > p {
  margin: 0;
  font-size: 13px;
}

.captain-ship-rejection-reason-detail {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(114, 28, 36, 0.2);
}

.captain-ship-rejection-reason-detail strong {
  font-size: 13px;
  margin-bottom: 8px;
}

.captain-ship-rejection-reason-detail p {
  background-color: rgba(255, 255, 255, 0.5);
  padding: 10px;
  border-radius: 6px;
  margin: 8px 0 0 0;
  font-size: 13px;
}

.captain-ship-reapply-actions {
  display: flex;
  gap: 12px;
  margin-top: 16px;
  flex-wrap: wrap;
}

.captain-ship-reapply-actions .captain-btn {
  flex-shrink: 0;
}

/* 編集画面の却下アラート */
.captain-ship-rejection-alert {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px;
  background-color: #f8d7da;
  border: 1px solid #f5c6cb;
  border-radius: 8px;
  margin-bottom: 24px;
  color: #721c24;
}

.captain-ship-rejection-alert-icon {
  font-size: 28px;
  flex-shrink: 0;
}

.captain-ship-rejection-alert-content h2 {
  font-size: 18px;
  font-weight: 600;
  margin: 0 0 8px 0;
}

.captain-ship-rejection-alert-content > p {
  margin: 0;
  font-size: 14px;
}

.captain-ship-rejection-alert-reason {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid rgba(114, 28, 36, 0.2);
}

.captain-ship-rejection-alert-reason strong {
  display: block;
  font-size: 13px;
  margin-bottom: 8px;
}

.captain-ship-rejection-alert-reason p {
  margin: 0;
  background-color: rgba(255, 255, 255, 0.5);
  padding: 12px;
  border-radius: 6px;
  font-size: 14px;
}

/* 再申請セクション */
.captain-ship-reapply-section {
  margin-top: 32px;
  padding: 24px;
  background-color: #e8f4fd;
  border: 1px solid #b8daff;
  border-radius: 8px;
  text-align: center;
}

.captain-ship-reapply-section h3 {
  font-size: 18px;
  font-weight: 600;
  color: #004085;
  margin: 0 0 8px 0;
}

.captain-ship-reapply-section > p {
  color: #004085;
  font-size: 14px;
  margin: 0 0 16px 0;
}

.captain-ship-reapply-section .captain-btn-large {
  padding: 14px 32px;
  font-size: 16px;
}

/* 一覧のアクションボタン（primary） */
.captain-ship-action-btn.primary {
  background-color: #1a73e8;
  color: white;
}

.captain-ship-action-btn.primary:hover {
  background-color: #1557b0;
}

/* 船長規約同意ページ */

.captain-terms-container {
  max-width: 640px;
  margin: 0 auto;
  padding: 24px 16px;
}

.captain-terms-header {
  text-align: center;
  margin-bottom: 32px;
}

.captain-terms-icon {
  width: 72px;
  height: 72px;
  background: linear-gradient(135deg, #4a90d9 0%, #357abd 100%);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 16px;
  box-shadow: 0 4px 12px rgba(74, 144, 217, 0.3);
}

.captain-terms-icon i {
  font-size: 32px;
  color: #fff;
}

.captain-terms-header h1 {
  font-size: 26px;
  font-weight: 700;
  color: #333;
  margin-bottom: 8px;
}

.captain-terms-subtitle {
  color: #666;
  font-size: 14px;
  margin: 0;
}

.captain-terms-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.captain-terms-card {
  background: #fff;
  border-radius: 16px;
  padding: 0;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
  overflow: hidden;
}

.captain-terms-section {
  padding: 24px;
}

.captain-terms-divider {
  height: 1px;
  background: #e9ecef;
  margin: 0;
}

.captain-terms-section-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.captain-terms-section-icon {
  width: 40px;
  height: 40px;
  background: #e8f4fd;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

.captain-terms-section-icon i {
  font-size: 18px;
  color: #4a90d9;
}

.captain-terms-section-icon.warning {
  background: #fff3cd;
}

.captain-terms-section-icon.warning i {
  color: #856404;
}

.captain-terms-section-icon.danger {
  background: #f8d7da;
}

.captain-terms-section-icon.danger i {
  color: #721c24;
}

.captain-terms-section-icon.muted {
  background: #e9ecef;
}

.captain-terms-section-icon.muted i {
  color: #6c757d;
}

.captain-terms-section h2 {
  font-size: 17px;
  font-weight: 600;
  color: #333;
  margin: 0;
}

.captain-terms-content {
  font-size: 14px;
  color: #555;
  line-height: 1.8;
  margin-bottom: 16px;
  padding-left: 52px;
}

.captain-terms-content p {
  margin: 0 0 12px;
}

.captain-terms-content ul {
  padding-left: 20px;
  margin: 0;
}

.captain-terms-content li {
  margin-bottom: 8px;
  position: relative;
}

.captain-terms-content li::marker {
  color: #4a90d9;
}

.captain-terms-note {
  font-size: 13px;
  color: #666;
  background: #f8f9fa;
  padding: 10px 12px;
  border-radius: 6px;
  margin-top: 12px;
  border-left: 3px solid #dee2e6;
}

.captain-terms-link {
  color: #4a90d9;
  text-decoration: none;
  font-weight: 500;
}

.captain-terms-link:hover {
  text-decoration: underline;
}

.captain-terms-checkbox {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  background: #f8f9fa;
  border-radius: 10px;
  cursor: pointer;
  margin-left: 52px;
  transition: background-color 0.2s, box-shadow 0.2s;
  border: 2px solid transparent;
}

.captain-terms-checkbox:hover {
  background: #f0f4f8;
}

.captain-terms-checkbox:has(input:checked) {
  background: #e8f4fd;
  border-color: #4a90d9;
}

.captain-terms-checkbox input[type="checkbox"] {
  width: 22px;
  height: 22px;
  cursor: pointer;
  accent-color: #4a90d9;
  flex-shrink: 0;
}

.captain-terms-checkbox-text {
  font-size: 14px;
  color: #333;
  font-weight: 500;
}

.captain-terms-notice {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  background: #e8f4fd;
  border-radius: 12px;
  border-left: 4px solid #4a90d9;
}

.captain-terms-notice > i {
  font-size: 20px;
  color: #4a90d9;
  flex-shrink: 0;
  margin-top: 2px;
}

.captain-terms-notice strong {
  display: block;
  font-size: 14px;
  color: #333;
  margin-bottom: 4px;
}

.captain-terms-notice p {
  font-size: 13px;
  color: #555;
  margin: 0;
  line-height: 1.6;
}

.captain-terms-actions {
  text-align: center;
}

.captain-terms-submit {
  width: 100%;
  padding: 16px 24px;
  font-size: 16px;
  font-weight: 600;
  border-radius: 12px;
  transition: opacity 0.2s, transform 0.2s;
}

.captain-terms-submit:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.captain-terms-submit:not(:disabled):hover {
  transform: translateY(-1px);
}

.captain-terms-actions-hint {
  font-size: 13px;
  color: #888;
  margin-top: 12px;
}

.captain-terms-error {
  color: #dc3545;
  font-size: 13px;
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* 規約ページ レスポンシブ */
@media (max-width: 480px) {
  .captain-terms-container {
    padding: 16px 12px;
  }

  .captain-terms-icon {
    width: 60px;
    height: 60px;
  }

  .captain-terms-icon i {
    font-size: 26px;
  }

  .captain-terms-header h1 {
    font-size: 22px;
  }

  .captain-terms-section {
    padding: 20px 16px;
  }

  .captain-terms-section-icon {
    width: 36px;
    height: 36px;
  }

  .captain-terms-section-icon i {
    font-size: 16px;
  }

  .captain-terms-section h2 {
    font-size: 15px;
  }

  .captain-terms-content {
    padding-left: 0;
    margin-top: 12px;
  }

  .captain-terms-checkbox {
    margin-left: 0;
    padding: 12px;
  }

  .captain-terms-checkbox input[type="checkbox"] {
    width: 20px;
    height: 20px;
  }

  .captain-terms-checkbox-text {
    font-size: 13px;
  }
}

/* レスポンシブ */

/* =====================================================
   スケジュールテンプレート管理
   ===================================================== */

/* テンプレート一覧ページ */
.captain-templates {
  max-width: 800px;
  margin: 0 auto;
  padding: 20px;
}

.captain-templates__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-text-muted);
  text-decoration: none;
  font-size: 14px;
  margin-bottom: 16px;
}

.captain-templates__back:hover {
  color: var(--color-primary);
}

.captain-templates__hero {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 16px;
  margin-bottom: 24px;
}

.captain-templates__hero-content {
  flex: 1;
}

.captain-templates__title {
  font-size: 24px;
  font-weight: 700;
  color: var(--color-text-primary);
  margin: 0 0 4px;
  display: flex;
  align-items: center;
  gap: 10px;
}

.captain-templates__title i {
  color: var(--color-primary);
}

.captain-templates__subtitle {
  font-size: 14px;
  color: var(--color-text-muted);
  margin: 0;
}

.captain-templates__add-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
  color: white;
  border-radius: var(--radius-sm);
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  white-space: nowrap;
}

.captain-templates__add-btn:hover {
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
  transform: translateY(-1px);
}

.captain-templates__alert {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: var(--radius-sm);
  font-size: 14px;
  margin-bottom: 20px;
}

.captain-templates__alert.warning {
  background: #fef3c7;
  color: #92400e;
}

.captain-templates__hint {
  font-size: 14px;
  color: var(--color-text-muted);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-templates__list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* テンプレートカード */
.captain-template-card {
  display: flex;
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  padding: 16px;
  gap: 16px;
}

.captain-template-card__main {
  flex: 1;
  min-width: 0;
}

.captain-template-card__header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}

.captain-template-card__name {
  font-size: 16px;
  font-weight: 600;
  color: var(--color-text-primary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-template-card__name i {
  color: var(--color-primary);
}

.captain-template-card__type {
  font-size: 12px;
  font-weight: 600;
  padding: 3px 8px;
  border-radius: 4px;
}

.captain-template-card__type.shared {
  background: #dbeafe;
  color: #1d4ed8;
}

.captain-template-card__type.charter {
  background: #fef3c7;
  color: #92400e;
}

.captain-template-card__details {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  font-size: 14px;
  color: var(--color-text-secondary);
  margin-bottom: 10px;
}

.captain-template-card__details > span {
  display: flex;
  align-items: center;
  gap: 5px;
}

.captain-template-card__details i {
  color: var(--color-text-muted);
}

.captain-template-card__badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.captain-template-card__badge {
  font-size: 12px;
  padding: 3px 8px;
  background: #f1f5f9;
  color: var(--color-text-secondary);
  border-radius: 4px;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.captain-template-card__actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.captain-template-card__action {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  cursor: pointer;
  transition: all 0.2s;
}

.captain-template-card__action.edit {
  background: #e0f2fe;
  color: #0369a1;
  text-decoration: none;
}

.captain-template-card__action.edit:hover {
  background: #bae6fd;
}

.captain-template-card__action.delete {
  background: #fee2e2;
  color: #dc2626;
}

.captain-template-card__action.delete:hover {
  background: #fecaca;
}

/* テンプレート空状態 */
.captain-templates__empty {
  text-align: center;
  padding: 60px 20px;
  background: white;
  border: 2px dashed var(--color-border);
  border-radius: var(--radius-lg);
}

.captain-templates__empty-icon {
  font-size: 48px;
  color: var(--color-text-light);
  margin-bottom: 16px;
}

.captain-templates__empty h2 {
  font-size: 18px;
  font-weight: 600;
  color: var(--color-text-primary);
  margin: 0 0 8px;
}

.captain-templates__empty p {
  font-size: 14px;
  color: var(--color-text-muted);
  margin: 0 0 24px;
  line-height: 1.6;
}

/* テンプレートフォームページ */
.captain-template-form-page {
  max-width: 640px;
  margin: 0 auto;
  padding: 20px;
}

.captain-template-form-page__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--color-text-muted);
  text-decoration: none;
  font-size: 14px;
  margin-bottom: 16px;
}

.captain-template-form-page__back:hover {
  color: var(--color-primary);
}

.captain-template-form-page__hero {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 24px;
  padding: 20px;
  background: linear-gradient(135deg, #e0f2fe 0%, #f0f9ff 100%);
  border-radius: var(--radius-md);
}

.captain-template-form-page__hero.new {
  background: linear-gradient(135deg, #dcfce7 0%, #f0fdf4 100%);
}

.captain-template-form-page__hero-icon {
  font-size: 32px;
  color: var(--color-primary);
}

.captain-template-form-page__hero.new .captain-template-form-page__hero-icon {
  color: var(--color-success);
}

.captain-template-form-page__title {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-text-primary);
  margin: 0 0 4px;
}

.captain-template-form-page__subtitle {
  font-size: 14px;
  color: var(--color-text-muted);
  margin: 0;
}

/* テンプレートフォーム（スケジュールフォームと同じスタイル） */
.captain-template-form__errors {
  display: flex;
  gap: 12px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: var(--radius-md);
  padding: 16px;
  margin-bottom: 20px;
}

.captain-template-form__errors-icon {
  color: #dc2626;
  font-size: 20px;
}

.captain-template-form__errors-content strong {
  display: block;
  font-size: 14px;
  color: #dc2626;
  margin-bottom: 8px;
}

.captain-template-form__errors-content ul {
  margin: 0;
  padding-left: 18px;
}

.captain-template-form__errors-content li {
  font-size: 13px;
  color: #b91c1c;
  line-height: 1.5;
}

.captain-template-form__card {
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  margin-bottom: 16px;
  overflow: hidden;
}

.captain-template-form__card-header {
  padding: 14px 18px;
  background: #f8fafc;
  border-bottom: 1px solid var(--color-border);
  font-size: 15px;
  font-weight: 600;
  color: var(--color-text-primary);
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-template-form__card-header i {
  color: var(--color-primary);
}

.captain-template-form__card-body {
  padding: 18px;
}

.captain-template-form__field {
  margin-bottom: 18px;
}

.captain-template-form__field:last-child {
  margin-bottom: 0;
}

.captain-template-form__field.grow {
  flex: 1;
}

.captain-template-form__row {
  display: flex;
  gap: 16px;
}

.captain-template-form__row > .captain-template-form__field {
  flex: 1;
}

.captain-template-form__label {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: #475569;
  margin-bottom: 8px;
}

.captain-template-form__label.required::after {
  content: "*";
  color: var(--color-danger);
  margin-left: 4px;
}

.captain-template-form__input,
.captain-template-form__select,
.captain-template-form__textarea {
  width: 100%;
  padding: 11px 14px;
  border: 1px solid #e2e8f0;
  border-radius: var(--radius-sm);
  font-size: 15px;
  color: var(--color-text-primary);
  background: white;
  transition: all 0.2s;
  box-sizing: border-box;
}

.captain-template-form__input:focus,
.captain-template-form__select:focus,
.captain-template-form__textarea:focus {
  outline: none;
  border-color: var(--color-primary);
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.captain-template-form__input::placeholder,
.captain-template-form__textarea::placeholder {
  color: #94a3b8;
}

.captain-template-form__select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%2364748b' d='M2 4l4 4 4-4'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 36px;
}

.captain-template-form__textarea {
  resize: vertical;
  min-height: 80px;
}

.captain-template-form__input-group {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: 100%;
}

.captain-template-form__input-group .captain-template-form__input {
  flex: 1;
  min-width: 0;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
  border-right: none;
}

.captain-template-form__input-suffix {
  padding: 11px 12px;
  background: #f1f5f9;
  border: 1px solid #e2e8f0;
  border-left: none;
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  font-size: 14px;
  color: #64748b;
}

.captain-template-form__hint {
  font-size: 12px;
  color: var(--color-text-muted);
  margin-top: 6px;
}

.captain-template-form__charter-note {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 16px;
  background: #f0f9ff;
  border-radius: 8px;
  font-size: 14px;
  color: #0369a1;
  margin: 0;
}

.captain-template-form__charter-note i {
  color: #0ea5e9;
}

.captain-template-form__checkboxes {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.captain-template-form__checkbox-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
  padding: 12px;
  background: #f8fafc;
  border-radius: var(--radius-sm);
}

.captain-template-form__checkbox {
  margin-top: 2px;
}

.captain-template-form__checkbox-label {
  font-size: 14px;
  font-weight: 500;
  color: var(--color-text-primary);
  display: flex;
  align-items: center;
  gap: 6px;
}

.captain-template-form__checkbox-hint {
  font-size: 12px;
  color: var(--color-text-muted);
  margin-left: auto;
}

.captain-template-form__actions {
  margin-top: 24px;
}

.captain-template-form__submit {
  width: 100%;
  padding: 14px 24px;
  background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%);
  color: white;
  border: none;
  border-radius: var(--radius-sm);
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
}

.captain-template-form__submit:hover {
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.4);
  transform: translateY(-1px);
}

/* スケジュール作成時のテンプレート選択 */
.captain-schedule-templates {
  margin-bottom: 24px;
}

.captain-schedule-templates__header {
  font-size: 15px;
  font-weight: 600;
  color: var(--color-text-primary);
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-schedule-templates__header i {
  color: var(--color-primary);
}

.captain-schedule-templates__list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.captain-schedule-templates__item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  background: white;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  text-decoration: none;
  color: var(--color-text-secondary);
  font-size: 14px;
  transition: all 0.2s;
}

.captain-schedule-templates__item:hover {
  border-color: var(--color-primary);
  background: #f0f9ff;
  color: var(--color-primary);
}

.captain-schedule-templates__item.active {
  border-color: var(--color-primary);
  background: #e0f2fe;
  color: var(--color-primary);
  font-weight: 600;
}

.captain-schedule-templates__item i {
  color: var(--color-primary);
}

.captain-schedule-templates__manage {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  background: #f1f5f9;
  border: 1px dashed var(--color-border);
  border-radius: var(--radius-sm);
  text-decoration: none;
  color: var(--color-text-muted);
  font-size: 14px;
}

.captain-schedule-templates__manage:hover {
  background: #e2e8f0;
  color: var(--color-text-secondary);
}

/* レスポンシブ */
@media (max-width: 640px) {
  .captain-templates__hero {
    flex-direction: column;
    align-items: stretch;
  }

  .captain-templates__add-btn {
    text-align: center;
    justify-content: center;
  }

  .captain-template-card {
    flex-direction: column;
  }

  .captain-template-card__actions {
    flex-direction: row;
    justify-content: flex-end;
  }

  .captain-template-form__row {
    flex-direction: column;
    gap: 0;
  }

  .captain-template-form__checkbox-hint {
    display: none;
  }

  .captain-schedule-templates__list {
    flex-direction: column;
  }
}

/* =====================================================
   船長チケット購入ページ
   ===================================================== */

.captain-plan-container {
  max-width: 500px;
  margin: 20px auto;
  padding: 20px;
}

.captain-plan-header {
  text-align: center;
  margin-bottom: 24px;
}

.captain-plan-header h1 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 8px;
}

.captain-plan-header h1 i {
  color: #f59e0b;
  margin-right: 8px;
}

.captain-plan-ship-name {
  font-size: 0.95rem;
  color: #64748b;
  margin: 0;
}

.captain-plan-ship-name i {
  margin-right: 6px;
}

/* プラン有効時 */
.captain-plan-active {
  background: #fff;
  border-radius: 12px;
  padding: 32px 24px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.captain-plan-active-icon {
  font-size: 3rem;
  color: #10b981;
  margin-bottom: 16px;
}

.captain-plan-active h2 {
  font-size: 1.25rem;
  font-weight: 600;
  color: #1e293b;
  margin: 0 0 20px;
}

.captain-plan-status {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px;
  border-radius: 8px;
  margin-bottom: 24px;
  text-align: left;
}

.captain-plan-status.trial {
  background: #fef3c7;
  color: #92400e;
}

.captain-plan-status.trial i {
  font-size: 1.5rem;
  color: #f59e0b;
}

.captain-plan-status.active {
  background: #d1fae5;
  color: #065f46;
}

.captain-plan-status.active i {
  font-size: 1.5rem;
  color: #10b981;
}

.captain-plan-status strong {
  display: block;
  font-size: 0.9rem;
  margin-bottom: 2px;
}

.captain-plan-status p {
  font-size: 0.85rem;
  margin: 0;
  opacity: 0.9;
}

/* 購入が必要な場合 */
.captain-plan-notice {
  display: flex;
  gap: 12px;
  background: #fef3c7;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 24px;
}

.captain-plan-notice > i {
  color: #f59e0b;
  font-size: 1.2rem;
  flex-shrink: 0;
}

.captain-plan-notice strong {
  display: block;
  color: #92400e;
  font-size: 0.95rem;
  margin-bottom: 4px;
}

.captain-plan-notice p {
  color: #a16207;
  font-size: 0.85rem;
  margin: 0;
}

/* プランカード */
.captain-plan-card {
  background: #fff;
  border-radius: 12px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
  overflow: hidden;
}

.captain-plan-card-header {
  background: linear-gradient(135deg, #0ea5e9 0%, #0284c7 100%);
  padding: 24px;
  text-align: center;
  color: #fff;
}

.captain-plan-card-header h2 {
  font-size: 1.1rem;
  font-weight: 600;
  margin: 0 0 12px;
}

.captain-plan-price {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
}

.captain-plan-price .price {
  font-size: 2.5rem;
  font-weight: 700;
}

.captain-plan-price .unit {
  font-size: 1rem;
  opacity: 0.9;
}

.captain-plan-card-body {
  padding: 24px;
}

.captain-plan-features {
  list-style: none;
  padding: 0;
  margin: 0 0 20px;
}

.captain-plan-features li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 0;
  border-bottom: 1px solid #f1f5f9;
  font-size: 0.95rem;
  color: #334155;
}

.captain-plan-features li:last-child {
  border-bottom: none;
}

.captain-plan-features li i {
  color: #10b981;
}

.captain-plan-note {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.85rem;
  color: #64748b;
  background: #f8fafc;
  padding: 12px;
  border-radius: 6px;
}

.captain-plan-note i {
  color: #94a3b8;
}

.captain-plan-card-footer {
  padding: 0 24px 24px;
}

/* ボタン */
.captain-plan-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  width: 100%;
  box-sizing: border-box;
  padding: 14px 24px;
  border: none;
  border-radius: 8px;
  font-size: 1rem;
  font-weight: 600;
  text-decoration: none;
  cursor: pointer;
  transition: all 0.2s;
}

.captain-plan-btn.primary {
  background: #0ea5e9;
  color: #fff;
}

.captain-plan-btn.primary:hover {
  background: #0284c7;
}

.captain-plan-btn.secondary {
  background: #f1f5f9;
  color: #475569;
}

.captain-plan-btn.secondary:hover {
  background: #e2e8f0;
}

.captain-plan-btn.purchase {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
  color: #fff;
}

.captain-plan-btn.purchase:hover {
  background: linear-gradient(135deg, #d97706 0%, #b45309 100%);
}

.captain-plan-help {
  text-align: center;
  margin-top: 16px;
}

.captain-plan-help p {
  font-size: 0.85rem;
  color: #64748b;
  margin: 0;
}

.captain-plan-help i {
  margin-right: 6px;
  color: #10b981;
}

.captain-plan-back {
  margin-top: 24px;
  text-align: center;
}

.captain-plan-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #64748b;
  text-decoration: none;
  font-size: 0.9rem;
}

.captain-plan-link:hover {
  color: #0ea5e9;
}

/* 購入完了ページ */
.captain-plan-success {
  background: #fff;
  border-radius: 12px;
  padding: 40px 24px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.captain-plan-success-icon {
  font-size: 4rem;
  color: #10b981;
  margin-bottom: 20px;
}

.captain-plan-success h1 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 8px;
}

.captain-plan-success .captain-plan-ship-name {
  margin-bottom: 24px;
}

.captain-plan-success-details {
  background: #f8fafc;
  border-radius: 8px;
  padding: 16px;
  margin-bottom: 24px;
  text-align: left;
}

.captain-plan-success-item {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #e2e8f0;
}

.captain-plan-success-item:last-child {
  border-bottom: none;
}

.captain-plan-success-item .label {
  color: #64748b;
  font-size: 0.9rem;
}

.captain-plan-success-item .value {
  color: #1e293b;
  font-weight: 500;
  font-size: 0.9rem;
}

.captain-plan-success-message {
  color: #64748b;
  font-size: 0.95rem;
  margin-bottom: 24px;
}

.captain-plan-success-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* 有効期限表示ボックス */
.captain-plan-status-box {
  background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  padding: 20px;
  margin-bottom: 24px;
}

.captain-plan-status-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  color: #475569;
  font-size: 0.9rem;
}

.captain-plan-status-header i {
  color: #3b82f6;
}

.captain-plan-status-content {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}

.captain-plan-expires-date {
  font-size: 1.25rem;
  font-weight: 600;
}

.captain-plan-expires-date.active {
  color: #059669;
}

.captain-plan-expires-date.expired {
  color: #dc2626;
}

.captain-plan-remaining {
  color: #059669;
  font-size: 0.9rem;
}

.captain-plan-expired-label {
  color: #dc2626;
  font-size: 0.9rem;
  font-weight: 500;
}

.captain-plan-no-date {
  color: #94a3b8;
  font-size: 1.1rem;
}

.captain-plan-trial-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: linear-gradient(135deg, #fef3c7 0%, #fde68a 100%);
  color: #92400e;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 0.85rem;
  font-weight: 500;
  margin-top: 12px;
}

.captain-plan-trial-badge i {
  color: #f59e0b;
}

.captain-plan-ticket-count {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #ede9fe;
  color: #6d28d9;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 0.85rem;
  font-weight: 500;
  margin-top: 12px;
}

.captain-plan-ticket-count i {
  color: #7c3aed;
}

/* 期限延長セクション */
.captain-plan-extend {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid #e2e8f0;
}

.captain-plan-extend h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #334155;
  font-size: 1.1rem;
  margin-bottom: 12px;
}

.captain-plan-extend h3 i {
  color: #3b82f6;
}

.captain-plan-extend-desc {
  color: #64748b;
  font-size: 0.95rem;
  margin-bottom: 16px;
}

/* コンパクトカード */
.captain-plan-card.compact {
  background: #fff;
  border: 1px solid #e2e8f0;
  padding: 0;
}

.captain-plan-card.compact .captain-plan-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 12px;
  padding: 16px 20px;
  border-bottom: none;
}

.captain-plan-card.compact .captain-plan-card-header h4 {
  margin: 0;
  font-size: 1rem;
  color: #334155;
}

.captain-plan-card.compact .captain-plan-price {
  justify-content: flex-end;
  text-align: right;
}

.captain-plan-card.compact .captain-plan-price .price {
  font-size: 1.5rem;
}

.captain-plan-card.compact .captain-plan-card-footer {
  padding: 10px 20px 16px;
}

/* 購入制限メッセージ */
.captain-plan-restricted {
  display: flex;
  gap: 12px;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  border-radius: 8px;
  padding: 16px;
  margin-top: 24px;
}

.captain-plan-restricted > i {
  color: #64748b;
  font-size: 1.25rem;
  flex-shrink: 0;
}

.captain-plan-restricted strong {
  display: block;
  color: #475569;
  margin-bottom: 4px;
}

.captain-plan-restricted p {
  color: #64748b;
  font-size: 0.9rem;
  margin: 0;
}

/* 購入履歴 */
.captain-plan-history {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid #e2e8f0;
}

.captain-plan-history-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.captain-plan-history-header h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #334155;
  font-size: 1.1rem;
  margin: 0;
}

.captain-plan-history-header h2 i {
  color: #3b82f6;
}

.captain-plan-history-count {
  color: #64748b;
  font-size: 0.85rem;
  background: #f1f5f9;
  padding: 4px 10px;
  border-radius: 999px;
}

.captain-plan-history-table {
  border: 1px solid #e2e8f0;
  border-radius: 12px;
  overflow: hidden;
  background: #ffffff;
}

.captain-plan-history-row {
  display: grid;
  grid-template-columns: 1.4fr 1fr 0.9fr 0.8fr 1.6fr;
  gap: 0;
  border-top: 1px solid #e2e8f0;
}

.captain-plan-history-row.header {
  background: #f8fafc;
  border-top: none;
  font-size: 0.85rem;
  color: #475569;
  font-weight: 600;
}

.captain-plan-history-row .cell {
  padding: 12px 14px;
  font-size: 0.9rem;
  color: #1f2937;
  display: flex;
  align-items: center;
  word-break: break-word;
}

.captain-plan-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 600;
}

.captain-plan-status-badge.pending {
  background: #fef3c7;
  color: #92400e;
}

.captain-plan-status-badge.completed {
  background: #dcfce7;
  color: #166534;
}

.captain-plan-status-badge.failed {
  background: #fee2e2;
  color: #991b1b;
}

.captain-plan-status-badge.refunded {
  background: #e0e7ff;
  color: #3730a3;
}

.captain-plan-history-empty {
  border: 1px dashed #cbd5e1;
  border-radius: 12px;
  padding: 20px;
  text-align: center;
  color: #64748b;
  background: #f8fafc;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.captain-plan-history-empty i {
  color: #94a3b8;
  font-size: 1.25rem;
}

/* レスポンシブ */
@media (max-width: 640px) {
  .captain-plan-container {
    padding: 16px;
  }

  .captain-plan-price .price {
    font-size: 2rem;
  }

  .captain-plan-success {
    padding: 32px 20px;
  }

  .captain-plan-status-box {
    padding: 16px;
  }

  .captain-plan-expires-date {
    font-size: 1.1rem;
  }

  .captain-plan-status-content {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .captain-plan-card.compact .captain-plan-card-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .captain-plan-card.compact .captain-plan-price {
    justify-content: flex-start;
    text-align: left;
  }

  .captain-plan-history-row {
    grid-template-columns: 1fr;
  }

  .captain-plan-history-row.header {
    display: none;
  }

  .captain-plan-history-row .cell {
    padding: 10px 14px;
    align-items: flex-start;
    flex-direction: column;
    gap: 4px;
  }

  .captain-plan-history-row .cell::before {
    content: attr(data-label);
    font-size: 0.75rem;
    color: #64748b;
    font-weight: 600;
  }
}

/* ============================================
   連絡先情報（読み取り専用表示）
   ============================================ */

.captain-contact-info-readonly {
  background: var(--bg-tertiary, #f5f5f5);
  border: 1px solid var(--border-color, #e0e0e0);
  border-radius: 8px;
  padding: 12px 16px;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
}

.captain-contact-info-item {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--text-secondary, #666);
  font-size: 0.95rem;
}

.captain-contact-info-item i {
  color: var(--primary-color, #0277bd);
  width: 16px;
  text-align: center;
}

@media (max-width: 640px) {
  .captain-contact-info-readonly {
    flex-direction: column;
    gap: 8px;
  }
}

/* 認証済み連絡先 */
.captain-contact-verified {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  background: var(--success-bg, #e8f5e9);
  border: 1px solid var(--success-color, #4caf50);
  border-radius: 8px;
  padding: 12px 16px;
}

.captain-contact-verified-info {
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-contact-verified-info i {
  color: var(--success-color, #4caf50);
}

.captain-contact-verified-badge {
  background: var(--success-color, #4caf50);
  color: white;
  font-size: 0.75rem;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: bold;
}

/* 確認待ち連絡先 */
.captain-contact-pending {
  background: var(--warning-bg, #fff3e0);
  border: 1px solid var(--warning-color, #ff9800);
  border-radius: 8px;
  padding: 12px 16px;
}

.captain-contact-pending-info {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.captain-contact-pending-info i {
  color: var(--warning-color, #ff9800);
}

.captain-contact-pending-badge {
  background: var(--warning-color, #ff9800);
  color: white;
  font-size: 0.75rem;
  padding: 2px 8px;
  border-radius: 4px;
  font-weight: bold;
}

/* 連絡先入力フォーム */
.captain-contact-form {
  margin: 0;
}

.captain-contact-form-row {
  display: flex;
  gap: 8px;
  align-items: stretch;
}

.captain-contact-form-row .captain-form-input {
  flex: 1;
}

.captain-contact-form-row .btn {
  flex-shrink: 0;
}

/* 認証コード入力欄 */
.captain-contact-verification-code {
  display: flex;
  gap: 8px;
  margin-top: 12px;
  align-items: stretch;
}

.captain-contact-verification-code .captain-form-input {
  width: 150px;
}

.captain-contact-verified-info,
.captain-contact-pending-info {
  flex-wrap: wrap;
}

/* 新規釣船の連絡先案内 */
.captain-contact-new-ship-notice {
  background: var(--info-bg, #e3f2fd);
  border: 1px solid var(--info-color, #2196f3);
  border-radius: 8px;
  padding: 12px 16px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--info-color, #2196f3);
}

.captain-contact-new-ship-notice i {
  flex-shrink: 0;
}

@media (max-width: 640px) {
  .captain-contact-verified {
    flex-direction: column;
    align-items: flex-start;
  }

  .captain-contact-form-row {
    flex-direction: column;
    align-items: stretch;
  }

  .captain-contact-verification-code {
    flex-direction: column;
    align-items: stretch;
  }

  .captain-contact-verification-code .captain-form-input {
    width: 100%;
  }
}

/* ============================================
   連絡先情報（showページ）
   ============================================ */

.captain-ship-show__contact-info {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.captain-ship-show__contact-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.captain-ship-show__contact-item .captain-ship-show__info-label {
  display: flex;
  align-items: center;
  gap: 6px;
}

.captain-ship-show__contact-item .captain-ship-show__info-value {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.captain-ship-show__contact-badge {
  font-size: 0.7rem;
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: bold;
}

.captain-ship-show__contact-badge.ship {
  background: var(--primary-color, #0277bd);
  color: white;
}

.captain-ship-show__contact-badge.captain {
  background: var(--bg-tertiary, #e0e0e0);
  color: var(--text-secondary, #666);
}

.captain-ship-show__contact-not-set {
  color: var(--text-tertiary, #999);
  font-style: italic;
}

.captain-ship-show__contact-description {
  font-size: 0.8rem;
  color: var(--text-tertiary, #888);
  margin-top: 2px;
}

.captain-ship-show__contact-pending-notice {
  display: flex;
  align-items: center;
  gap: 8px;
  background: var(--warning-bg, #fff3e0);
  border: 1px solid var(--warning-color, #ff9800);
  border-radius: 6px;
  padding: 8px 12px;
  font-size: 0.85rem;
  color: var(--warning-color, #ff9800);
  margin-top: 8px;
}

.captain-ship-show__contact-edit {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--border-color, #e0e0e0);
}

/* ============================================
   連絡先編集ページ
   ============================================ */

.captain-contact-edit-page {
  max-width: 760px;
  margin: 0 auto;
  padding: 24px 20px 32px;
}

.captain-contact-edit-page__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--text-secondary, #666);
  text-decoration: none;
  margin-bottom: 20px;
  font-size: 0.9rem;
}

.captain-contact-edit-page__back:hover {
  color: var(--primary-color, #0277bd);
}

.captain-contact-edit-page__container {
  background: white;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.08);
  overflow: hidden;
}

.captain-contact-edit-page__header {
  background: var(--primary-color, #0277bd);
  color: white;
  padding: 24px;
}

.captain-contact-edit-page__header h1 {
  margin: 0 0 8px 0;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  gap: 10px;
}

.captain-contact-edit-page__description {
  margin: 0;
  opacity: 0.9;
  font-size: 0.9rem;
}

.captain-contact-edit-page__section {
  padding: 22px 24px;
  border-bottom: 1px solid var(--border-color, #e0e0e0);
}

.captain-contact-edit-page__section:last-child {
  border-bottom: none;
}

.captain-contact-edit-page__section h2 {
  margin: 0 0 14px 0;
  font-size: 1rem;
  color: #334155;
  letter-spacing: 0.01em;
}

.captain-contact-edit-page__current {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 8px;
  padding: 16px;
}

.captain-contact-edit-page__current-item {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.captain-contact-edit-page__current-label {
  font-size: 0.8rem;
  color: var(--text-tertiary, #888);
}

.captain-contact-edit-page__current-value {
  font-size: 1.1rem;
  font-weight: 500;
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.captain-contact-edit-page__badge {
  font-size: 0.7rem;
  padding: 2px 6px;
  border-radius: 4px;
  font-weight: bold;
}

.captain-contact-edit-page__badge.ship {
  background: var(--primary-color, #0277bd);
  color: white;
}

.captain-contact-edit-page__badge.captain {
  background: var(--bg-tertiary, #e0e0e0);
  color: var(--text-secondary, #666);
}

.captain-contact-edit-page__not-set {
  color: var(--text-tertiary, #999);
  font-style: italic;
}

.captain-contact-edit-page__reference {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  color: #475569;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  padding: 12px 16px;
  border-radius: 8px;
}

.captain-contact-edit-page__input-description {
  margin: 0 0 12px 0;
  color: var(--text-secondary, #666);
  font-size: 0.9rem;
}

@media (max-width: 640px) {
  .captain-contact-edit-page {
    padding: 16px 12px 24px;
  }

  .captain-contact-edit-page__header {
    padding: 20px;
  }

  .captain-contact-edit-page__section {
    padding: 16px 20px;
  }

  .captain-contact-edit-page__current-value {
    font-size: 1rem;
  }
}

/* =====================================================
   船長ダッシュボード（メトリクス）
   ===================================================== */
.captain-dashboard {
  max-width: 900px;
  margin: 0 auto;
  padding: 16px;
}

.captain-dashboard__header {
  background: linear-gradient(135deg, #0284c7 0%, #0369a1 100%);
  border-radius: 16px;
  padding: 24px;
  margin-bottom: 20px;
  color: white;
}

.captain-dashboard__title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 22px;
  font-weight: 700;
  margin: 0 0 4px 0;
}

.captain-dashboard__title i {
  color: #60a5fa;
}

.captain-dashboard__ship-name {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
}

/* アラート */
.captain-dashboard__alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 20px;
  background: #fef3c7;
  border: 1px solid #fcd34d;
  border-radius: 12px;
  margin-bottom: 16px;
  font-size: 14px;
  color: #92400e;
}

.captain-dashboard__alert.warning {
  background: #fef3c7;
  border-color: #fcd34d;
  color: #92400e;
}

.captain-dashboard__alert.expired {
  background: #fee2e2;
  border-color: #fecaca;
  color: #991b1b;
}

.captain-dashboard__alert.info {
  background: #dbeafe;
  border-color: #93c5fd;
  color: #1e40af;
}

.captain-dashboard__alert > i {
  flex-shrink: 0;
  font-size: 18px;
  margin-top: 2px;
}

.captain-dashboard__alert.warning > i {
  color: #f59e0b;
}

.captain-dashboard__alert.expired > i {
  color: #dc2626;
}

.captain-dashboard__alert.info > i {
  color: #3b82f6;
}

.captain-dashboard__alert strong {
  display: block;
  margin-bottom: 4px;
}

.captain-dashboard__alert p {
  margin: 0;
  font-size: 13px;
  opacity: 0.9;
}

.captain-dashboard__alert-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 8px 14px;
  background: #f59e0b;
  color: white;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.2s;
}

.captain-dashboard__alert.expired .captain-dashboard__alert-btn {
  background: #dc2626;
}

.captain-dashboard__alert-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

.captain-dashboard__alert-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  color: inherit;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  opacity: 0.9;
}

.captain-dashboard__alert-link:hover {
  opacity: 1;
  text-decoration: underline;
}

/* 統計カード */
.captain-dashboard__stats {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 20px;
}

.captain-dashboard__stat-card {
  display: flex;
  align-items: center;
  gap: 12px;
  background: white;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.captain-dashboard__stat-icon {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 10px;
  flex-shrink: 0;
}

.captain-dashboard__stat-icon i {
  font-size: 18px;
  color: white;
}

.captain-dashboard__stat-icon.reservations {
  background: linear-gradient(135deg, #3b82f6, #1d4ed8);
}

.captain-dashboard__stat-icon.reservations-total {
  background: linear-gradient(135deg, #60a5fa, #3b82f6);
}

.captain-dashboard__stat-icon.revenue {
  background: linear-gradient(135deg, #10b981, #059669);
}

.captain-dashboard__stat-icon.revenue-total {
  background: linear-gradient(135deg, #34d399, #10b981);
}

.captain-dashboard__stat-icon.views {
  background: linear-gradient(135deg, #8b5cf6, #6d28d9);
}

.captain-dashboard__stat-icon.views-total {
  background: linear-gradient(135deg, #a78bfa, #8b5cf6);
}

.captain-dashboard__stat-content {
  display: flex;
  flex-direction: column;
  min-width: 0;
}

.captain-dashboard__stat-value {
  font-size: 22px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1.2;
}

.captain-dashboard__stat-label {
  font-size: 12px;
  color: #64748b;
}

.captain-dashboard__warning-icon {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-left: 6px;
  padding: 0;
  background: none;
  border: none;
  color: #f59e0b;
  font-size: 16px;
  cursor: pointer;
  vertical-align: middle;
}

.captain-dashboard__warning-icon:hover {
  color: #d97706;
}

.captain-dashboard__warning-tooltip {
  display: none;
  position: absolute;
  top: 50%;
  right: calc(100% + 10px);
  transform: translateY(-50%);
  width: max-content;
  max-width: 180px;
  padding: 10px 12px;
  background: #1e293b;
  color: white;
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  z-index: 100;
  white-space: normal;
}

.captain-dashboard__warning-tooltip::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 100%;
  transform: translateY(-50%);
  border: 6px solid transparent;
  border-left-color: #1e293b;
}

.captain-dashboard__warning-tooltip.visible {
  display: block;
}

/* アクセス推移グラフ */
.captain-dashboard__chart-section {
  background: white;
  border-radius: 16px;
  padding: 20px;
  margin-top: 20px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
}

.captain-dashboard__chart-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}

.captain-dashboard__chart-title {
  font-size: 15px;
  font-weight: 600;
  color: #1e293b;
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.captain-dashboard__chart-title i {
  color: #3b82f6;
}

.captain-dashboard__chart-period {
  font-size: 12px;
  color: #64748b;
  background: #f1f5f9;
  padding: 4px 10px;
  border-radius: 12px;
}

.captain-dashboard__chart-container {
  display: flex;
  align-items: flex-end;
  gap: 2px;
  height: 120px;
  padding: 8px 4px 20px;
  background: #f8fafc;
  border-radius: 8px;
}

.pv-bar-container {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  position: relative;
}

.pv-bar-wrapper {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  position: relative;
  cursor: pointer;
}

.pv-bar {
  width: 100%;
  max-width: 14px;
  background: linear-gradient(180deg, #3b82f6 0%, #93c5fd 100%);
  border-radius: 3px 3px 0 0;
  min-height: 3px;
  transition: all 0.2s ease;
  cursor: pointer;
}

.pv-bar:hover,
.pv-bar.active {
  background: linear-gradient(180deg, #1d4ed8 0%, #3b82f6 100%);
}

.pv-bar-tooltip {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  background: #1e293b;
  color: white;
  padding: 6px 10px;
  border-radius: 6px;
  font-size: 11px;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s, visibility 0.2s;
  z-index: 10;
  pointer-events: none;
  margin-bottom: 4px;
}

.pv-bar-tooltip::after {
  content: '';
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  border: 5px solid transparent;
  border-top-color: #1e293b;
}

.pv-bar-wrapper:hover .pv-bar-tooltip,
.pv-bar-wrapper.active .pv-bar-tooltip {
  opacity: 1;
  visibility: visible;
}

.pv-bar-tooltip-date {
  font-weight: 600;
  margin-bottom: 2px;
}

.pv-bar-tooltip-count {
  color: #93c5fd;
}

.pv-bar-label {
  position: absolute;
  bottom: -18px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 9px;
  color: #94a3b8;
  white-space: nowrap;
}

.captain-dashboard__chart-summary {
  display: flex;
  justify-content: center;
  gap: 32px;
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid #e2e8f0;
}

.captain-dashboard__chart-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}

.captain-dashboard__chart-stat-label {
  font-size: 12px;
  color: #64748b;
}

.captain-dashboard__chart-stat-value {
  font-size: 20px;
  font-weight: 700;
  color: #1e293b;
}

.chart-no-data {
  color: #94a3b8;
  text-align: center;
  padding: 40px;
  font-size: 14px;
  background: #f8fafc;
  border-radius: 8px;
}

/* グリッドレイアウト */
.captain-dashboard__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
  margin-bottom: 20px;
}

/* セクション */
.captain-dashboard__section {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

.captain-dashboard__section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border-bottom: 1px solid #f1f5f9;
}

.captain-dashboard__section-header h2 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  font-size: 16px;
  font-weight: 600;
  color: #1e293b;
}

.captain-dashboard__section-header h2 i {
  color: #3b82f6;
}

.captain-dashboard__section-link {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 13px;
  color: #3b82f6;
  text-decoration: none;
}

.captain-dashboard__section-link:hover {
  text-decoration: underline;
}

/* スケジュールリスト */
.captain-dashboard__schedule-list {
  display: flex;
  flex-direction: column;
}

.captain-dashboard__schedule-item {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 20px;
  text-decoration: none;
  border-bottom: 1px solid #f8fafc;
  transition: background 0.2s;
}

.captain-dashboard__schedule-item:last-child {
  border-bottom: none;
}

.captain-dashboard__schedule-item:hover {
  background: #f8fafc;
}

.captain-dashboard__schedule-date {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 50px;
}

.captain-dashboard__schedule-date .day {
  font-size: 22px;
  font-weight: 700;
  color: #1e293b;
  line-height: 1;
}

.captain-dashboard__schedule-date .month {
  font-size: 11px;
  color: #64748b;
}

.captain-dashboard__schedule-date .weekday {
  font-size: 11px;
  color: #94a3b8;
}

.captain-dashboard__schedule-info {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.captain-dashboard__schedule-info .fish {
  font-size: 14px;
  font-weight: 600;
  color: #1e293b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.captain-dashboard__schedule-info .time {
  font-size: 12px;
  color: #64748b;
}

.captain-dashboard__schedule-status {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.captain-dashboard__schedule-status .count {
  font-size: 14px;
  font-weight: 600;
  color: #1e293b;
}

.captain-dashboard__schedule-status .pending-badge {
  font-size: 11px;
  padding: 2px 8px;
  background: #fef3c7;
  color: #b45309;
  border-radius: 10px;
}

/* 予約リスト */
.captain-dashboard__reservation-list {
  display: flex;
  flex-direction: column;
}

.captain-dashboard__reservation-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 20px;
  text-decoration: none;
  border-bottom: 1px solid #f8fafc;
  transition: background 0.2s;
}

.captain-dashboard__reservation-item:last-child {
  border-bottom: none;
}

.captain-dashboard__reservation-item:hover {
  background: #f8fafc;
}

.captain-dashboard__reservation-user {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.captain-dashboard__reservation-user .name {
  font-size: 14px;
  font-weight: 600;
  color: #1e293b;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.captain-dashboard__reservation-user .people {
  font-size: 12px;
  color: #64748b;
}

.captain-dashboard__reservation-schedule {
  font-size: 13px;
  color: #64748b;
  text-align: right;
}

.captain-dashboard__reservation-status {
  font-size: 12px;
  padding: 4px 10px;
  border-radius: 12px;
  font-weight: 500;
}

.captain-dashboard__reservation-status.pending {
  background: #fef3c7;
  color: #b45309;
}

.captain-dashboard__reservation-status.confirmed {
  background: #d1fae5;
  color: #047857;
}

.captain-dashboard__reservation-status.completed {
  background: #e0e7ff;
  color: #4338ca;
}

.captain-dashboard__reservation-status.cancelled {
  background: #f1f5f9;
  color: #64748b;
}

.captain-dashboard__reservation-status.no_show {
  background: #fee2e2;
  color: #b91c1c;
}

/* 空状態 */
.captain-dashboard__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 32px 20px;
  text-align: center;
}

.captain-dashboard__empty i {
  font-size: 32px;
  color: #94a3b8;
  margin-bottom: 12px;
}

.captain-dashboard__empty p {
  margin: 0;
  font-size: 14px;
  color: #64748b;
}

/* チケット情報 */
.captain-dashboard__ticket-info {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  overflow: hidden;
}

.captain-dashboard__ticket-header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 14px 20px;
  background: #f8fafc;
  font-size: 14px;
  font-weight: 600;
  color: #1e293b;
}

.captain-dashboard__ticket-header i {
  color: #f59e0b;
}

.captain-dashboard__ticket-content {
  padding: 16px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

.captain-dashboard__ticket-status {
  font-size: 14px;
  color: #1e293b;
}

.captain-dashboard__ticket-status.ok .expires-at {
  color: #059669;
}

.captain-dashboard__ticket-status.warning .expires-at {
  color: #d97706;
}

.captain-dashboard__ticket-status.expired .expires-at {
  color: #dc2626;
}

.captain-dashboard__ticket-status .days-remaining {
  color: #64748b;
  font-size: 13px;
}

.captain-dashboard__ticket-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  background: #f1f5f9;
  color: #334155;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 500;
  text-decoration: none;
  transition: all 0.2s;
}

.captain-dashboard__ticket-btn:hover {
  background: #e2e8f0;
}

/* レスポンシブ */
@media (min-width: 768px) {
  .captain-dashboard {
    padding: 24px;
  }

  .captain-dashboard__stats {
    grid-template-columns: repeat(3, 1fr);
  }

  .captain-dashboard__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 480px) {
  .captain-dashboard__stat-card {
    gap: 10px;
    padding: 14px;
  }

  .captain-dashboard__stat-icon {
    width: 40px;
    height: 40px;
  }

  .captain-dashboard__stat-icon i {
    font-size: 16px;
  }

  .captain-dashboard__stat-value {
    font-size: 18px;
  }

  .captain-dashboard__ticket-content {
    flex-direction: column;
    align-items: flex-start;
  }

  .captain-dashboard__ticket-btn {
    width: 100%;
    justify-content: center;
  }
}
