@font-face {
  font-family: "Kinmu Noto Sans CJK JP";
  src: url("/fonts/NotoSansCJKjp-Regular.otf") format("opentype");
  font-style: normal;
  font-weight: 400;
  font-display: block;
}

:root {
  font-family: "Yu Gothic", "Meiryo", sans-serif;
  color: #14202b;
  background: #edf1f4;
  font-synthesis: none;
  --ink: #111827;
  --muted: #5f6b76;
  --line: #1f2933;
  --blue: #94dcf8;
  --red: #efb1af;
  --blue-head: #b9dff0;
  --peach-head: #f5d8c8;
}

* { box-sizing: border-box; }
[hidden] { display: none !important; }
body { margin: 0; min-width: 1040px; }
button, select, input, textarea { font: inherit; }
.login-screen { min-height: 100vh; display: grid; place-items: center; padding: 48px; background: linear-gradient(145deg, #102738, #254d66 58%, #dfe8ed 58%); }
.login-card { width: min(520px, calc(100vw - 80px)); display: grid; gap: 18px; padding: 42px 46px; border: 1px solid rgba(255,255,255,.55); border-radius: 16px; background: #fff; box-shadow: 0 24px 70px rgba(4, 17, 26, .32); }
.login-brand { color: #496779; font-size: 12px; font-weight: 900; letter-spacing: .2em; }
.login-card h1 { font-size: 38px; }
.login-card > p { margin: -8px 0 4px; color: var(--muted); font-size: 15px; }
.login-card label, .password-dialog label { display: grid; gap: 8px; color: #344957; font-size: 14px; font-weight: 800; }
.login-card input, .password-dialog input { min-height: 54px; padding: 0 14px; font-size: 18px; }
.login-card button { min-height: 54px; font-size: 18px; }
.login-card .login-error, .password-dialog .login-error { margin: 0; padding: 10px 12px; border-radius: 7px; background: #fae0de; color: #90251f; font-size: 13px; font-weight: 800; }
.app-frame { display: grid; grid-template-columns: 218px minmax(0, 1fr); min-height: 100vh; }
.sidebar { position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column; padding: 24px 14px 18px; background: #132b3d; color: #fff; }
.brand { display: grid; gap: 2px; padding: 0 10px 22px; border-bottom: 1px solid rgba(255,255,255,.15); }
.brand span { font-size: 9px; font-weight: 800; letter-spacing: .22em; color: #9fbbcb; }
.brand strong { font-size: 21px; letter-spacing: .08em; }
.sidebar nav { display: grid; gap: 5px; padding: 18px 0; }
.nav-button { min-height: 42px; border: 0; border-radius: 7px; padding: 0 12px; text-align: left; color: #d7e4ec; background: transparent; font-size: 13px; }
.nav-button:hover { border: 0; background: rgba(255,255,255,.08); }
.nav-button.active { color: #fff; background: #2c566f; box-shadow: inset 3px 0 #8ed3f4; }
.master-note { margin: auto 8px 0; color: #9fbbcb; font-size: 10px; line-height: 1.6; }
.workspace { width: min(1700px, calc(100% - 40px)); margin: 24px auto 56px; }
.app-header { display: flex; justify-content: space-between; gap: 32px; align-items: flex-start; margin-bottom: 20px; }
.header-actions { display: grid; justify-items: end; gap: 9px; }
.account-summary { display: flex; align-items: center; gap: 8px; padding: 7px 9px 7px 12px; border: 1px solid #c8d2d9; border-radius: 9px; background: #fff; }
.account-summary > span { padding: 4px 7px; border-radius: 999px; background: #dfeaf0; color: #31566c; font-size: 9px; font-weight: 900; }
.account-summary > strong { min-width: 80px; font-size: 12px; }
.account-summary button { min-height: 30px; padding: 0 8px; font-size: 9px; }
.eyebrow { margin: 0 0 6px; color: #66727d; font-size: 11px; font-weight: 800; letter-spacing: .18em; }
h1 { margin: 0; font-size: 34px; letter-spacing: .08em; }
.subtitle { margin: 8px 0 0; color: var(--muted); }
.status { padding: 9px 14px; border-radius: 999px; background: #e6f3ea; color: #116434; font-weight: 700; font-size: 13px; }
.status[data-kind="busy"] { background: #fff1c7; color: #7a5500; }
.status[data-kind="error"] { background: #ffe1df; color: #a4221c; }
.auth-user-create-card { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(720px, 1.8fr); align-items: end; gap: 26px; margin-bottom: 14px; padding: 18px; border: 1px solid #c8d0d6; border-radius: 9px; background: #fff; }
.auth-user-create-card h2, .audit-card h2 { margin: 0 0 7px; font-size: 18px; }
.auth-user-create-card p, .audit-card p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
.auth-user-create-card form { display: grid; grid-template-columns: 1fr 1fr 150px 1.4fr auto; align-items: end; gap: 10px; }
.auth-user-create-card label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 800; }
.auth-user-table { min-width: 1180px !important; table-layout: auto; }
.auth-user-table th:last-child, .auth-user-table td:last-child { min-width: 480px; }
.auth-user-actions { display: grid; grid-template-columns: 120px 92px minmax(190px, 1fr) auto; gap: 7px; align-items: center; }
.auth-user-actions input, .auth-user-actions select, .auth-user-actions button { min-height: 32px; font-size: 10px; }
.auth-user-actions label { display: flex; align-items: center; justify-content: center; gap: 4px; color: var(--muted); font-size: 9px; font-weight: 800; }
.auth-user-actions input[type="checkbox"] { width: 17px; min-height: 17px; }
.audit-card { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 20px 0 10px; padding: 15px 17px; border: 1px solid #c8d0d6; border-radius: 9px; background: #fff; }
.audit-card button { min-height: 34px; }
.audit-table { min-width: 980px !important; }
.password-dialog { width: min(560px, calc(100vw - 60px)); padding: 0; border: 0; border-radius: 14px; box-shadow: 0 24px 80px rgba(0,0,0,.38); }
.password-dialog::backdrop { background: rgba(5, 18, 27, .62); }
.password-dialog form { display: grid; gap: 15px; padding: 30px 34px; }
.password-dialog h2 { margin: 0; font-size: 25px; }
.password-dialog p { margin: 0; color: var(--muted); font-size: 13px; }
.dialog-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 4px; }
.dialog-actions button { min-height: 42px; }
.control-panel { display: grid; grid-template-columns: minmax(170px, .9fr) minmax(190px, 1fr) repeat(5, minmax(120px, .72fr)) auto auto; gap: 12px; padding: 16px; background: #fff; border: 1px solid #d5dde3; border-radius: 12px; box-shadow: 0 7px 24px rgba(31, 41, 51, .06); }
.control-panel label, .page-toolbar label, .employee-editor label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
select, button { min-height: 40px; border: 1px solid #bcc7cf; border-radius: 7px; background: #fff; padding: 0 12px; color: var(--ink); }
input { min-height: 40px; border: 1px solid #bcc7cf; border-radius: 7px; background: #fff; padding: 0 10px; color: var(--ink); }
textarea { width: 100%; border: 1px solid #bcc7cf; border-radius: 7px; background: #fff; padding: 9px 10px; color: var(--ink); resize: vertical; }
button { align-self: end; cursor: pointer; font-weight: 800; }
button:hover { border-color: #647786; }
button.primary { color: #fff; background: #183a52; border-color: #183a52; }
button.danger { color: #fff; background: #9c2e27; border-color: #9c2e27; }
.employee-summary { display: grid; grid-template-columns: 1.4fr repeat(4, 1fr); gap: 1px; margin: 14px 0 18px; overflow: hidden; border: 1px solid #d7dfe5; border-radius: 10px; background: #d7dfe5; }
.employee-summary div { display: grid; gap: 3px; min-height: 68px; padding: 12px 14px; background: #fff; }
.employee-summary span { color: var(--muted); font-size: 11px; font-weight: 700; }
.employee-summary strong { font-size: 15px; }
.print-sheet-panel { margin: -4px 0 14px; padding: 14px 16px 12px; border: 1px solid #c8d2d9; border-radius: 10px; background: #fff; }
.print-sheet-panel > header { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.print-sheet-panel h2 { margin: 0; font-size: 15px; }
.print-sheet-panel p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.sheet-actions { display: flex; gap: 7px; }
.sheet-actions button { min-height: 32px; padding: 0 10px; font-size: 10px; }
.print-sheet-options { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 12px 0; }
.print-sheet-option { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 8px; min-width: 0; min-height: 59px; padding: 8px 9px; border: 1px solid #d3dce2; border-radius: 7px; background: #f8fafb; }
.print-sheet-option.selected { border-color: #6b92aa; background: #edf6fb; box-shadow: inset 3px 0 #4d86a8; }
.print-sheet-option > label { display: flex; align-items: center; gap: 9px; min-width: 0; cursor: pointer; }
.print-sheet-option input { flex: 0 0 auto; width: 17px; min-height: 17px; margin: 0; padding: 0; }
.print-sheet-option label > span { display: grid; min-width: 0; gap: 2px; }
.print-sheet-option strong { overflow: hidden; color: #203643; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.print-sheet-option small { color: #6c7982; font-size: 9px; }
.print-order-controls { display: grid; grid-template-columns: auto 42px; align-items: center; gap: 5px; color: #526570; font-size: 9px; font-weight: 700; white-space: nowrap; }
.print-order-controls select { width: 42px; min-height: 30px; padding: 2px 4px; border-radius: 5px; font-size: 12px; font-weight: 700; text-align: center; }
.print-order-controls select:disabled { color: #8b969d; background: #edf0f2; }
.print-sheet-panel > footer { display: flex; gap: 12px; align-items: baseline; color: var(--muted); font-size: 10px; }
.print-sheet-panel > footer strong { color: #173f58; font-size: 13px; }
.print-guide { display: flex; align-items: baseline; gap: 14px; margin: -4px 0 18px; padding: 10px 13px; border: 1px solid #c9d8e3; border-left: 4px solid #345f7b; border-radius: 7px; background: #f6fafc; color: #435360; font-size: 12px; }
.print-guide strong { flex: 0 0 auto; color: #183a52; }
.app-page { display: none; }
.app-page.active { display: block; }
.page-toolbar { display: flex; align-items: end; gap: 12px; padding: 14px 16px; border: 1px solid #d5dde3; border-radius: 10px; background: #fff; }
.page-toolbar label { min-width: 170px; }
.page-help { margin: 12px 0 16px; color: var(--muted); font-size: 12px; }
.page-help.warning { padding: 10px 12px; border-left: 4px solid #c88c1d; background: #fff7df; color: #74520e; }
.coverage-warning { margin: 0 0 10px; padding: 10px 12px; border-left: 4px solid #b53a32; background: #fae0de; color: #85241f; font-size: 11px; font-weight: 800; }
.date-badge { display: inline-flex; margin: 0 0 12px; padding: 7px 11px; border-radius: 999px; background: #e5edf2; color: #294658; font-size: 12px; font-weight: 800; }
.date-badge.saturday { background: #d4f0fb; color: #005c88; }
.date-badge.holiday { background: #f9d8d6; color: #a31713; }
.table-card { overflow: auto; border: 1px solid #c8d0d6; border-radius: 9px; background: #fff; }
.data-table { min-width: 1180px; }
.data-table.compact-data { min-width: 760px; }
.employee-management-table { min-width: 1280px !important; table-layout: auto; }
.employee-management-table th:nth-child(2), .employee-management-table td:nth-child(2) { min-width: 180px; }
.data-table th, .data-table td { height: 36px; padding: 6px 8px; border: 1px solid #b5bec5; text-align: center; font-size: 11px; white-space: nowrap; }
.data-table thead th { position: sticky; top: 0; z-index: 1; background: #e9eef2; color: #253744; }
.data-table tbody tr:nth-child(even) td { background: #f8fafb; }
.timetable-table { width: 1900px; min-width: 1900px; table-layout: fixed; }
.timetable-table col.timetable-unit-col { width: 155px; }
.timetable-table col.timetable-category-col { width: 86px; }
.timetable-table col.timetable-duty-col { width: 72px; }
.timetable-table col.timetable-type-col { width: 72px; }
.timetable-table col.timetable-time-col { width: 84px; }
.timetable-table col.timetable-route-col { width: 300px; }
.timetable-table col.timetable-effective-col { width: 105px; }
.timetable-table th,
.timetable-table td { height: auto; min-height: 36px; padding: 7px 8px; font-size: 12px; line-height: 1.35; white-space: normal; overflow-wrap: anywhere; }
.timetable-table th { font-size: 12px; }
.timetable-table .timetable-route-cell { text-align: left; vertical-align: top; font-size: 11px; }
.type-pill { display: inline-flex; align-items: center; min-height: 22px; padding: 2px 8px; border-radius: 999px; background: #e6edf2; color: #344c5d; font-size: 10px; font-weight: 800; }
.type-pill.weekday, .type-pill.active { background: #e0f1e5; color: #176339; }
.type-pill.holiday, .type-pill.inactive { background: #fae0de; color: #9d2722; }
.type-pill.review { background: #fff0c7; color: #785400; }
.type-pill.staging { background: #edf0f2; color: #53616b; }
.type-pill.ready { background: #fff0c7; color: #785400; }
.type-pill.error { background: #fae0de; color: #9d2722; }
.type-pill.applied { background: #e0f1e5; color: #176339; }
.empty-cell, .empty-state { padding: 24px !important; color: #7c8992; text-align: center; }
.employee-summary .employee-data-empty { grid-column: 1 / -1; display: flex; min-height: 110px; flex-direction: column; justify-content: center; gap: 9px; }
.employee-data-empty strong, .calendar-grid > .empty-state strong, .preview-root > .empty-state strong { color: #8f241f; font-size: 18px; }
.employee-data-empty span { color: #5f6f79; font-size: 14px; line-height: 1.7; }
.calendar-grid > .empty-state, .preview-root > .empty-state { grid-column: 1 / -1; display: flex; min-height: 150px; flex-direction: column; justify-content: center; gap: 10px; border: 1px dashed #b9c4cb; border-radius: 9px; background: #fff; }
.roster-root { display: grid; gap: 22px; }
.roster-unit { overflow: auto; padding: 14px; border: 1px solid #aab5bd; border-radius: 8px; background: #fff; }
.roster-unit > header { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 9px; }
.roster-unit h2 { margin: 0; font-size: 17px; }
.roster-unit > header span { color: #596874; font-size: 12px; font-weight: 800; }
.roster-duty-only { width: 100%; min-width: 760px; border-collapse: collapse; table-layout: fixed; }
.roster-duty-only col.roster-order-col, .standalone-roster-table col.roster-order-col { width: 6%; }
.roster-duty-only col.roster-duty-col, .standalone-roster-table col.roster-duty-col { width: 13.42%; }
.roster-duty-only th, .roster-duty-only td, .union-duty th, .union-duty td { height: 35px; padding: 3px 6px; border: 1.5px solid #222; text-align: center; font-size: 12px; }
.roster-duty-only thead th, .union-duty thead th { background: #fff; font-weight: 800; }
.roster-duty-only .vacant, .union-duty .vacant { background: #b7b7b7; font-weight: 800; }
.roster-duty-only .roster-duty-cell strong { display: block; font-size: 12px; }
.roster-duty-only .roster-duty-cell span { display: block; margin-top: 2px; color: #000; font-size: 10px; font-weight: 800; }
.union-duty { max-width: 900px; }
.worker-groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.worker-group { overflow: hidden; border: 1px solid #bdc7ce; border-radius: 8px; background: #fff; }
.worker-group > header { display: flex; justify-content: space-between; align-items: baseline; padding: 10px 12px; border-bottom: 2px solid #31424e; }
.worker-group h2 { margin: 0; font-size: 15px; }
.worker-group th, .worker-group td { height: 31px; padding: 4px 7px; border: 0; text-align: center; font-size: 11px; }
.worker-detail-table thead th { color: #53616b; font-size: 10px; }
.worker-screen-subgroup { padding-top: 10px; }
.worker-screen-subgroup > header { display: flex; align-items: baseline; justify-content: space-between; margin: 0 12px 4px; padding: 0 0 5px; border-bottom: 2px solid #31424e; }
.worker-screen-subgroup h3 { margin: 0; font-size: 14px; }
.worker-screen-subgroup > header span { color: var(--muted); font-size: 11px; font-weight: 800; }
.worker-other-group { grid-column: 1 / -1; }
.employee-editor { margin-bottom: 16px; padding: 16px; border: 1px solid #c8d0d6; border-radius: 9px; background: #fff; }
.employee-editor h2, .pdf-upload-card h2 { margin: 0 0 13px; font-size: 17px; }
.employee-editor form { display: grid; grid-template-columns: repeat(5, minmax(140px, 1fr)); gap: 12px; align-items: end; }
.employee-operation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.employee-add-card { grid-column: 1 / -1; }
.employee-action-card form { grid-template-columns: minmax(210px, 1fr) minmax(170px, .7fr) auto; }
.employee-action-card p { margin: 11px 0 0; color: var(--muted); font-size: 11px; line-height: 1.65; }
.calendar-share-settings { display: grid; grid-template-columns: minmax(360px, 1fr) minmax(520px, 1.35fr); align-items: end; gap: 24px; padding: 18px; border: 1px solid #c8d0d6; border-radius: 9px; background: #fff; }
.calendar-share-settings h2 { margin: 0 0 8px; font-size: 18px; }
.calendar-share-settings p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.7; }
.calendar-share-settings form { display: grid; grid-template-columns: minmax(360px, 1fr) auto; gap: 12px; align-items: end; }
.calendar-share-settings label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.calendar-link-result { display: grid; gap: 11px; margin: 0 0 16px; padding: 15px 16px; border: 1px solid #84abc0; border-left: 5px solid #2d6c8d; border-radius: 9px; background: #f2f9fc; }
.calendar-link-result > div:first-child { display: flex; align-items: baseline; gap: 14px; }
.calendar-link-result > div:first-child span, .calendar-link-result p { color: var(--muted); font-size: 11px; }
.calendar-link-result p { margin: 0; color: #7b4e08; }
.calendar-link-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; }
.calendar-link-row input { width: 100%; font-family: Consolas, monospace; font-size: 11px; }
.calendar-share-table { min-width: 900px !important; }
.calendar-share-actions { display: flex; justify-content: center; gap: 6px; }
.calendar-share-actions button { min-height: 30px; padding: 0 9px; font-size: 10px; }
.holiday-editor { margin: 0 0 16px; padding: 16px; border: 1px solid #c8d0d6; border-radius: 9px; background: #fff; }
.holiday-editor h2 { margin: 0 0 13px; font-size: 17px; }
.holiday-editor form { display: grid; grid-template-columns: minmax(180px, .55fr) minmax(280px, 1fr) auto auto; gap: 12px; align-items: end; }
.holiday-editor label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.holiday-editor p { margin: 10px 0 0; color: var(--muted); font-size: 11px; }
.stop-abbreviation-editor { margin: 0 0 16px; padding: 16px; border: 1px solid #c8d0d6; border-radius: 9px; background: #fff; }
.stop-abbreviation-editor h2 { margin: 0 0 13px; font-size: 17px; }
.stop-abbreviation-editor form { display: grid; grid-template-columns: minmax(240px, 1fr) minmax(150px, .45fr) auto auto; gap: 12px; align-items: end; }
.stop-abbreviation-editor label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.stop-abbreviation-editor p { margin: 10px 0; color: var(--muted); font-size: 11px; }
.stop-abbreviation-actions { display: inline-flex; gap: 6px; }
.stop-abbreviation-actions .danger { color: #8a201b; border-color: #d2a5a2; background: #fff5f4; }
.gtfs-source-card { margin: 0 0 14px; padding: 17px 18px; border: 1px solid #c8d0d6; border-radius: 10px; background: #fff; }
.gtfs-source-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; }
.gtfs-source-heading h2 { margin: 0 0 7px; font-size: 18px; }
.gtfs-source-heading p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.65; }
.gtfs-status-root { display: grid; flex: 0 0 auto; min-width: 310px; gap: 3px; padding: 10px 13px; border-left: 4px solid #2782a9; background: #edf8fc; }
.gtfs-status-root strong { color: #164c64; font-size: 14px; }
.gtfs-status-root span { color: #334d59; font-size: 11px; font-weight: 800; }
.gtfs-status-root small { color: #607580; font-size: 9px; }
.gtfs-url-form { display: grid; grid-template-columns: minmax(420px, 1fr) auto auto; align-items: end; gap: 10px; margin-top: 14px; }
.gtfs-url-form label { display: grid; gap: 6px; color: var(--muted); font-size: 12px; font-weight: 700; }
.bus-timetable-toolbar { display: grid; grid-template-columns: minmax(160px, .9fr) minmax(200px, 1.2fr) minmax(140px, .72fr) 150px auto auto; }
.bus-timetable-toolbar label,
.bus-timetable-toolbar label:first-child,
.bus-timetable-toolbar label:nth-child(2) { min-width: 0; }
.bus-timetable-toolbar button { flex: 0 0 auto; min-width: 86px; white-space: nowrap; }
.bus-timetable-root { overflow: hidden; border: 1px solid #b8c4cc; border-radius: 10px; background: #fff; }
.bus-timetable-summary { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; padding: 12px 16px; border-bottom: 1px solid #b8c4cc; background: #eef5f8; }
.bus-timetable-summary > div { display: flex; align-items: baseline; gap: 12px; }
.bus-timetable-summary strong { font-size: 17px; }
.bus-timetable-summary span { color: #376273; font-size: 12px; font-weight: 800; }
.bus-timetable-summary small { color: var(--muted); font-size: 10px; }
.bus-timetable-scroll { overflow: auto; padding: 16px; }
.bus-stop-time-table { width: max(100%, calc(64px + var(--bus-destination-count) * 148px)); min-width: 760px; border: 2px solid #111; border-collapse: collapse; table-layout: fixed; }
.bus-stop-time-table .bus-hour-column { width: 54px; }
.bus-stop-time-table th, .bus-stop-time-table td { border: 1px solid #20272c; text-align: center; }
.bus-stop-time-table .bus-stop-title-row th { height: 45px; padding: 5px 10px; background: #8fd3ed; color: #071a23; font-size: 24px; letter-spacing: .08em; }
.bus-stop-time-table .bus-service-row th { height: 54px; padding: 5px 6px; background: #fff; }
.bus-stop-time-table .bus-service-row th:first-child { width: 54px; background: #12191d; color: #fff; font-size: 13px; }
.bus-stop-time-table .bus-service-row th:not(:first-child) { width: 148px; }
.bus-stop-time-table .bus-service-row span, .bus-stop-time-table .bus-service-row strong, .bus-stop-time-table .bus-service-row small { display: block; }
.bus-stop-time-table .bus-service-row span { min-height: 13px; color: #16698e; font-size: 10px; }
.bus-stop-time-table .bus-service-row strong { overflow: hidden; font-size: 13px; line-height: 1.25; text-overflow: ellipsis; white-space: nowrap; }
.bus-stop-time-table .bus-service-row small { overflow: hidden; color: #4c5d66; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.bus-stop-time-table tbody tr:nth-child(even) td { background: #e7f4fa; }
.bus-stop-time-table tbody th { width: 54px; height: 43px; background: #12191d; color: #fff; font-size: 20px; }
.bus-stop-time-table tbody td { min-width: 148px; height: 43px; padding: 3px 5px; }
.bus-minute-list { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: center; gap: 2px 8px; }
.bus-minute { display: inline-flex; align-items: baseline; gap: 2px; color: #10181d; line-height: 1; }
.bus-minute b { font-size: 18px; }
.bus-minute small { color: #376273; font-size: 8px; font-weight: 800; }
.bus-no-service { color: #a2adb3; }
.bus-empty-state { display: flex; min-height: 180px; flex-direction: column; justify-content: center; gap: 8px; }
.holiday-actions { display: flex; justify-content: center; gap: 6px; }
.holiday-actions button { min-height: 30px; padding: 0 9px; font-size: 10px; }
.holiday-actions .danger { color: #8a201b; border-color: #d2a5a2; background: #fff5f4; }
.request-table input, .request-table select { width: 100%; min-height: 32px; }
.request-table input[type="checkbox"] { width: 18px; min-height: 18px; }
.pdf-upload-card { display: grid; grid-template-columns: minmax(260px, .8fr) minmax(520px, 1.7fr) auto; align-items: end; gap: 24px; padding: 20px; border: 1px solid #c8d0d6; border-radius: 10px; background: #fff; }
.pdf-upload-card p { margin: 0; color: var(--muted); font-size: 12px; }
.pdf-batch-heading { display: grid; gap: 10px; }
.pdf-batch-heading label, .pdf-file-grid label { display: grid; gap: 6px; color: var(--muted); font-size: 11px; font-weight: 800; }
.pdf-file-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.pdf-file-grid input { width: 100%; padding: 6px; font-size: 10px; }
.import-steps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin: 14px 0; padding: 0; overflow: hidden; border: 1px solid #cbd4da; border-radius: 8px; background: #cbd4da; counter-reset: step; }
.import-steps li { list-style: none; padding: 12px; background: #fff; color: #425561; font-size: 11px; font-weight: 800; }
.import-list { display: grid; gap: 12px; }
.import-card { padding: 15px; border: 1px solid #c8d0d6; border-radius: 9px; background: #fff; }
.import-card > header { display: flex; justify-content: space-between; gap: 18px; }
.import-card > header div { display: grid; gap: 3px; }
.import-card > header span, .import-card p { color: var(--muted); font-size: 11px; }
.import-card dl { display: flex; gap: 28px; margin: 13px 0; }
.import-card dl div { display: grid; gap: 2px; }
.import-card dt { color: var(--muted); font-size: 9px; font-weight: 800; }
.import-card dd { margin: 0; font-size: 11px; }
.import-card pre { max-height: 260px; overflow: auto; padding: 12px; background: #f1f4f6; white-space: pre-wrap; font-size: 10px; }
.batch-files { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; margin-top: 14px; }
.batch-files > article { display: grid; gap: 4px; min-width: 0; padding: 10px; border: 1px solid #d8dfe4; border-radius: 7px; background: #f8fafb; }
.batch-files > article > span, .batch-files small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.batch-files small { color: var(--muted); }
.validation-errors, .validation-warnings { margin: 12px 0 0; padding: 9px 12px 9px 30px; border-radius: 6px; font-size: 11px; line-height: 1.6; }
.validation-errors { background: #fae0de; color: #8b221d; }
.validation-warnings { background: #fff5d9; color: #70500e; }
.batch-counts { display: grid !important; grid-template-columns: repeat(4, minmax(100px, 1fr)); gap: 1px !important; overflow: hidden; border: 1px solid #d6dde2; border-radius: 6px; background: #d6dde2; }
.batch-counts div { padding: 8px 10px; background: #fff; }
.diff-counts { display: grid !important; grid-template-columns: repeat(5, minmax(90px, 1fr)); gap: 1px !important; overflow: hidden; border: 1px solid #d6dde2; border-radius: 6px; background: #d6dde2; }
.diff-counts div { padding: 8px 10px; background: #f8fafb; }
.diff-preview { margin-top: 10px; }
.diff-preview summary { cursor: pointer; color: #244b64; font-size: 11px; font-weight: 800; }
.diff-table-wrap { max-height: 520px; overflow: auto; margin-top: 8px; border: 1px solid #d6dde2; }
.diff-table-wrap table { min-width: 1040px; table-layout: auto; }
.diff-table-wrap th { position: sticky; top: 0; z-index: 1; background: #eef2f4; }
.diff-table-wrap th, .diff-table-wrap td { padding: 6px 8px; border: 1px solid #d6dde2; text-align: left; vertical-align: top; font-size: 10px; }
.diff-table-wrap td:last-child { min-width: 430px; white-space: normal; }
.diff-table-wrap del { color: #8b221d; background: #fae0de; }
.diff-table-wrap ins { color: #145b2d; background: #e0f3e5; text-decoration: none; }
.diff-added, .diff-changed { background: #fffdf3; }
.diff-missing { background: #fff0ef; }
.diff-retained { background: #eef5f9; }
.mapping-preview { overflow: auto; margin-top: 10px; }
.mapping-preview summary { cursor: pointer; color: #244b64; font-size: 11px; font-weight: 800; }
.exception-reason { padding: 8px 10px; border-left: 3px solid #c88c1d; background: #fff7df; }
.batch-actions { display: flex; align-items: center; gap: 14px; margin-top: 12px; }
.batch-actions .primary { flex: 0 0 auto; min-width: 250px; }
.batch-actions span { color: var(--muted); font-size: 10px; }
.backup-history { overflow: auto; padding: 15px; border: 1px solid #aeb9c1; border-radius: 9px; background: #fff; }
.backup-history > header { display: flex; align-items: start; justify-content: space-between; gap: 20px; margin-bottom: 10px; }
.backup-history h2, .backup-history p { margin: 0; }
.backup-history p { color: var(--muted); font-size: 11px; }
.backup-history table { min-width: 760px; }
.backup-history th, .backup-history td { padding: 7px 9px; border: 1px solid #d6dde2; font-size: 10px; }
.calendar-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.month-card { overflow: hidden; background: #fff; border: 1px solid #aeb9c1; border-radius: 8px; box-shadow: 0 4px 14px rgba(31, 41, 51, .05); }
.month-card > header { display: flex; align-items: baseline; justify-content: space-between; padding: 10px 12px; border-bottom: 2px solid #1d2933; }
.month-card > header strong { font-size: 20px; }
.month-card > header span { font-size: 12px; color: var(--muted); }
table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.month-card th, .month-card td { height: 24px; padding: 2px 4px; border: 1px solid #8a949c; text-align: center; font-size: 11px; white-space: nowrap; overflow: hidden; }
.month-card th:nth-child(1), .month-card th:nth-child(2) { width: 7%; }
.month-card th:nth-child(3) { width: 12%; }
.month-card th:nth-child(4) { width: 15%; }
.month-card th:nth-child(5), .month-card th:nth-child(6) { width: 29%; }
.month-card tr.saturday > td { background: var(--blue); }
.month-card tr.holiday > td { background: var(--red); }
.preview-root { display: grid; justify-content: center; gap: 18px; }
.preview-root .print-page { box-shadow: 0 8px 28px rgba(0, 0, 0, .18); }
.selected-pages-preview { display: grid; justify-content: center; align-items: start; gap: 18px; }
.selected-pages-preview[data-profile="passport"] { grid-template-columns: repeat(auto-fit, 128mm); }
.selected-pages-preview[data-profile="imafuku"],
.selected-pages-preview[data-profile="imafuku_pdf"],
.selected-pages-preview[data-profile="a4_pdf"],
.selected-pages-preview[data-profile="a4_calendar"] { grid-template-columns: 210mm; }
.selected-pages-preview .preview-format-note,
.selected-pages-preview > .empty-state { grid-column: 1 / -1; }
.selected-pages-preview .print-page { box-shadow: 0 8px 28px rgba(0, 0, 0, .18); }
.preview-format-note { display: flex; align-items: baseline; justify-content: space-between; gap: 20px; width: 210mm; padding: 10px 13px; border: 1px solid #8eb2c7; border-radius: 8px; background: #eef7fb; color: #294d61; }
.preview-format-note strong { font-size: 14px; }
.preview-format-note span { font-size: 11px; }
.worker-date-notice { margin-bottom: 12px; }
.worker-empty-state { margin-top: 14px; border: 1px dashed #b9c4cb; border-radius: 8px; background: #fff; }
.print-root { display: none; }
.print-page { overflow: hidden; background: #fff; color: #000; font-family: "Kinmu Noto Sans CJK JP", "Noto Sans CJK JP", sans-serif; break-after: page; page-break-after: always; }
.passport-page { page: passport; width: 128mm; height: 182mm; padding: 0; }
.passport-a-page,
.passport-b-page { display: flex; align-items: center; justify-content: center; }
.passport-sheet {
  flex: 0 0 auto;
  width: var(--passport-sheet-width);
  font-family: "Yu Gothic", "游ゴシック", "Kinmu Noto Sans CJK JP", sans-serif;
  font-weight: 700;
}
.passport-title {
  display: grid;
  align-items: center;
  width: var(--passport-sheet-width);
  padding: 0;
  overflow: hidden;
  line-height: 1;
  white-space: nowrap;
}
.passport-title strong,
.passport-title span,
.passport-title b,
.passport-title i { display: block; min-width: 0; overflow: hidden; font: inherit; text-align: center; }
.passport-detailed-title b { text-align: left; }
.passport-summary-title b { text-align: center; }
.passport-table {
  width: auto;
  height: auto;
  margin: 0;
  border: .35mm solid #000;
  border-collapse: collapse;
  table-layout: fixed;
}
.passport-table th,
.passport-table td {
  box-sizing: border-box;
  border: .18mm solid #000;
  padding: 0 .08mm;
  overflow: hidden;
  color: #000;
  background: #fff;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  line-height: 1;
}
.passport-table.detailed tbody td:nth-child(4),
.passport-table.detailed tbody td:nth-child(8) { background: #c0e6f5; }
.passport-table.detailed tbody td:nth-child(5),
.passport-table.detailed tbody td:nth-child(9) { background: #fbe2d5; }
.passport-table tr.saturday > td { color: #0070c0; }
.passport-table tr.holiday > td { color: #f00; }
.passport-table .holiday-name-cell,
.passport-table .holiday-basis-cell { color: #f00; }
.passport-table .route-cell { padding: 0 .12mm; white-space: normal; }
.passport-table .route-text {
  display: -webkit-box;
  width: 100%;
  overflow: hidden;
  overflow-wrap: anywhere;
  text-wrap: balance;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.passport-table .holiday-name-cell {
  padding-right: .6mm;
  text-align: right;
  white-space: nowrap;
}
.passport-page .passport-table.summary-table thead th:nth-child(6) {
  border-right-style: dotted;
  text-align: right;
}
.passport-page .passport-table.summary-table thead th:nth-child(7) { border-left-style: dotted; }
.passport-page .passport-table.summary-table tbody .holiday-name-cell {
  border-right-style: none;
  vertical-align: bottom;
}
.passport-page .passport-table.summary-table tbody .holiday-basis-cell {
  border-left-style: none;
  text-align: right;
}
.passport-page .passport-table.summary-table tbody .empty-row td:nth-child(6) { border-right-style: none; }
.passport-page .passport-table.summary-table tbody .empty-row td:nth-child(7) { border-left-style: none; }
.time-value {
  display: inline-block;
  font-family: Arial, "Helvetica Neue", sans-serif;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.calendar-duty-value {
  display: inline-block;
  max-width: 100%;
  transform-origin: center;
  white-space: nowrap;
}
.calendar-duty-latin { font-family: Arial, "Helvetica Neue", sans-serif; }
.passport-table td:nth-child(3) .calendar-duty-medium { letter-spacing: -.06mm; transform: scaleX(.93); }
.passport-table td:nth-child(3) .calendar-duty-long { letter-spacing: -.10mm; transform: scaleX(.84); }

/* 一交番(A): Brother JIS B6 の実印刷プレビューに合わせた表示倍率。 */
.passport-a-page .passport-sheet {
  scale: 1.29225 1.26810;
  transform-origin: center;
}
.passport-a-page .passport-title { height: 4.2946mm; font-size: 7.49pt; }
.passport-a-page .passport-table {
  box-sizing: border-box;
  width: var(--passport-table-width);
  min-width: var(--passport-table-width);
  max-width: var(--passport-table-width);
}
.passport-a-page .passport-table thead tr,
.passport-a-page .passport-table tbody tr { height: 4.15545mm; }
.passport-a-first-month .passport-table thead tr,
.passport-a-first-month .passport-table tbody tr { height: 4.1643mm; }
.passport-a-first-month .passport-table tbody tr:nth-child(2n+1):nth-child(-n+11) { height: 4.0041mm; }
.passport-a-page.passport-detailed-page .passport-sheet { transform: translateX(.092mm); }
.passport-a-page.passport-summary-page .passport-sheet { transform: translateX(-.105mm); }
.passport-a-page .passport-sheet { translate: -.152mm -.071mm; }
.passport-a-first-month .passport-sheet { translate: -.152mm -.098mm; }
.passport-a-first-month.passport-summary-page .passport-table tbody tr { height: 4.1462mm; }
.passport-a-first-month.passport-summary-page .passport-table tbody tr:nth-child(2n+1):nth-child(-n+11) { height: 3.986mm; }
.passport-a-page .passport-table.detailed th,
.passport-a-page .passport-table.detailed td { font-size: 7.49pt; }
.passport-a-page .passport-table.detailed tbody td:nth-child(n+4) > .time-value { font-size: 7.49pt; }
.passport-a-page .passport-table.detailed tbody td:nth-child(n+4) > .time-short { font-size: 7.49pt; }
.passport-a-page .passport-table.summary-table th:nth-child(1),
.passport-a-page .passport-table.summary-table th:nth-child(2),
.passport-a-page .passport-table.summary-table td:nth-child(1),
.passport-a-page .passport-table.summary-table td:nth-child(2) { font-size: 6.87pt; }
.passport-a-page .passport-table.summary-table th:nth-child(3),
.passport-a-page .passport-table.summary-table th:nth-child(4),
.passport-a-page .passport-table.summary-table th:nth-child(5),
.passport-a-page .passport-table.summary-table td:nth-child(3),
.passport-a-page .passport-table.summary-table td:nth-child(4),
.passport-a-page .passport-table.summary-table td:nth-child(5) { font-size: 6.24pt; }
.passport-a-page .passport-table.summary-table th:nth-child(6),
.passport-a-page .passport-table.summary-table th:nth-child(7),
.passport-a-page .passport-table.summary-table td:nth-child(6),
.passport-a-page .passport-table.summary-table td:nth-child(7) { font-size: 4.99pt; }
.passport-a-page .passport-table.summary-table thead th:nth-child(7) { text-align: right; }
.passport-a-page .passport-table .route-text { line-height: .88; }

/* 一交番(B): Excel's JIS B6 preview resolves fit-to-page to 62.43%.
 * L is the odd-page trailing gutter and Q is the even-page leading gutter. */
.passport-b-sheet { min-height: 174.87mm; }
.passport-b-page .passport-title { height: 6.3932mm; font-size: 9.76pt; }
.passport-b-page .passport-table {
  box-sizing: border-box;
  width: var(--passport-table-width);
  min-width: var(--passport-table-width);
  max-width: var(--passport-table-width);
}
.passport-b-page .passport-table thead tr { height: 4.7949mm; }
.passport-b-page .passport-table tbody tr { height: 10.2290mm; }
.passport-b-page .passport-table.detailed th:nth-child(-n+3),
.passport-b-page .passport-table.detailed td:nth-child(-n+3) { font-size: 9.76pt; }
.passport-b-page .passport-table.detailed th:nth-child(n+4),
.passport-b-page .passport-table.detailed td:nth-child(n+4) { font-size: 12.2pt; }
.passport-b-page .passport-table.detailed thead th:nth-child(n+4) { font-size: 8.7pt; }
.passport-b-page .passport-table.detailed tbody td:nth-child(n+4) > .time-value { font-size: 12.5pt; letter-spacing: -.05mm; }
.passport-b-page .passport-table.detailed tbody td:nth-child(n+4) > .time-short { font-size: 13.1pt; }
.passport-b-page .passport-table.summary-table { margin-left: var(--passport-summary-leading); }
.passport-b-page .passport-table.summary-table th:nth-child(-n+3),
.passport-b-page .passport-table.summary-table td:nth-child(-n+3) { font-size: 9.76pt; }
.passport-b-page .passport-table.summary-table th:nth-child(4),
.passport-b-page .passport-table.summary-table th:nth-child(5),
.passport-b-page .passport-table.summary-table td:nth-child(4),
.passport-b-page .passport-table.summary-table td:nth-child(5) { font-size: 9.15pt; }
.passport-b-page .passport-table.summary-table th:nth-child(n+6),
.passport-b-page .passport-table.summary-table td:nth-child(n+6) { font-size: 8.54pt; }
.passport-b-page .passport-table.summary-table tbody .holiday-basis-cell { vertical-align: bottom; }
.passport-b-page .passport-table .route-text { line-height: .95; }
.passport-b-page.passport-detailed-page .passport-sheet { transform: translateX(.145mm); }
.passport-b-page.passport-summary-page .passport-sheet { transform: translateX(.014mm); }
.passport-b-page.passport-first-half .passport-sheet { margin-top: -.418mm; }
.passport-b-page.passport-first-half .passport-table tbody tr { height: 10.2373mm; }
.passport-b-page.passport-second-half .passport-sheet { margin-top: -.128mm; }
.passport-b-page.passport-second-half .passport-table tbody tr { height: 10.2381mm; }
.blue-head { background: var(--blue-head); }
.peach-head { background: var(--peach-head); }
.red-head { color: #e60012; }
.imafuku-page { page: imafuku; width: 210mm; height: 297mm; }
.imafuku-content { padding: 0; position: relative; font-family: "Yu Gothic", "游ゴシック", "Kinmu Noto Sans CJK JP", sans-serif; }
/*
 * Excel A:T is 562.5pt wide.  The saved sheet geometry below remains unchanged,
 * while the outer scale and offsets reproduce Excel's Brother A4 print preview:
 * approximately 3mm above, 5mm below, and 4mm at the reverse-side right edge.
 */
.imafuku-sheet-grid {
  --imafuku-a4-preview-scale: .9761;
  width: 198.4375mm;
  height: 296.122mm;
  margin-left: 2.9633mm;
  position: relative;
  top: 2.9633mm;
  transform: scale(var(--imafuku-a4-preview-scale));
  transform-origin: top left;
  display: grid;
  grid-template-rows: 92.202mm 9.398mm 92.202mm 9.398mm 92.922mm;
  align-content: start;
}
/* The second and union templates use an 11.25pt row 39 instead of 12.75pt. */
.imafuku-unit-second .imafuku-sheet-grid,
.imafuku-unit-union .imafuku-sheet-grid {
  height: 295.614mm;
  grid-template-rows: 92.202mm 9.398mm 92.202mm 8.89mm 92.922mm;
}
/*
 * 「1交番(テンプレート) (2)」のA4 PDF用カレンダー面。
 * Excelの保存倍率98%と奇数ページのA:T配置をそのまま再現する。
 */
.imafuku-pdf-page .imafuku-pdf-sheet-grid {
  --imafuku-a4-preview-scale: .98;
  height: 296.122mm;
  margin-left: 3.4317mm;
  top: 2.9479mm;
  transform: translateY(.1411mm) scale(.98, .9761);
  grid-template-rows: 92.202mm 9.398mm 92.202mm 9.398mm 92.922mm;
}
/* V:AP reverse-side placement calibrated against page 6 of Excel's A4 preview. */
.imafuku-back-grid .imafuku-sheet-grid { margin-left: 12mm; }
.imafuku-sheet-grid > .imafuku-month:nth-child(1) { grid-row: 1; }
.imafuku-sheet-grid > .imafuku-month:nth-child(2) { grid-row: 3; }
.imafuku-sheet-grid > .imafuku-month:nth-child(3) { grid-row: 5; }
.imafuku-month {
  min-height: 0;
  display: grid;
  grid-template-columns: 58.7375mm 11.3771mm 58.4729mm 10.5833mm 59.2667mm;
}
.month-block { min-width: 0; display: grid; grid-template-rows: 5.1223mm 87.0791mm; }
.imafuku-sheet-grid > .imafuku-month:nth-child(3) .month-block { grid-template-rows: 5.1223mm 87.7988mm; }
.month-block.imafuku-slot-1 {
  grid-column: 1;
  transform: translateX(-.1323mm);
  --imafuku-c1: 5.2917mm; --imafuku-c2: 4.7625mm; --imafuku-c3: 6.0854mm;
  --imafuku-c4: 8.9958mm; --imafuku-c5: 16.9333mm; --imafuku-c6: 16.6688mm;
}
.month-block.imafuku-slot-2 {
  grid-column: 3;
  --imafuku-c1: 5.2917mm; --imafuku-c2: 4.7625mm; --imafuku-c3: 6.0854mm;
  --imafuku-c4: 8.9958mm; --imafuku-c5: 16.6688mm; --imafuku-c6: 16.6688mm;
}
.month-block.imafuku-slot-3 {
  grid-column: 5;
  --imafuku-c1: 5.2917mm; --imafuku-c2: 4.7625mm; --imafuku-c3: 6.35mm;
  --imafuku-c4: 8.9958mm; --imafuku-c5: 16.9333mm; --imafuku-c6: 16.9333mm;
}
.imafuku-month-header {
  display: grid;
  grid-template-columns: var(--imafuku-c1) var(--imafuku-c2) var(--imafuku-c3) var(--imafuku-c4) var(--imafuku-c5) var(--imafuku-c6);
  align-items: center;
  height: 5.1223mm;
  overflow: hidden;
  font-size: 7.8pt;
  font-weight: 700;
  line-height: 1;
}
.imafuku-month-header > * { position: relative; top: -.435pt; transform: translateY(-.435pt); }
.imafuku-year { grid-column: 1 / 3; top: -.915pt; padding-right: 1.489mm; text-align: right; transform: translateY(-.165pt); }
.imafuku-year-label { grid-column: 3; padding-left: .754mm; text-align: left; }
.imafuku-month-number { grid-column: 4; padding-right: .386mm; text-align: right; font-size: 7.8pt; }
.imafuku-month-label { grid-column: 5; padding-left: .799mm; text-align: left; }
.imafuku-employee-name { left: .3865mm; grid-column: 6; overflow: hidden; text-align: center; white-space: nowrap; }
.imafuku-employee-name.long-name { font-size: 4.6pt; line-height: .8; }
.imafuku-employee-name.very-long-name { font-size: 3pt; letter-spacing: -.08mm; }
.compact-table { width: 100%; height: 100%; border: .96pt solid #000; }
.compact-table col:nth-child(1) { width: var(--imafuku-c1); }
.compact-table col:nth-child(2) { width: var(--imafuku-c2); }
.compact-table col:nth-child(3) { width: var(--imafuku-c3); }
.compact-table col:nth-child(4) { width: var(--imafuku-c4); }
.compact-table col:nth-child(5) { width: var(--imafuku-c5); }
.compact-table col:nth-child(6) { width: var(--imafuku-c6); }
.compact-table td {
  height: 5.1223mm;
  border: .96pt solid #000;
  padding: 0;
  overflow: hidden;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  font-size: 8.2pt;
  font-weight: 700;
  line-height: 1;
}
.compact-table td:nth-child(4) .time-short { font-size: 9.4pt; }
.compact-table td:nth-child(4) .time-long { font-size: 8.6pt; }
.compact-table td:nth-child(n+5) .time-range { font-size: 8.35pt; }
.compact-table td:nth-child(n+5) .time-range-long { font-size: 8.1pt; }
.compact-table tr { height: 5.1223mm; }
.compact-table td > span { display: inline-block; position: relative; top: -1.12pt; left: .5pt; transform: translateY(-.165pt); }
.compact-table td:nth-child(3) .calendar-duty-value { left: 0; }
.compact-table td:nth-child(3) .calendar-duty-medium { letter-spacing: -.08mm; transform: translateY(-.165pt) scaleX(.90); }
.compact-table td:nth-child(3) .calendar-duty-long { letter-spacing: -.12mm; transform: translateY(-.165pt) scaleX(.82); }
.compact-table tr.saturday > td { background: var(--blue); }
.compact-table tr.holiday > td { background: var(--red); }
.imafuku-sheet-grid > .imafuku-month:nth-child(3) .compact-table tr:last-child,
.imafuku-sheet-grid > .imafuku-month:nth-child(3) .compact-table tr:last-child td { height: 5.842mm; }
.imafuku-pdf-page .compact-table,
.imafuku-pdf-page .compact-table td { box-shadow: inset 0 0 0 .0397mm #000; }

.reference-title { display: flex; align-items: center; height: 8mm; padding: 0 2mm; border-bottom: .35mm solid #000; font-size: 13pt; font-weight: 800; }
.b6-reference-page { padding: 3mm; }
.b6-reference-page .reference-title { height: 7mm; }
.print-roster-grid { height: calc(100% - 8mm); border: .4mm solid #000; }
.print-roster-grid th, .print-roster-grid td { border: .18mm solid #000; padding: .25mm; text-align: center; font-size: 6.8pt; line-height: 1; }
.print-roster-grid th:first-child { width: 7%; }
.print-roster-grid .vacant { background: #b7b7b7; }
.union-print-grid { height: auto; margin-top: 8mm; }
.union-print-grid thead th { height: 5mm; }
.union-print-grid tbody th, .union-print-grid tbody td { height: 6mm; }
.union-continuation-grid { height: calc(100% - 8mm); margin-top: 0; }
.contact-page { display: grid; grid-template-rows: 1fr auto auto; height: calc(100% - 8mm); text-align: center; font-size: 10pt; }
.contact-page p { margin: 1.5mm 0 0; }
.contact-lines { background: repeating-linear-gradient(to bottom, transparent 0 11mm, #777 11mm 11.15mm); }
.b6-roster-page { position: relative; display: flex; align-items: center; justify-content: center; padding: 0; }
.excel-roster-frame { position: relative; flex: 0 0 auto; break-inside: avoid; page-break-inside: avoid; }
.excel-roster-grid {
  --excel-scale: .82;
  --excel-columns: 30px repeat(7, 62px);
  position: absolute;
  top: 0;
  left: 0;
  display: grid;
  grid-template-columns: var(--excel-columns);
  grid-template-rows: repeat(18, 18.1959pt) 18.9238pt 18.1959pt 18.9238pt 18.9238pt repeat(8, 18.1959pt) 18.9238pt 18.9238pt;
  width: max-content;
  height: max-content;
  zoom: var(--excel-scale);
  color: #000;
  background: #fff;
}
.excel-roster-grid-33 {
  grid-template-rows: repeat(18, 18.1959pt) 18.9238pt 18.1959pt 18.9238pt 18.9238pt repeat(8, 18.1959pt) 18.9238pt 18.9238pt 18.1959pt;
}
.excel-roster-cell {
  display: flex;
  min-width: 0;
  min-height: 0;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  color: #000;
  background: #fff;
  text-align: center;
  line-height: 1;
}
.excel-name-cell {
  font-family: "Yu Gothic", "游ゴシック", sans-serif;
  font-size: 11pt;
  font-weight: 700;
  white-space: nowrap;
}
.excel-duty-cell {
  font-family: Arial, sans-serif;
  font-size: 10pt;
  font-weight: 700;
  overflow-wrap: anywhere;
  white-space: normal;
}
.excel-table-cell { border-right: 1px solid #000; border-bottom: 1px solid #000; }
.excel-left-edge { border-left: 2px solid #000; }
.excel-right-edge { border-right-width: 2px; }
.excel-top-edge { border-top: 2px solid #000; }
.excel-bottom-edge { border-bottom-width: 2px; }
.excel-position-cell { border-right-width: 2px; }
.excel-header-cell { border-top: 2px solid #000; border-bottom-width: 2px; }
.excel-roster-cell.vacant { background: #b7b7b7; }
.excel-summary-number { justify-content: flex-end; padding-right: 3px; }
.excel-summary-label { justify-content: flex-start; padding-left: 3px; }
.excel-summary-date { justify-content: flex-end; overflow: visible; white-space: nowrap; }
.excel-designated-rest { font-family: "MS Gothic", "ＭＳ ゴシック", monospace; }
.excel-union-label { font-family: "MS PGothic", "ＭＳ Ｐゴシック", sans-serif; font-size: 10pt; }
.excel-union-duty { font-family: "Yu Gothic", "游ゴシック", sans-serif; font-size: 11pt; }
.excel-contact-cell {
  overflow: visible;
  font-family: "Yu Gothic", "游ゴシック", sans-serif;
  font-size: 10.78pt;
  font-weight: 400;
  white-space: pre;
}
.excel-roster-contact-page .excel-roster-frame { transform: translateX(.154mm); }
.excel-roster-names-page .excel-roster-frame { transform: translate(-.059mm, -.466mm); }
.excel-roster-duties-page .excel-roster-frame { transform: translate(.017mm, .024mm); }
.excel-names-grid { transform: scaleY(.98808); transform-origin: top left; }
.excel-duties-grid { transform: scaleY(.98745); transform-origin: top left; }
.b6-duty-page { display: flex; align-items: center; justify-content: center; padding: 0; }
.b6-duty-sheet {
  display: grid;
  grid-template-rows: var(--duty-title-height) auto;
  align-content: start;
  width: var(--duty-sheet-width);
  height: var(--duty-frame-height);
  color: #000;
  font-family: "Yu Gothic", "游ゴシック", "Kinmu Noto Sans CJK JP", sans-serif;
  font-size: 8.7pt;
  font-weight: 700;
}
.b6-duty-sheet.enlarged-time,
.b6-duty-sheet.enlarged-time:has(.middle-time-list),
.b6-duty-sheet.enlarged-route { font-size: 12.3pt; }
.duty-body-stack { min-width: 0; }
.b6-duty-page:not(.enlarged) .time-list tbody .time-short,
.b6-duty-page:not(.enlarged) .time-list tbody .time-long { font-size: 9.4pt; }
.b6-duty-page:not(.enlarged) .duty-reference-table th,
.b6-duty-page:not(.enlarged) .duty-reference-table td { line-height: .82; }
.b6-duty-page.enlarged .time-list tbody .time-short { font-size: 13.6pt; }
.b6-duty-page.enlarged .time-list tbody .time-long { font-size: 12.5pt; }
.b6-duty-page.enlarged .duty-waiting-table .time-long { font-size: 11.9pt; }
.b6-duty-page.enlarged .duty-reference-table thead th:first-child { font-size: 8.4pt; }
.b6-duty-page.enlarged .middle-time-list thead th:nth-child(2),
.b6-duty-page.enlarged .middle-time-list thead th:nth-child(3),
.b6-duty-page.enlarged .middle-time-list thead th:nth-child(4),
.b6-duty-page.enlarged .middle-time-list thead th:nth-child(5),
.b6-duty-page.enlarged .middle-time-list thead th:nth-child(7),
.b6-duty-page.enlarged .middle-time-list thead th:nth-child(8),
.b6-duty-page.enlarged .middle-time-list thead th:nth-child(9),
.b6-duty-page.enlarged .middle-time-list thead th:nth-child(10) { font-size: 9.88pt; }
.b6-duty-page.enlarged .compact-enlarged-duty-number { font-size: 9.88pt; }
.b6-duty-page.enlarged .time-list tbody .compact-enlarged-middle-time { font-size: 11.9pt; }
.b6-duty-sheet .reference-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: auto;
  padding: 0 .6mm;
  border: 0;
  overflow: hidden;
  font: inherit;
  line-height: 1;
  white-space: nowrap;
}
.b6-duty-sheet .reference-title strong,
.b6-duty-sheet .reference-title span { font: inherit; }
.duty-reference-table { height: auto; border: .35mm solid #000; }
.duty-reference-table th,
.duty-reference-table td {
  border: .12mm solid #333;
  padding: 0 .08mm;
  overflow: hidden;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  font: inherit;
  line-height: 1;
}
.b6-duty-sheet .duty-reference-table thead tr,
.b6-duty-sheet .duty-reference-table tbody tr { height: var(--duty-body-height); }
.duty-reference-table tbody tr:nth-child(5n) > * { border-bottom-width: .28mm; }
.duty-reference-table.time-list .blue-cell { background: var(--blue-head); }
.duty-reference-table.time-list .peach-cell { background: var(--peach-head); }
.b6-duty-page.weekday-duty .duty-reference-table.time-list .blue-head,
.b6-duty-page.weekday-duty .duty-reference-table.time-list .blue-cell { background: #caedfb; }
.b6-duty-page.holiday-duty .duty-reference-table.time-list .blue-head,
.b6-duty-page.holiday-duty .duty-reference-table.time-list .blue-cell { background: #c0e6f5; }
.b6-duty-page .duty-reference-table.time-list .peach-head,
.b6-duty-page .duty-reference-table.time-list .peach-cell { background: #fbe2d5; }
.b6-duty-page.holiday-duty .reference-title { color: #f00; }
.b6-duty-page.holiday-duty .duty-reference-table { border-color: #f00; }
.b6-duty-page.holiday-duty .duty-reference-table tbody tr > :first-child { color: #f00; }
.b6-duty-page.holiday-duty .duty-reference-table.time-list thead th:nth-child(2) { color: #f00; }
.b6-duty-page.holiday-duty .duty-reference-table.time-list tr > :first-child,
.b6-duty-page.holiday-duty .duty-reference-table.time-list tr > :nth-child(2) { border-right-color: #f00; }
.duty-waiting-block { width: 33.795mm; margin-top: 3mm; }
.b6-duty-page.enlarged .duty-waiting-block { width: 33.75mm; margin-top: 1mm; }
.duty-waiting-block h2 {
  display: flex;
  height: var(--duty-title-height);
  margin: 0;
  align-items: center;
  justify-content: center;
  font: inherit;
  line-height: 1;
  white-space: nowrap;
}
.duty-waiting-table { width: 100%; }
.duty-waiting-table col { width: 33.3333%; }
.duty-waiting-table thead tr,
.duty-waiting-table tbody tr { height: var(--duty-body-height); }
.b6-duty-page:not(.enlarged) .duty-waiting-table thead tr,
.b6-duty-page:not(.enlarged) .duty-waiting-table tbody tr { height: 4.041mm; }
.b6-duty-page.holiday-duty .duty-waiting-block,
.b6-duty-page.holiday-duty .duty-waiting-table { color: #f00; border-color: #f00; }
.b6-duty-page.holiday-duty .duty-waiting-table th,
.b6-duty-page.holiday-duty .duty-waiting-table td { border-color: #f00; }
.b6-duty-page:not(.enlarged).weekday-duty.duty-time-page .b6-duty-sheet { transform: translateX(.164mm); }
.b6-duty-page:not(.enlarged).weekday-duty.duty-time-page:has(.middle-time-list) .b6-duty-sheet { transform: translateX(.191mm); }
.b6-duty-page:not(.enlarged).holiday-duty.duty-time-page .b6-duty-sheet { transform: translateX(0); }
.b6-duty-page:not(.enlarged).holiday-duty.category-middle.duty-time-page .b6-duty-sheet { transform: translateX(.146mm); }
.b6-duty-page:not(.enlarged).weekday-duty.duty-route-page .b6-duty-sheet { transform: translateX(.193mm); }
.b6-duty-page:not(.enlarged).holiday-duty.duty-route-page .b6-duty-sheet { transform: translateX(.024mm); }
.b6-duty-page:not(.enlarged).weekday-duty .b6-duty-sheet { translate: -.130mm -.267mm; }
.b6-duty-page:not(.enlarged).holiday-duty .b6-duty-sheet { translate: -.130mm -.535mm; }
.b6-duty-page:not(.enlarged).holiday-duty.category-middle .b6-duty-sheet { translate: -.130mm -.351mm; }
.b6-duty-page.enlarged.weekday-duty.duty-time-page:not(:has(.middle-time-list)) .b6-duty-sheet { translate: .116mm var(--duty-y-offset, 0); }
.b6-duty-page.enlarged.holiday-duty.duty-time-page:not(:has(.middle-time-list)) .b6-duty-sheet { translate: .021mm var(--duty-y-offset, 0); }
.b6-duty-page.enlarged.duty-time-page:has(.middle-time-list) .b6-duty-sheet { translate: .160mm var(--duty-y-offset, 0); }
.b6-duty-page.enlarged.duty-route-page .b6-duty-sheet { translate: .165mm var(--duty-y-offset, 0); }
.b6-duty-page.enlarged.duty-section-1.duty-route-page .b6-duty-sheet { translate: .183mm var(--duty-y-offset, 0); }
.b6-duty-page.enlarged:is(.duty-section-5, .duty-section-6).duty-route-page .b6-duty-sheet { translate: .046mm var(--duty-y-offset, 0); }
.b6-duty-page.enlarged:is(.duty-section-7, .duty-section-8, .duty-section-9, .duty-section-10, .duty-section-11).duty-route-page .b6-duty-sheet { translate: .165mm var(--duty-y-offset, 0); }
.b6-duty-page.enlarged.duty-section-11.duty-route-page .b6-duty-sheet { translate: .033mm var(--duty-y-offset, 0); }
.b6-duty-page.duty-section-1 { --duty-y-offset: -.233mm; }
.b6-duty-page.duty-section-2 { --duty-y-offset: -.386mm; }
.b6-duty-page.duty-section-3 { --duty-y-offset: -.253mm; }
.b6-duty-page.duty-section-4 { --duty-y-offset: -.295mm; }
.b6-duty-page.duty-section-5 { --duty-y-offset: -.197mm; }
.b6-duty-page.duty-section-6 { --duty-y-offset: -.010mm; }
.b6-duty-page.duty-section-7 { --duty-y-offset: -.233mm; }
.b6-duty-page.duty-section-8 { --duty-y-offset: -.381mm; }
.b6-duty-page.duty-section-9 { --duty-y-offset: -.253mm; }
.b6-duty-page.duty-section-10 { --duty-y-offset: -.300mm; }
.b6-duty-page.duty-section-11 { --duty-y-offset: -.061mm; }
.b6-afterword-page,
.b6-memo-page { display: grid; place-items: center; padding: 0; }
.excel-afterword-sheet {
  display: flex;
  flex-direction: column;
  width: 111.843mm;
  color: #000;
  font-family: "Yu Gothic", "游ゴシック", "Kinmu Noto Sans CJK JP", sans-serif;
  font-size: 11pt;
  font-weight: 400;
  line-height: 1.2;
  zoom: .96403;
  scale: 1.00489 .99321;
  transform: translate(-.537mm, -.488mm);
}
.excel-afterword-sheet table {
  width: 111.843mm;
  border: .55mm solid #000;
  border-collapse: collapse;
  table-layout: fixed;
}
.excel-afterword-sheet col:nth-child(1) { width: 24.0771mm; }
.excel-afterword-sheet col:nth-child(2) { width: 12.1708mm; }
.excel-afterword-sheet col:nth-child(3) { width: 18.7854mm; }
.excel-afterword-sheet col:nth-child(4),
.excel-afterword-sheet col:nth-child(5),
.excel-afterword-sheet col:nth-child(6) { width: 19.05mm; }
.excel-afterword-sheet th,
.excel-afterword-sheet td {
  border: .18mm solid #000;
  padding: 0 .7mm;
  overflow: hidden;
  text-align: center;
  vertical-align: middle;
  font: inherit;
}
.excel-uniform-table tr:nth-child(1) { height: 9.2107mm; }
.excel-uniform-table tr:nth-child(2) { height: 8.4432mm; }
.excel-uniform-table tr:nth-child(3) { height: 6.1405mm; }
.excel-uniform-table tr:nth-child(4),
.excel-uniform-table tr:nth-child(5) { height: 6.3964mm; }
.excel-uniform-table tr:nth-child(6),
.excel-uniform-table tr:nth-child(7),
.excel-uniform-table tr:nth-child(12),
.excel-uniform-table tr:nth-child(13),
.excel-uniform-table tr:nth-child(15) { height: 6.6521mm; }
.excel-uniform-table tr:nth-child(8),
.excel-uniform-table tr:nth-child(9),
.excel-uniform-table tr:nth-child(10),
.excel-uniform-table tr:nth-child(11),
.excel-uniform-table tr:nth-child(14) { height: 6.3964mm; }
.excel-afterword-sheet .uniform-title-row th,
.excel-afterword-sheet .bereavement-title-row th { font-size: 16pt; font-weight: 400; }
.excel-afterword-sheet .uniform-title-row th { background: #dae9f8; }
.excel-afterword-sheet .bereavement-title-row th { background: #d0d0d0; }
.excel-afterword-sheet .uniform-heading-row th { font-size: 13pt; font-weight: 400; }
.excel-afterword-sheet .uniform-divider-row td { border-right-width: 0; border-left-width: 0; }
.excel-uniform-table { margin-bottom: 6.908mm; }
.excel-bereavement-table .bereavement-title-row { height: 9.2107mm; }
.excel-bereavement-table tr:not(.bereavement-title-row) { height: 12.7927mm; }
.excel-bereavement-table tr:nth-child(2) { height: 12.5368mm; }
.excel-bereavement-table th { width: 24.0771mm; font-weight: 400; }
.excel-bereavement-table td { padding: .7mm 1.2mm; font-size: 10pt; }
.excel-bereavement-table { margin-bottom: 6.6521mm; }
.excel-afterword-sheet footer {
  display: grid;
  grid-template-columns: 36.2479mm 56.8854mm 19.05mm;
  align-items: center;
  height: 6.3964mm;
  font-size: 9pt;
}
.excel-afterword-sheet footer span { grid-column: 2; text-align: center; white-space: nowrap; }
.excel-afterword-sheet footer b { grid-column: 3; text-align: center; font-weight: 400; }
.excel-memo-table {
  width: 112.6595mm;
  height: 179.0354mm;
  border: .55mm solid #000;
  border-collapse: collapse;
  table-layout: fixed;
  color: #000;
  background: #fff;
  font-family: "Yu Gothic", "游ゴシック", sans-serif;
  font-size: 9pt;
  zoom: .96929;
  transform: translate(.220mm, -.051mm);
}
.excel-memo-table.excel-memo-wide { width: 114.135mm; transform: translate(.088mm, -.051mm); }
.excel-memo-table tr { height: calc(179.0354mm / 14); }
.excel-memo-table td { border-top: .18mm solid #000; padding: .5mm 1mm; vertical-align: top; }

.a4-page { page: a4; width: 210mm; height: 297mm; padding: 5mm; }
.a4-landscape-page { page: a4-landscape; width: 297mm; height: 210mm; padding: 8mm 10mm 7mm; }
.bus-timetable-print-page { display: flex; flex-direction: column; }
.bus-print-header { display: grid; grid-template-columns: 1fr auto auto; align-items: baseline; gap: 8mm; min-height: 9mm; padding: 0 1mm 2mm; }
.bus-print-header strong { font-size: 16pt; }
.bus-print-header span { font-size: 10pt; font-weight: 800; }
.bus-print-header small { font-size: 7pt; }
.bus-timetable-print-page .bus-stop-time-table { width: 100%; min-width: 0; flex: 1 1 auto; }
.bus-timetable-print-page .bus-stop-time-table .bus-hour-column { width: 10mm; }
.bus-timetable-print-page .bus-stop-time-table .bus-stop-title-row th { height: 9mm; font-size: 15pt; }
.bus-timetable-print-page .bus-stop-time-table .bus-service-row th { height: 11mm; padding: .7mm; }
.bus-timetable-print-page .bus-stop-time-table .bus-service-row th:first-child { width: 10mm; }
.bus-timetable-print-page .bus-stop-time-table .bus-service-row th:not(:first-child) { width: auto; }
.bus-timetable-print-page .bus-stop-time-table .bus-service-row span { min-height: 2.5mm; font-size: 6pt; }
.bus-timetable-print-page .bus-stop-time-table .bus-service-row strong { font-size: 8.5pt; }
.bus-timetable-print-page .bus-stop-time-table .bus-service-row small { font-size: 6pt; }
.bus-timetable-print-page .bus-stop-time-table tbody th { width: 10mm; height: auto; font-size: 10pt; }
.bus-timetable-print-page .bus-stop-time-table tbody td { min-width: 0; height: auto; padding: .35mm .6mm; }
.bus-timetable-print-page .bus-minute-list { gap: .25mm 1.4mm; }
.bus-timetable-print-page .bus-minute b { font-size: 10pt; }
.bus-timetable-print-page .bus-minute small { font-size: 5.5pt; }
.bus-timetable-print-page > footer { min-height: 4mm; padding-top: 1mm; color: #37444b; font-size: 6pt; text-align: right; }
.a4-month-title, .a4-reference-title { display: flex; align-items: baseline; gap: 18mm; height: 10mm; padding: 0 3mm; border-bottom: .5mm solid #000; font-weight: 800; }
.a4-month-title strong { font-size: 18pt; }
.a4-month-title span { font-size: 13pt; }
.a4-reference-title { font-size: 17pt; }
.excel-a4-schedule-page,
.a4-duty-pdf-page { display: grid; place-items: start center; padding: 2.008mm 0 0; overflow: hidden; }
.excel-a4-schedule-page { display: grid; place-items: start center; padding: 1.12mm 0 0; overflow: hidden; }
.a4-duty-overflow-page,
.a4-duty-blank-overflow-page { place-items: center; padding: 0; }
.excel-a4-schedule-sheet {
  display: grid;
  grid-template-rows: var(--a4-title-height) auto;
  width: var(--a4-excel-width);
  color: #000;
  background: #fff;
  font-family: "Yu Gothic", "游ゴシック", sans-serif;
  font-weight: 700;
}
.excel-a4-title {
  display: grid;
  height: var(--a4-title-height);
  align-items: center;
  overflow: visible;
  font-size: 8.76pt;
  line-height: 1;
}
.excel-a4-title > * { min-width: 0; text-align: center; font: inherit; font-style: normal; }
.excel-a4-month-number { grid-column: 1; transform: translate(2.13pt, -.45pt); }
.excel-a4-month-label { grid-column: 2; transform: translate(-1.64pt, -.45pt); }
.excel-a4-year { grid-column: 4 / span 2; text-align: left !important; font-size: 8.16pt; transform: translate(2.38pt, .06pt); }
.excel-a4-right-month-number { grid-column: 13; transform: translate(2.84pt, -.45pt); }
.excel-a4-right-month-label { grid-column: 14; transform: translate(-.93pt, -.45pt); }
.excel-a4-schedule-body {
  display: grid;
  grid-template-columns: var(--a4-detailed-width) var(--a4-spacer-width) var(--a4-right-width);
  align-items: start;
}
.excel-a4-month-table,
.excel-a4-calendar-writing {
  width: 100%;
  border: .35mm solid #000;
  border-collapse: collapse;
  table-layout: fixed;
  color: #000;
  background: #fff;
}
.excel-a4-month-table th,
.excel-a4-month-table td,
.excel-a4-calendar-writing td {
  box-sizing: border-box;
  border: .16mm solid #000;
  padding: 0 .12mm;
  overflow: hidden;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  font-size: 8.76pt;
  font-weight: 700;
  line-height: 1;
}
.excel-a4-month-table thead tr,
.excel-a4-calendar-writing tr:first-child { height: var(--a4-header-height); }
.excel-a4-month-table tbody tr,
.excel-a4-calendar-writing tr:not(:first-child) { height: var(--a4-day-height); }
.excel-a4-month-table.detailed thead th:nth-child(n+4) { font-size: 9pt; }
.excel-a4-month-table.detailed thead th:nth-child(3) { font-size: 8.64pt; }
.excel-a4-month-table.detailed thead th:nth-child(7) { font-size: 11.04pt; }
.excel-a4-month-table thead th > span { display: inline-block; position: relative; }
.excel-a4-month-table.detailed thead th:nth-child(1) > span,
.excel-a4-month-table.detailed thead th:nth-child(2) > span { transform: translateY(-.45pt); }
.excel-a4-month-table.detailed thead th:nth-child(3) > span { transform: translateY(.18pt); }
.excel-a4-month-table.detailed thead th:nth-child(4) > span,
.excel-a4-month-table.detailed thead th:nth-child(5) > span,
.excel-a4-month-table.detailed thead th:nth-child(6) > span,
.excel-a4-month-table.detailed thead th:nth-child(8) > span,
.excel-a4-month-table.detailed thead th:nth-child(9) > span,
.excel-a4-month-table.detailed thead th:nth-child(10) > span,
.excel-a4-month-table.detailed thead th:nth-child(11) > span { transform: translateY(.33pt); }
.excel-a4-month-table.detailed thead th:nth-child(7) > span { transform: translateY(.39pt); }
.excel-a4-month-table.detailed tbody td:nth-child(n+4) { font-size: 11.04pt; }
.excel-a4-month-table.detailed tbody td:nth-child(n+4) > span { display: inline-block; position: relative; }
.excel-a4-month-table.detailed tbody td:nth-child(n+4) > .time-value { font-size: 11.5pt; }
.excel-a4-month-table.detailed tbody td:nth-child(n+4) > .time-short { font-size: 12.4pt; }
.excel-a4-month-table.detailed tbody td > span.compact-time { top: .12pt; }
.excel-a4-month-table.detailed tbody td:nth-child(3) .calendar-duty-long {
  font-size: 7.75pt;
  letter-spacing: -.05mm;
  transform: none;
}
.excel-a4-month-table.detailed th:nth-child(4),
.excel-a4-month-table.detailed th:nth-child(8),
.excel-a4-month-table.detailed td:nth-child(4),
.excel-a4-month-table.detailed td:nth-child(8) { background: #c0e6f5; }
.excel-a4-month-table.detailed th:nth-child(5),
.excel-a4-month-table.detailed th:nth-child(9),
.excel-a4-month-table.detailed td:nth-child(5),
.excel-a4-month-table.detailed td:nth-child(9) { background: #fbe2d5; }
.excel-a4-month-table.summary-table th:nth-child(4),
.excel-a4-month-table.summary-table th:nth-child(5),
.excel-a4-month-table.summary-table td:nth-child(4),
.excel-a4-month-table.summary-table td:nth-child(5) { font-size: 8.76pt; white-space: normal; }
.excel-a4-month-table.summary-table thead th:nth-child(3) { font-size: 7.68pt; }
.excel-a4-month-table.summary-table tbody td:nth-child(3) .calendar-duty-long {
  font-size: 6.75pt;
  letter-spacing: -.05mm;
  transform: none;
}
.excel-a4-month-table.summary-table thead th:nth-child(1) > span,
.excel-a4-month-table.summary-table thead th:nth-child(2) > span { transform: translateY(-.45pt); }
.excel-a4-month-table.summary-table thead th:nth-child(3) > span { transform: translateY(.69pt); }
.excel-a4-month-table.summary-table thead th:nth-child(4) > span,
.excel-a4-month-table.summary-table thead th:nth-child(5) > span { transform: translateY(-.21pt); }
.excel-a4-month-table.summary-table thead th:nth-child(7) > span { transform: translate(.82pt, .48pt); }
.excel-a4-month-table.summary-table th:nth-child(6),
.excel-a4-month-table.summary-table th:nth-child(7),
.excel-a4-month-table.summary-table td:nth-child(6),
.excel-a4-month-table.summary-table td:nth-child(7) { color: #f00; }
.excel-a4-month-table.summary-table th:nth-child(7),
.excel-a4-month-table.summary-table td:nth-child(7) { font-size: 5.16pt; }
.excel-a4-month-table.summary-table .holiday-name-cell {
  padding: 0 .2mm;
  font-size: 6.96pt;
  line-height: 1;
  white-space: nowrap;
}
.excel-a4-month-table.summary-table .holiday-name-cell.compact-holiday-name { font-size: 5.64pt; }
.excel-a4-month-table.summary-table .holiday-name-cell > span,
.excel-a4-month-table.summary-table .holiday-basis-cell > span { display: inline-block; position: relative; }
.excel-a4-month-table.summary-table .holiday-name-cell > span { top: var(--holiday-name-top, 7.14pt); left: .57pt; }
.excel-a4-month-table.summary-table .holiday-basis-cell > span { top: 7.74pt; left: .82pt; }
.excel-a4-month-table .route-cell { white-space: normal; }
.excel-a4-month-table .route-text { position: relative; top: -2.58pt; display: block; max-height: 2em; overflow: hidden; line-height: 1; }
.excel-a4-month-table tr.saturday > * { color: #0070c0; }
.excel-a4-month-table tr.holiday > * { color: #f00; }
.excel-a4-month-table tr.saturday > td:nth-child(4),
.excel-a4-month-table tr.saturday > td:nth-child(5),
.excel-a4-month-table tr.saturday > td:nth-child(8),
.excel-a4-month-table tr.saturday > td:nth-child(9),
.excel-a4-month-table tr.holiday > td:nth-child(4),
.excel-a4-month-table tr.holiday > td:nth-child(5),
.excel-a4-month-table tr.holiday > td:nth-child(8),
.excel-a4-month-table tr.holiday > td:nth-child(9) { color: inherit; }
.excel-a4-calendar-writing td { border-right: .35mm solid #000; border-left: .35mm solid #000; }

.excel-a4-duty-sheet {
  display: grid;
  align-content: start;
  width: calc(var(--a4-duty-time-width) + var(--a4-duty-spacer-width) + var(--a4-duty-route-width));
  color: #000;
  background: #fff;
  font-family: "Yu Gothic", "游ゴシック", sans-serif;
  font-size: 13.44pt;
  font-weight: 700;
  line-height: 1;
}
.excel-a4-duty-sheet > header {
  display: flex;
  height: 6.6mm;
  align-items: center;
  justify-content: space-between;
  overflow: hidden;
  padding: 0 .8mm;
  font: inherit;
  white-space: nowrap;
}
.excel-a4-duty-sheet > header strong { position: relative; top: -1.935pt; margin-left: 4.425pt; transform: translateY(1.8pt); }
.excel-a4-duty-sheet > header span { position: relative; top: -1.655pt; transform: translateY(2.28pt); font-family: "Yu Gothic", "游ゴシック", sans-serif; }
.excel-a4-duty-grid {
  position: relative;
  top: -.2117mm;
  left: -.254mm;
  display: grid;
  grid-template-columns: var(--a4-duty-time-width) var(--a4-duty-spacer-width) var(--a4-duty-route-width);
  align-items: start;
}
.excel-a4-duty-grid .duty-reference-table,
.excel-a4-duty-routes,
.excel-a4-wait-block table {
  width: 100%;
  height: auto;
  border: 1.8pt solid #000;
  border-collapse: collapse;
  table-layout: fixed;
  font: inherit;
}
.excel-a4-duty-grid .duty-reference-table th,
.excel-a4-duty-grid .duty-reference-table td,
.excel-a4-duty-routes th,
.excel-a4-duty-routes td,
.excel-a4-wait-block th,
.excel-a4-wait-block td {
  box-sizing: border-box;
  height: 6.6507mm;
  border: .96pt solid #000;
  padding: 0 .15mm;
  overflow: hidden;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  font: inherit;
  line-height: 1;
}
.excel-a4-duty-grid tbody tr:nth-child(5n) > * { border-bottom-width: 1.8pt; }
.excel-a4-duty-grid thead th > span,
.excel-a4-wait-block thead th > span { display: inline-block; position: relative; transform: translate(.5pt, 0); }
.excel-a4-duty-grid tbody > tr > * > span,
.excel-a4-wait-block tbody > tr > * > span { display: inline-block; position: relative; transform: translate(.6pt, .84pt); }
.a4-duty-pdf-page .time-list tbody td .time-short { font-size: 13.75pt; }
.a4-duty-pdf-page .time-list tbody td .time-long { font-size: 13.5pt; }
.a4-duty-pdf-page.early-duty .time-list thead th:first-child { font-size: 10.32pt; }
.a4-duty-pdf-page.late-duty .time-list thead th:first-child { font-size: 11.16pt; }
.a4-duty-pdf-page:not(.middle-duty) .time-list thead th:nth-child(3),
.a4-duty-pdf-page:not(.middle-duty) .time-list thead th:nth-child(4),
.a4-duty-pdf-page:not(.middle-duty) .time-list thead th:nth-child(6),
.a4-duty-pdf-page:not(.middle-duty) .time-list thead th:nth-child(7) { font-size: 11.76pt; }
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:first-child { font-size: 11.16pt; }
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(2),
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(3),
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(4),
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(5),
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(7),
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(8),
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(9),
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(10) { font-size: 10.68pt; }
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(6) { font-size: 12.24pt; }
.a4-duty-pdf-page.early-duty .time-list thead th:first-child > span { transform: translate(.35pt, .3pt); }
.a4-duty-pdf-page.late-duty .time-list thead th:first-child > span,
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:first-child > span { transform: translate(.35pt, .66pt); }
.a4-duty-pdf-page:not(.middle-duty) .time-list thead th:nth-child(3) > span,
.a4-duty-pdf-page:not(.middle-duty) .time-list thead th:nth-child(4) > span,
.a4-duty-pdf-page:not(.middle-duty) .time-list thead th:nth-child(6) > span,
.a4-duty-pdf-page:not(.middle-duty) .time-list thead th:nth-child(7) > span { transform: translate(.5pt, .9pt); }
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(2) > span,
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(3) > span,
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(4) > span,
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(5) > span,
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(7) > span,
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(8) > span,
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(9) > span,
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(10) > span { transform: translate(.5pt, .42pt); }
.a4-duty-pdf-page.middle-duty .middle-time-list thead th:nth-child(6) > span { transform: translate(.5pt, 1.02pt); }
.excel-a4-duty-grid .time-list .blue-head,
.excel-a4-duty-grid .time-list .blue-cell,
.excel-a4-wait-block .blue-head,
.excel-a4-wait-block .blue-cell { background: #c0e6f5; }
.excel-a4-duty-grid .time-list .peach-head,
.excel-a4-duty-grid .time-list .peach-cell { background: #fbe2d5; }
.a4-duty-pdf-page.weekday-duty .excel-a4-duty-grid .time-list .blue-head,
.a4-duty-pdf-page.weekday-duty .excel-a4-duty-grid .time-list .blue-cell,
.a4-duty-pdf-page.weekday-duty .excel-a4-wait-block .blue-head,
.a4-duty-pdf-page.weekday-duty .excel-a4-wait-block .blue-cell { background: #caedfb; }
.a4-duty-pdf-page.holiday-duty .excel-a4-duty-sheet > header strong,
.a4-duty-pdf-page.holiday-duty .excel-a4-duty-grid .time-list tbody th,
.a4-duty-pdf-page.holiday-duty .excel-a4-wait-block strong,
.a4-duty-pdf-page.holiday-duty .excel-a4-wait-block tbody th { color: #f00; }
.a4-duty-pdf-page.holiday-duty .excel-a4-duty-grid .time-list .blue-head,
.a4-duty-pdf-page.holiday-duty .excel-a4-duty-grid .time-list .blue-cell,
.a4-duty-pdf-page.holiday-duty .excel-a4-wait-block .blue-head,
.a4-duty-pdf-page.holiday-duty .excel-a4-wait-block .blue-cell { color: #f00; }
.a4-duty-pdf-page.holiday-duty .excel-a4-duty-grid .duty-reference-table,
.a4-duty-pdf-page.holiday-duty .excel-a4-duty-grid .duty-reference-table th:first-child,
.a4-duty-pdf-page.holiday-duty .excel-a4-duty-grid .duty-reference-table td:first-child,
.a4-duty-pdf-page.holiday-duty .excel-a4-wait-block table,
.a4-duty-pdf-page.holiday-duty .excel-a4-wait-block th:first-child,
.a4-duty-pdf-page.holiday-duty .excel-a4-wait-block td:first-child { border-color: #f00; }
.a4-duty-overflow-page .excel-a4-duty-grid {
  left: calc(-.254mm - .5pt);
  width: calc(100% - .5pt);
  transform: translateY(0);
  grid-template-columns: calc(var(--a4-duty-time-width) + 2.175pt) 0 calc(var(--a4-duty-route-width) - .5pt);
  border-right: 1.8pt solid #f00;
  border-bottom: 1.8pt solid #f00;
  border-left: 1.8pt solid #f00;
}
.a4-duty-overflow-page .excel-a4-duty-grid .time-list { border-color: #f00; border-top-color: transparent; }
.a4-duty-overflow-page .excel-a4-duty-grid .time-list tr > * { border-top-color: transparent; }
.a4-duty-overflow-page .excel-a4-duty-grid .time-list tr > :nth-child(-n+2) { border-color: #f00; }
.a4-duty-overflow-page .excel-a4-duty-grid tbody > tr > * > span { transform: translate(-1pt, 1.46pt); }
.a4-duty-overflow-page .excel-a4-duty-grid .excel-a4-duty-routes tbody > tr > * > span { transform: translate(-.3pt, 1.46pt); }
.a4-duty-overflow-page .excel-a4-duty-grid .excel-a4-duty-routes { border-top-color: transparent; border-right-color: #f00; border-bottom-color: #f00; }
.a4-duty-overflow-page .excel-a4-duty-grid .excel-a4-duty-routes tr > * { border-top-color: transparent; }
.excel-a4-wait-block { position: relative; left: -.5pt; width: 36.248mm; margin-top: 5.94mm; }
.excel-a4-wait-block > strong { display: flex; height: 6.6mm; align-items: center; padding-left: .8mm; font: inherit; }
.excel-a4-wait-block > strong { transform: translate(3.9pt, .66pt); }
.excel-a4-wait-block thead th:first-child { font-size: 11.16pt; }
.excel-a4-wait-block thead th:nth-child(2),
.excel-a4-wait-block thead th:nth-child(3) { font-size: 13.44pt; }
.excel-a4-wait-block tbody th:first-child { font-size: 11.76pt; }
.excel-a4-wait-block tbody td:nth-child(2) { font-size: 13.44pt; }
.excel-a4-wait-block tbody td:nth-child(3) { font-size: 12.36pt; }
.excel-a4-wait-block thead th:first-child > span { transform: translate(.5pt, .03pt); }
.excel-a4-wait-block thead th:nth-child(2) > span,
.excel-a4-wait-block thead th:nth-child(3) > span { transform: translate(.5pt, -.27pt); }
.excel-a4-wait-block tbody > tr > * > span { transform: translate(.6pt, -.18pt); }
.excel-a4-wait-block tbody th:first-child > span { transform: translate(.6pt, .97pt); }
.excel-a4-wait-block tbody td:nth-child(2) > span { transform: translate(.6pt, .32pt); }
.timetable-card-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-auto-rows: minmax(12mm, 1fr); gap: 1.8mm 5mm; height: calc(100% - 10mm); padding-top: 2mm; }
.timetable-card { display: grid; grid-template-columns: 12mm minmax(0, 1fr); border: .3mm solid #000; min-height: 0; overflow: hidden; }
.timetable-card > strong { display: grid; place-items: center; border-right: .18mm solid #000; font-size: 10pt; }
.timetable-card dl { display: grid; grid-template-columns: 6mm 1fr 2fr; grid-template-rows: repeat(2, 1fr); margin: 0; min-width: 0; }
.timetable-card dt, .timetable-card dd { display: grid; place-items: center; min-width: 0; margin: 0; padding: 0 .3mm; border-bottom: .12mm solid #555; overflow: hidden; font-size: 6.5pt; white-space: nowrap; }
.timetable-card dt { background: #f1b1b1; font-weight: 800; }
.a4-roster-page .print-roster-grid { height: calc(100% - 10mm); }
.a4-roster-page .union-print-grid { margin-top: 0; }
.a4-roster-page .union-print-grid thead th { height: 7mm; }
.a4-roster-page .union-print-grid tbody th, .a4-roster-page .union-print-grid tbody td { height: 12mm; }
.a4-roster-page .print-roster-grid th, .a4-roster-page .print-roster-grid td { font-size: 10pt; }

.excel-imafuku-reference-page {
  position: relative;
  display: block;
  padding: 0;
  overflow: hidden;
  font-family: "Yu Gothic", "游ゴシック", "Kinmu Noto Sans CJK JP", sans-serif;
}
.excel-imafuku-reference-sheet {
  position: absolute;
  top: 2.9633mm;
  left: 2.9633mm;
  display: grid;
  align-content: start;
  justify-content: start;
  transform-origin: top left;
}
/* Excelの「高さ1ページ」印刷とBrother A4プレビューの実測位置。 */
.imafuku-duty-list-page .excel-imafuku-reference-sheet,
.imafuku-early-list-page .excel-imafuku-reference-sheet { transform: scale(.9698); }
.imafuku-roster-reference-page .excel-imafuku-reference-sheet { transform: scale(.9846); }
.excel-imafuku-duty-card,
.excel-imafuku-early-card,
.excel-imafuku-roster-table {
  width: 100%;
  height: 100%;
  min-width: 0;
  min-height: 0;
  border: .18mm solid #000;
  border-collapse: collapse;
  table-layout: fixed;
  color: #000;
  background: #fff;
}
.excel-imafuku-duty-card th,
.excel-imafuku-duty-card td,
.excel-imafuku-early-card th,
.excel-imafuku-early-card td {
  padding: 0 .25mm;
  border: .18mm solid #000;
  overflow: hidden;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  font-size: 9.6pt;
  font-weight: 400;
  line-height: .9;
}
.excel-imafuku-duty-card .holiday,
.excel-imafuku-early-card .holiday { background: #efb1af; }
.excel-imafuku-duty-card td .time-value,
.excel-imafuku-early-card td .time-value { position: relative; top: -.12pt; font-size: 9.8pt; }
.excel-imafuku-duty-card .route-cell { padding-left: .4mm; text-align: left; }
.excel-imafuku-roster-table th,
.excel-imafuku-roster-table td {
  height: 10%;
  padding: 0 .18mm;
  border: .18mm solid #000;
  overflow: hidden;
  text-align: center;
  vertical-align: middle;
  font-size: 8pt;
  font-weight: 700;
  line-height: 1;
  overflow-wrap: anywhere;
  white-space: normal;
}
.excel-imafuku-roster-table thead tr,
.excel-imafuku-roster-table tbody tr { height: 10%; }
.excel-imafuku-roster-table.roster-duties thead th { padding-right: .6mm; text-align: right; font-weight: 700; }
.excel-imafuku-roster-table.roster-blank td { border-right: 0; border-left: 0; }
.excel-imafuku-roster-table.roster-blank tr:first-child td { border-top: .18mm solid #000; }
.excel-imafuku-roster-table.roster-blank tr:last-child td { border-bottom: .18mm solid #000; }
.excel-imafuku-roster-table .vacant { background: #b7b7b7; }
.excel-imafuku-roster-table .sunday-text,
.excel-imafuku-roster-table .alternate-duty { color: #f00; }
.excel-imafuku-roster-table .saturday-text { color: #00f; }

.standalone-print-title { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10mm; height: 12mm; padding: 0 2mm; border-bottom: .5mm solid #000; }
.standalone-print-title strong { font-size: 18pt; }
.standalone-print-title span { font-size: 13pt; font-weight: 700; }
.standalone-print-title small { font-size: 8pt; font-weight: 700; }
.date-badge,
.standalone-print-title,
.roster-duty-cell,
.roster-duty-cell strong,
.roster-duty-cell span { color: #000; }
.roster-weekday-cell { color: #000; }
.roster-weekday-cell .roster-weekday { display: inline; color: inherit; font: inherit; }
.roster-weekday-cell .roster-weekday-saturday { color: #00f; }
.roster-weekday-cell .roster-weekday-sunday { color: #f00; }
.standalone-roster-all { display: grid; grid-template-rows: 19fr 9fr 3.5fr; gap: 2mm; height: calc(100% - 12mm); padding-top: 2mm; }
.standalone-roster-unit { display: grid; grid-template-rows: 7mm minmax(0, 1fr); min-height: 0; }
.standalone-roster-unit > header { display: flex; align-items: center; justify-content: space-between; padding: 0 1.5mm; border-bottom: .35mm solid #000; }
.standalone-roster-unit > header strong { font-size: 12pt; }
.standalone-roster-unit > header span { font-size: 8pt; font-weight: 700; }
.standalone-roster-table { width: 100%; height: 100%; border: .4mm solid #000; border-collapse: collapse; table-layout: fixed; }
.standalone-roster-table th, .standalone-roster-table td { border: .15mm solid #222; padding: 0 .25mm; overflow: hidden; text-align: center; font-size: 8.5pt; line-height: .92; }
.standalone-roster-table thead tr { height: 4mm; }
.standalone-roster-table td.vacant, .standalone-union-table td.vacant { background: #b7b7b7; font-weight: 800; }
.duty-only-roster-table .roster-duty-cell strong { display: block; font-size: 10pt; }
.duty-only-roster-table .roster-duty-cell span { display: block; margin-top: .3mm; font-size: 8.5pt; font-weight: 700; }
.standalone-union-table { height: 48mm; border: .5mm solid #000; }
.standalone-union-inline .standalone-union-table { height: 100%; }
.standalone-union-table th, .standalone-union-table td { border: .2mm solid #222; padding: 1mm; text-align: center; font-size: 13pt; }
.standalone-union-table th:first-child { width: 15%; }
.standalone-union-table thead th:not(:first-child) { font-size: 18pt; }

.standalone-excel-roster-page {
  position: relative;
  padding: 0;
  font-family: "Yu Gothic", "游ゴシック", sans-serif;
  font-synthesis: none;
}
.standalone-source-roster-table {
  position: absolute;
  top: .48pt;
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
  color: #000;
  background: #fff;
  font-size: 8.88pt;
  font-weight: 700;
  line-height: 1;
}
.standalone-source-name-table {
  left: 1.44pt;
  width: 278.21pt;
  transform: translate(.148pt, -1pt);
  font-family: "Yu Gothic", "游ゴシック", sans-serif;
}
.standalone-source-duty-table {
  left: 307.97pt;
  width: 286.63pt;
  transform: translate(-.282pt, .75pt) scaleX(1.001298);
  transform-origin: left top;
  font-family: Arial, sans-serif;
}
.standalone-source-roster-table tr,
.standalone-source-roster-table td { height: 25.68pt; }
.standalone-source-roster-table td {
  padding: 0;
  border: 0;
  overflow: hidden;
  color: #000;
  background: #fff;
  text-align: center;
  vertical-align: middle;
}
.standalone-source-roster-table .source-grid-row td {
  border-right: .72pt solid #000;
  border-bottom: .72pt solid #000;
}
.standalone-source-roster-table .source-grid-row td:first-child {
  border-left: 1.44pt solid #000;
  border-right-width: 1.44pt;
}
.standalone-source-roster-table .source-grid-row td:last-child { border-right-width: 1.44pt; }
.standalone-source-roster-table .source-block-top td { border-top: 1.44pt solid #000; }
.standalone-source-roster-table .source-block-header td,
.standalone-source-roster-table .source-block-bottom td { border-bottom-width: 1.44pt; }
.standalone-source-roster-table .source-grid-row td.vacant { background: #adadad; }
.standalone-source-name-table .source-grid-row td { white-space: nowrap; }
.standalone-source-duty-table .source-grid-row td {
  overflow-wrap: anywhere;
  white-space: normal;
}
.standalone-source-duty-table .off-marker { position: relative; top: 1.25pt; display: inline-block; font-family: "MS PGothic", "ＭＳ Ｐゴシック", sans-serif; }
.standalone-source-duty-table .designated-rest { font-family: "MS Gothic", "ＭＳ ゴシック", monospace; }
.standalone-source-roster-table .source-summary-row td,
.standalone-source-roster-table .source-blank-row td { border: 0; }
.standalone-source-name-table .source-summary-row .summary-count { padding-right: 2.25pt; text-align: right; }
.standalone-source-name-table .source-summary-row .summary-label { padding-left: 2.25pt; text-align: left; }
.standalone-source-roster-table .source-summary-row .summary-date { position: relative; overflow: visible; white-space: nowrap; }
.standalone-source-roster-table .source-summary-row .summary-date > span {
  position: absolute;
  top: 50%;
  right: 0;
  transform: translateY(-50%);
  letter-spacing: -.0364pt;
  white-space: nowrap;
}
.standalone-source-name-table .source-summary-row .summary-date > span { right: 2.23088pt; transform: translateY(calc(-50% - .236pt)); }
.standalone-source-duty-table .source-summary-row .summary-date > span {
  right: 2.50388pt;
  transform: translateY(calc(-50% - 1.194pt));
  font-family: "Yu Gothic", "游ゴシック", sans-serif;
}
.standalone-source-roster-table .source-union-row td:first-child { font-family: "MS PGothic", "ＭＳ Ｐゴシック", sans-serif; }
.standalone-source-duty-table .source-union-row td > span { position: relative; display: inline-block; }
.standalone-source-duty-table .source-union-row .union-label { top: 1.242pt; letter-spacing: -.948pt; }
.standalone-source-duty-table .source-union-row .union-first-duty { top: -1.838pt; font-family: "Yu Gothic", "游ゴシック", sans-serif; }
.standalone-source-duty-table .source-union-row .union-other-duty { top: -.027pt; font-family: Arial, sans-serif; }
.standalone-source-duty-table .source-union-row .union-final-duty { top: -.507pt; }
.standalone-source-final-date {
  position: absolute;
  top: .48pt;
  left: 579.36pt;
  display: flex;
  width: 15.24pt;
  height: 25.68pt;
  align-items: center;
  justify-content: flex-end;
  padding-right: 1.74488pt;
  overflow: visible;
  color: #000;
  font-family: "Yu Gothic", "游ゴシック", sans-serif;
  font-size: 8.88pt;
  font-weight: 700;
  letter-spacing: -.0364pt;
  line-height: 1;
  white-space: nowrap;
  transform: translateY(-.9pt);
}

.workers-day-print-page {
  padding: 0;
  font-family: "Yu Gothic", "游ゴシック", sans-serif;
}
.excel-worker-page-scale {
  width: 811.3868pt;
  height: 1153.521pt;
  margin-top: .6429pt;
  margin-left: 1.2pt;
  zoom: .7;
  transform-origin: top left;
}
.excel-worker-day-table {
  width: 811.3868pt;
  border: 0;
  border-collapse: collapse;
  table-layout: fixed;
  color: #000;
  background: #fff;
}
.excel-worker-day-table .worker-col-duty { width: 44.9755pt; }
.excel-worker-day-table .worker-col-name { width: 82.3279pt; }
.excel-worker-day-table .worker-col-gap { width: 34.3098pt; }
.excel-worker-day-table .worker-col-off { width: 82.467pt; }
.excel-worker-day-table tr,
.excel-worker-day-table td {
  height: 24.522pt;
}
.excel-worker-day-table td {
  padding: 0;
  border: 0;
  overflow: hidden;
  color: #000;
  background: #fff;
  text-align: center;
  vertical-align: middle;
  white-space: nowrap;
  font-size: 12pt;
  font-weight: 400;
  line-height: 1;
}
.excel-worker-day-table .worker-excel-date { font-size: 20.064pt; }
.excel-worker-day-table .worker-excel-weekday,
.excel-worker-day-table .worker-excel-holiday { font-size: 26.064pt; }
.excel-worker-day-table .worker-excel-value,
.excel-worker-day-table .worker-excel-header-value,
.excel-worker-day-table .worker-excel-date-value,
.excel-worker-day-table .worker-excel-weekday-value { position: relative; display: inline-block; }
.excel-worker-day-table .worker-excel-value { top: -2.101pt; left: .45pt; }
.excel-worker-day-table .worker-excel-header-value { top: -2pt; left: .4pt; }
.excel-worker-day-table .worker-excel-header-row > .worker-excel-section-header:nth-child(-n+7) .worker-excel-header-value { top: -3.18pt; left: .59pt; }
.excel-worker-day-table .worker-excel-date-value { top: -3.02pt; left: .35pt; }
.excel-worker-day-table .worker-excel-weekday-value { top: -3.92pt; left: .41pt; }
.excel-worker-day-table .worker-excel-section-header {
  border: 3pt solid #000;
  font-size: 14.064pt;
}
.excel-worker-day-table .worker-excel-designated-header {
  border: 3pt solid #000;
  font-size: 12pt;
}
.excel-worker-day-table .worker-excel-spacer { background: #fff; }
.excel-worker-day-table .worker-vacant { font-weight: 700; }

@page passport { size: 128mm 182mm; margin: 0; }
@page imafuku { size: 210mm 297mm; margin: 0; }
@page a4 { size: 210mm 297mm; margin: 0; }
@page a4-landscape { size: 297mm 210mm; margin: 0; }

@media print {
  html, body { margin: 0 !important; padding: 0 !important; background: #fff; }
  body { min-width: 0; }
  .app-frame, .login-screen, .password-dialog { display: none !important; }
  .print-root { display: block !important; }
  .print-root .print-page { margin: 0; box-shadow: none; }
  .screen-only { display: none !important; }
  * { print-color-adjust: exact; -webkit-print-color-adjust: exact; }
}

@media (max-width: 1200px) {
  .control-panel { grid-template-columns: repeat(3, 1fr); }
  .employee-editor form { grid-template-columns: repeat(3, 1fr); }
  .stop-abbreviation-editor form { grid-template-columns: repeat(2, minmax(180px, 1fr)); }
  .employee-operation-grid { grid-template-columns: 1fr; }
  .employee-add-card { grid-column: auto; }
  .pdf-upload-card { grid-template-columns: 1fr; }
  .calendar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gtfs-source-heading { display: grid; }
  .gtfs-status-root { min-width: 0; }
  .gtfs-url-form { grid-template-columns: 1fr; }
  .bus-timetable-toolbar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
