.dtf{position:relative;width:100%}.dtf-trigger{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-md) var(--space-lg);border:var(--border-width-medium) solid var(--border);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-lg);text-align:left;cursor:pointer;transition:border-color var(--transition-medium),box-shadow var(--transition-medium)}.dtf-trigger:hover:not(:disabled){border-color:var(--border-mid)}.dtf-trigger:focus-visible{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px var(--amber-tint-10)}.dtf-trigger:disabled{opacity:.55;cursor:not-allowed}.dtf-trigger--empty .dtf-value{color:var(--text-muted)}.dtf-icon{flex:0 0 auto;color:var(--text-secondary)}.dtf-value{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dtf-pop{position:absolute;z-index:40;top:calc(100% + 6px);left:0;width:288px;max-width:min(92vw,320px);padding:var(--space-md);background:var(--bg-card);border:var(--border-width-medium) solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-hover)}.dtf-cal-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-sm)}.dtf-month{font-weight:var(--font-weight-bold);font-size:var(--text-md);color:var(--text-primary)}.dtf-nav{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-secondary);font-size:1.25rem;line-height:1;cursor:pointer;transition:background var(--transition-fast)}.dtf-nav:hover{background:var(--amber-tint-10);color:var(--text-primary)}.dtf-nav:focus-visible{outline:none;box-shadow:0 0 0 3px var(--amber-tint-10)}.dtf-weekrow,.dtf-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.dtf-weekday{text-align:center;font-size:var(--text-xs);font-weight:var(--font-weight-medium);color:var(--text-muted);padding:4px 0}.dtf-day{aspect-ratio:1 / 1;display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-primary);font-size:var(--text-sm);cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.dtf-day:hover:not(:disabled){background:var(--amber-tint-10)}.dtf-day:focus-visible{outline:none;box-shadow:0 0 0 2px var(--amber)}.dtf-day--muted{color:var(--text-muted)}.dtf-day--today{font-weight:var(--font-weight-bold);box-shadow:inset 0 0 0 1px var(--border-mid)}.dtf-day--selected,.dtf-day--selected:hover{background:var(--amber);color:var(--amber-on-dark, #fff);font-weight:var(--font-weight-bold)}.dtf-day:disabled{color:var(--text-muted);opacity:.35;cursor:not-allowed}.dtf-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-sm);margin-top:var(--space-md);padding-top:var(--space-md);border-top:1px solid var(--border)}.dtf-time{display:flex;flex-direction:column;gap:4px}.dtf-time-lbl{font-size:var(--text-xs);color:var(--text-muted)}.dtf-time-input{padding:var(--space-xs) var(--space-sm);border:var(--border-width-medium) solid var(--border);border-radius:var(--radius-sm);background:var(--bg-card);color:var(--text-primary);font-family:var(--font-body);font-size:var(--text-sm)}.dtf-time-input:focus-visible{outline:none;border-color:var(--amber);box-shadow:0 0 0 3px var(--amber-tint-10)}.dtf-foot-actions{display:flex;align-items:center;gap:var(--space-sm)}.dtf-link{border:none;background:transparent;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm)}.dtf-link:hover{color:var(--text-primary);text-decoration:underline}.dtf-done{border:none;background:var(--amber);color:var(--amber-on-dark, #fff);font-weight:var(--font-weight-medium);font-size:var(--text-sm);padding:var(--space-xs) var(--space-lg);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.dtf-done:hover{background:var(--amber-hover, var(--amber))}.dtf-done:focus-visible{outline:none;box-shadow:0 0 0 3px var(--amber-tint-10)}@media (prefers-reduced-motion: reduce){.dtf-trigger,.dtf-nav,.dtf-day,.dtf-done{transition:none}}
