/* ---- confirm screen ---- */
.day-group{ margin-bottom:26px; }
.day-group:last-child{ margin-bottom:0; }
.day-group-heading{
  display:flex; align-items:center; gap:8px;
  font-size:13px; font-weight:700; color:var(--navy-deep);
  padding:6px 2px; margin-bottom:8px;
  border-bottom:2px solid var(--line);
}
.day-group-heading .dow-tag{
  font-size:11px; font-weight:700; padding:2px 8px; border-radius:5px;
  background:var(--accent-soft); color:var(--accent);
}
.day-group-heading.dow-sun .dow-tag{ background:var(--off-bg); color:var(--off-fg); }
.day-group-heading.dow-sat .dow-tag{ background:#e4ecff; color:#2456c9; }

table.confirm{ width:100%; border-collapse:collapse; font-size:13px; table-layout:fixed; }
table.confirm thead th{
  text-align:left; background:var(--navy-deep); color:#fff; padding:9px 12px; font-weight:700; font-size:12px;
}
table.confirm thead tr:first-child th:first-child{ border-radius:8px 0 0 0; }
table.confirm thead tr:first-child th:last-child{ border-radius:0 8px 0 0; }
table.confirm thead tr.scale-row th{ padding:2px 12px 8px; }
table.confirm tbody td{ padding:9px 12px; border-bottom:1px solid var(--line-soft); vertical-align:middle; }
table.confirm tbody tr:hover{ background:var(--paper); }
table.confirm tbody tr.row-no-entry td.col-cname{ color:#9aa4b0; font-weight:600; }
table.confirm tbody tr.row-no-entry td.col-ctime{ color:#c3cad3; }
td.col-cname{ width:110px; font-weight:700; color:var(--navy-deep); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
td.col-ctime{ width:64px; color:#5a6572; font-variant-numeric:tabular-nums; }
td.col-gantt, th.col-gantt{ width:auto; }

.gantt-track{
  position:relative; height:22px; background:var(--line-soft); border-radius:5px; overflow:hidden;
  background-image: repeating-linear-gradient(
    to right,
    rgba(31,58,95,.14) 0, rgba(31,58,95,.14) 1px,
    transparent 1px, transparent 7.142857%
  );
}
.gantt-bar{
  position:absolute; top:2px; bottom:2px; background:linear-gradient(135deg, var(--accent), #5b8ef0);
  border-radius:4px;
}
.gantt-scale-track{ position:relative; height:14px; }
.gantt-scale-track span{
  position:absolute; top:0; font-size:10px; color:#c9d6ea;
  transform:translateX(-50%); white-space:nowrap;
}
.gantt-scale-track span:first-child{ transform:translateX(0); }
.gantt-scale-track span:last-child{ transform:translateX(-100%); }

/* ---- スタッフ絞り込み ---- */
.filter-badge{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:18px; height:18px; padding:0 5px; margin-left:6px;
  border-radius:9px; background:var(--accent); color:#fff; font-size:10px; font-weight:700;
}
.filter-popup{
  position:absolute; top:calc(100% + 6px); left:0; z-index:120;
  background:#fff; border:1px solid var(--line); border-radius:10px;
  box-shadow:0 8px 24px rgba(20,30,50,.18);
  padding:10px; width:220px; display:none;
}
.filter-popup.show{ display:block; }
.filter-popup-actions{ display:flex; gap:6px; margin-bottom:8px; }
.filter-popup-actions button{
  flex:1; border:1px solid var(--line); background:var(--paper); color:var(--navy-deep);
  border-radius:6px; padding:6px 0; font-size:11px; font-weight:700; cursor:pointer;
}
.filter-popup-actions button:hover{ background:var(--accent-soft); border-color:var(--accent); }
.filter-popup-list{ max-height:220px; overflow-y:auto; display:flex; flex-direction:column; gap:2px; }
.filter-popup-list label{
  display:flex; align-items:center; gap:8px; padding:6px 4px; border-radius:6px; font-size:13px; cursor:pointer;
}
.filter-popup-list label:hover{ background:var(--paper); }
.filter-popup-list input[type="checkbox"]{ width:16px; height:16px; cursor:pointer; }

/* ---- 勤務時間列 ---- */
td.col-chours, th.col-chours{ width:78px; color:var(--navy-deep); font-weight:700; font-variant-numeric:tabular-nums; }
table.confirm tbody tr.row-no-entry td.col-chours{ color:#c3cad3; font-weight:400; }
.day-total-badge{
  margin-left:auto; font-size:11px; font-weight:700; color:var(--accent);
  background:var(--accent-soft); padding:2px 10px; border-radius:6px;
}
