.filter-panel{background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-card);width:100%;max-width:760px;box-shadow:var(--shadow-card);transform-origin:top;animation:filter-panel-in var(--dur-base) var(--ease-out);flex-direction:column;margin-inline:auto;display:flex;overflow:hidden}@keyframes filter-panel-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:none}}.filter-panel.is-closing{animation:filter-panel-out .16s var(--ease-std) forwards}@keyframes filter-panel-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(-8px)}}.filter-panel__head{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-5) var(--space-6);border-block-end:1px solid var(--border-hairline);display:flex}.filter-panel__title{font-size:var(--fs-h3);font-weight:var(--fw-bold);color:var(--text-strong)}.filter-panel__close{border-radius:var(--radius-pill);background:var(--surface-sunken);width:40px;height:40px;color:var(--text-muted);cursor:pointer;transition:background var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);border:none;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.filter-panel__close:hover{background:var(--border-strong);color:var(--text-strong)}.filter-panel__close:active{transform:scale(.92)}.filter-panel__body{padding:var(--space-6);gap:var(--gap-section);flex-direction:column;display:flex}.filter-step{gap:var(--gap-label);flex-direction:column;display:flex}.filter-step__label{font-size:var(--fs-label);font-weight:var(--fw-bold);color:var(--text-strong)}.filter-step--dates{border-block-start:1px solid var(--border-hairline);animation:filter-step-in var(--dur-base) var(--ease-out);padding-block-start:var(--space-5)}@keyframes filter-step-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}.filter-packages{gap:var(--space-3);grid-template-columns:1fr;display:grid}.filter-package{align-items:center;gap:var(--space-3);min-height:64px;padding:var(--gap-card);background:var(--surface-card);border:1.5px solid var(--border-hairline);border-radius:var(--radius-control);cursor:pointer;text-align:start;transition:border-color var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out);font-family:inherit;display:flex}.filter-package:hover{border-color:color-mix(in srgb, var(--accent) 45%, var(--border-hairline))}.filter-package.is-active{border-color:var(--accent);background:var(--accent-soft)}.filter-package__icon{border-radius:var(--radius-pill);background:var(--accent-soft);width:38px;height:38px;color:var(--accent-strong);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.filter-package.is-active .filter-package__icon{background:var(--white)}.filter-package__text{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.filter-package__label{font-size:var(--fs-body);font-weight:var(--fw-bold);color:var(--text-strong);line-height:var(--lh-ui)}.filter-package__desc{font-size:var(--fs-caption);color:var(--text-muted);line-height:var(--lh-ui)}.filter-package__check{width:18px;color:var(--accent-strong);flex-shrink:0;justify-content:center;align-items:center;margin-inline-start:auto;display:inline-flex}.filter-package.is-collapsed .filter-package__check{color:var(--text-muted)}.filter-package.is-collapsed:hover .filter-package__check{color:var(--accent-strong)}.filter-calendar{gap:var(--gap-label);flex-direction:column;width:100%;max-width:340px;margin-inline:auto;display:flex}.filter-calendar .filter-step__label{margin-block-start:var(--space-1)}.filter-weekdays,.filter-days{gap:var(--space-1);grid-template-columns:repeat(7,1fr);display:grid}.filter-weekday{text-align:center;font-size:10px;font-weight:var(--fw-bold);color:var(--text-muted);text-transform:uppercase;letter-spacing:.02em;padding-block:var(--space-1)}.filter-day{aspect-ratio:1;border:1px solid var(--border-hairline);border-radius:var(--radius-control);background:var(--surface-card);color:var(--text-strong);font-family:inherit;font-size:var(--fs-label);font-weight:var(--fw-medium);cursor:pointer;transition:background var(--dur-fast) var(--ease-out), color var(--dur-fast) var(--ease-out), border-color var(--dur-fast) var(--ease-out);justify-content:center;align-items:center;display:inline-flex;position:relative}.filter-day:hover:not(:disabled){border-color:var(--accent);color:var(--accent-strong);background:var(--accent-soft)}.filter-day.is-out{color:var(--text-muted);opacity:.5}.filter-day.is-today:not(.is-selected){border-color:var(--accent);color:var(--accent-strong);font-weight:var(--fw-bold)}.filter-day.is-today:not(.is-selected):after{content:"";border-radius:var(--radius-pill);background:var(--accent);width:4px;height:4px;position:absolute;inset-block-end:4px;inset-inline-start:50%;transform:translate(-50%)}.filter-day.is-selected{background:var(--accent-strong);color:var(--text-inverse);border-color:var(--accent-strong);font-weight:var(--fw-bold)}.filter-day.is-crossed,.filter-day.is-past{background:var(--negative-bg);color:var(--negative);border-color:color-mix(in srgb, var(--negative) 22%, transparent);cursor:not-allowed;text-decoration:none}.filter-day.is-past{opacity:.65}.filter-day:disabled{pointer-events:none}.filter-legend{justify-content:center;gap:var(--space-2) var(--space-4);flex-wrap:wrap;padding-block-start:var(--space-1);display:flex}.filter-legend__item{align-items:center;gap:var(--space-2);font-size:var(--fs-caption);color:var(--text-muted);display:inline-flex}.filter-legend__swatch{border-radius:4px;flex-shrink:0;width:13px;height:13px}.filter-legend__swatch--available{background:var(--surface-card);border:1px solid var(--border-strong)}.filter-legend__swatch--reserved{background:var(--negative-bg);border:1px solid var(--negative)}.filter-legend__swatch--selected{background:var(--accent-strong)}.filter-hint{font-size:var(--fs-caption);color:var(--text-muted);text-align:center;padding-block-start:var(--space-1)}.filter-panel__foot{justify-content:flex-end;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-block-start:1px solid var(--border-hairline);display:flex}.filter-reset,.filter-apply{height:48px;padding-inline:var(--space-6);border-radius:var(--radius-control);font-family:inherit;font-weight:var(--fw-bold);font-size:var(--fs-body);cursor:pointer}.filter-reset{border:1px solid var(--border-hairline);background:var(--surface-card);color:var(--text-strong);transition:border-color var(--dur-base) var(--ease-out), background var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out)}.filter-reset:hover:not(:disabled){border-color:var(--text-muted);background:var(--surface-sunken)}.filter-reset:active:not(:disabled){transform:scale(.97)}.filter-reset:disabled{opacity:.4;cursor:default}.filter-apply{background:var(--action-primary);min-width:150px;color:var(--text-inverse);transition:background var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);border:none}.filter-apply:hover:not(:disabled){background:var(--action-primary-hover);transform:translateY(-1px)}.filter-apply:active:not(:disabled){transform:translateY(0)scale(.99)}.filter-apply:disabled{opacity:.4;cursor:default}.filter-package:focus-visible,.filter-day:focus-visible,.filter-reset:focus-visible,.filter-apply:focus-visible,.filter-panel__close:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.filter-day:focus-visible{z-index:1}@media (min-width:768px){.filter-panel{max-width:400px;transition:max-width var(--dur-slow) var(--ease-out);margin-inline:0 auto}.filter-panel.has-dates{max-width:860px}.filter-panel.has-dates .filter-panel__body{gap:var(--space-6);grid-template-columns:300px minmax(340px,1fr);align-items:start;display:grid}.filter-panel.has-dates .filter-step--dates{border-block-start:none;border-inline-start:1px solid var(--border-hairline);padding-block-start:0;padding-inline-start:var(--space-6);animation:none}.filter-panel.has-dates .filter-calendar{max-width:none;margin-inline:0}}@media (max-width:639px){.filter-panel__head,.filter-panel__body,.filter-panel__foot{padding-inline:var(--space-6)}.filter-panel__foot{justify-content:center}.filter-apply{min-width:0}}@media (prefers-reduced-motion:reduce){.filter-panel{animation:none}.filter-apply:hover:not(:disabled){transform:none}}
