/* 日別勤怠の編集モーダル（打刻 LIFF / ダッシュボード 共通） */
.de-modal {
  position: fixed; inset: 0; z-index: 200;
  display: flex; align-items: center; justify-content: center; padding: 16px;
}
.de-modal[hidden] { display: none; }
.de-bg { position: absolute; inset: 0; background: rgba(0,0,0,.5); }
.de-panel {
  position: relative; background: #fff; border-radius: 14px;
  width: 100%; max-width: 380px; max-height: 86vh; overflow-y: auto;
  padding: 16px; box-shadow: 0 10px 40px rgba(0,0,0,.3);
}
.de-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.de-header h3 { margin: 0; font-size: 16px; }
.de-x {
  background: transparent; border: 0; font-size: 24px; color: #6b7280;
  width: 32px; height: 32px; line-height: 1; cursor: pointer;
}
.de-holiday {
  display: flex; align-items: center; gap: 8px; font-size: 14px;
  padding: 8px 10px; background: #F9FAFB; border-radius: 8px;
}
.de-holiday input { width: 18px; height: 18px; }
.de-section-label { font-size: 12px; color: #6b7280; font-weight: 600; margin: 14px 0 6px; }
.de-log-list { display: flex; flex-direction: column; gap: 6px; }
.de-log {
  display: flex; align-items: center; gap: 8px;
  background: #F9FAFB; border: 1px solid #e5e7eb; border-radius: 8px; padding: 8px;
}
.de-log-type {
  font-size: 11px; font-weight: 700; padding: 3px 8px; border-radius: 999px; white-space: nowrap;
}
.de-log-type.IN { background: #DCFCE7; color: #166534; }
.de-log-type.OUT { background: #FEE2E2; color: #991b1b; }
.de-log-time {
  border: 1px solid #e5e7eb; border-radius: 6px; padding: 5px 6px; font-size: 14px;
}
.de-log-loc {
  font-size: 11px; color: #6b7280; flex: 1;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.de-del {
  background: #fff; border: 1px solid #FCA5A5; color: #ef4444;
  border-radius: 6px; padding: 5px 9px; font-size: 12px; white-space: nowrap; cursor: pointer;
}
.de-empty { color: #6b7280; font-size: 13px; text-align: center; padding: 14px; margin: 0; }
.de-add { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.de-add select, .de-add input {
  border: 1px solid #e5e7eb; border-radius: 6px; padding: 7px 8px; font-size: 14px;
}
.de-add input[type="time"] { flex: 1; min-width: 96px; }
.de-btn { border: 0; border-radius: 8px; padding: 9px 14px; font-weight: 600; font-size: 13px; cursor: pointer; }
.de-btn.primary { background: #06C755; color: #fff; }
.de-msg {
  margin-top: 12px; padding: 9px; border-radius: 8px; font-size: 13px; text-align: center;
  background: #ECFDF5; color: #166534;
}
.de-msg.error { background: #FEF2F2; color: #991b1b; }
