/* Calendar composition follows Arbor's native-date/local-noon pattern, using
   FastPaws control tokens and a single focused boundary. */
.fp-date{display:inline-block;position:relative;width:100%;min-width:0;vertical-align:middle}
.fp-date__native{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;opacity:0!important;pointer-events:none!important;overflow:hidden!important}
.fp-date__input{box-sizing:border-box;width:100%;min-height:var(--control-height);padding-inline-end:calc(var(--control-height) + var(--space-2));font-variant-numeric:tabular-nums}
.fp-date__button{position:absolute;inset-block-start:0;inset-inline-end:0;display:flex;align-items:center;justify-content:center;width:var(--control-height);height:var(--control-height);border:1px solid transparent;border-radius:var(--control-radius);color:var(--color-text-secondary);background:transparent;cursor:pointer}
.fp-date__button:focus-visible{outline:none;box-shadow:none;border-color:transparent;color:var(--control-focus)}
.fp-date:has(>.fp-date__button:focus-visible)>.fp-date__input{border-color:var(--control-focus)}
.fp-date__button:hover:not(:disabled){color:var(--color-primary)}.fp-date__button:disabled{opacity:var(--disabled-opacity);cursor:not-allowed}
.fp-date__error{display:block}.fp-date__error[hidden],.fp-date__layer[hidden]{display:none!important}
.fp-date__layer{position:fixed;inset:0;z-index:var(--select-popup-z);pointer-events:none}
.fp-date__popup{box-sizing:border-box;position:fixed;width:calc(var(--control-height) * 7 + var(--space-8) + 2px);max-width:calc(100vw - var(--space-6));max-height:calc(100dvh - var(--space-6));overflow:auto;padding:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-table);background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-floating);pointer-events:auto;font-size:var(--font-size-control);line-height:var(--line-height-control)}
.fp-date__head{display:flex;align-items:center;gap:var(--space-1);margin-block-end:var(--space-3)}
.fp-date__titles{display:flex;justify-content:center;flex:1;min-width:0}.fp-date__title{font-weight:var(--font-weight-label)}
.fp-date__cell{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:var(--control-height);padding:var(--space-1);border:1px solid transparent;border-radius:var(--control-radius);background:transparent;color:inherit;font:inherit;cursor:pointer;font-variant-numeric:tabular-nums}
.fp-date__nav{width:var(--control-height);font-size:var(--font-size-body);flex:none}.fp-date__cell:focus-visible{outline:none;box-shadow:none;border-color:var(--control-focus)}
.fp-date__cell:hover:not(:disabled):not([aria-pressed=true]){background:var(--color-surface-hover)}
.fp-date__cell:disabled{color:var(--color-text-muted);text-decoration:line-through;cursor:not-allowed}
.fp-date__weekdays,.fp-date__week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.fp-date__weekdays span{text-align:center;padding-block:var(--space-2);font-size:var(--font-size-caption);color:var(--color-text-muted)}
.fp-date__week>span{min-width:0}.fp-date__day{position:relative;width:100%}.fp-date__day.is-outside{color:var(--color-text-muted)}
.fp-date__day.is-today::after{content:'';position:absolute;inset-inline-start:50%;inset-block-end:var(--space-1);width:var(--space-1);height:var(--space-1);border-radius:var(--radius-pill);background:var(--color-primary);transform:translateX(-50%)}
.fp-date__cell[aria-pressed=true]{background:var(--color-primary);color:var(--color-on-primary);font-weight:var(--font-weight-label)}
.fp-date__cell[aria-pressed=true]:focus-visible{border-color:var(--color-on-primary)}
.fp-date__day.is-today[aria-pressed=true]::after{background:var(--color-on-primary)}
.fp-date__grid--pick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-2)}
.fp-date__foot{display:flex;flex-wrap:wrap;gap:var(--space-2);justify-content:space-between;border-block-start:1px solid var(--color-border);padding-block-start:var(--space-3);margin-block-start:var(--space-3)}
.fp-date__announcement{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.fp-date__layer--sheet{display:flex;align-items:flex-end;justify-content:center;background:var(--shadow-scrim);pointer-events:auto}
.fp-date__layer--sheet .fp-date__popup{position:static;width:100%;max-width:none;max-height:90dvh;border-radius:var(--radius-table) var(--radius-table) 0 0;padding-block-end:max(var(--space-4),env(safe-area-inset-bottom));border-inline:0;border-block-end:0}
.fp-date__layer--sheet .fp-date__popup>div{max-width:calc(var(--control-height) * 7 + var(--space-8));margin-inline:auto}
@media(forced-colors:active){.fp-date__cell[aria-pressed=true]{background:Highlight;color:HighlightText}.fp-date__cell:focus-visible{border-color:Highlight}}

.fp-date__title{gap:var(--space-1)}
.fp-date__title::after,.fp-date__nav::after{content:'';flex:none;width:var(--control-icon-size);height:var(--control-icon-size);background:currentColor;clip-path:polygon(20% 35%,50% 65%,80% 35%,88% 43%,50% 81%,12% 43%)}
.fp-date__title[aria-expanded=true]::after{transform:rotate(180deg)}
.fp-date__nav{font-size:0}.fp-date__nav:first-child::after{transform:rotate(90deg)}.fp-date__nav:last-child::after{transform:rotate(-90deg)}
/* Time is a text/spin composition inside the same layer, never a native popup. */
.fp-date__time{display:grid;gap:var(--space-2);padding-block:var(--space-3);border-block-start:1px solid var(--color-border)}
.fp-date__popup--time .fp-date__time{padding-block-start:0;border-block-start:0}
.fp-date__time-part{display:grid;grid-template-columns:5rem minmax(0,1fr);align-items:center;gap:var(--space-2);min-width:0}
.fp-date__time-label{font-size:var(--font-size-control);color:var(--color-text-secondary)}
.fp-date__time-controls{display:flex;align-items:center;gap:var(--space-2);min-width:0}
.fp-date__time-input{min-width:calc(3ch + var(--control-padding-x) * 2 + 2px);width:100%;font-size:var(--font-size-touch);text-align:center;font-variant-numeric:tabular-nums}
.fp-date__spin{width:var(--control-height);flex:none}.fp-date__spin::after{content:'';width:var(--control-icon-size);height:var(--control-icon-size);background:currentColor;clip-path:polygon(20% 35%,50% 65%,80% 35%,88% 43%,50% 81%,12% 43%);transform:rotate(180deg)}.fp-date__spin--down::after{transform:none}
.fp-date__apply{background:var(--color-primary);color:var(--color-on-primary);font-weight:var(--font-weight-label)}.fp-date__apply:focus-visible{border-color:var(--color-on-primary)}
.fp-date__popup-error{flex-basis:100%;margin:0}.fp-date__popup-error[hidden]{display:none!important}

.fp-date__time-input[data-time-part=seconds]{min-width:calc(6ch + var(--control-padding-x) * 2 + 2px)}
