.gare-page{display:flex;flex:1;min-height:0;position:relative}.gare-page__map{flex:1;min-width:0;position:relative}.gare-page__filter-toggle,.gare-page__list-toggle{display:none}@media(max-width:767px){.gare-page__filter-toggle,.gare-page__list-toggle{display:flex;align-items:center;justify-content:center;position:absolute;z-index:8;width:2.75rem;height:2.75rem;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-text);cursor:pointer;box-shadow:var(--shadow-md)}.gare-page__filter-toggle{top:.75rem;left:.75rem}.gare-page__list-toggle{top:.75rem;right:.75rem}.gare-page__backdrop{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:40;cursor:pointer}}.gare-page__backdrop,.gare-page__panel-toggle{display:none}@media(min-width:768px){.gare-page__panel-toggle{display:flex;align-items:center;justify-content:center;position:absolute;top:50%;transform:translateY(-50%);z-index:8;width:1.25rem;height:3rem;background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;color:var(--color-text-muted);box-shadow:var(--shadow-md);transition:background var(--transition-fast),color var(--transition-fast)}.gare-page__panel-toggle:hover{background:var(--color-surface-alt);color:var(--color-text)}.gare-page__panel-toggle--left{left:0;border-radius:0 var(--radius-md) var(--radius-md) 0;border-left:none}.gare-page__panel-toggle--right{right:0;border-radius:var(--radius-md) 0 0 var(--radius-md);border-right:none}}.filter-panel{width:17.5rem;flex-shrink:0;display:flex;flex-direction:column;background:var(--color-bg-alt);border-right:1px solid var(--color-border);overflow:hidden;z-index:1}@media(min-width:768px){.filter-panel{transition:width .22s cubic-bezier(.4,0,.2,1)}}@media(max-width:767px){.filter-panel{position:absolute;top:0;left:0;height:100%;z-index:15;width:85vw;max-width:20rem;transform:translateX(-100%);transition:transform .22s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-lg)}}.filter-panel--open{transform:translateX(0)}.filter-panel__header{padding:1rem 1rem 0;flex-shrink:0}.filter-panel__title{font-family:var(--font-mono);font-size:.625rem;text-transform:uppercase;letter-spacing:.14em;justify-content:space-between}.filter-panel__close,.filter-panel__title{color:var(--color-text-soft);display:flex;align-items:center}.filter-panel__close{justify-content:center;background:none;border:none;cursor:pointer;padding:.125rem;line-height:0}.filter-panel__close:hover{color:var(--color-text)}@media(min-width:768px){.filter-panel--desktop-collapsed{width:0}.filter-panel__close{display:flex}}.filter-panel__scroll{flex:1;overflow-y:auto;padding:1rem;scrollbar-width:thin;scrollbar-color:var(--color-border) rgba(0,0,0,0)}.filter-panel__scroll::-webkit-scrollbar{width:.4rem}.filter-panel__scroll::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}.filter-panel__section{margin-bottom:1.375rem}.filter-panel__section:last-of-type{margin-bottom:0}.filter-panel__section-label{font-family:var(--font-mono);font-size:.625rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-text-soft);margin:0 0 .625rem;display:flex;align-items:center;justify-content:space-between}.filter-panel__clear-btn{appearance:none;background:none;border:none;cursor:pointer;font-family:var(--font-mono);font-size:.625rem;color:var(--color-text-muted);padding:0;text-decoration:underline}.filter-panel__clear-btn:hover{color:var(--color-text)}.filter-panel__chips{display:flex;flex-wrap:wrap;gap:.375rem}.filter-panel__chip{flex-shrink:0;display:inline-flex;align-items:center;gap:.3125rem;padding:.3125rem .625rem;border-radius:999px;font-size:.75rem;font-weight:500;cursor:pointer;border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast);white-space:nowrap}.filter-panel__chip:hover{border-color:var(--color-primary-light);color:var(--color-text)}.filter-panel__chip--active{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-text-inverted)}.filter-panel__chip--active:hover{background:var(--color-primary-dark);border-color:var(--color-primary-dark)}.filter-panel__chip-dot{width:.5rem;height:.5rem;border-radius:50%;flex-shrink:0}.filter-panel__divider{border:none;border-top:1px solid var(--color-border);margin:0 0 1.375rem}.filter-panel__date-row{display:flex;flex-direction:column;gap:.5rem}.filter-panel__date-label{font-size:.6875rem;color:var(--color-text-soft);margin-bottom:.125rem}.filter-panel__date-input{width:100%;height:2.125rem;padding:0 .625rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font:.8125rem var(--font-sans);outline:none;transition:border-color var(--transition-fast)}.filter-panel__date-input:focus{border-color:var(--color-primary)}.filter-panel__view-toggle{display:flex;border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.filter-panel__view-btn{flex:1;padding:.375rem 0;font:500 .75rem var(--font-sans);color:var(--color-text-muted);background:var(--color-surface);border:none;cursor:pointer;transition:background var(--transition-fast),color var(--transition-fast)}.filter-panel__view-btn:not(:last-child){border-right:1px solid var(--color-border)}.filter-panel__view-btn--active{background:var(--color-primary);color:var(--color-text-inverted)}.filter-panel__view-btn:not(.filter-panel__view-btn--active):hover{background:var(--color-surface-alt);color:var(--color-text)}.filter-panel__select{width:100%;height:2.125rem;padding:0 .625rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);font:.8125rem var(--font-sans);outline:none;cursor:pointer;appearance:auto;transition:border-color var(--transition-fast)}.filter-panel__select:focus{border-color:var(--color-primary)}.map-legend{border-top:1px solid var(--color-border);overflow:hidden}.map-legend__header{display:flex;align-items:center;justify-content:space-between;padding:.625rem 1rem;font-size:.6rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);cursor:pointer;background:none;border:none;width:100%;gap:.5rem}.map-legend__header:hover{color:var(--color-text)}.map-legend__chevron{flex-shrink:0;transition:transform .15s ease}.map-legend__chevron--open{transform:rotate(180deg)}.map-legend__list{list-style:none;margin:0;padding:0 0 .5rem}.map-legend__item{display:flex;align-items:center;gap:.5rem;padding:.2rem 1rem}.map-legend__item span{font-size:.75rem;color:var(--color-text-muted);line-height:1.3}.map-legend__dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}@media(max-width:767px){.map-legend{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-md)}}.list-pane{width:17.5rem;flex-shrink:0;display:flex;flex-direction:column;background:var(--color-bg-alt);border-left:1px solid var(--color-border);overflow:hidden;z-index:1;min-height:0}@media(min-width:768px){.list-pane{transition:width .22s cubic-bezier(.4,0,.2,1)}}@media(max-width:767px){.list-pane{position:fixed;bottom:0;left:0;right:0;top:auto;height:auto;max-height:calc(100dvh - 4rem);width:100%;border-radius:1rem 1rem 0 0;border-top:1px solid var(--color-border);border-left:none;transform:translateY(100%);transition:transform .26s cubic-bezier(.4,0,.2,1),height .26s cubic-bezier(.4,0,.2,1);box-shadow:var(--shadow-lg);z-index:60}.list-pane--open{transform:translateY(0)}}@media(min-width:768px){.list-pane{height:auto!important}}.list-pane__handle{display:none;width:100%;height:1.25rem;flex-shrink:0;cursor:ns-resize;touch-action:none;align-items:center;justify-content:center}.list-pane__handle:after{content:"";display:block;width:2.5rem;height:4px;background:var(--color-border-strong,var(--color-border));border-radius:2px;margin:0 auto}@media(max-width:767px){.list-pane__handle{display:flex}}.list-pane__header{display:flex;align-items:center;justify-content:space-between;padding:.875rem 1rem .75rem;border-bottom:1px solid var(--color-border);flex-shrink:0}.list-pane__header-row{display:flex;align-items:baseline;gap:.625rem}.list-pane__title{font-family:var(--font-serif);font-size:1.25rem;font-weight:400;letter-spacing:-.01em;color:var(--color-text);margin:0}.list-pane__count{font-family:var(--font-mono);font-size:.625rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-text-soft)}.list-pane__close{display:flex;align-items:center;justify-content:center;background:none;border:none;cursor:pointer;color:var(--color-text-soft);padding:.125rem;line-height:0}.list-pane__close:hover{color:var(--color-text)}@media(min-width:768px){.list-pane--desktop-collapsed{width:0}.list-pane__close{display:flex}}.list-pane__scroll{flex:1;min-height:0;display:flex;flex-direction:column;gap:1rem;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:.75rem .875rem 1rem;scrollbar-width:thin;scrollbar-color:var(--color-border) rgba(0,0,0,0)}.list-pane__scroll::-webkit-scrollbar{width:.4rem}.list-pane__scroll::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:999px}.list-pane__empty{padding:2.5rem 1.5rem;text-align:center;color:var(--color-text-soft)}.list-pane__empty-title{font-family:var(--font-serif);font-size:1.125rem;color:var(--color-text);margin:0 0 .375rem}.list-pane__empty-sub{font-size:.8125rem;margin:0}.list-pane__skeletons{display:flex;flex-direction:column;gap:.5rem}.list-pane__skeleton{height:7.5rem;border-radius:var(--radius-md);background:linear-gradient(90deg,var(--color-border) 25%,var(--color-surface) 50%,var(--color-border) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.4s ease infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.list-pane__card-wrap{position:relative}.list-pane__card-wrap--selected .comp-card{border-left:2px solid var(--color-accent,#2d6a8f)}.list-pane__map-hint{position:absolute;top:.625rem;right:.625rem;color:var(--color-text-muted);opacity:.6;z-index:1}.list-pane__card-wrap .comp-card__body{padding-right:2rem}.list-pane__deselect{position:absolute;top:.375rem;left:.375rem;width:1.25rem;height:1.25rem;border-radius:50%;background:var(--color-surface);border:1px solid var(--color-border);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--color-text-muted);z-index:2;transition:background var(--transition-fast),color var(--transition-fast)}.list-pane__deselect:hover{background:var(--color-danger);border-color:var(--color-danger);color:#fff}.list-pane__filter-banner{display:flex;align-items:center;justify-content:space-between;padding:.4375rem .875rem;background:color-mix(in srgb,var(--color-primary) 8%,var(--color-surface));border-bottom:1px solid var(--color-border);font-size:.75rem;color:var(--color-text-muted);flex-shrink:0}.list-pane__filter-clear{display:flex;align-items:center;gap:.25rem;font:500 .6875rem var(--font-sans);color:var(--color-primary);background:none;border:none;cursor:pointer;padding:0}.list-pane__filter-clear:hover{color:var(--color-primary-dark);text-decoration:underline}.list-pane__accent-stripe{height:3px;flex-shrink:0}.list-pane__back{display:flex;align-items:center;gap:.375rem;background:none;border:none;cursor:pointer;font:500 .8125rem var(--font-sans);color:var(--color-text-muted);padding:0}.list-pane__back:hover{color:var(--color-text)}.list-pane__show-comps{width:100%;padding:.625rem 1rem;font:600 .8125rem var(--font-sans);background:var(--color-text);color:var(--color-bg);border:none;border-radius:var(--radius-md);cursor:pointer;flex-shrink:0;transition:opacity var(--transition-fast)}.list-pane__show-comps:hover{opacity:.85}.list-pane__tabs{display:flex;border-bottom:1px solid var(--color-border);flex-shrink:0}.list-pane__tab{flex:1;padding:.5625rem .5rem;font:500 .75rem var(--font-sans);color:var(--color-text-muted);background:none;cursor:pointer;border:none;border-bottom:2px solid rgba(0,0,0,0);margin-bottom:-1px;transition:color var(--transition-fast),border-color var(--transition-fast)}.list-pane__tab--active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.list-pane__tab:not(.list-pane__tab--active):hover{color:var(--color-text)}