.df-dlg {
  width: min(360px, calc(100vw - 24px)); box-sizing: border-box; padding: var(--s4, 16px);
  border: 1px solid var(--line-strong, #cfc8ba); border-radius: var(--r-lg, 18px);
  background: var(--surface, #fff); color: var(--ink, #14151a); box-shadow: var(--shadow-lg);
}
.df-dlg::backdrop { background: rgba(20, 21, 26, .45); }
.df-head { display: flex; align-items: center; justify-content: space-between; gap: var(--s2, 8px); }
.df-title { font-size: 1.0625rem; }
.df-nav {
  min-width: 44px; min-height: 44px; border: 1px solid var(--line-strong, #cfc8ba); border-radius: 999px;
  background: var(--surface, #fff); color: var(--ink, #14151a); font: inherit; font-size: 1.5rem; line-height: 1; cursor: pointer;
}
.df-picked { margin: var(--s2, 8px) 0; color: var(--muted, #5d6273); font-weight: 600; text-align: center; }
.df-week, .df-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 2px; }
.df-week span { text-align: center; font-size: .8125rem; color: var(--muted, #5d6273); padding: 4px 0; }
.df-day {
  min-height: 44px; border: 0; border-radius: 999px; background: none; color: inherit;
  font: inherit; font-size: 1rem; cursor: pointer;
}
.df-day.is-today { box-shadow: inset 0 0 0 2px var(--line-strong, #cfc8ba); }
.df-day.is-sel { background: var(--ink, #14151a); color: #fff; font-weight: 700; }
.df-day:disabled { opacity: .3; cursor: default; }
.df-day:focus-visible, .df-nav:focus-visible { outline: 3px solid var(--focus, #1b58c9); outline-offset: 1px; }
.df-acts { display: grid; grid-template-columns: 1fr 1fr; gap: var(--s2, 8px); margin-top: var(--s3, 12px); }
.df-acts .btn { min-height: 44px; width: 100%; }
