/* Gemeinsame Datum-/Uhrzeitfelder; Fachregeln bleiben am Feld bzw. im Backend. */
.studly-picker-control { position:relative; display:grid; grid-template-columns:minmax(0,1fr) 44px; align-items:center; min-width:0; width:100%; border:1px solid var(--color-control-border); border-radius:.375rem; color:var(--color-text); font:inherit; }
.studly-picker-control:focus-within { outline:2px solid var(--color-accent); outline-offset:2px; }
.studly-picker-control:has([aria-expanded=true]) { outline-offset:3px; }
.studly-picker-control:has(input:disabled) { background:var(--color-surface); }
.studly-picker-control>input[data-studly-picker] { width:100%; min-width:0; height:44px; min-height:44px; padding:10px 12px; border:0; border-radius:0; background:transparent; color:inherit; font:inherit; }
.studly-picker-control>input[data-studly-picker]:disabled { color:var(--color-muted); -webkit-text-fill-color:currentColor; cursor:default; }
.studly-picker-control.studly-time-control>input { font-family:ui-monospace,"Cascadia Mono",Consolas,monospace; font-size:.9375rem; font-variant-numeric:tabular-nums; letter-spacing:0; }
.studly-button { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; padding:8px 12px; border:1px solid var(--color-control-border); border-radius:var(--radius-control); background:var(--color-background); color:var(--color-text); font:inherit; cursor:pointer; }
.studly-picker-toggle:hover:not(:disabled) { background:var(--color-surface); }
.studly-picker-control .studly-picker-toggle { display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:0; border:0; font-size:0; color:var(--color-text); }
.studly-picker-control :is(input,button):focus-visible { outline:2px solid var(--color-accent); outline-offset:3px; }
.studly-picker-control>input[data-studly-picker]:focus-visible { outline:none; }
.studly-picker-control :disabled { cursor:default; }
.studly-icon { display:block; width:20px; height:20px; flex:none; }
.studly-picker-panel { z-index:50; margin:0; padding:10px; border:1px solid var(--color-control-border); border-radius:9px; background:var(--color-background); color:var(--color-text); box-shadow:0 6px 24px var(--color-shadow); font-family:var(--font-body); font-size:16px; line-height:1.5; }
.studly-picker-panel[hidden] { display:none; }
.studly-calendar-heading { display:grid; grid-template-columns:44px minmax(0,1fr) 44px; gap:4px; margin-bottom:5px; flex:none; }
.studly-calendar-heading button,.studly-picker-actions button { height:44px; min-height:44px; padding:5px; border:1px solid transparent; border-radius:6px; background:transparent; color:var(--color-text); }
.studly-calendar-heading .studly-calendar-caption { font-size:15px; font-weight:650; text-align:center; line-height:1.3; }
.studly-picker-panel .studly-calendar-caption:disabled { background:transparent; color:var(--color-text); -webkit-text-fill-color:currentColor; opacity:1; }
.studly-date-panel { position:fixed; inset:auto; display:flex; flex-direction:column; height:min(410px,calc(100dvh - 24px)); max-height:calc(100dvh - 24px); max-width:calc(100vw - 24px); overflow:hidden; border-color:var(--color-option-border); }
.studly-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); grid-template-rows:24px repeat(6,minmax(0,1fr)); flex:1; min-height:0; }
.studly-weekday { display:grid; place-items:center; height:24px; color:var(--color-muted); font-size:11px; font-weight:550; }
.studly-calendar-day { width:calc(100% - 4px); min-width:0; height:calc(100% - 4px); min-height:0; margin:2px; padding:0; border:1px solid transparent; border-radius:5px; background:var(--color-background); color:var(--color-text); font:inherit; font-size:13px; font-variant-numeric:tabular-nums; cursor:pointer; }
.studly-calendar-day:hover:not(:disabled),.studly-calendar-period:hover:not(:disabled) { background:var(--color-surface); }
.studly-calendar-day[aria-current] { border-color:var(--color-accent); color:var(--color-accent); }
.studly-calendar-day[aria-pressed=true] { background:var(--color-accent); color:var(--color-on-accent); border-color:var(--color-accent); }
.studly-calendar-outside { color:var(--color-muted); }
.studly-date-panel .studly-calendar-day:disabled { background:transparent; color:var(--color-muted); opacity:1; cursor:default; }
.studly-calendar-periods { grid-template-columns:repeat(3,minmax(0,1fr)); grid-template-rows:repeat(4,minmax(0,1fr)); gap:4px; }
.studly-calendar-period { min-width:0; min-height:0; margin:0; padding:4px; border:1px solid transparent; border-radius:5px; background:transparent; color:var(--color-text); font:inherit; font-size:13px; cursor:pointer; }
.studly-calendar-period[aria-pressed=true] { border-color:var(--color-accent); color:var(--color-accent); background:var(--color-accent-tint); }
.studly-date-panel .studly-calendar-period:disabled { background:transparent; color:var(--color-muted); cursor:default; }
.studly-picker-actions { display:flex; flex-wrap:wrap; gap:var(--space-small); justify-content:space-between; flex:none; border-top:1px solid var(--color-border); margin-top:5px; padding-top:4px; }
.studly-picker-actions button { font-size:12px; color:var(--color-accent); }
[data-picker-row]:has(.studly-time-control) { position:relative; }
[data-picker-row]>:has(.studly-time-control),[data-picker-row] .studly-time-control { position:static; }
.studly-time-panel { position:absolute; inset:calc(100% + 7px) auto auto 0; display:flex; flex-direction:column; width:min(320px,100%); height:288px; overflow:hidden; }
.studly-time-panel.studly-opens-up { inset:auto auto calc(100% + 7px) 0; }
.studly-time-panel.studly-time-end { left:auto; right:0; }
.studly-time-columns { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; flex:1; min-height:0; }
.studly-time-column { display:flex; flex-direction:column; gap:6px; min-width:0; min-height:0; }
.studly-time-column>p { margin:0; font-size:13px; font-weight:600; }
.studly-time-options { flex:1; min-height:44px; overflow-y:auto; padding-right:4px; scrollbar-gutter:stable; overscroll-behavior:contain; }
.studly-time-option { display:block; width:100%; height:44px; min-height:44px; padding:8px; border:1px solid transparent; border-radius:4px; background:transparent; color:var(--color-text); font:inherit; font-size:14px; font-variant-numeric:tabular-nums; white-space:nowrap; cursor:pointer; }
.studly-time-option:hover { background:var(--color-surface); }
.studly-time-option[aria-selected=true] { background:var(--color-accent-tint); color:var(--color-accent); border-color:currentColor; font-weight:600; }
.studly-time-panel .studly-time-apply { background:var(--color-accent); color:var(--color-on-accent); padding-inline:10px; }
.studly-time-apply:disabled { opacity:.5; cursor:default; }
@media (forced-colors:active) {
    .studly-picker-control,.studly-picker-panel { border-color:CanvasText; }
    .studly-calendar-day[aria-pressed=true],.studly-calendar-period[aria-pressed=true],.studly-time-option[aria-selected=true] { outline:2px solid Highlight; outline-offset:-2px; }
}
