/* 無料ツール共通の見た目。サイト本体の styles.css の上に重ねる */
.tool-app { background: #fff; border: 1px solid #e3e6ea; border-radius: 12px; padding: 16px; }
.tool-bar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
.tool-bar .sp { flex: 1; }
.tool-app button, .tool-app .fbtn { font: inherit; font-size: 14px; padding: 8px 12px; border-radius: 8px; border: 1px solid #cfd5dc; background: #fff; cursor: pointer; color: #1a2a33; }
.tool-app button.primary { background: #0f3d3e; border-color: #0f3d3e; color: #fff; }
.tool-app button.danger { color: #b3261e; }
.tool-app button:disabled { opacity: .5; cursor: default; }
.tool-app input, .tool-app select, .tool-app textarea { font: inherit; font-size: 14px; padding: 7px 9px; border: 1px solid #cfd5dc; border-radius: 8px; background: #fff; max-width: 100%; }
.tool-app label { font-size: 13px; color: #4a5560; display: flex; flex-direction: column; gap: 3px; }
.tool-note { font-size: 13px; color: #5b6570; margin: 6px 0 0; }
.tool-warn { color: #b3261e; font-weight: 600; }

/* 車両・ドライバーの登録欄 */
.tool-masters { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 8px 0 12px; }
.tool-masters details { border: 1px solid #e3e6ea; border-radius: 10px; padding: 8px 12px; background: #f8fafb; }
.tool-masters summary { cursor: pointer; font-weight: 600; }
.tool-masters ul { list-style: none; padding: 0; margin: 8px 0; display: flex; flex-wrap: wrap; gap: 6px; }
.tool-masters li { display: inline-flex; gap: 6px; align-items: center; padding: 4px 8px; background: #fff; border: 1px solid #e3e6ea; border-radius: 999px; font-size: 13px; }
.tool-masters li button { padding: 0 6px; border: none; font-size: 14px; }
.tool-masters form { display: flex; gap: 6px; flex-wrap: wrap; }

/* 配車の盤面 */
.board { display: flex; flex-direction: column; gap: 8px; }
.lane { display: grid; grid-template-columns: 170px 1fr; border: 1px solid #e3e6ea; border-radius: 10px; min-height: 64px; background: #fff; }
.lane.unassigned { background: #fff8e6; border-style: dashed; }
.lane.over { outline: 2px solid #0f3d3e; }
.lane-head { padding: 8px 10px; border-right: 1px solid #e3e6ea; font-size: 13px; }
.lane-head b { display: block; font-size: 15px; }
.lane-head .hours { color: #5b6570; }
.lane-head .hours.bad { color: #b3261e; font-weight: 700; }
.lane-body { display: flex; flex-wrap: wrap; gap: 6px; padding: 6px; align-content: flex-start; }
.job { border: 1px solid #cfd5dc; border-radius: 8px; padding: 6px 8px; background: #f8fafb; font-size: 13px; cursor: grab; min-width: 150px; }
.job.conflict { border-color: #b3261e; background: #fdecea; }
.job .t { font-weight: 700; }
.job .r { color: #4a5560; }
.job .d { margin-top: 4px; display: flex; gap: 4px; align-items: center; }
.job .d select { padding: 2px 4px; font-size: 12px; }
.job .d button { padding: 2px 6px; font-size: 12px; }

/* 便の編集 */
dialog.tool-dialog { border: 1px solid #cfd5dc; border-radius: 12px; padding: 16px; width: min(560px, 92vw); }
dialog.tool-dialog::backdrop { background: rgba(0,0,0,.3); }
.dialog-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.dialog-grid .wide { grid-column: 1 / -1; }
.dialog-actions { display: flex; gap: 8px; justify-content: flex-end; margin-top: 12px; }

/* 記録の一覧（点呼） */
.tool-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.tool-table th, .tool-table td { border: 1px solid #e3e6ea; padding: 6px 8px; text-align: left; vertical-align: top; }
.tool-table th { background: #f3f5f7; font-weight: 600; }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 12px; }
.form-grid .wide { grid-column: 1 / -1; }

/* 説明文 */
.tool-list { padding-left: 1.2em; }
.tool-list li { margin: 4px 0; }
.tool-list-no li { color: #4a5560; }
.tool-cta { background: #f3f7f7; }
.tool-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.tool-card { display: block; border: 1px solid #e3e6ea; border-radius: 12px; padding: 18px; background: #fff; color: inherit; text-decoration: none; }
.tool-card h2 { margin: 4px 0 8px; font-size: 20px; }
.tool-card p { font-size: 14px; color: #4a5560; }
.tool-card-more { color: #0f3d3e; font-weight: 600; }
.tool-card-soon { background: #f8fafb; border-style: dashed; }

/* 印刷 */
#print-area { display: none; }
@media print {
  body > * { display: none !important; }
  #print-area { display: block !important; }
  .print-page { page-break-after: always; font-family: 'Noto Sans JP', sans-serif; font-size: 12px; color: #000; }
  .print-page:last-child { page-break-after: auto; }
  .print-page h1 { font-size: 18px; margin: 0 0 4px; }
  .print-page .meta { margin: 0 0 8px; }
  .print-page table { width: 100%; border-collapse: collapse; }
  .print-page th, .print-page td { border: 1px solid #000; padding: 4px 6px; text-align: left; vertical-align: top; }
  .print-page th { background: #eee; }
  .print-page td.blank { height: 22px; }
  .print-page .foot { margin-top: 8px; font-size: 10px; color: #555; }
}
@media (max-width: 720px) {
  .tool-masters { grid-template-columns: 1fr; }
  .lane { grid-template-columns: 1fr; }
  .lane-head { border-right: none; border-bottom: 1px solid #e3e6ea; }
  .dialog-grid { grid-template-columns: 1fr; }
}
