/* 出退勤カレンダー — サイドバー向け + 祝日 + 出勤日○ */
.mgr-att-cal {
  font-size: 11px;
  color: #2a3050;
  max-width: 280px;
}
.mgr-att-cal.is-compact,
.mgr-att-cal.is-edit { max-width: 100%; }
.mgr-att-hd { margin-bottom: 6px; }
.mgr-att-title { font-weight: 700; font-size: 12px; }
.mgr-att-nav {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 6px; font-size: 12px;
}
.mgr-att-nav a { color: #1d4ed8; text-decoration: none; font-weight: 700; padding: 0 6px; }
.mgr-att-grid {
  width: 100%; border-collapse: collapse; table-layout: fixed;
}
.mgr-att-grid th {
  font-size: 10px; font-weight: 600; color: #8a90a8;
  padding: 2px 0; text-align: center;
}
.mgr-att-grid th.wkend { color: #c45c5c; }
.mgr-att-grid td {
  border: 1px solid #e8ebf2; height: 40px; vertical-align: top;
  text-align: center; position: relative; padding: 2px 1px;
  background: #fff;
}
.mgr-att-grid td.empty { border-color: transparent; background: transparent; }
.mgr-att-grid td.off { background: #f0f1f5; color: #b0b4c4; }
.mgr-att-grid td.holiday .num { color: #dc2626; font-weight: 700; }
.mgr-att-grid td.holiday.off { background: #f7ecec; }
.mgr-att-grid td .hol {
  display: block; font-size: 8px; line-height: 1.1; color: #dc2626; font-weight: 600;
  white-space: nowrap; overflow: hidden; text-overflow: clip;
}
.mgr-att-grid td.day[data-ymd] { cursor: pointer; }
.mgr-att-grid td.day[data-ymd]:hover { outline: 1px solid #93b4f5; }
.mgr-att-grid td .num { display: block; font-size: 10px; line-height: 1.1; }
.mgr-att-grid td .mark {
  display: block; font-size: 11px; font-weight: 800; line-height: 1.1; margin-top: 0;
}
.mgr-att-grid td.st-in { background: #fff; }
.mgr-att-grid td.st-in .mark { color: #dc2626; }
.mgr-att-grid td.st-half { background: #dcfce7; }
.mgr-att-grid td.st-half .mark { color: #15803d; }
.mgr-att-grid td.st-out { background: #e5e7eb; }
.mgr-att-grid td.st-out .mark { color: #dc2626; }
.mgr-att-legend {
  display: flex; flex-wrap: wrap; gap: 6px 10px;
  margin-top: 6px; font-size: 10px; color: #6a7088;
}
.mgr-att-legend i {
  display: inline-flex; width: 16px; height: 16px; align-items: center; justify-content: center;
  border-radius: 3px; margin-right: 3px; font-style: normal; font-weight: 800; font-size: 10px;
  border: 1px solid #e4e7ef; vertical-align: middle;
}
.mgr-att-legend .lg-in { color: #dc2626; }
.mgr-att-legend .lg-half { background: #dcfce7; color: #15803d; }
.mgr-att-legend .lg-out { background: #e5e7eb; color: #dc2626; }
.mgr-att-legend .lg-off { background: #f0f1f5; }
.mgr-att-legend .lg-hol { color: #dc2626; border-color: #f0c0c0; background: #fff5f5; font-size: 9px; }

.mgr-att-schedule {
  margin-top: 10px;
  padding-top: 8px;
  border-top: 1px solid #eef0f5;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.mgr-att-sch-lab {
  font-size: 11px;
  font-weight: 700;
  color: #4a5070;
  margin-right: 4px;
  white-space: nowrap;
}
.mgr-att-workdays {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
}
.mgr-att-wd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-width: 28px;
  height: 26px;
  padding: 0 5px;
  border: 1px solid #d0d5e2;
  border-radius: 6px;
  background: #f7f8fb;
  color: #8a90a8;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
}
button.mgr-att-wd { cursor: pointer; }
button.mgr-att-wd:hover { border-color: #93b4f5; background: #eef4ff; }
.mgr-att-wd .o {
  color: #dc2626;
  font-weight: 800;
  min-width: 0.9em;
  display: inline-block;
  text-align: center;
}
.mgr-att-wd.is-on {
  background: #fff;
  border-color: #f0b4b4;
  color: #2a3050;
}
.mgr-att-hours {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.mgr-att-hours-form {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.mgr-att-hours select {
  padding: 4px 6px;
  border: 1px solid #d0d5e2;
  border-radius: 6px;
  font: inherit;
  font-size: 11px;
  background: #fff;
}
.mgr-att-hours .tilde { color: #6a7088; font-weight: 700; }
.mgr-att-hours-ro { font-size: 11px; color: #4a5070; font-weight: 600; }

.mgr-att-portal-body { padding: 10px 12px 12px; }
.mgr-att-portal-link { margin: 8px 0 0; font-size: 11px; }
.mgr-att-portal-link a { color: #1d4ed8; font-weight: 600; }
.mgr-att-toggle-form { display: none; }
.br-plugin-mgr-attendance .mgr-att-cal { max-width: 100%; }
