:root {
  --main: #2f6f68;
  --main-dark: #245850;
  --accent: #a9472f;
  --bg: #f6f8f5;
  --card: #fff;
  --paper: #fffdf8;
  --line: #dfe5df;
  --line-dark: #bcc9c0;
  --text: #333;
  --muted: #68716f;
  --warn: #b42318;
}

* { box-sizing: border-box; }
body {
  margin: 0;
  color: var(--text);
  background: var(--bg);
  font-family: -apple-system, BlinkMacSystemFont, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  line-height: 1.75;
}
a { color: var(--main-dark); }
.site-header { background: var(--card); border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 20; }
.site-header__inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 14px 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}
.site-logo { margin: 0; font-weight: 800; color: var(--main-dark); font-size: 18px; letter-spacing: .06em; }
.site-header nav { display: flex; gap: 14px; flex-wrap: wrap; font-size: 14px; }
.site-header nav a { text-decoration: none; font-weight: 700; }
.page { max-width: 1160px; margin: 0 auto; padding: 28px 20px 76px; }
.page-title { margin: 0 0 12px; font-size: 28px; letter-spacing: .04em; }
.lead { color: var(--muted); margin: 0 0 24px; }
.paper-form { background: transparent; }
.card, .form-section {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 22px;
  margin-bottom: 18px;
  box-shadow: 0 6px 18px rgba(0,0,0,.04);
}
.form-section {
  background: linear-gradient(180deg, #fff 0%, var(--paper) 100%);
}
.form-section h2 {
  margin: 0 0 18px;
  padding: 9px 12px;
  border-left: 6px solid var(--main);
  background: #eef5ef;
  color: var(--main-dark);
  font-size: 19px;
  border-radius: 0 8px 8px 0;
}
.sub-card {
  border: 1px solid var(--line);
  background: #fff;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 18px;
}
.sub-card h3 { margin: 0 0 6px; font-size: 16px; color: var(--main-dark); }
.hint { color: var(--muted); font-size: 13px; margin: 0 0 12px; }
.grid-2, .grid-3, .grid-4 {
  display: grid;
  gap: 16px;
}
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid-compact { gap: 10px; }
.field { display: flex; flex-direction: column; gap: 6px; }
.field--full { grid-column: 1 / -1; }
.field--wide { grid-column: span 2; }
label, .label { font-weight: 800; font-size: 14px; }
.required { color: var(--warn); margin-left: 4px; }
input[type="text"], input[type="tel"], input[type="email"], input[type="password"], input[type="date"], input[type="time"], input[type="number"], select, textarea {
  width: 100%;
  border: 1px solid #cfd8d2;
  border-radius: 9px;
  background: #fff;
  padding: 10px 12px;
  font-size: 15px;
  line-height: 1.5;
}
input[type="number"] { text-align: right; }
textarea { min-height: 98px; resize: vertical; }
input:focus, select:focus, textarea:focus {
  outline: 3px solid rgba(47,111,104,.15);
  border-color: var(--main);
}
.field--unit {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 6px 8px;
  align-items: center;
}
.field--unit label { grid-column: 1 / -1; }
.field--unit input, .field--unit select { min-width: 0; }
.unit { white-space: nowrap; color: var(--muted); font-weight: 700; }
.field--highlight {
  padding: 14px;
  border: 2px solid var(--accent);
  border-radius: 12px;
  background: #fff7f3;
}
.checks { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.checks label {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-height: 32px;
  font-weight: 600;
  background: #fff;
  border: 1px solid #d8e0db;
  border-radius: 999px;
  padding: 4px 10px;
}
.checks input { accent-color: var(--main); }
.checks--stacked { align-items: stretch; }
.checks--stacked label { border-radius: 8px; }
.checks--days label { min-width: 54px; justify-content: center; }
.time-block + .time-block { margin-top: 16px; padding-top: 16px; border-top: 1px dashed var(--line-dark); }
.actions { display: flex; justify-content: center; gap: 12px; margin-top: 22px; }
.actions--sticky {
  position: sticky;
  bottom: 0;
  background: rgba(246,248,245,.94);
  border-top: 1px solid var(--line);
  padding: 14px 0;
  backdrop-filter: blur(6px);
}
.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 220px;
  border: none;
  border-radius: 999px;
  background: var(--accent);
  color: #fff;
  padding: 13px 24px;
  font-size: 16px;
  font-weight: 800;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 7px 16px rgba(169, 71, 47, .22);
}
.btn:hover { filter: brightness(.96); transform: translateY(-1px); }
.btn--sub { background: var(--main); box-shadow: none; }
.error, .success {
  padding: 12px 14px;
  border-radius: 10px;
  margin: 0 0 16px;
  font-weight: 700;
}
.error { background: #fef3f2; color: #b42318; border: 1px solid #fecdca; }
.success { background: #eef8f0; color: #245850; border: 1px solid #cde7d3; }
.detail-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.badge {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  background: #eef5ef;
  color: var(--main-dark);
  padding: 7px 12px;
  font-weight: 800;
  white-space: nowrap;
}
.job-table, .detail-table {
  width: 100%;
  border-collapse: collapse;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  overflow: hidden;
}
.job-table th, .job-table td, .detail-table th, .detail-table td {
  border-bottom: 1px solid var(--line);
  padding: 12px 14px;
  text-align: left;
  vertical-align: top;
}
.job-table th, .detail-table th {
  background: #eef5ef;
  color: var(--main-dark);
  font-weight: 800;
}
.job-table tr:last-child td, .detail-table tr:last-child th, .detail-table tr:last-child td { border-bottom: none; }
.detail-table th { width: 220px; }
.detail-section h2 { margin: 0 0 12px; font-size: 20px; color: var(--main-dark); }
.thanks-card { text-align: center; }
.login-card { max-width: 720px; }

@media (max-width: 900px) {
  .grid-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .field--wide { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .site-header__inner { align-items: flex-start; flex-direction: column; }
  .page { padding: 22px 14px 70px; }
  .page-title { font-size: 23px; }
  .card, .form-section { padding: 16px; border-radius: 12px; }
  .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; }
  .field--full, .field--wide { grid-column: auto; }
  .checks { gap: 7px; }
  .checks label { border-radius: 8px; width: 100%; justify-content: flex-start; }
  .checks--days label { width: auto; min-width: 50px; }
  .detail-head { flex-direction: column; }
  .job-table thead { display: none; }
  .job-table, .job-table tbody, .job-table tr, .job-table td { display: block; width: 100%; }
  .job-table tr { border-bottom: 1px solid var(--line); padding: 10px 0; }
  .job-table td { border: none; padding: 6px 12px; }
  .job-table td::before { content: attr(data-label); display: block; color: var(--muted); font-size: 12px; font-weight: 800; }
  .detail-table th, .detail-table td { display: block; width: 100%; }
  .detail-table th { border-bottom: none; padding-bottom: 5px; }
  .detail-table td { padding-top: 5px; }
  .btn { width: 100%; min-width: 0; }
}

.btn--danger {
  background: #b42318;
  box-shadow: 0 7px 16px rgba(180, 35, 24, .18);
}
.btn--small {
  min-width: 0;
  padding: 8px 14px;
  font-size: 14px;
  box-shadow: none;
}
.table-actions {
  width: 120px;
  text-align: center;
  white-space: nowrap;
}
.table-actions form {
  margin: 0;
}
.detail-actions {
  display: flex;
  justify-content: flex-end;
  margin: -6px 0 18px;
}
.detail-actions form {
  margin: 0;
}

@media (max-width: 640px) {
  .table-actions {
    width: auto;
    text-align: left;
    white-space: normal;
  }
  .detail-actions {
    justify-content: stretch;
  }
  .btn--small {
    width: 100%;
  }
}

.required-auto {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 999px;
  background: #fef3f2;
  color: var(--warn);
  border: 1px solid #fecdca;
  font-size: 11px;
  line-height: 1.4;
  font-weight: 800;
}
.error-card .error-list {
  margin: 0 0 18px;
  padding-left: 1.4em;
}
.error-card .error-list li {
  margin-bottom: 4px;
  color: var(--warn);
  font-weight: 700;
}
.table-actions {
  width: 190px;
}
.table-actions,
.detail-actions {
  gap: 8px;
  align-items: center;
}
.table-actions {
  display: flex;
  justify-content: center;
}
.detail-actions {
  flex-wrap: wrap;
}

@media (max-width: 640px) {
  .table-actions {
    display: block;
  }
  .table-actions .btn,
  .table-actions form {
    margin-top: 8px;
  }
}

/* v5.1: 管理ボタンを横並びで固定 */
.table-actions,
.detail-actions {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
}
.table-actions {
  width: 190px;
  justify-content: center;
  white-space: nowrap;
}
.detail-actions {
  justify-content: flex-end;
  flex-wrap: wrap;
  margin: -6px 0 18px;
}
.table-actions form,
.detail-actions form {
  margin: 0;
  display: inline-flex;
}
.table-actions .btn,
.detail-actions .btn,
.table-actions button,
.detail-actions button {
  width: auto;
  white-space: nowrap;
}
@media (max-width: 640px) {
  .table-actions {
    display: flex;
    width: auto;
    justify-content: flex-start;
    gap: 8px;
  }
  .table-actions .btn,
  .table-actions form,
  .detail-actions .btn,
  .detail-actions form {
    margin-top: 0;
  }
  .detail-actions {
    justify-content: flex-start;
  }
}

/* Excelアップロード */
.import-card {
  margin: 18px 0 24px;
  padding: 18px;
  background: #f6f8f3;
  border: 1px solid #d9e4d4;
  border-radius: 14px;
  box-shadow: 0 8px 24px rgba(45, 70, 45, 0.06);
}

.import-card__body h2 {
  margin: 0 0 6px;
  font-size: 1.15rem;
  color: #3f663f;
}

.import-card__body p,
.import-note {
  margin: 0 0 12px;
  color: #555;
  line-height: 1.7;
}

.import-form {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  margin: 10px 0 8px;
}

.import-form input[type="file"] {
  flex: 1 1 320px;
  min-width: 240px;
  padding: 10px;
  background: #fff;
  border: 1px solid #ccd8c8;
  border-radius: 10px;
}

.import-success {
  display: inline-block;
  margin: 8px 0 0;
  padding: 8px 12px;
  background: #fff;
  border-left: 4px solid #4d734d;
  border-radius: 8px;
  color: #3f663f;
  font-weight: 700;
}

.import-page {
  max-width: 860px;
  margin: 30px auto;
}

.import-form--page {
  margin-top: 18px;
}

@media (max-width: 640px) {
  .import-form {
    display: block;
  }
  .import-form input[type="file"],
  .import-form .btn {
    width: 100%;
    margin-top: 10px;
  }
}

.choice-note {
  display: inline-flex;
  align-items: center;
  margin-left: 6px;
  padding: 1px 6px;
  border-radius: 999px;
  background: #eff6ff;
  color: #1d4ed8;
  border: 1px solid #bfdbfe;
  font-size: 11px;
  line-height: 1.4;
  font-weight: 800;
}

/* 確認画面 */
.confirm-actions {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  margin: 18px 0 24px;
  padding: 18px 20px;
  background: linear-gradient(180deg, #ffffff 0%, #fafcf8 100%);
  border: 1px solid var(--line);
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(30, 50, 30, .06);
}

.confirm-actions--top {
  margin-top: 0;
}

.confirm-actions__message {
  min-width: 220px;
  color: #334155;
  line-height: 1.55;
}

.confirm-actions__message strong {
  display: block;
  margin-bottom: 2px;
  color: #2f5636;
  font-size: 1rem;
}

.confirm-actions__message span {
  display: block;
  font-size: .9rem;
  color: #64748b;
}

.confirm-actions__buttons {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.confirm-actions form {
  margin: 0;
  display: inline-flex;
}

.btn--confirm-primary,
.btn--confirm-secondary {
  min-width: 180px;
  height: 44px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  padding: 0 20px;
  line-height: 1.2;
  white-space: nowrap;
}

.btn--confirm-primary {
  min-width: 230px;
  font-weight: 800;
}

.btn--confirm-secondary {
  background: #fff;
  color: #3f663f;
  border: 1px solid #c9d8c3;
  box-shadow: none;
}

.btn--confirm-secondary:hover {
  background: #f5f9f2;
}

.confirm-actions--bottom {
  position: sticky;
  bottom: 0;
  z-index: 10;
  margin-top: 26px;
  margin-bottom: 0;
  background: rgba(255, 255, 255, .97);
  backdrop-filter: blur(8px);
  border-radius: 16px 16px 0 0;
  box-shadow: 0 -8px 26px rgba(0, 0, 0, .08);
}

.confirm-section .detail-table th {
  width: 240px;
}

@media (max-width: 760px) {
  .confirm-actions {
    display: block;
    padding: 16px;
  }

  .confirm-actions__message {
    margin-bottom: 12px;
    min-width: 0;
  }

  .confirm-actions__buttons {
    display: grid;
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .confirm-actions form,
  .confirm-actions .btn {
    width: 100%;
  }

  .btn--confirm-primary,
  .btn--confirm-secondary {
    min-width: 0;
  }

  .confirm-actions--bottom {
    border-radius: 14px 14px 0 0;
  }
}

/* v9: 自動NO・対象者別一覧 */
.field--readonly .static-value {
  min-height: 42px;
  display: flex;
  align-items: center;
  padding: 10px 12px;
  border: 1px solid #d8e3d2;
  border-radius: 10px;
  background: #f7faf4;
  color: #244024;
  font-weight: 700;
}

.static-value--muted {
  color: #687568 !important;
  font-weight: 600 !important;
}

.hint--compact {
  margin: 6px 0 0;
  font-size: 12px;
}

.list-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 18px;
}

.list-tab {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border: 1px solid #d7e2d1;
  border-radius: 999px;
  background: #fff;
  color: #365236;
  text-decoration: none;
  font-weight: 700;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .04);
}

.list-tab:hover {
  background: #f4f9f1;
}

.list-tab.is-active {
  background: #3f663f;
  border-color: #3f663f;
  color: #fff;
}

.target-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 10px;
  border-radius: 999px;
  background: #eef6ea;
  color: #315631;
  font-size: 12px;
  font-weight: 800;
  white-space: nowrap;
}

.job-table .col-no {
  width: 76px;
  text-align: center;
  font-weight: 800;
}

@media (max-width: 760px) {
  .list-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .list-tab {
    border-radius: 12px;
    padding: 10px;
    font-size: 13px;
  }

  .job-table .col-no {
    width: auto;
    text-align: left;
  }
}

/* v10: 生徒向け一覧を2ページ化・管理一覧を分離 */
.list-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 0 0 18px;
}

.list-nav__item {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 10px 16px;
  border: 1px solid #d7e2d1;
  border-radius: 999px;
  background: #fff;
  color: #365236;
  text-decoration: none;
  font-weight: 700;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .04);
}

.list-nav__item:hover {
  background: #f4f9f1;
}

.list-nav__item.is-active {
  background: #3f663f;
  border-color: #3f663f;
  color: #fff;
}

@media (max-width: 760px) {
  .list-nav {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .list-nav__item {
    border-radius: 12px;
    padding: 10px;
    font-size: 13px;
  }
}


/* v10.8: 確認画面の印刷対応 */
.btn--print {
  min-width: 190px;
  background: #fff;
  color: #244f3a;
  border: 1px solid #9fbca9;
  box-shadow: none;
}

.btn--print:hover {
  background: #f4faf6;
}

@media (max-width: 760px) {
  .btn--print {
    min-width: 0;
  }
}

@media print {
  @page {
    size: A4 portrait;
    margin: 12mm;
  }

  body {
    background: #fff !important;
    color: #111 !important;
    font-size: 10pt;
  }

  .site-header,
  .no-print,
  .confirm-actions,
  .badge {
    display: none !important;
  }

  .page {
    max-width: none !important;
    padding: 0 !important;
  }

  .card,
  .form-section,
  .detail-section,
  .confirm-section {
    box-shadow: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    padding: 0 !important;
  }

  .detail-head {
    display: block !important;
    margin: 0 0 8mm !important;
    padding: 0 0 4mm !important;
    border-bottom: 2px solid #222 !important;
  }

  .page-title {
    margin: 0 0 3mm !important;
    font-size: 18pt !important;
    color: #111 !important;
  }

  .lead {
    margin: 0 !important;
    font-size: 10pt !important;
    color: #333 !important;
  }

  .confirm-section {
    break-inside: avoid;
    page-break-inside: avoid;
    margin: 0 0 6mm !important;
  }

  .confirm-section h2 {
    margin: 0 0 2mm !important;
    font-size: 13pt !important;
    color: #111 !important;
    border-bottom: 1px solid #999;
    padding-bottom: 1.5mm;
  }

  .detail-table {
    width: 100% !important;
    border-collapse: collapse !important;
    border: 1px solid #888 !important;
    border-radius: 0 !important;
    overflow: visible !important;
    font-size: 9.5pt !important;
  }

  .detail-table th,
  .detail-table td {
    border: 1px solid #bbb !important;
    padding: 2.2mm 2.6mm !important;
    color: #111 !important;
    vertical-align: top !important;
  }

  .detail-table th {
    width: 33mm !important;
    background: #f0f0f0 !important;
    font-weight: 700 !important;
  }

  a {
    color: #111 !important;
    text-decoration: none !important;
  }
}

/* v10.9: 確認画面をA4 1枚の求人票として印刷 */
.print-sheet {
  display: none !important;
}

@media print {
  @page {
    size: A4 portrait;
    margin: 6mm;
  }

  html,
  body {
    width: 210mm;
    min-height: 297mm;
    background: #fff !important;
    color: #000 !important;
  }

  body * {
    visibility: hidden !important;
  }

  .print-sheet,
  .print-sheet * {
    visibility: visible !important;
  }

  .print-sheet {
    display: block !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 198mm !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #000 !important;
    font-family: "Yu Gothic", "YuGothic", "Meiryo", sans-serif !important;
    font-size: 7.6pt !important;
    line-height: 1.18 !important;
  }

  .print-sheet__header {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 4mm !important;
    margin: 0 0 2mm !important;
    padding: 0 0 1.6mm !important;
    border-bottom: 2px solid #111 !important;
  }

  .print-sheet__header h1 {
    margin: 0 !important;
    padding: 0 !important;
    color: #000 !important;
    font-size: 17pt !important;
    line-height: 1 !important;
    letter-spacing: .18em !important;
  }

  .print-sheet__meta {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
    gap: 1.5mm 3mm !important;
    font-size: 7.8pt !important;
    font-weight: 700 !important;
  }

  .print-sheet__meta span {
    display: inline-block !important;
    white-space: nowrap !important;
  }

  .print-sheet__table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border: 1px solid #222 !important;
    font-size: 7.4pt !important;
    line-height: 1.16 !important;
  }

  .print-sheet__table th,
  .print-sheet__table td {
    border: 1px solid #666 !important;
    padding: .75mm 1mm !important;
    color: #000 !important;
    vertical-align: top !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
  }

  .print-sheet__table th {
    width: 22mm !important;
    background: #f1f1f1 !important;
    font-weight: 700 !important;
    text-align: left !important;
    white-space: nowrap !important;
  }

  .print-sheet__table td {
    width: 77mm !important;
    min-height: 3.8mm !important;
  }

  .print-sheet__section th {
    background: #222 !important;
    color: #fff !important;
    text-align: center !important;
    font-size: 8pt !important;
    letter-spacing: .08em !important;
    padding: .8mm 1mm !important;
  }

  .print-sheet a {
    color: #000 !important;
    text-decoration: none !important;
  }
}


/* v10.10: 印刷ボタンは求人票部分だけを印刷する。Ctrl+P時も求人票のみ表示 */
#jobPrintSheet {
  display: none !important;
}

@media print {
  body * {
    visibility: hidden !important;
  }

  #jobPrintSheet,
  #jobPrintSheet * {
    visibility: visible !important;
  }

  #jobPrintSheet {
    display: block !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 198mm !important;
    margin: 0 !important;
    padding: 0 !important;
  }
}


/* v10.11: A4横向き・用紙幅いっぱい印刷 */
#jobPrintSheet {
  display: none !important;
}

@media print {
  @page {
    size: A4 landscape;
    margin: 4mm;
  }

  html,
  body {
    width: 297mm !important;
    min-height: 210mm !important;
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
    color: #000 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  body * {
    visibility: hidden !important;
  }

  #jobPrintSheet,
  #jobPrintSheet * {
    visibility: visible !important;
  }

  #jobPrintSheet {
    display: block !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 289mm !important;
    max-width: 289mm !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #000 !important;
    font-family: "Yu Gothic", "YuGothic", "Meiryo", sans-serif !important;
    font-size: 8.4pt !important;
    line-height: 1.16 !important;
  }

  #jobPrintSheet .print-sheet__header {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 4mm !important;
    margin: 0 0 1.5mm !important;
    padding: 0 0 1.3mm !important;
    border-bottom: 2px solid #111 !important;
  }

  #jobPrintSheet .print-sheet__header h1 {
    margin: 0 !important;
    padding: 0 !important;
    color: #000 !important;
    font-size: 18pt !important;
    line-height: 1 !important;
    letter-spacing: .18em !important;
  }

  #jobPrintSheet .print-sheet__meta {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
    gap: 1.2mm 3mm !important;
    font-size: 8.3pt !important;
    font-weight: 700 !important;
  }

  #jobPrintSheet .print-sheet__table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border: 1px solid #222 !important;
    font-size: 8.1pt !important;
    line-height: 1.14 !important;
  }

  #jobPrintSheet .print-sheet__table th,
  #jobPrintSheet .print-sheet__table td {
    border: 1px solid #666 !important;
    padding: .65mm 1mm !important;
    color: #000 !important;
    vertical-align: top !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
  }

  #jobPrintSheet .print-sheet__table th {
    width: 27mm !important;
    background: #f1f1f1 !important;
    font-weight: 700 !important;
    text-align: left !important;
    white-space: nowrap !important;
  }

  #jobPrintSheet .print-sheet__table td {
    width: 117.5mm !important;
    min-height: 3.6mm !important;
  }

  #jobPrintSheet .print-sheet__section th {
    background: #222 !important;
    color: #fff !important;
    text-align: center !important;
    font-size: 8.5pt !important;
    letter-spacing: .08em !important;
    padding: .65mm 1mm !important;
  }
}


/* v10.12: A4横印刷の白紙2ページ目対策 */
@media print {
  @page {
    size: A4 landscape;
    margin: 3mm;
  }

  html,
  body {
    width: 291mm !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
  }

  body > *:not(#jobPrintSheet) {
    display: none !important;
  }

  #jobPrintSheet {
    display: block !important;
    visibility: visible !important;
    position: static !important;
    left: auto !important;
    top: auto !important;
    width: 291mm !important;
    max-width: 291mm !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    break-before: avoid !important;
    break-after: avoid !important;
    break-inside: avoid !important;
    page-break-before: avoid !important;
    page-break-after: avoid !important;
    page-break-inside: avoid !important;
  }

  #jobPrintSheet,
  #jobPrintSheet * {
    visibility: visible !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }

  #jobPrintSheet .print-sheet__header {
    margin-bottom: 1mm !important;
    padding-bottom: 1mm !important;
  }

  #jobPrintSheet .print-sheet__table {
    width: 100% !important;
    font-size: 7.8pt !important;
    line-height: 1.08 !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }

  #jobPrintSheet .print-sheet__table th,
  #jobPrintSheet .print-sheet__table td {
    padding: .45mm .8mm !important;
  }

  #jobPrintSheet .print-sheet__section th {
    padding: .45mm .8mm !important;
    font-size: 8pt !important;
  }
}

/* v10.13: A4横印刷で上下左右が切れないように印刷可能範囲へ収める */
@media print {
  @page {
    size: A4 landscape;
    /* プリンタの印刷不可領域を避けるため、3mmから安全な余白へ変更 */
    margin: 8mm 10mm;
  }

  html,
  body {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    color: #000 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  body > *:not(#jobPrintSheet) {
    display: none !important;
  }

  #jobPrintSheet {
    display: block !important;
    visibility: visible !important;
    position: static !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    overflow: visible !important;
    font-size: 7.4pt !important;
    line-height: 1.08 !important;
    break-before: avoid !important;
    break-after: avoid !important;
    break-inside: avoid !important;
    page-break-before: avoid !important;
    page-break-after: avoid !important;
    page-break-inside: avoid !important;
  }

  #jobPrintSheet,
  #jobPrintSheet * {
    visibility: visible !important;
    box-sizing: border-box !important;
    break-after: avoid !important;
    page-break-after: avoid !important;
  }

  #jobPrintSheet .print-sheet__header {
    margin: 0 0 .8mm !important;
    padding: 0 0 .8mm !important;
  }

  #jobPrintSheet .print-sheet__header h1 {
    font-size: 15pt !important;
    letter-spacing: .12em !important;
  }

  #jobPrintSheet .print-sheet__meta {
    font-size: 7.2pt !important;
    gap: .8mm 2mm !important;
  }

  #jobPrintSheet .print-sheet__table {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    font-size: 7.1pt !important;
    line-height: 1.05 !important;
    margin: 0 !important;
  }

  #jobPrintSheet .print-sheet__table th,
  #jobPrintSheet .print-sheet__table td {
    padding: .35mm .6mm !important;
    vertical-align: top !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
  }

  #jobPrintSheet .print-sheet__table th {
    width: 21mm !important;
    white-space: normal !important;
  }

  #jobPrintSheet .print-sheet__table td {
    width: auto !important;
    min-height: 0 !important;
  }

  #jobPrintSheet .print-sheet__section th {
    padding: .35mm .6mm !important;
    font-size: 7.4pt !important;
    line-height: 1.05 !important;
  }
}


/* v10.14: 印刷時に上・左右が切れないよう、安全余白内に収める最終上書き */
@media print {
  @page {
    size: A4 landscape;
    margin: 12mm 14mm;
  }

  html,
  body {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    color: #000 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  body > *:not(#jobPrintSheet) {
    display: none !important;
  }

  #jobPrintSheet,
  #jobPrintSheet * {
    visibility: visible !important;
    box-sizing: border-box !important;
  }

  #jobPrintSheet {
    display: block !important;
    position: static !important;
    left: auto !important;
    top: auto !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    font-size: 7.2pt !important;
    line-height: 1.05 !important;
    break-before: avoid !important;
    break-after: avoid !important;
    break-inside: avoid !important;
    page-break-before: avoid !important;
    page-break-after: avoid !important;
    page-break-inside: avoid !important;
  }

  #jobPrintSheet .print-sheet__header {
    margin: 0 0 .8mm !important;
    padding: 0 0 .8mm !important;
  }

  #jobPrintSheet .print-sheet__header h1 {
    font-size: 14pt !important;
    letter-spacing: .1em !important;
  }

  #jobPrintSheet .print-sheet__meta {
    font-size: 7pt !important;
    gap: .8mm 2mm !important;
  }

  #jobPrintSheet .print-sheet__table {
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    font-size: 6.9pt !important;
    line-height: 1.04 !important;
    margin: 0 !important;
  }

  #jobPrintSheet .print-sheet__table th,
  #jobPrintSheet .print-sheet__table td {
    padding: .3mm .55mm !important;
    vertical-align: top !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
  }

  #jobPrintSheet .print-sheet__table th {
    width: 20mm !important;
    white-space: normal !important;
  }

  #jobPrintSheet .print-sheet__table td {
    width: auto !important;
    min-height: 0 !important;
  }

  #jobPrintSheet .print-sheet__section th {
    padding: .3mm .55mm !important;
    font-size: 7.2pt !important;
    line-height: 1.04 !important;
  }
}


/* v10.15: 一般的な求人票様式の印刷レイアウト（最終上書き） */
@media print {
  @page {
    size: A4 landscape;
    margin: 11mm 13mm;
  }

  html,
  body {
    width: auto !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
    color: #000 !important;
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  body > *:not(#jobPrintSheet) {
    display: none !important;
  }

  #jobPrintSheet,
  #jobPrintSheet * {
    visibility: visible !important;
    box-sizing: border-box !important;
  }

  #jobPrintSheet.job-ticket {
    display: block !important;
    position: static !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #000 !important;
    font-family: "Yu Gothic", "YuGothic", "Meiryo", sans-serif !important;
    font-size: 7.1pt !important;
    line-height: 1.08 !important;
    break-before: avoid !important;
    break-after: avoid !important;
    break-inside: avoid !important;
    page-break-before: avoid !important;
    page-break-after: avoid !important;
    page-break-inside: avoid !important;
  }

  #jobPrintSheet .job-ticket__header {
    display: grid !important;
    grid-template-columns: 1fr auto 1fr !important;
    align-items: end !important;
    gap: 4mm !important;
    margin: 0 0 1.4mm !important;
    padding: 0 0 1.2mm !important;
    border-bottom: 2px solid #111 !important;
  }

  #jobPrintSheet .job-ticket__org {
    font-size: 8pt !important;
    font-weight: 700 !important;
  }

  #jobPrintSheet .job-ticket__header h1 {
    margin: 0 !important;
    color: #000 !important;
    font-size: 18pt !important;
    line-height: 1 !important;
    letter-spacing: .22em !important;
    text-align: center !important;
  }

  #jobPrintSheet .job-ticket__stamp {
    display: flex !important;
    justify-content: flex-end !important;
    gap: 2.2mm !important;
    font-size: 7.2pt !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
  }

  #jobPrintSheet .job-ticket__table {
    width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border: 1.4px solid #111 !important;
    font-size: 6.95pt !important;
    line-height: 1.06 !important;
    margin: 0 !important;
  }

  #jobPrintSheet .job-ticket__table col.label {
    width: 18mm !important;
  }

  #jobPrintSheet .job-ticket__table th,
  #jobPrintSheet .job-ticket__table td {
    border: 1px solid #555 !important;
    padding: .38mm .65mm !important;
    color: #000 !important;
    vertical-align: top !important;
    word-break: break-word !important;
    overflow-wrap: anywhere !important;
  }

  #jobPrintSheet .job-ticket__table th {
    background: #eeeeee !important;
    font-weight: 700 !important;
    text-align: left !important;
    white-space: normal !important;
  }

  #jobPrintSheet .job-ticket__section th {
    background: #333 !important;
    color: #fff !important;
    text-align: center !important;
    font-size: 7.3pt !important;
    letter-spacing: .08em !important;
    padding: .42mm .65mm !important;
  }
}


/* v10.16: A4横1枚を広く使い、枠と文字を大きくする最終調整 */
@media print {
  @page {
    size: A4 landscape;
    margin: 8mm 10mm;
  }

  #jobPrintSheet.job-ticket {
    width: 100% !important;
    max-width: 100% !important;
    font-size: 8.6pt !important;
    line-height: 1.18 !important;
  }

  #jobPrintSheet .job-ticket__header {
    margin: 0 0 2.2mm !important;
    padding: 0 0 2.0mm !important;
    border-bottom-width: 2.2px !important;
  }

  #jobPrintSheet .job-ticket__org {
    font-size: 9.4pt !important;
  }

  #jobPrintSheet .job-ticket__header h1 {
    font-size: 22pt !important;
    letter-spacing: .28em !important;
  }

  #jobPrintSheet .job-ticket__stamp {
    font-size: 8.7pt !important;
    gap: 3mm !important;
  }

  #jobPrintSheet .job-ticket__table {
    font-size: 8.35pt !important;
    line-height: 1.16 !important;
    border-width: 1.7px !important;
  }

  #jobPrintSheet .job-ticket__table col.label {
    width: 20mm !important;
  }

  #jobPrintSheet .job-ticket__table tr:not(.job-ticket__section) {
    height: 7.4mm !important;
  }

  #jobPrintSheet .job-ticket__table th,
  #jobPrintSheet .job-ticket__table td {
    padding: 1.05mm 1.15mm !important;
    border-width: 1px !important;
  }

  #jobPrintSheet .job-ticket__section th {
    font-size: 9pt !important;
    padding: 1.05mm 1.15mm !important;
    height: 5.6mm !important;
  }
}


/* v10.26: 求人入力注意書き（枠なし） */
.login-attention {
  margin: 0 0 18px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--text);
  font-weight: 700;
  line-height: 1.75;
}

.login-attention p {
  margin: 0 0 8px;
}

.login-attention .attention-red {
  color: var(--warn);
  font-weight: 800;
}

.login-attention p:last-child {
  margin-bottom: 0;
}

.section-title-row {
  display: flex;
  align-items: stretch;
  gap: 16px;
  margin: 0 0 18px;
}

.form-section .section-title-row h2 {
  margin: 0;
  flex: 0 0 auto;
  min-width: 260px;
}

.section-title-note {
  flex: 1;
  padding: 10px 14px;
  border: 1px solid #e6b8b0;
  border-radius: 10px;
  background: #fff7f5;
  color: var(--warn);
  font-size: 13px;
  font-weight: 800;
  line-height: 1.65;
}

.section-title-note p {
  margin: 0 0 5px;
}

.section-title-note p:last-child {
  margin-bottom: 0;
}

@media (max-width: 760px) {
  .section-title-row {
    display: block;
  }

  .form-section .section-title-row h2 {
    min-width: 0;
    margin-bottom: 10px;
  }
}

/* v10.41: スマホ入力時の自動拡大・日付/時間入力のはみ出し対策 */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

input,
select,
textarea,
button {
  max-width: 100%;
  font-family: inherit;
}

input[type="date"],
input[type="time"],
input[type="datetime-local"],
select {
  min-width: 0;
  max-width: 100%;
}

.field,
.field--unit,
.grid-2,
.grid-3,
.grid-4 {
  min-width: 0;
}

.field--unit {
  grid-template-columns: minmax(0, 1fr) auto;
}

.field--unit input,
.field--unit select,
.field--unit textarea {
  min-width: 0;
  max-width: 100%;
}

@media (max-width: 760px) {
  input[type="text"],
  input[type="tel"],
  input[type="email"],
  input[type="password"],
  input[type="date"],
  input[type="time"],
  input[type="datetime-local"],
  input[type="number"],
  select,
  textarea {
    font-size: 16px;
    line-height: 1.45;
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  input[type="date"],
  input[type="time"],
  input[type="datetime-local"] {
    display: block;
    height: 46px;
    padding-left: 10px;
    padding-right: 8px;
    -webkit-appearance: none;
    appearance: none;
  }

  select {
    min-height: 46px;
  }

  textarea {
    min-height: 110px;
  }

  .field--unit {
    grid-template-columns: minmax(0, 1fr) auto;
    column-gap: 6px;
  }

  .field--unit .unit {
    font-size: 14px;
  }

  .time-block,
  .sub-card,
  .form-section,
  .card {
    overflow-x: hidden;
  }
}

@media (max-width: 420px) {
  .field--unit {
    grid-template-columns: 1fr;
  }

  .field--unit .unit {
    margin-top: -3px;
  }
}

/* v10.45: 時間外勤務の有無選択欄を小さめに再調整 */
.overtime-inputs {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
}

.overtime-status-select {
  width: 92px;
  min-width: 92px;
  max-width: 92px;
}

@media (max-width: 760px) {
  .overtime-inputs {
    grid-template-columns: 88px minmax(0, 1fr);
  }

  .overtime-status-select {
    width: 88px;
    min-width: 88px;
    max-width: 88px;
  }
}

@media (max-width: 420px) {
  .overtime-inputs {
    grid-template-columns: 84px minmax(0, 1fr);
  }

  .overtime-status-select {
    width: 84px;
    min-width: 84px;
    max-width: 84px;
  }
}
