.gantt-shell{background:white;border:1px solid #d8dfe8;border-radius:8px;overflow:hidden}.gantt-guide{padding:16px 18px;display:flex;gap:8px 24px;flex-wrap:wrap;background:#eef4fc;color:#123a65}.gantt-guide span{font-size:12px}.gantt-scroll{overflow:auto;max-height:68vh}.gantt-table{border-collapse:separate;border-spacing:0;width:100%;min-width:1400px;table-layout:fixed;font-size:12px}.gantt-table th,.gantt-table td{border-right:1px solid #e4e9f1;border-bottom:1px solid #e4e9f1;padding:0}.gantt-table thead th{position:sticky;top:0;z-index:3;background:#123b70;color:white;height:50px}.gantt-table thead button{border:0;background:none;color:white;padding:5px 0;width:100%}.gantt-table thead small{display:block;font-size:10px}.gantt-table .g-weekend{background:#315584}.gantt-table .gantt-label{width:250px;position:sticky;left:0;background:#f4f7fb;padding:12px;text-align:left;z-index:2;color:#13375f}.gantt-table thead .gantt-label{z-index:4;background:#123b70;color:white}.gantt-label strong,.gantt-label>span{display:block;line-height:1.5}.gantt-label>span{font-size:11px;color:#647084}.gantt-edit-links{display:flex;flex-wrap:wrap;gap:4px;margin-top:7px}.gantt-edit-links button{padding:3px 5px;font-size:10px}.gantt-bar{display:flex;position:relative;background:#185d99;border-radius:5px;margin:8px 2px;min-height:50px;overflow:hidden;box-shadow:inset 0 -3px #0c375e}.gantt-bar.g-needs{background:#266c9e;box-shadow:inset 0 -3px #d6952e}.gantt-caption{position:absolute;top:7px;left:7px;right:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff;font-size:11px;font-weight:700;pointer-events:none;z-index:1}.gantt-caption small{font-weight:400;opacity:.9}.gantt-day{min-width:0;flex:1;border:0;border-radius:0;background:transparent;color:white;padding:27px 0 4px;box-shadow:inset -1px 0 #ffffff30;font-size:10px}.gantt-day:hover,.gantt-day:focus-visible{background:#ffffff35;outline:2px solid #e8b648;outline-offset:-2px}.gantt-gap{background:repeating-linear-gradient(90deg,#fbfcfe,#fbfcfe 35px,#edf1f6 36px)}.gantt-shell>.note{padding:10px 16px;margin:0}.gantt-days{border:1px solid #dae2ee;border-radius:5px;display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:18px 0;padding:14px}.gantt-days .field{flex:1;min-width:220px}.gantt-callout{background:#eef4fc;padding:12px}.gantt-date-list{display:grid;gap:8px}.gantt-date-list button{text-align:left;padding:12px}.views{flex-wrap:wrap}.tabs{flex-wrap:wrap}@media(max-width:650px){.gantt-table{min-width:1260px}.gantt-table .gantt-label{width:185px}.gantt-guide{padding:12px}.gantt-scroll{max-height:65vh}}@media print{.gantt-scroll{max-height:none;overflow:visible}.gantt-table{min-width:0;font-size:8px}.gantt-table .gantt-label{width:140px}.gantt-edit-links{display:none}.gantt-bar,.gantt-table thead th{print-color-adjust:exact}.gantt-caption{font-size:8px}}

.range-conflicts{margin:20px 0;padding:18px;border:2px solid #b86517;background:#fffaf1;border-radius:6px;scroll-margin:16px}.range-conflicts h3{margin-top:0;color:#123b70}.range-conflict-row{padding:14px 0;border-top:1px solid #d8dfe8}.range-conflict-row p{margin:8px 0;color:#55432d}.range-conflict-row select{width:100%;min-height:44px}.range-conflicts:focus{outline:2px solid #123b70;outline-offset:3px}

.range-occupied-sites{padding:12px;margin:12px 0;background:#fff;border:1px solid #d8dfe8;border-radius:5px}.range-occupied-sites h4{margin:0 0 8px;color:#123b70}.range-occupied-sites ul{list-style:none;padding:0;margin:0}.range-occupied-sites li{display:flex;gap:12px;padding:8px 0;border-top:1px solid #e4e9f1}.range-occupied-sites li>strong{flex:0 0 5em}.range-occupied-sites li>span{min-width:0;overflow-wrap:anywhere}.range-occupied-sites b{white-space:nowrap;margin-left:6px;color:#123b70}

.range-batch-select,.range-batch-actions,.range-batch-replacements{display:flex;flex-wrap:wrap;gap:8px}.range-batch-select{margin:16px 0}.range-batch-select button{font-size:12px;padding:7px 10px}.range-batch-label{display:flex;gap:12px;align-items:flex-start;flex:1;min-width:0;cursor:pointer}.range-batch-label input{width:20px;height:20px;flex:0 0 20px;margin-top:3px}.range-batch-label small{display:block;margin-top:4px;overflow-wrap:anywhere;color:#55432d}.range-batch-list .range-conflict-row{display:flex;gap:10px;align-items:center}.range-batch-result{background:#edf3fb;color:#123b70;padding:8px;max-width:42%;font-size:13px}.range-batch-tools{margin-top:16px;border-top:2px solid #d8dfe8;padding-top:16px}.range-batch-tools p{margin:10px 0}.range-batch-tools button{min-height:42px}.range-batch-tools button:disabled{opacity:.4;cursor:not-allowed}.range-occupied-sites summary{cursor:pointer;font-weight:700;color:#123b70}.range-occupied-sites[open] summary{margin-bottom:8px}@media(max-width:650px){.range-batch-list .range-conflict-row{align-items:stretch;flex-direction:column}.range-batch-result{max-width:none;margin-left:32px}}

.gantt-table thead th.holiday-pink,.schedule-table thead th.dayhead.holiday-pink,.schedule-table tbody tr:nth-child(n) td.holiday-pink{background:#fce7ee}.gantt-table thead th.holiday-pink button,.schedule-table .holiday-pink button,.schedule-table .holiday-pink .day-week,.schedule-table .holiday-pink .day-number{color:#762b46}.schedule-table .holiday-pink.today .day-number{background:#762b46;color:#fff}.staffing-report-button.has-zero{background:#fff0f0;color:#92201a;border-color:#b5423b}.staffing-table-scroll{overflow:auto}.staffing-table{border-collapse:collapse;width:100%;min-width:720px}.staffing-table th,.staffing-table td{padding:12px;border:1px solid #d8dfe8;text-align:left;vertical-align:top}.staffing-table th{background:#123b70;color:white}.staffing-table td:nth-child(3),.staffing-table td:nth-child(4),.staffing-table td:nth-child(5){white-space:nowrap}.staffing-table .staffing-zero{background:#ffe2e2;color:#821b15}.staffing-table .staffing-zero td:first-child{border-left:5px solid #aa2820}.staffing-table .staffing-half{background:#fff4dc}.staffing-table button{font-size:12px;margin-top:8px}

/* 現場名を1つの行見出しにまとめ、工程は同じ日付軸の空いている段へ置く。 */
.gantt-site-timeline{display:grid;position:relative;isolation:isolate;min-height:68px;background:#fbfcfe}
.gantt-grid-day{border-right:1px solid #e4e9f1;pointer-events:none;z-index:-1}
.gantt-grid-holiday{background:#fff1f5}
.gantt-site-bar{flex-direction:column;align-self:start;min-width:0;min-height:56px;height:56px;margin:6px 2px;z-index:1}
.gantt-site-bar .gantt-work-edit{display:block;flex:none;width:100%;height:28px;min-height:0;padding:4px 5px;text-align:left;border:0;border-radius:0;background:transparent;color:white;font-size:11px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:20px}
.gantt-site-bar .gantt-work-edit:hover,.gantt-site-bar .gantt-work-edit:focus-visible{background:#ffffff30;outline:2px solid #e8b648;outline-offset:-2px}
.gantt-bar-days{display:flex;flex:1;min-height:0}
.gantt-site-bar .gantt-day{padding:2px 0 4px;min-height:0;font-size:10px}
.gantt-empty-site{grid-column:1 / -1;grid-row:1;align-self:center;padding:12px;color:#687888;pointer-events:none}
.gantt-table tbody .gantt-label{vertical-align:top;border-bottom:2px solid #bdcde0}
.gantt-table tbody .gantt-label>button{margin-top:8px;font-size:11px}
.gantt-table tbody tr>td{border-bottom:2px solid #bdcde0}
@media print{.gantt-table tbody .gantt-label>button{display:none}.gantt-site-bar .gantt-work-edit{font-size:8px}.gantt-grid-holiday{print-color-adjust:exact}}

/* 実表と固定バーの両方を使えるようにする。週ごとの表も高さを制限する。 */
@media screen{
 #surface .gantt-scroll,#surface .calendar-scroll{max-height:65vh;overflow:scroll;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:#526f95 #e4ebf4}
 .schedule-table thead th{position:sticky;top:0;z-index:3}
 .schedule-table thead th.sitehead{z-index:4}
 .schedule-scroll-dock{position:fixed;bottom:8px;z-index:8;background:#fff;border:1px solid #bbc9da;box-shadow:0 2px 8px #123b7028;padding:3px 4px 0;border-radius:4px}
 .schedule-scroll-label{display:block;font-size:11px;color:#123b70;line-height:16px}
 .schedule-scroll-horizontal{height:20px;overflow-x:scroll;overflow-y:hidden;width:100%}
 .schedule-scroll-horizontal>div{height:1px}
 .schedule-scroll-vertical{position:fixed;width:20px;z-index:8;overflow-y:scroll;overflow-x:hidden;background:#e4ebf4;border:1px solid #bbc9da;border-radius:4px}
 .schedule-scroll-vertical>div{width:1px}
 .schedule-scroll-horizontal,.schedule-scroll-vertical{scrollbar-width:auto;scrollbar-color:#526f95 #e4ebf4}
 .schedule-scroll-horizontal::-webkit-scrollbar{height:16px;display:block}
 .schedule-scroll-vertical::-webkit-scrollbar{width:16px;display:block}
 .schedule-scroll-horizontal::-webkit-scrollbar-track,.schedule-scroll-vertical::-webkit-scrollbar-track{background:#e4ebf4}
 .schedule-scroll-horizontal::-webkit-scrollbar-thumb,.schedule-scroll-vertical::-webkit-scrollbar-thumb{background:#526f95;border:2px solid #e4ebf4;border-radius:6px}
 .schedule-scroll-dock[hidden],.schedule-scroll-vertical[hidden]{display:none}
 .schedule-scroll-horizontal:focus-visible,.schedule-scroll-vertical:focus-visible{outline:2px solid #123b70;outline-offset:2px}
}
@media print{.schedule-scroll-dock,.schedule-scroll-vertical{display:none!important}#surface .gantt-scroll,#surface .calendar-scroll{max-height:none!important;height:auto!important;overflow:visible!important}.schedule-table thead th{position:static}}

@media screen{
 .has-schedule-scrollbars #surface .gantt-scroll,.has-schedule-scrollbars #surface .calendar-scroll{scrollbar-width:none;scrollbar-gutter:auto}
 .has-schedule-scrollbars #surface .gantt-scroll::-webkit-scrollbar,.has-schedule-scrollbars #surface .calendar-scroll::-webkit-scrollbar{display:none}
 .schedule-scroll-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}

@media screen{
 .schedule-scroll-dock{bottom:auto;padding:3px 6px 5px;background:#eef4fc;border:1px solid #8da6c5}
 .schedule-scroll-horizontal{height:30px;display:flex;gap:8px;align-items:center;overflow:visible}
 .schedule-scroll-horizontal>button{flex:none;min-height:28px;height:28px;padding:1px 9px;font-size:13px;background:#fff;color:#123b70}
 .schedule-scroll-horizontal>button:disabled{cursor:default}
 .schedule-horizontal-slider{appearance:none;-webkit-appearance:none;flex:1;min-width:0;width:100%;height:26px;min-height:26px;margin:0;padding:0;border:0;background:transparent;cursor:ew-resize}
 .schedule-horizontal-slider::-webkit-slider-runnable-track{height:12px;border-radius:6px;background:#d2deed;border:1px solid #91a9c7}
 .schedule-horizontal-slider::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:56px;height:24px;margin-top:-7px;border:2px solid #fff;border-radius:6px;background:#235b94;box-shadow:0 0 0 1px #235b94}
 .schedule-horizontal-slider::-moz-range-track{height:12px;border-radius:6px;background:#d2deed;border:1px solid #91a9c7}
 .schedule-horizontal-slider::-moz-range-thumb{width:56px;height:22px;border:2px solid #fff;border-radius:6px;background:#235b94}
 .schedule-horizontal-slider:disabled{opacity:.45;cursor:default}
 #surface .gantt-scroll,#surface .calendar-scroll{padding-bottom:54px}
}

.gantt-table tbody tr:nth-child(even) .gantt-label,.gantt-table tbody tr:nth-child(even) .gantt-site-timeline{background:#eef0f3}

.schedule-date-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:14px;margin:0 0 20px;padding:16px;background:#eef3f9;border:1px solid #d8dfe8}.schedule-date-row .field{min-width:0;margin:0}.schedule-date-row input{width:100%;min-width:0}@media(max-width:650px){.schedule-date-row{gap:8px;padding:10px}.schedule-date-row input{padding:10px 5px;font-size:14px}}
.holiday-calendar-note{padding:8px 0}
