.gp-date-control { position: relative; display: block; width: 100%; min-width: 0; }
.gp-date-control > input.gp-date-source { display: none !important; }
.gp-date-control > input.gp-date-visible { width: 100%; min-width: 0; padding-right: 2.5rem; }
.gp-date-toggle { position: absolute; right: .5rem; top: 50%; transform: translateY(-50%); display: inline-flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; border: 0; border-radius: .4rem; background: transparent; color: #65736b; cursor: pointer; }
.gp-date-toggle svg { width: 1.05rem; height: 1.05rem; }
.gp-date-toggle:disabled { opacity: .4; cursor: default; }
.gp-date-control input[aria-invalid=true] { outline: 1px solid #b42318; outline-offset: -1px; }
.gp-date-error { color: #b42318; font-size: .75rem; margin-top: .3rem; }
.gp-date-error:empty { display: none; }
.gp-date-popup { position: fixed; inset: auto; margin: 0; width: 18rem; max-width: calc(100vw - 16px); padding: .6rem; border: 1px solid #d5e2dc; border-radius: .85rem; background: var(--color-base-100, #f7f9f8); color: var(--color-base-content, #253c31); box-shadow: 0 6px 24px #143c2826; z-index: 10060; }
.gp-date-popup[hidden] { display: none; }
.gp-date-header { display: grid; grid-template-columns: 1.8rem 1.8rem 1fr 1.8rem 1.8rem; align-items: center; gap: .15rem; margin-bottom: .6rem; }
.gp-date-popup button { border: 0; border-radius: .4rem; background: transparent; cursor: pointer; color: inherit; font: inherit; }
.gp-date-header button { height: 1.8rem; font-size: 1.1rem; }
.gp-date-header .gp-date-month { font-size: .8rem; font-weight: 600; }
.gp-date-weekdays, .gp-date-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .12rem; }
.gp-date-weekdays { font-size: .7rem; text-align: center; color: #65736b; margin-bottom: .3rem; }
.gp-date-popup .gp-date-day { height: 2rem; font-size: .8rem; border: 1px solid transparent; transition: background .1s, color .1s; }
.gp-date-popup button:hover:not(:disabled), .gp-date-toggle:hover:not(:disabled) { background: #e0efe7; color: #156340; }
.gp-date-popup button:focus-visible, .gp-date-toggle:focus-visible { outline: 2px solid var(--color-primary, #299568); outline-offset: 1px; }
.gp-date-popup button:disabled { opacity: .3; cursor: default; }
.gp-date-popup .gp-date-muted { color: #8a958f; }
.gp-date-popup .gp-date-today { border-color: #8cb59f; }
.gp-date-popup .gp-date-selected, .gp-date-popup .gp-date-selected:hover:not(:disabled) { color: white; background: var(--color-primary, #299568); }
.gp-date-footer { display: flex; justify-content: space-between; border-top: 1px solid #d5e2dc; padding-top: .4rem; margin-top: .5rem; }
.gp-date-footer button { font-size: .75rem; padding: .35rem .6rem; color: #208357; }
.gp-date-periods { display: grid; grid-template-columns: repeat(3, 1fr); gap: .3rem; }
.gp-date-periods button { padding: .6rem .2rem; font-size: .8rem; }
.gp-date-time { display: flex; align-items: center; justify-content: space-between; gap: .5rem; font-size: .8rem; padding-top: .5rem; }
.gp-date-time input { width: 6.5rem; padding: .4rem .5rem; border: 1px solid #d5e2dc; border-radius: .4rem; background: var(--color-base-200, #eef2f0); }
@media (prefers-reduced-motion: no-preference) { .gp-date-popup:popover-open { animation: gp-date-appear .12s ease-out; } @keyframes gp-date-appear { from { opacity: 0; translate: 0 4px; } to { opacity: 1; translate: 0 0; } } }
