/* ── ホーム: サービス種別サマリー（A型/B型を1枚ずつ） ── */
.summary-by-svc {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 16px;
}
/* 単一サービス種別の事業所では、他方の種別のサマリーカードを表示しない */
body.svc-only-a .summary-by-svc,
body.svc-only-b .summary-by-svc { grid-template-columns: 1fr; }
body.svc-only-a .svc-card--b,
body.svc-only-b .svc-card--a { display: none; }
.svc-card {
  background: #fff;
  border: 1.5px solid var(--ink);
  border-radius: var(--radius);
  box-shadow: var(--shadow-soft);
  padding: 12px 16px;
  position: relative;
  overflow: hidden;
}
.svc-card::before {
  content: ""; position: absolute;
  top: 0; left: 0; right: 0; height: 4px;
}
.svc-card--a::before { background: var(--accent); }
.svc-card--b::before { background: var(--sky); }
.svc-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: 1.5px dashed var(--line);
}
.svc-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 1.5px solid var(--ink);
  font-size: 12px;
  font-weight: 700;
  padding: 3px 10px;
  letter-spacing: 1px;
}
.svc-card--a .svc-badge { background: var(--accent-soft); color: var(--accent-deep); }
.svc-card--b .svc-badge { background: var(--sky-soft); color: var(--sky); }
.svc-title { font-size: 14px; font-weight: 700; color: var(--ink); }
.svc-metrics {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px 10px;
}
.svc-metric {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 10px;
  background: var(--paper);
  border-radius: var(--radius-sm);
  border: 1px solid var(--line-soft);
}
.svc-metric .lbl { font-size: 11px; font-weight: 700; color: var(--ink-soft); letter-spacing: .3px; }
.svc-metric .val {
  font-family: "Consolas", "SF Mono", "Menlo", monospace;
  font-variant-numeric: tabular-nums;
  font-size: 19px;
  font-weight: 700;
  line-height: 1.1;
  margin-top: 1px;
}
.svc-metric .val .unit { font-family: "BIZ UDPGothic", sans-serif; font-size: 11px; color: var(--ink-mute); margin-left: 3px; font-weight: 600; }
.svc-metric .val.money { font-size: 16px; }
.svc-metric .val.emphasize { color: var(--accent-deep); }
.svc-card--b .svc-metric .val.emphasize { color: var(--sky); }
.svc-metric:nth-child(4), .svc-metric:nth-child(5) { background: var(--paper-warm); }
.svc-metric:nth-child(4) { grid-column: span 1; }
.svc-metric:nth-child(5) { grid-column: span 2; }

/* カレンダー: 氏名横のサービス種別バッジ */
.cal-svc {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  border: 1.3px solid var(--ink);
  font-size: 10px;
  font-weight: 700;
  margin-right: 6px;
  flex-shrink: 0;
}
.cal-svc-a { background: var(--accent-soft); color: var(--accent-deep); }
.cal-svc-b { background: var(--sky-soft); color: var(--sky); }

@media (max-width: 720px) {
  .summary-by-svc { grid-template-columns: 1fr; }
}

.calendar-filter-row {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
}
.calendar-filter-selected {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
.calendar-filter-all {
  background: var(--ink);
  color: #fff;
  border-color: var(--ink);
}
.calendar-legend-label,
.calendar-legend-item {
  font-size: 11px;
}
.rounding-help {
  font-size: 12px;
  color: var(--ink-soft);
  margin-top: 4px;
}
.progress-steps {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-bottom: 14px;
  font-size: 12px;
  color: var(--ink-soft);
  flex-wrap: wrap;
}
.step-num.step-num--compact {
  width: 22px;
  height: 22px;
  font-size: 11px;
}
.step-arrow { color: var(--ink-mute); }
.two-col-grid,
.rounding-workspace {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.rounding-workspace { grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr); }
.two-col-tight-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.rounding-panel { padding: 18px; }
.panel-heading-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
}
.panel-heading {
  font-size: 14px;
  font-weight: 700;
}
.panel-heading.panel-heading--spaced { margin-bottom: 12px; }
.field-hint {
  font-size: 11px;
  color: var(--ink-mute);
  margin-bottom: 4px;
}
.field-label {
  font-size: 11px;
  color: var(--ink-mute);
}
.field-label-block {
  display: block;
  margin-bottom: 4px;
}
.button-row {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
}
.parsed-rule-text { color: var(--ink-soft); }
.rounding-note {
  font-size: 11px;
  color: var(--ink-mute);
  margin-top: 10px;
  line-height: 1.5;
}
.rounding-filter-row {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-bottom: 12px;
  flex-wrap: wrap;
}
.rounding-action-row { margin-top: 0; }
.round-staff-select { min-width: 140px; }
.apply-result { margin-bottom: 10px; }
.preview-title {
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 6px;
}
.scroll-preview {
  overflow-x: auto;
  overflow-y: auto;
  max-height: 340px;
}
.deadline-alerts { margin-bottom: 10px; }
.head-right.head-right--section {
  margin-bottom: 12px;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}
.master-stats { margin-bottom: 12px; }
.stat-card { padding: 14px; }
.summary-num.summary-num--ok { color: var(--ok); }
.summary-num.summary-num--muted { color: var(--ink-mute); }
.summary-service-breakdown {
  font-size: 13px;
  font-weight: 600;
  margin-top: 4px;
  line-height: 1.4;
}
.default-adds-panel {
  padding: 12px 16px;
  margin-bottom: 12px;
  display: flex;
  gap: 10px;
  align-items: center;
  flex-wrap: wrap;
}
.default-adds-title {
  font-size: 13px;
  font-weight: 700;
  white-space: nowrap;
}
.default-adds-note {
  font-size: 11px;
  color: var(--ink-mute);
}
.csv-section-title {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 8px;
}
.csv-prev { margin-top: 12px; }
.csv-actions {
  margin-top: 12px;
  display: flex;
  gap: 8px;
}
.office-unit-price-source {
  font-size: 11px;
  color: var(--ink-mute);
  margin-top: -8px;
  margin-bottom: 10px;
}
.inline-action-row {
  display: flex;
  gap: 8px;
}
.info-message {
  font-size: 12px;
  color: var(--ok);
  line-height: 32px;
}
.month-setting-row {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 14px;
  flex-wrap: wrap;
}
.month-setting-label {
  font-size: 13px;
  font-weight: 700;
}
.month-input-compact,
.month-select-compact {
  font-size: 13px;
}
.taisei-month-selects,
.month-selects {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  flex-wrap: nowrap;
}
.month-select-compact {
  min-width: 78px;
}
.month-selects--field {
  width: 100%;
}
.month-selects--field .month-select-compact {
  flex: 1;
}
.month-selects--toolbar .month-select-compact {
  font-size: 14px;
  padding: 6px 10px;
}
.month-select-suffix,
.month-select-unit {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
}
.form-note {
  font-size: 11px;
  color: var(--ink-mute);
}
.form-note-block {
  margin-bottom: 10px;
  line-height: 1.5;
}
.taisei-source-status {
  display: flex;
  align-items: center;
  min-height: 34px;
  margin-bottom: 10px;
  padding: 8px 10px;
  border: 1.5px solid var(--line);
  border-radius: 8px;
  background: var(--paper-warm);
  color: var(--ink-soft);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
}
.taisei-source-status--exact {
  border-color: var(--ok);
  background: var(--ok-soft);
  color: var(--ok);
}
.taisei-source-status--inherited {
  border-color: var(--warn);
  background: var(--warn-soft);
  color: var(--warn);
}
.taisei-source-status--empty {
  border-color: var(--line);
  color: var(--ink-mute);
}
.form-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
.taisei-grid {
  grid-template-columns: 1fr;
  gap: 12px;
  align-items: start;
  max-width: 980px;
}
.taisei-panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 24px;
  padding: 16px 18px;
}
.taisei-section-title {
  grid-column: 1 / -1;
  font-size: 15px;
  font-weight: 700;
  margin-bottom: 2px;
  padding-bottom: 6px;
  border-bottom: 2px solid var(--ink);
}
.taisei-section-title--deduction {
  color: var(--bad);
}
.taisei-section-title--add { color: var(--ok); }
.taisei-section-title--atype,
.taisei-section-title--btype { color: var(--accent); }
.taisei-subsection-title {
  font-size: 13px;
  font-weight: 700;
  margin-bottom: 8px;
  color: var(--ink);
}
.taisei-field {
  min-width: 0;
  margin-bottom: 0;
}
.taisei-field label,
.kaizen-field label {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  display: block;
  margin-bottom: 3px;
}
.taisei-control,
.kaizen-control {
  width: 100%;
  padding: 6px 8px;
  border: 1.5px solid var(--line);
  border-radius: 7px;
  font-family: inherit;
}
.taisei-control--text,
.taisei-control--number,
.kaizen-control {
  font-size: 13px;
}
.taisei-control[readonly] {
  color: var(--ink-soft);
  background: var(--paper);
}
.taisei-control--compact { font-size: 12px; }
.taisei-deduction-grid {
  grid-column: 1 / -1;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}
.taisei-deduction-grid .cb-item {
  min-width: 0;
}
@media (max-width: 760px) {
  .month-setting-row {
    align-items: stretch;
  }
  .taisei-month-selects,
  .month-selects {
    width: 100%;
  }
  .month-select-compact {
    flex: 1;
    min-width: 0;
  }
  .taisei-panel,
  .taisei-deduction-grid {
    grid-template-columns: 1fr;
  }
}
.form-actions-row {
  margin-top: 12px;
  display: flex;
  gap: 8px;
  align-items: center;
}
.message-ok {
  font-size: 12px;
  color: var(--ok);
}
.kaizen-header-row {
  display: flex;
  gap: 10px;
  align-items: center;
  margin-bottom: 14px;
}
.kaizen-heading {
  font-size: 13px;
  font-weight: 700;
}
.kaizen-form {
  display: none;
  margin-top: 16px;
  max-width: 480px;
  padding: 16px;
}
.kaizen-period-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-bottom: 12px;
}
.fiscal-year-label {
  font-weight: 700;
  font-size: 14px;
  min-width: 200px;
  text-align: center;
}

@media (max-width: 1100px) {
  .rounding-workspace { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  .rounding-rule-type { grid-template-columns: 1fr; }
  .rounding-counts { grid-template-columns: 1fr; }
}
