/* ============================================
   シェアワークス 案件機能ページ
   ============================================ */

/* 案件一覧ページ */
.jobs-page {
  padding: 32px 0 64px;
  background: var(--color-bg-soft);
  min-height: calc(100vh - 64px);
}

.jobs-layout {
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 28px;
}

/* 検索サイドバー */
.jobs-sidebar {
  background: #fff;
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius);
  padding: 24px 20px;
  height: fit-content;
  position: sticky;
  top: 88px;
}

.jobs-sidebar h3 {
  font-size: 14px;
  font-weight: 700;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--color-border-light);
}

.jobs-sidebar h3:not(:first-child) {
  margin-top: 24px;
}

.filter-group {
  margin-bottom: 8px;
}

.filter-option {
  display: flex;
  align-items: center;
  padding: 6px 0;
  font-size: 13px;
  cursor: pointer;
  gap: 8px;
}

.filter-option input[type="radio"],
.filter-option input[type="checkbox"] {
  cursor: pointer;
  accent-color: var(--color-primary);
}

.filter-option label {
  cursor: pointer;
  flex: 1;
}

.filter-search-input {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-family: inherit;
}

/* 案件一覧メイン */
.jobs-main {
  min-width: 0;
}

.jobs-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}

.jobs-header h1 {
  font-size: 22px;
  margin: 0;
}

.jobs-count {
  font-size: 13px;
  color: var(--color-text-sub);
  margin-left: 12px;
  font-weight: normal;
}

.jobs-sort {
  display: flex;
  align-items: center;
  gap: 8px;
}

.jobs-sort label {
  font-size: 13px;
  color: var(--color-text-sub);
}

.jobs-sort select {
  padding: 6px 28px 6px 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  font-size: 13px;
  font-family: inherit;
  background: #fff;
  appearance: auto;
}

/* 検索結果リスト */
.job-list-wide {
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.job-list-item {
  display: block;
  background: #fff;
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius);
  padding: 24px;
  text-decoration: none;
  color: inherit;
  transition: all 0.15s;
}

.job-list-item:hover {
  border-color: var(--color-primary);
  box-shadow: var(--shadow);
  text-decoration: none;
  color: inherit;
  transform: translateY(-1px);
}

.job-list-item-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.job-list-item h3 {
  font-size: 17px;
  line-height: 1.5;
  margin: 0;
  flex: 1;
}

.job-list-item .badges {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.job-list-item .desc {
  font-size: 13px;
  color: var(--color-text-sub);
  line-height: 1.6;
  margin-bottom: 16px;
}

.job-list-item-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 14px;
  border-top: 1px solid var(--color-border-light);
  flex-wrap: wrap;
  gap: 8px;
}

.job-list-item .price {
  font-size: 18px;
  font-weight: 800;
  color: var(--color-primary);
  font-family: var(--font-num);
}

.job-list-item .meta {
  font-size: 12px;
  color: var(--color-text-muted);
}

/* ページネーション */
.pagination {
  display: flex;
  justify-content: center;
  gap: 6px;
  margin-top: 32px;
  flex-wrap: wrap;
}

.pagination a,
.pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 36px;
  height: 36px;
  padding: 0 10px;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-sm);
  background: #fff;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  color: var(--color-text);
}

.pagination a:hover {
  border-color: var(--color-primary);
  background: var(--color-primary-pale);
  color: var(--color-primary);
  text-decoration: none;
}

.pagination .active {
  background: var(--color-primary);
  border-color: var(--color-primary);
  color: #fff;
}

.pagination .disabled {
  opacity: 0.4;
  cursor: not-allowed;
}

/* 案件詳細 */
.job-detail-page {
  padding: 32px 0 64px;
  background: var(--color-bg-soft);
  min-height: calc(100vh - 64px);
}

.job-detail-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 28px;
}

.job-detail-main {
  background: #fff;
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius);
  padding: 36px 40px;
}

.job-detail-breadcrumb {
  font-size: 12px;
  color: var(--color-text-muted);
  margin-bottom: 16px;
}

.job-detail-breadcrumb a {
  color: var(--color-text-muted);
}

.job-detail-title {
  font-size: 26px;
  margin: 0 0 16px;
  line-height: 1.4;
}

.job-detail-badges {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}

.job-detail-meta-table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 32px;
  border-top: 1px solid var(--color-border-light);
}

.job-detail-meta-table th,
.job-detail-meta-table td {
  padding: 14px 0;
  text-align: left;
  border-bottom: 1px solid var(--color-border-light);
  font-size: 14px;
  vertical-align: top;
}

.job-detail-meta-table th {
  width: 140px;
  color: var(--color-text-sub);
  font-weight: 600;
}

.job-detail-meta-table .price {
  font-size: 22px;
  font-weight: 800;
  color: var(--color-primary);
  font-family: var(--font-num);
}

.job-detail-section {
  margin-top: 32px;
}

.job-detail-section h2 {
  font-size: 18px;
  margin: 0 0 12px;
  padding-bottom: 8px;
  border-bottom: 2px solid var(--color-primary);
}

.job-detail-section .body-text {
  font-size: 15px;
  line-height: 1.9;
  color: var(--color-text);
  white-space: pre-wrap;
  word-wrap: break-word;
}

/* 応募サイドバー */
.job-detail-aside {
  position: sticky;
  top: 88px;
  height: fit-content;
}

.apply-box {
  background: #fff;
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius);
  padding: 24px;
  margin-bottom: 16px;
}

.apply-box-price {
  font-size: 24px;
  font-weight: 800;
  color: var(--color-primary);
  font-family: var(--font-num);
  margin-bottom: 4px;
}

.apply-box-price-label {
  font-size: 12px;
  color: var(--color-text-muted);
  margin-bottom: 20px;
}

.apply-box .btn {
  width: 100%;
  margin-bottom: 8px;
}

.apply-box-note {
  font-size: 12px;
  color: var(--color-text-muted);
  text-align: center;
  margin: 12px 0 0;
  line-height: 1.6;
}

.client-info-box {
  background: #fff;
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius);
  padding: 24px;
}

.client-info-box h4 {
  font-size: 13px;
  color: var(--color-text-sub);
  margin: 0 0 12px;
  font-weight: 600;
}

.client-info-row {
  display: flex;
  align-items: center;
  gap: 12px;
}

.client-info-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--color-primary), var(--color-primary-light));
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  font-weight: 700;
  flex-shrink: 0;
}

.client-info-name {
  font-size: 14px;
  font-weight: 700;
}

.client-info-sub {
  font-size: 12px;
  color: var(--color-text-muted);
}

/* 案件投稿フォーム */
.post-form-wrap {
  max-width: 800px;
  margin: 0 auto;
  padding: 32px 20px;
}

.post-form-card {
  background: #fff;
  border: 1px solid var(--color-border-light);
  border-radius: var(--radius);
  padding: 40px;
}

.post-form-card h1 {
  font-size: 24px;
  margin: 0 0 8px;
}

.post-form-card .lead {
  color: var(--color-text-sub);
  font-size: 14px;
  margin-bottom: 32px;
}

.form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

/* 応募フォーム */
.apply-form-wrap {
  max-width: 720px;
  margin: 0 auto;
  padding: 32px 20px;
}

.apply-summary {
  background: var(--color-primary-pale);
  border-left: 4px solid var(--color-primary);
  padding: 16px 20px;
  border-radius: var(--radius-sm);
  margin-bottom: 24px;
}

.apply-summary-label {
  font-size: 12px;
  color: var(--color-primary-dark);
  font-weight: 600;
  margin-bottom: 4px;
}

.apply-summary-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--color-text);
}

/* My案件・応募リストのスタイルは common.css に統合済み */

/* レスポンシブ */
@media (max-width: 968px) {
  .jobs-layout,
  .job-detail-layout {
    grid-template-columns: 1fr;
  }

  .jobs-sidebar,
  .job-detail-aside {
    position: static;
  }

  .form-row {
    grid-template-columns: 1fr;
  }

  .job-detail-main {
    padding: 24px 20px;
  }

  .post-form-card {
    padding: 24px 20px;
  }
}

/* ============================================
   AI相談ステップフォーム（consult.php）洗練版
   ============================================ */

/* --- フォーム全体のヘッダー --- */
.consult-hero {
  text-align: center;
  margin-top: 48px;
  margin-bottom: 32px;
}
.consult-hero h1 {
  font-size: 28px;
  font-weight: 800;
  margin: 0 0 10px;
  background: linear-gradient(135deg, #1ec8c3 0%, #1565d8 45%, #8a2dd8 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
.consult-hero p {
  font-size: 14px;
  color: #6b7280;
  margin: 0;
}

/* --- できること/できないこと --- */
.consult-scope {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 14px;
}
.consult-scope-box {
  border-radius: 12px;
  padding: 18px;
}
.consult-scope-can {
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
}
.consult-scope-cannot {
  background: #fef2f2;
  border: 1px solid #fecaca;
}
.consult-scope-title {
  font-size: 14px;
  font-weight: 700;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
}
.consult-scope-can .consult-scope-title { color: #15803d; }
.consult-scope-cannot .consult-scope-title { color: #b91c1c; }
.consult-scope-box ul {
  margin: 0;
  padding-left: 18px;
  font-size: 12.5px;
  line-height: 1.9;
}
.consult-scope-can ul { color: #166534; }
.consult-scope-cannot ul { color: #991b1b; }
.consult-scope-note {
  font-size: 12px;
  color: #6b7280;
  text-align: center;
  margin: 0 0 32px;
}

/* --- ステップカード --- */
.consult-step {
  background: #fff;
  border: 1px solid #e8ebf0;
  border-radius: 16px;
  padding: 28px;
  margin-bottom: 20px;
  box-shadow: 0 2px 12px rgba(21, 101, 216, 0.04);
  position: relative;
  transition: box-shadow 0.2s ease;
}
.consult-step:hover {
  box-shadow: 0 4px 20px rgba(21, 101, 216, 0.08);
}

/* ステップ番号バッジ */
.consult-step-label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 12px;
  font-weight: 700;
  color: #fff;
  background: linear-gradient(135deg, #1565d8, #0d47a1);
  padding: 5px 14px;
  border-radius: 999px;
  margin-bottom: 16px;
  letter-spacing: 0.02em;
}

/* 質問見出し */
.consult-q {
  font-size: 19px;
  font-weight: 700;
  margin: 0 0 20px;
  line-height: 1.45;
  color: #1a1a1a;
}

/* 選択肢：グリッド型カード */
.consult-options {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 12px;
}
.consult-opt {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 18px;
  border: 2px solid #e8ebf0;
  border-radius: 12px;
  cursor: pointer;
  font-size: 15px;
  font-weight: 600;
  color: #374151;
  transition: all 0.18s ease;
  user-select: none;
  background: #fff;
  position: relative;
}
.consult-opt:hover {
  border-color: #93c5fd;
  background: #f8fbff;
  transform: translateY(-2px);
  box-shadow: 0 4px 14px rgba(21, 101, 216, 0.1);
}
.consult-opt input[type="radio"] {
  width: 20px;
  height: 20px;
  accent-color: #1565d8;
  flex-shrink: 0;
  cursor: pointer;
}
/* 選択中の見た目（:has対応ブラウザ + PHPによるクラス付与で確実に復元） */
.consult-opt:has(input[type="radio"]:checked),
.consult-opt.is-selected {
  border-color: #1565d8;
  background: linear-gradient(135deg, #eff6ff, #e0ecff);
  color: #0d47a1;
  font-weight: 700;
  box-shadow: 0 4px 16px rgba(21, 101, 216, 0.18);
}
/* 選択中のチェックマーク装飾 */
.consult-opt:has(input[type="radio"]:checked)::after,
.consult-opt.is-selected::after {
  content: "✓";
  position: absolute;
  top: 18px;
  right: 12px;
  font-size: 13px;
  font-weight: 800;
  color: #1565d8;
}

/* テキストエリア */
.consult-step textarea.form-control {
  border: 2px solid #e8ebf0;
  border-radius: 12px;
  padding: 14px 16px;
  font-size: 15px;
  line-height: 1.7;
  transition: border-color 0.18s ease;
  width: 100%;
  box-sizing: border-box;
  resize: vertical;
}
.consult-step textarea.form-control:focus {
  border-color: #1565d8;
  outline: none;
  box-shadow: 0 0 0 3px rgba(21, 101, 216, 0.1);
}
.consult-step input[type="email"].form-control {
  border: 2px solid #e8ebf0;
  border-radius: 12px;
  padding: 14px 16px;
  font-size: 15px;
  width: 100%;
  box-sizing: border-box;
  transition: border-color 0.18s ease;
}
.consult-step input[type="email"].form-control:focus {
  border-color: #1565d8;
  outline: none;
  box-shadow: 0 0 0 3px rgba(21, 101, 216, 0.1);
}

/* 送信ボタン（グラデ） */
.consult-submit-btn {
  width: 100%;
  background: linear-gradient(135deg, #1ec8c3 0%, #1565d8 45%, #8a2dd8 100%);
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: 18px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.2s ease;
  box-shadow: 0 4px 16px rgba(21, 101, 216, 0.25);
  margin-bottom: 60px;
}
.consult-submit-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 24px rgba(21, 101, 216, 0.35);
}

/* --- レスポンシブ --- */
@media (max-width: 600px) {
  .consult-scope { grid-template-columns: 1fr; }
  .consult-options { grid-template-columns: 1fr; }
  .consult-step { padding: 20px; }
  .consult-hero h1 { font-size: 24px; }
}

/* ============================================
   AI人材を探す（talents.php）
   ============================================ */
.talents-head { margin-bottom: 24px; }
.talents-title { font-size: 26px; font-weight: 800; margin: 0 0 8px; }
.talents-lead { font-size: 14px; color: #6b7280; margin: 0; }

.talents-search {
  background: #fff;
  padding: 20px;
  border-radius: 12px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
  margin-bottom: 24px;
}
.talents-search-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 12px;
}

.filter-clear {
  display: inline-block;
  margin-top: 12px;
  font-size: 13px;
  color: #1565d8;
  text-decoration: none;
}
.filter-clear:hover { opacity: 0.7; }

/* 人材カードグリッド */
.talents-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 18px;
}
.talent-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px;
  padding: 22px;
  text-decoration: none;
  color: inherit;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
  transition: all 0.2s ease;
}
.talent-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 10px 28px rgba(21, 101, 216, 0.14);
}
.talent-card,
.talent-card:hover,
.talent-card * {
  text-decoration: none;
}
.talent-status {
  position: absolute;
  top: 16px;
  right: 16px;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 700;
  color: #15803d;
  background: #f0fdf4;
  padding: 4px 10px;
  border-radius: 999px;
}
.talent-status-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #22c55e;
}
.talent-card-head {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}
.talent-avatar {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  overflow: hidden;
  background: linear-gradient(135deg, #1ec8c3, #1565d8);
  color: #fff;
  font-size: 22px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.talent-name { font-size: 16px; font-weight: 700; }
.talent-role { font-size: 13px; color: #1565d8; font-weight: 600; margin-top: 2px; }
.talent-info {
  font-size: 12px;
  color: #9ca3af;
  margin-top: 4px;
  display: flex;
  align-items: center;
  gap: 4px;
}
.talent-info svg { color: #9ca3af; }
.talent-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 12px; }
.talent-tags span {
  font-size: 11px;
  font-weight: 600;
  color: #0d47a1;
  background: #eff6ff;
  padding: 4px 10px;
  border-radius: 6px;
}
.talent-bio { font-size: 13px; color: #6b7280; line-height: 1.6; margin: 0 0 14px; }
.talent-cta {
  font-size: 13px;
  color: #1565d8;
  font-weight: 700;
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  transition: gap 0.2s ease;
}
@media (max-width: 768px) {
  .talents-grid { grid-template-columns: 1fr; }
}

/* talents.php 補助クラス */
.jobs-result-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
  flex-wrap: wrap;
  gap: 12px;
}
.jobs-result-count { font-size: 14px; color: #374151; }
.jobs-result-count strong { font-size: 20px; color: #1565d8; font-family: var(--font-num); }
.jobs-empty {
  text-align: center;
  padding: 60px 20px;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
}
.jobs-empty-icon {
  width: 72px;
  height: 72px;
  margin: 0 auto 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #eff6ff;
  border-radius: 50%;
  color: #1565d8;
}
.jobs-empty p { font-size: 16px; color: #374151; margin: 0 0 8px; }
.jobs-empty-sub { font-size: 13px !important; color: #9ca3af !important; }
.page-link {
  padding: 8px 16px;
  border-radius: 8px;
  background: #fff;
  color: #1565d8;
  text-decoration: none;
  font-weight: 700;
  font-size: 13px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
  transition: all 0.15s ease;
}
.page-link:hover { background: #1565d8; color: #fff; }
.page-current { font-size: 13px; color: #6b7280; font-weight: 600; }

/* ============================================
   AI人材 詳細ページ（talent_detail.php）
   ============================================ */
.talent-detail-page { padding: 28px 0 60px; }
.td-back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 13px;
  color: #6b7280;
  text-decoration: none;
  margin-bottom: 20px;
  transition: color 0.15s ease;
}
.td-back svg { transform: rotate(180deg); }
.td-back:hover { color: #1565d8; }

.td-layout {
  display: grid;
  grid-template-columns: 1fr 320px;
  gap: 28px;
  align-items: start;
}

/* プロフィールヘッダー */
.td-profile-head {
  display: flex;
  gap: 22px;
  background: #fff;
  border-radius: 16px;
  padding: 28px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
  margin-bottom: 20px;
}
.td-avatar {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  overflow: hidden;
  background: linear-gradient(135deg, #1ec8c3, #1565d8);
  color: #fff;
  font-size: 38px;
  font-weight: 800;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.td-status {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 700;
  color: #15803d;
  background: #f0fdf4;
  padding: 4px 10px;
  border-radius: 999px;
  margin-bottom: 8px;
}
.td-status-dot { width: 6px; height: 6px; border-radius: 50%; background: #22c55e; }
.td-name { font-size: 24px; font-weight: 800; margin: 0 0 6px; }
.td-headline { font-size: 15px; color: #1565d8; font-weight: 600; margin: 0 0 14px; }
.td-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 18px;
}
.td-meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 13px;
  color: #6b7280;
}
.td-meta svg { color: #9ca3af; }

/* セクション */
.td-section {
  background: #fff;
  border-radius: 16px;
  padding: 26px 28px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.05);
  margin-bottom: 20px;
}
.td-section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 17px;
  font-weight: 700;
  margin: 0 0 16px;
}
.td-section-title svg { color: #1565d8; }
.td-skills { display: flex; flex-wrap: wrap; gap: 8px; }
.td-skill {
  font-size: 13px;
  font-weight: 600;
  color: #0d47a1;
  background: #eff6ff;
  padding: 7px 14px;
  border-radius: 8px;
}
.td-bio { font-size: 14px; color: #374151; line-height: 1.9; margin: 0; }

/* ポートフォリオ */
.td-portfolio-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
.td-portfolio-item {
  border-radius: 12px;
  overflow: hidden;
  background: #f8fafc;
  box-shadow: 0 1px 3px rgba(0,0,0,0.06);
}
.td-portfolio-img {
  height: 140px;
  background-size: cover;
  background-position: center;
  background-color: #e0ecff;
}
.td-portfolio-noimg {
  display: flex;
  align-items: center;
  justify-content: center;
  color: #9bb8e0;
}
.td-portfolio-body { padding: 16px; }
.td-portfolio-body h3 { font-size: 15px; font-weight: 700; margin: 0 0 4px; }
.td-portfolio-year { font-size: 12px; color: #9ca3af; margin-bottom: 8px; }
.td-portfolio-body p { font-size: 13px; color: #6b7280; line-height: 1.6; margin: 0 0 10px; }
.td-portfolio-link {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 12px;
  color: #1565d8;
  font-weight: 700;
  text-decoration: none;
}

/* サイドバー（CTA） */
.td-sidebar { position: sticky; top: 90px; }
.td-cta-card {
  background: #fff;
  border-radius: 16px;
  padding: 24px;
  box-shadow: 0 4px 20px rgba(13,71,161,0.08);
}
.td-rate {
  background: #f8fafc;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 20px;
}
.td-rate-row {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  padding: 6px 0;
}
.td-rate-label { font-size: 13px; color: #6b7280; }
.td-rate-value { font-size: 16px; font-weight: 800; color: #1565d8; font-family: var(--font-num); }
.td-cta-text { font-size: 14px; font-weight: 700; text-align: center; margin: 0 0 16px; }
.td-cta-btn { width: 100%; text-align: center; margin-bottom: 10px; }
.td-cta-note { font-size: 11px; color: #9ca3af; text-align: center; margin: 8px 0 0; }

@media (max-width: 900px) {
  .td-layout { grid-template-columns: 1fr; }
  .td-sidebar { position: static; }
  .td-profile-head { flex-direction: column; align-items: center; text-align: center; }
  .td-meta { justify-content: center; }
  .td-portfolio-grid { grid-template-columns: 1fr; }
}

/* 人材詳細：実績欄 */
.td-works { display: flex; flex-direction: column; gap: 16px; }
.td-work {
  padding: 18px 20px;
  background: #f8fafc;
  border-radius: 12px;
  border-left: 3px solid #1565d8;
}
.td-work-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 6px;
}
.td-work-title { font-size: 15px; font-weight: 700; margin: 0; }
.td-work-year { font-size: 12px; color: #9ca3af; flex-shrink: 0; }
.td-work-client {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: #6b7280;
  margin-bottom: 8px;
}
.td-work-client svg { color: #9ca3af; }
.td-work-desc { font-size: 13px; color: #374151; line-height: 1.8; margin: 0 0 10px; }
.td-work-url {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: #1565d8;
  font-weight: 600;
  text-decoration: none;
  word-break: break-all;
}
.td-work-url:hover { opacity: 0.7; }
.td-work-url svg { color: #1565d8; flex-shrink: 0; }

/* ============================================
   絞り込みアコーディオン（カテゴリ・職種・スキル）
   ============================================ */
.filter-accordion {
  border-bottom: 1px solid var(--color-border-light);
}
.filter-accordion + .filter-accordion {
  margin-top: 0;
}
.filter-summary {
  font-size: 14px;
  font-weight: 700;
  padding: 14px 0;
  cursor: pointer;
  list-style: none;
  display: flex;
  align-items: center;
  justify-content: space-between;
  user-select: none;
}
.filter-summary::-webkit-details-marker { display: none; }
/* 右側の ＋ / － 記号 */
.filter-summary::after {
  content: "\FF0B";
  font-size: 16px;
  font-weight: 400;
  color: #1565d8;
  line-height: 1;
  transition: transform 0.15s ease;
}
.filter-accordion[open] > .filter-summary::after {
  content: "\FF0D";
}
.filter-summary:hover {
  color: #1565d8;
}
/* アコーディオン内のフィルター群は上部に余白 */
.filter-accordion .filter-group {
  padding-bottom: 14px;
  max-height: 360px;
  overflow-y: auto;
}
/* h3の最初の余白ルールがアコーディオンに効かないよう調整 */
.jobs-sidebar .filter-accordion:first-of-type { margin-top: 0; }

/* ===== jobs/detail.php インラインCSS外部化 (2026-06) ===== */
.detail-flash-mb { margin-bottom: 16px; }
.detail-cancel-banner { background: #fdecea; border: 1px solid #f5c6cb; border-radius: 6px; padding: 14px 18px; margin: 12px 0 20px; }
.detail-cancel-title { font-weight: 700; color: #c0392b; margin-bottom: 4px; }
.detail-cancel-sub { font-size: 12px; color: var(--color-text-sub); }
.detail-btn-disabled { width: 100%; cursor: not-allowed; }
.detail-client-row { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.detail-client-hidden { font-size: 11px; }
.detail-contract-info { font-size: 13px; line-height: 1.9; padding-top: 12px; border-top: 1px solid var(--color-border-light); }
.detail-contract-row { display: flex; justify-content: space-between; }

/* AIマッチングセクション */
.detail-ai-section { background: linear-gradient(180deg, #f8f9fa 0%, #fff 100%); padding: 40px 16px; border-top: 1px solid #e5e7eb; }
.detail-ai-inner { max-width: 960px; margin: 0 auto; }
.detail-ai-title { font-size: 20px; margin: 0 0 8px; display: flex; align-items: center; gap: 10px; }
.detail-ai-badge { font-size: 11px; padding: 3px 10px; background: #e0ecff; color: #0056b8; border-radius: 999px; font-weight: 700; }
.detail-ai-sub { font-size: 13px; color: #6b7280; margin: 0 0 24px; }
.detail-ai-empty { padding: 32px; background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; text-align: center; color: #6b7280; }
.detail-ai-empty-icon { font-size: 36px; margin-bottom: 8px; }
.detail-ai-empty-title { font-size: 14px; font-weight: 600; margin: 0 0 6px; }
.detail-ai-empty-note { font-size: 12px; margin: 0; }
.detail-ai-grid { display: grid; grid-template-columns: 1fr; gap: 12px; }
.detail-ai-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 8px; padding: 20px; }
.detail-ai-card-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 10px; }
.detail-ai-card-left { display: flex; align-items: center; gap: 10px; }
.detail-ai-avatar { width: 40px; height: 40px; border-radius: 50%; background: linear-gradient(135deg, #0056b8, #1ea7e0); color: #fff; display: flex; align-items: center; justify-content: center; font-weight: 700; font-size: 18px; }
.detail-ai-bio { font-size: 13px; color: #374151; margin: 8px 0; line-height: 1.5; padding: 8px 12px; background: #f8f9fa; border-radius: 6px; border-left: 3px solid #0056b8; }
.detail-ai-meta { font-size: 12px; color: #374151; margin: 6px 0; }
.detail-ai-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }

/* フッター通報 */
.detail-footer { text-align: center; margin: 24px auto 40px; }
.detail-report-link { font-size: 12px; color: var(--color-text-sub); }

/* ===== jobs/list.php インラインCSS外部化 (2026-06) ===== */
.list-search-form { background:#fff; padding:20px; border-radius:var(--radius); border:1px solid var(--color-border-light); margin-bottom:24px; }
.list-search-row { display:grid; grid-template-columns: 1fr auto; gap:12px; }
.list-filter-parent { font-weight: 700; margin-top: 6px; }
.list-filter-child { padding-left: 16px; font-size: 12px; }
.list-filter-skill { padding-left: 8px; font-size: 12px; }
.list-sort-wrap { margin-top: 20px; }
.list-empty { text-align: center; padding: 60px 20px; }
.list-empty-text { font-size: 16px; color: var(--color-text-sub); margin: 0 0 16px; }
.list-item-meta { font-size: 12px; color: var(--color-text-muted); margin-bottom: 8px; }

/* ===== jobs/post.php インラインCSS外部化 (2026-06) ===== */
.post-work-type-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.post-budget-row { display: flex; gap: 16px; margin-bottom: 12px; }
.post-radio-label { display: flex; align-items: center; gap: 6px; }
.post-tag-wrap { display: flex; flex-wrap: wrap; gap: 8px; }
.post-tag-item { margin: 0; accent-color: var(--color-primary); }
.post-skill-col { display: flex; flex-direction: column; gap: 12px; }
.post-skill-category { font-size: 11px; color: var(--color-text-muted); font-weight: 600; margin-bottom: 6px; }
.post-skill-row { display: flex; flex-wrap: wrap; gap: 6px; }
.post-skill-item { margin: 0; accent-color: var(--color-accent); }
.post-visibility-box { background: var(--color-bg-soft); padding: 16px; border-radius: var(--radius-sm); margin-top: 32px; }
.post-visibility-row { display: flex; gap: 20px; }
.post-submit-wrap { margin-top: 24px; }

/* ===== jobs/apply.php インラインCSS外部化 (2026-06) ===== */
.apply-notice { background: var(--color-bg-soft); padding: 16px; border-radius: var(--radius-sm); margin: 24px 0; font-size: 13px; line-height: 1.7; }
.apply-btn-row { display: flex; gap: 12px; }

/* jobs/consult.php */
.consult-wrap { max-width: 720px; margin: 0 auto; padding: 40px 16px; }
.consult-title { font-size: 24px; margin-bottom: 8px; }
.consult-sub { font-size: 14px; color: var(--color-text-sub); margin-bottom: 32px; }
.consult-info-box { background: #eff6ff; border-left: 4px solid var(--color-primary); padding: 12px 16px; border-radius: 4px; margin-bottom: 24px; font-size: 13px; }
.consult-tag-wrap { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.consult-tag-item { margin: 0; cursor: pointer; }
.consult-help-note { font-size: 12px; color: var(--color-text-muted); margin-top: 6px; }
.consult-soft-box { background: var(--color-bg-soft); padding: 16px; border-radius: 8px; margin-bottom: 16px; }
.consult-note { font-size: 13px; color: var(--color-text-sub); margin-bottom: 8px; }

/* jobs/spot.php */
.spot-warn-box { background: #fff8e1; border-left: 4px solid #ffc107; padding: 12px 16px; border-radius: 4px; margin-bottom: 24px; font-size: 13px; }
.spot-price-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; }
.spot-price-card { border: 2px solid var(--color-border-light); border-radius: 8px; padding: 12px; text-align: center; cursor: pointer; transition: all 0.15s; }
.spot-price-amount { font-size: 20px; font-weight: 700; color: var(--color-primary); }
.spot-price-label { font-size: 11px; color: var(--color-text-muted); }

/* jobs misc */
.rp-wrap { max-width: 680px; margin: 0 auto; padding: 40px 16px; }
.rp-danger-note { background: #fef2f2; border-left: 4px solid #dc2626; padding: 12px 16px; border-radius: 4px; margin-bottom: 16px; font-size: 13px; }
.ent-wrap { max-width: 860px; margin: 0 auto; padding: 0 20px 60px; }
.ent-hero { text-align: center; padding: 48px 0 32px; }
.ent-eyebrow { font-size: 13px; font-weight: 700; color: var(--color-primary); letter-spacing: 2px; margin-bottom: 8px; }
.ent-steps { display: flex; flex-direction: column; gap: 32px; }
.pm-wrap { max-width: 900px; margin: 0 auto; padding: 40px 20px; }
.pmd-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 1px; color: #c9973a; margin-bottom: 8px; }
.pmd-nda-box { background: #fff8e1; border: 1px solid #f5c842; border-radius: 8px; padding: 20px; margin-bottom: 24px; }
.pa-wrap { max-width: 760px; margin: 0 auto; padding: 40px 16px; }
.pa-date-row { display: flex; gap: 12px; margin-top: 8px; }
.pa-date-input { flex: 1; }
.pp-wrap { max-width: 860px; margin: 0 auto; padding: 40px 16px; }
.pp-tabs { display: flex; gap: 8px; margin-bottom: 24px; border-bottom: 2px solid var(--color-border-light); }
.pp-preview { padding: 24px; background: #fff; border: 1px solid var(--color-border-light); border-radius: 8px; min-height: 400px; font-size: 13px; line-height: 1.9; }
.pp-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 24px; }
.tl-wrap { max-width: 960px; margin: 0 auto; padding: 40px 20px; }
.tl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.tl-detail-wrap { max-width: 800px; margin: 0 auto; padding: 40px 20px; }
.tl-header { display: flex; align-items: center; gap: 20px; margin-bottom: 24px; }
.idx-btn-row { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }
.idx-wrap { max-width: 960px; margin: 0 auto; padding: 0 20px; }
.idx-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 20px; }

/* consult.php auto-generated */
.consult-s1 { margin-bottom: 24px; padding: 16px 20px; background: #fef2f2; border: 2px solid #dc2626; border-left: 6px solid #dc2626; border-radius: 8px; }
.consult-s2 { font-size: 15px; font-weight: 700; color: #dc2626; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.consult-s3 { font-size: 12px; color: var(--color-text-sub); margin-top: 8px; }
.consult-s4 { font-size: 14px; color: #6b7280; margin: 0 0 28px; }
.consult-s5 { font-size: 22px; font-weight: 800; margin-bottom: 6px; display: flex; align-items: center; gap: 8px; }
.consult-s6 { font-size: 15px; color: #374151; margin: 0 0 16px; }
.consult-s7 { background: #f8f9fa; border-radius: 8px; padding: 16px; }
.consult-s8 { font-size: 13px; font-weight: 700; color: #6b7280; margin-bottom: 8px; }
.consult-s9 { margin: 0; padding-left: 20px; font-size: 14px; color: #374151; line-height: 1.9; }
.consult-s10 { font-size: 11px; color: #9ca3af; margin: 14px 0 0; }
.consult-s11 { background: #f8f9fa; border-radius: 10px; padding: 18px; margin-bottom: 24px; font-size: 13px; color: #374151; }
.consult-s12 { font-weight: 700; margin-bottom: 8px; }
.consult-s13 { line-height: 1.8; }
.consult-s14 { margin-top: 6px; }
.consult-s15 { font-size: 15px; font-weight: 700; text-align: center; margin-bottom: 16px; }
.consult-s16 { text-align: center; padding: 20px 0; }
.consult-s17 { width: 72px; height: 72px; margin: 0 auto 16px; display: flex; align-items: center; justify-content: center; background: #f0fdf4; border-radius: 50%; color: #22c55e; }
.consult-s18 { font-size: 24px; margin: 0 0 12px; }
.consult-s19 { font-size: 15px; color: #374151; line-height: 1.8; margin: 0 0 28px; }
.consult-s20 { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 12px; padding: 24px; margin-bottom: 24px; text-align: left; }
.consult-s21 { font-size: 15px; font-weight: 700; color: #1565d8; margin-bottom: 12px; display: flex; align-items: center; gap: 6px; }
.consult-s22 { font-size: 13px; color: #374151; line-height: 1.7; margin: 0 0 16px; }
.consult-s23 { font-size: 12px; color: #9ca3af; }
.consult-s24 { color: #1565d8; }

/* spot.php auto-generated */
.spot-s1 { margin-bottom: 24px; padding: 16px 20px; background: #fef2f2; border: 2px solid #dc2626; border-left: 6px solid #dc2626; border-radius: 8px; }
.spot-s2 { font-size: 15px; font-weight: 700; color: #dc2626; margin-bottom: 8px; display: flex; align-items: center; gap: 6px; }
.spot-s3 { background: #f0f9ff; border: 1px solid #bae6fd; border-radius: 12px; padding: 20px 24px; margin-bottom: 28px; }
.spot-s4 { font-size: 14px; font-weight: 700; color: #0369a1; margin-bottom: 12px; display: flex; align-items: center; gap: 6px; }
.spot-s5 { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
.spot-s6 { background: #fff; border: 1px solid #e0f2fe; border-radius: 8px; padding: 10px 14px; font-size: 14px; color: #0c4a6e; }
.spot-s7 { font-size: 12px; color: #64748b; margin: 12px 0 0; }
.spot-s8 { background: #0891b2; }
.spot-s9 { font-size: 14px; color: #6b7280; margin: 0 0 28px; }
.spot-s10 { background: #fff; border: 2px solid #0891b2; border-radius: 14px; padding: 24px; margin-bottom: 24px; }
.spot-s11 { font-size: 18px; font-weight: 800; color: #0891b2; margin-bottom: 16px; display: flex; align-items: center; gap: 8px; }
.spot-s12 { background: #f8f9fa; border-radius: 8px; padding: 16px; font-size: 14px; color: #374151; line-height: 1.9; }
.spot-s13 { margin-top: 8px; }
.spot-s14 { width: 100%; background: #0891b2; border-color: #0891b2; }
.spot-s15 { text-align: center; padding: 20px 0; }
.spot-s16 { width: 72px; height: 72px; margin: 0 auto 16px; display: flex; align-items: center; justify-content: center; background: #e0f2fe; border-radius: 50%; color: #0891b2; }
.spot-s17 { font-size: 24px; margin: 0 0 12px; }
.spot-s18 { font-size: 15px; color: #374151; line-height: 1.8; margin: 0 0 28px; }
.spot-s19 { background: #eff6ff; border: 1px solid #bfdbfe; border-radius: 12px; padding: 24px; margin-bottom: 24px; text-align: left; }
.spot-s20 { font-size: 15px; font-weight: 700; color: #1565d8; margin-bottom: 12px; display: flex; align-items: center; gap: 6px; }
.spot-s21 { font-size: 13px; color: #374151; line-height: 1.7; margin: 0 0 16px; }
.spot-s22 { font-size: 12px; color: #9ca3af; }
.spot-s23 { color: #1565d8; }

/* premium_apply.php auto-generated */
.papply-s1 { margin-bottom:12px; }
.papply-s2 { color:var(--premium-text-muted);font-size:13px;text-decoration:none; }
.papply-s3 { margin:0 0 24px;color:var(--premium-navy); }
.papply-s4 { background:var(--premium-gold-pale);border:1px solid var(--premium-border-gold);padding:16px 20px;border-radius:4px;margin-bottom:24px; }
.papply-s5 { font-size:11px;color:var(--premium-text-muted);margin-bottom:4px; }
.papply-s6 { margin:0 0 6px;font-size:16px; }
.papply-s7 { font-size:12px;color:var(--premium-text-sub); }
.papply-s8 { background:#f7f9fc;border-radius:4px;padding:16px 20px;margin-bottom:24px; }
.papply-s9 { margin:0 0 10px;font-size:13px;color:var(--premium-navy); }
.papply-s10 { display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--premium-text-sub); }
.papply-s11 { margin:10px 0 0;font-size:11px;color:var(--premium-text-muted); }
.papply-s12 { margin-bottom:20px; }
.papply-s13 { font-size:14px;margin:24px 0 12px;color:var(--premium-navy); }
.papply-s14 { font-size:14px;margin:28px 0 12px;color:var(--premium-navy); }
.papply-s15 { height:100px; }
.papply-s16 { display:flex;flex-direction:column;gap:8px; }
.papply-s17 { margin-top:32px;text-align:center; }
.papply-s18 { flex:none;padding:16px 56px;font-size:15px; }
.papply-s19 { font-size:11px;color:var(--premium-text-muted);margin-top:12px; }

/* premium_proposal.php auto-generated */
.pprop-s1 { margin-bottom:12px; }
.pprop-s2 { color:var(--premium-text-muted);font-size:13px;text-decoration:none; }
.pprop-s3 { background:#e8f5e9;border:1px solid #a5d6a7;border-radius:6px;padding:12px 20px;margin-bottom:16px;display:flex;align-items:center;gap:10px; }
.pprop-s4 { font-size:18px; }
.pprop-s5 { color:#2e7d32; }
.pprop-s6 { font-size:12px;color:#555;margin-left:8px; }
.pprop-s7 { font-size:12px;color:#555;margin-top:2px; }
.pprop-s8 { display:flex;gap:4px;margin-bottom:0; }
.pprop-s9 { margin-left:auto;padding:8px 20px;border-radius:4px;font-size:13px;text-decoration:none;background:#e8f0ff;color:#1a2f5e;border:1px solid #b0c4f0; }
.pprop-s10 { border-radius:0 8px 8px 8px; }
.pprop-s11 { margin-top:16px;text-align:right; }
.pprop-s12 { padding:10px 32px; }
.pprop-s13 { border:none;border-top:1px solid #eef2f7;margin:16px 0; }
.pprop-s14 { font-size:11px;color:var(--premium-text-muted);margin-top:16px;text-align:right; }
.pprop-s15 { margin-top:28px;padding-top:20px;border-top:1px solid #eef2f7;text-align:center; }
.pprop-s16 { font-size:13px;color:#555;margin-bottom:16px; }
.pprop-s17 { color:#c0392b;font-size:12px; }
.pprop-s18 { padding:14px 48px;font-size:15px; }

/* premium_detail.php auto-generated */
.pdet-s1 { color: var(--premium-text-muted); font-size: 13px; text-decoration: none; }
.pdet-s2 { font-size: 13px; color: var(--premium-text-sub); margin: 6px 0 0; }
.pdet-s3 { display: inline-block; margin-top: 8px; }
.pdet-s4 { background: #fff3cd; color: #b8860b; border: 1px solid #ffc107; }
.pdet-s5 { background: #f0f5ff; color: #1e3a8a; }
.pdet-s6 { font-size:14px; color: var(--premium-navy); margin: 0 0 12px; }
.pdet-s7 { font-size:14px; color: var(--premium-navy); margin: 24px 0 12px; }
.pdet-s8 { font-size:14px; color: var(--premium-navy); margin: 32px 0 12px; }
.pdet-s9 { background: #e8f5e9; border-left-color: #2e7d32; }
.pdet-s10 { color: #2e7d32; }
.pdet-s11 { vertical-align:top; }
.pdet-s12 { white-space: pre-wrap; }
.pdet-s13 { color: var(--premium-text-muted); font-size: 13px; }

/* premium_nda.php auto-generated */
.pnda-s1 { color: var(--premium-text-muted); font-size: 13px; text-decoration: none; }
.pnda-s2 { margin: 0 0 16px; color: var(--premium-navy); }
.pnda-s3 { font-size: 13px; color: var(--premium-text-sub); margin: 0 0 20px; }
.pnda-s4 { padding-left: 20px; }
.pnda-s5 { margin-top: 20px; font-size: 11px; color: var(--premium-text-muted); }
.pnda-s6 { font-size: 11px; color: var(--premium-text-muted); font-weight: 400; }
.pnda-s7 { font-size: 14px; margin: 24px 0 12px; color: var(--premium-navy); }
.pnda-s8 { margin-top: 32px; text-align: center; }
.pnda-s9 { flex: none; padding: 16px 56px; font-size: 15px; }

/* enterprise.php auto-generated */
.ent-s1 { text-decoration: none; }
.ent-s2 { color: #6b7a8f; font-size: 11px; }
.ent-s3 { display: grid; grid-template-columns: 1fr; gap: 8px; }
.ent-s4 { font-size: 12px; color: #6b7a8f; margin-top: 8px; }
.ent-s5 { margin-top: 24px; padding-top: 24px; border-top: 1px solid #e2e7ee; }
.ent-s6 { font-size: 15px; color: #1e3a8a; margin: 0 0 14px; }
.ent-s7 { margin-top: 20px; padding: 14px 16px; background: #f0f5ff; border-radius: 8px; font-size: 13px; color: #1e3a8a; }
.ent-s8 { margin-top: 12px; margin-bottom: 6px; }
.ent-s9 { font-size: 11px; color: #6b7a8f; margin-top: 12px; }

/* talents.php auto-generated */
.tl-s1 { font-weight: 700; margin-top: 6px; }
.tl-s2 { padding-left: 16px; font-size: 12px; }
.tl-s3 { font-size: 11px; color: var(--color-text-muted); margin: 8px 0 4px; font-weight: 700; }
.tl-s4 { padding-left: 8px; font-size: 12px; }
.tl-s5 { width:100%;height:100%;object-fit:cover;border-radius:inherit; }

/* talent_detail.php auto-generated */
.tld-s1 { padding:60px 0; text-align:center; }
.tld-s2 { width:100%;height:100%;object-fit:cover;border-radius:inherit; }
.tld-s3 { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--color-border-light); text-align: center; }

/* premium.php auto-generated */
.pm-s1 { justify-content: center; }
.pm-s2 { font-size:12px; color:#6b7a8f; text-decoration:underline; align-self:center; margin-left:8px; }
.pm-s3 { text-align:right; color:var(--premium-text-muted); font-size:12px; margin-bottom:16px; }

/* edit.php auto-generated */
.jedit-s1 { display: flex; gap: 16px; }
.jedit-s2 { display: flex; flex-direction: column; gap: 12px; }
.jedit-s3 { font-size: 11px; color: var(--color-text-muted); font-weight: 600; margin-bottom: 6px; }
.jedit-s4 { display: flex; flex-wrap: wrap; gap: 6px; }
.jedit-s5 { margin: 0; accent-color: var(--color-accent); }
.jedit-s6 { margin: 40px 0; border: none; border-top: 1px solid var(--color-border-light); }
.jedit-s7 { font-size: 16px; margin-bottom: 12px; }
.jedit-s8 { background:#fff; border:1px solid var(--color-danger); color:var(--color-danger); }

/* ===== 確認画面ボタンエリア（中央寄せ） ===== */
.consult-confirm-actions {
  max-width: 480px;
  margin: 0 auto;
  padding-bottom: 60px;
}
.consult-confirm-actions .c-w-full { width: 100%; }
