:root{--company-autoprevoz:#ed1d22;--company-pavlovic:#ff9f43;--company-bocac:#00adef;--company-aldemo:#e05e5e;--company-rale:#7fd9e0}.lines-info-card{margin-bottom:var(--space-4);padding:var(--space-4) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface-secondary)}.lines-info-card__header{align-items:center;gap:var(--space-3);margin-bottom:var(--space-2);display:flex}.lines-info-card__icon{--fa-display:inline-flex;--fa-width:2rem;border:1px solid var(--color-primary-border);border-radius:var(--radius-md);background:var(--color-primary-surface);width:2rem;height:2rem;color:var(--color-primary-hover);font-size:var(--font-size-base);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.lines-info-card__title{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.lines-info-card__text{margin:0 0 var(--space-3);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.operator-legend--compact{gap:var(--space-2);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));display:grid}.operator-legend--compact .legend-item{align-items:center;gap:var(--space-2);padding:var(--space-2) 0;font-size:var(--font-size-sm);color:var(--color-text-secondary);display:flex}.operator-legend--compact .operator-name{line-height:var(--line-height-tight)}.operator-legend--compact .color-box{border-radius:var(--radius-sm);flex-shrink:0;width:14px;height:14px}.autoprevoz-legend .color-box{background-color:var(--route-autoprevoz)}.pavlovic-legend .color-box{background-color:var(--route-pavlovic)}.bocac-legend .color-box{background-color:var(--route-bocac)}.aldemo-legend .color-box{background-color:var(--route-aldemo)}.rale-legend .color-box{background-color:var(--route-rale)}.lines-info-card__note{margin:var(--space-3) 0 0;font-size:var(--font-size-xs);line-height:var(--line-height-relaxed);color:var(--color-text-placeholder)}.map-disclosures{width:100%;margin:var(--space-4) 0 0;gap:var(--space-3);grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;display:grid}.map-disclosure{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);overflow:hidden}.map-disclosure__summary{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:3.25rem;padding:var(--space-3) var(--space-4);cursor:pointer;color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);list-style:none;display:flex}.map-disclosure__summary:hover{background:var(--color-surface-tertiary);color:var(--color-text-primary)}.map-disclosure__summary:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:-2px}.map-disclosure__summary::-webkit-details-marker{display:none}.map-disclosure__heading{align-items:center;gap:var(--space-3);min-width:0;display:inline-flex}.map-disclosure__icon{--fa-display:inline-flex;--fa-width:2rem;border:1px solid var(--color-primary-border);border-radius:var(--radius-md);background:var(--color-primary-surface);width:2rem;height:2rem;color:var(--color-primary-hover);font-size:var(--font-size-base);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.map-disclosure__chevron{color:var(--color-text-placeholder);transition:transform var(--transition-fast) var(--ease-out);flex-shrink:0}.map-disclosure[open] .map-disclosure__summary{border-bottom:1px solid var(--color-primary-border);background:var(--color-primary-surface);color:var(--color-primary-hover)}.map-disclosure[open] .map-disclosure__chevron{color:var(--color-primary-hover);transform:rotate(180deg)}.map-disclosure__content{padding:var(--space-3) var(--space-4) var(--space-4)}.map-disclosure .map-context__content{font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.map-disclosure .map-context__content p:last-child{margin-bottom:0}.map-help-disclosure__text{color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);margin:0}@media (width<=576px){.map-disclosures{gap:var(--space-2);grid-template-columns:1fr}.lines-info-card{padding:var(--space-4)}.operator-legend--compact{grid-template-columns:1fr}.map-disclosure__summary,.map-disclosure__content{padding:var(--space-3)}}#lines,#lines .container,#lines-info,.simplified-lines-container{overflow:visible!important}#lines>.container{max-width:calc(68.75rem + var(--layout-gutter) + var(--layout-gutter))}.lines-controls{z-index:1019;isolation:isolate;background-color:var(--color-surface-secondary);padding:var(--space-4);margin:0 0 var(--space-5);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-overlay);gap:var(--space-3);flex-direction:column;display:flex;position:sticky;top:0}.lines-list{z-index:1;gap:var(--space-2);flex-direction:column;display:flex;position:relative}.lines-list>.tab-content.active{gap:var(--space-2);flex-direction:column;display:flex}.lines-search{width:100%;position:relative}.lines-search__input{width:100%;height:var(--search-height);padding:0 var(--space-10) 0 var(--space-10);border:var(--search-border-width) solid var(--color-border);border-radius:var(--search-radius);background:var(--color-surface);color:var(--color-text-primary);font-size:var(--font-size-base);transition:border-color var(--transition-fast), box-shadow var(--transition-fast)}.lines-search__input::placeholder{color:var(--color-text-placeholder)}.lines-search__input::-webkit-search-cancel-button{appearance:none}.lines-search__input::-ms-clear{display:none}.lines-search__input:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:1px;border-color:var(--color-primary);box-shadow:var(--focus-ring-shadow)}.lines-search__icon{left:var(--space-3);color:var(--color-text-placeholder);pointer-events:none;position:absolute;top:50%;transform:translateY(-50%)}.lines-search__clear{right:var(--space-2);width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-full);color:var(--color-text-placeholder);cursor:pointer;opacity:0;visibility:hidden;transition:opacity var(--transition-fast), background-color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;transform:translateY(-50%)}.lines-search__clear.visible{opacity:1;visibility:visible}.lines-search__clear:hover{background:var(--color-surface-tertiary);color:var(--color-text-primary)}.lines-search__clear:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.lines-filter-row{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.filter-buttons{gap:var(--space-2);flex-wrap:wrap;display:flex}.filter-btn{padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast) var(--ease-out), border-color var(--transition-fast) var(--ease-out), color var(--transition-fast) var(--ease-out);white-space:nowrap}.filter-btn:hover{background:var(--color-surface-tertiary);border-color:var(--color-border-strong);color:var(--color-text-primary)}.filter-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.filter-btn.active,.filter-btn[aria-pressed=true]{background:var(--color-primary-surface);border-color:var(--color-primary-border);color:var(--color-primary-hover);font-weight:var(--font-weight-semibold);box-shadow:inset 0 -2px 0 var(--color-primary)}.lines-results-count{font-size:var(--font-size-sm);color:var(--color-text-secondary);white-space:nowrap}.lines-empty-state{text-align:center;padding:var(--space-10) var(--space-4);color:var(--color-text-secondary)}.lines-empty-state i{font-size:var(--font-size-4xl);color:var(--color-text-placeholder);margin-bottom:var(--space-4)}.lines-empty-state p{margin:0 0 var(--space-4);font-size:var(--font-size-lg)}.lines-empty-state .btn{margin-top:var(--space-2)}.line-card{--line-number-min-width:3.75rem;--line-number-height:2.5rem;--line-number-font-size:var(--font-size-lg);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--line-card-radius);padding:var(--line-card-padding);transition:box-shadow var(--transition-fast), border-color var(--transition-fast);border-left-width:var(--line-card-border-width);border-left-style:solid}.line-card:hover{box-shadow:var(--shadow-sm);border-color:var(--color-border-strong)}.line-card[hidden]{display:none}.line-card.autoprevoz-line{border-left-color:var(--route-autoprevoz)}.line-card.pavlovic-line{border-left-color:var(--route-pavlovic)}.line-card.bocac-line{border-left-color:var(--route-bocac)}.line-card.aldemo-line{border-left-color:var(--route-aldemo)}.line-card.rale-line{border-left-color:var(--route-rale)}.line-card__header{justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3);display:flex}.line-card__identity{align-items:center;gap:var(--space-3);flex:1;min-width:0;display:flex}.line-card__name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);line-height:var(--line-height-tight)}.line-card__badges{align-items:center;gap:var(--space-2);flex-shrink:0;display:flex}.badge{padding:var(--badge-padding-y) var(--badge-padding-x);border-radius:var(--badge-radius);font-size:var(--badge-font-size);font-weight:var(--font-weight-semibold);white-space:nowrap;justify-content:center;align-items:center;line-height:1;display:inline-flex}.line-card .badge--line-number{font-size:var(--line-number-font-size);font-weight:var(--font-weight-bold)}a.badge--line-number-link{cursor:pointer;transition:border-color var(--transition-fast) var(--ease-out)}a.badge--line-number-link:hover{border-color:currentColor;text-decoration:none}a.badge--line-number-link:focus-visible{text-decoration:none}.badge--group{background:var(--color-surface-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.badge--accessible,.badge--not-accessible{border-radius:var(--radius-full);width:1.75rem;height:1.75rem;padding:0}.badge--accessible{background:var(--color-success);color:var(--color-on-primary)}.badge--not-accessible{background:var(--color-surface-tertiary);color:var(--color-text-secondary);border:1px solid var(--color-border)}.line-card__meta{gap:var(--space-2) var(--space-4);margin-bottom:var(--space-3);flex-wrap:wrap;display:flex}.meta-item{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:inline-flex}.meta-item i{--fa-width:14px;color:var(--color-text-placeholder);text-align:center;width:14px}.line-card__schedule{gap:var(--space-2) var(--space-4);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3);background:var(--color-surface-tertiary);border-radius:var(--radius-md);flex-wrap:wrap;display:flex}.schedule-item{align-items:center;gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-secondary);display:inline-flex}.schedule-item i{--fa-width:14px;color:var(--color-text-placeholder);text-align:center;width:14px;font-size:var(--font-size-xs)}.schedule-item__label{color:var(--color-text-secondary)}.schedule-item strong{color:var(--color-text-primary);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.line-card__actions{align-items:center;gap:var(--space-2);flex-wrap:nowrap;display:flex}.line-card__actions .btn--primary{background:var(--color-surface);color:var(--color-primary-hover);border:1px solid var(--color-primary-border);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;align-items:center;gap:var(--space-2);transition:background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);display:inline-flex}.line-card__actions .btn--primary:hover{background:var(--color-primary-surface);border-color:var(--color-primary);color:var(--color-primary-dark)}.line-card__actions .btn--primary:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.line-card__actions .btn--secondary{color:var(--color-text-secondary);border:1px solid var(--color-border);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;align-items:center;gap:var(--space-2);transition:background-color var(--transition-fast) var(--ease-out), border-color var(--transition-fast) var(--ease-out), color var(--transition-fast) var(--ease-out);background:0 0;display:inline-flex}.line-card__actions .btn--secondary:hover{background:var(--color-surface-tertiary);border-color:var(--color-border-strong);color:var(--color-text-primary)}.line-card__actions .btn--secondary:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.line-card__actions .btn--secondary[aria-expanded=true]{background:var(--color-surface-tertiary);border-color:var(--color-border-strong);color:var(--color-text-primary)}.line-card__actions .btn--link{color:var(--color-text-link);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;align-items:center;gap:var(--space-2);transition:background-color var(--transition-fast) var(--ease-out), border-color var(--transition-fast) var(--ease-out), color var(--transition-fast) var(--ease-out);background:0 0;text-decoration:none;display:inline-flex}.line-card__actions .btn--link:hover{background:var(--color-surface-tertiary);border-color:var(--color-border-strong);color:var(--color-text-link-hover);text-decoration:none}.line-card__actions .btn--link:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.line-card__details{margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px solid var(--color-border);gap:var(--space-3);grid-template-columns:repeat(auto-fit,minmax(200px,1fr));display:grid}.line-card__details[hidden]{display:none}.detail-item{gap:var(--space-1);flex-direction:column;display:flex}.detail-item__label{font-size:var(--font-size-xs);color:var(--color-text-placeholder);text-transform:uppercase;letter-spacing:.5px}.detail-item__value{font-size:var(--font-size-sm);color:var(--color-text-primary);font-weight:var(--font-weight-medium)}.detail-item__value--accessible{color:var(--color-success)}.detail-item__value--not-accessible{color:var(--color-text-secondary)}@media (width<=767px){.lines-controls{margin-bottom:var(--space-4);padding-left:var(--space-4);padding-right:var(--space-4)}.line-card{padding:var(--space-3)}.line-card__header{align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-2);flex-direction:column}.line-card__badges{margin-top:0}.line-card__meta,.line-card__schedule{margin-bottom:var(--space-2)}.line-card__actions{flex-direction:row;align-items:stretch}.line-card__actions .btn--primary,.line-card__actions .btn--secondary{width:auto;min-width:0;min-height:var(--touch-target);padding:var(--space-2);flex:1 1 0;justify-content:center}.line-card__actions .btn--link{width:auto;min-width:var(--touch-target);min-height:var(--touch-target);padding:var(--space-2) var(--space-3);flex:none;justify-content:center}.line-card__details{grid-template-columns:1fr}.lines-filter-row{flex-direction:row;align-items:center}.filter-buttons{order:1}.lines-results-count{text-align:right;order:2;margin-left:auto}}@media (width<=480px){.line-card__actions .pdf-btn{width:var(--touch-target);padding-left:0;padding-right:0}.pdf-btn__label{display:none}}@media (width>=768px){.lines-controls{flex-flow:wrap;align-items:center}.lines-search{flex:1;min-width:250px;max-width:400px}.lines-filter-row{flex:1;justify-content:flex-end}.lines-list .line-card:not([hidden]){column-gap:var(--space-4);row-gap:var(--space-2);padding:var(--line-card-padding-lg);grid-template-rows:auto auto auto;grid-template-columns:minmax(0,1fr) auto;display:grid}.line-card__header{grid-area:1/1/auto/-1;align-items:center;margin-bottom:0}.lines-list .line-card__meta{grid-area:2/1;margin-bottom:0}.lines-list .line-card__schedule{grid-area:3/1;margin-bottom:0}.lines-list .line-card__actions{flex-wrap:nowrap;grid-area:2/2;align-self:center}.lines-list .line-card--has-schedule .line-card__actions{grid-row:3}.lines-list .line-card__details{grid-area:4/1/auto/-1}}@media (width>=1024px){.lines-search{max-width:450px}}[data-theme=dark] .badge--group{background:var(--color-surface-tertiary);border-color:var(--color-border)}#suburban-lines .timetable-btn{display:none}.lines-tabs{gap:var(--space-2);margin-bottom:var(--space-4);display:flex}.tab-btn{padding:var(--space-2) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-background);color:var(--color-text-secondary);font-weight:var(--font-weight-medium);cursor:pointer;transition:background-color var(--transition-fast) var(--ease-out), border-color var(--transition-fast) var(--ease-out), color var(--transition-fast) var(--ease-out)}.tab-btn.active{background:var(--color-surface);font-weight:var(--font-weight-semibold);box-shadow:inset 0 -2px 0 0 var(--color-primary);border-color:var(--color-border-strong);color:var(--color-text-primary)}.tab-content{display:none}.tab-content.active{display:block}.single-type-title{display:none}body.has-timetable-modal{overflow:hidden}.timetable-modal{width:min(62rem, 100vw - var(--space-8));border:1px solid var(--color-border-strong);border-radius:var(--radius-xl);background:var(--color-surface);max-width:none;max-height:min(90dvh,52rem);color:var(--color-text-primary);box-shadow:var(--shadow-overlay);margin:auto;padding:0;overflow:hidden}.timetable-modal[open]{flex-direction:column;display:flex}.timetable-modal::backdrop{backdrop-filter:blur(2px);background:#050c0b9e}.timetable-modal__header{justify-content:space-between;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-surface);flex:none;display:flex}.timetable-modal__heading{align-items:center;gap:var(--space-3);min-width:0;display:flex}.timetable-modal__icon,.timetable-modal__close{flex:none;justify-content:center;align-items:center;display:inline-flex}.timetable-modal__icon{border:1px solid var(--color-primary-border);border-radius:var(--radius-md);background:var(--color-primary-surface);width:2.25rem;height:2.25rem;color:var(--color-primary-hover)}.timetable-modal__title{font-size:var(--font-size-xl);margin:0}.timetable-modal__description{margin:var(--space-1) 0 0;color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-normal)}.timetable-modal__close{width:var(--touch-target);height:var(--touch-target);border-radius:var(--radius-full);color:var(--color-text-secondary);font-size:var(--font-size-lg)}.timetable-modal__close:hover{background:var(--color-surface-tertiary);color:var(--color-text-primary)}.timetable-modal__body{overscroll-behavior:contain;min-height:0;padding:var(--space-5);flex:auto;overflow-y:auto}.line-selector-wrapper{max-width:800px;margin:0 auto var(--space-6)}.timetable-welcome{max-width:800px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-left:3px solid var(--color-primary-border);border-radius:var(--radius-md);background:var(--color-surface-secondary);color:var(--color-text-secondary);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);margin:0 auto}#line-select{width:100%;max-width:none;min-height:var(--control-height-lg);padding:var(--space-3) var(--space-10) var(--space-3) var(--space-4);font-size:1rem;font-weight:var(--font-weight-semibold);color:var(--color-text-primary);background-color:var(--color-surface);border:1px solid var(--color-border-control);border-radius:var(--radius-control);cursor:pointer;appearance:none;transition:border-color var(--transition-fast) var(--ease-out), box-shadow var(--transition-fast) var(--ease-out);background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:right 1.25rem center,right 1rem center;background-repeat:no-repeat;background-size:5px 5px,5px 5px}#line-select:hover{border-color:var(--color-border-strong)}#line-select:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:1px;border-color:var(--color-primary);box-shadow:var(--focus-ring-shadow)}#line-select option{padding:var(--space-3);font-size:1rem}#line-select optgroup{color:var(--color-text-primary);font-weight:700}.timetable-controls{gap:var(--space-6);margin:0 auto var(--space-8);flex-direction:column;max-width:800px;display:flex}.timetable-control-row{gap:var(--space-4);flex-direction:column;display:flex}.direction-toggle,.day-toggle{gap:var(--space-2);flex-direction:column;display:flex}.direction-toggle p,.day-toggle p,.timetable-control-label{font-weight:var(--font-weight-semibold);color:var(--color-text-secondary);font-size:var(--font-size-label);text-transform:uppercase;letter-spacing:var(--tracking-label);margin:0}.direction-buttons{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);grid-template-columns:repeat(2,minmax(0,1fr));gap:3px;width:100%;padding:3px;display:grid;position:relative}.day-buttons{background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;min-width:0;padding:3px;display:grid;position:relative}.direction-btn,.day-btn{border-radius:var(--radius-md);cursor:pointer;font-size:var(--font-size-sm);transition:background-color .18s ease var(--ease-out), border-color .18s ease var(--ease-out), color .18s ease var(--ease-out);color:var(--color-text-secondary);text-align:center;white-space:nowrap;background-color:#0000;border:1px solid #0000;justify-content:center;align-items:center;min-height:40px;padding:10px 16px;font-weight:500;display:inline-flex;position:relative}.direction-btn:hover,.day-btn:hover{color:var(--color-text-primary);background-color:var(--color-surface-tertiary)}.direction-btn{white-space:normal;gap:var(--space-1);flex-direction:column;min-width:0}.day-btn{white-space:normal;overflow-wrap:anywhere;min-width:0}.direction-btn__label{color:var(--color-text-placeholder);font-size:var(--font-size-micro);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);letter-spacing:var(--tracking-label);text-transform:uppercase}.direction-btn__relation{width:100%;min-width:0;font-size:var(--font-size-meta);line-height:var(--line-height-snug)}.direction-btn.active .direction-btn__label{color:var(--color-primary-hover)}.direction-btn.active,.day-btn.active{background-color:var(--color-primary-surface);border-color:var(--color-primary-border);color:var(--color-primary-hover);font-weight:var(--font-weight-semibold);box-shadow:inset 0 -2px 0 0 var(--color-primary)}.direction-btn.active:hover,.day-btn.active:hover{background-color:var(--color-primary-surface);border-color:var(--color-primary);color:var(--color-primary-hover)}.day-btn.is-unavailable{color:var(--color-text-placeholder);border-style:dashed}.day-btn.is-unavailable:hover{background-color:var(--color-surface);color:var(--color-text-secondary)}.day-btn.is-unavailable.active,.day-btn.is-unavailable.active:hover{background-color:var(--color-warning-surface);border-color:var(--color-warning-border);color:var(--color-warning);box-shadow:inset 0 -2px 0 var(--color-warning)}.direction-btn:focus-visible,.day-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.direction-swap-btn{border:1px solid var(--color-border);background-color:var(--color-surface);border-radius:var(--radius-full);cursor:pointer;width:40px;height:40px;color:var(--color-text-primary);transition:background-color var(--transition-fast) var(--ease-out), border-color var(--transition-fast) var(--ease-out), color var(--transition-fast) var(--ease-out);flex-shrink:0;justify-content:center;align-self:center;align-items:center;margin:0 4px;padding:0;display:flex}.direction-swap-btn:hover{background-color:var(--color-surface-secondary);color:var(--color-text-primary);border-color:var(--color-border-strong);transform:rotate(180deg)}.direction-swap-btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.direction-swap-btn i{font-size:1rem}.direction-buttons-wrapper{align-items:center;gap:8px;display:flex}.timetable-notes{align-items:flex-start;gap:var(--space-3);background-color:var(--color-warning-surface);border:1px solid var(--color-warning-border);border-radius:var(--radius-card);padding:var(--space-4);margin-bottom:var(--space-6);font-size:var(--font-size-sm);line-height:var(--line-height-normal);display:flex}.notes-icon{color:var(--color-warning);font-size:var(--font-size-lg);flex-shrink:0;margin-top:1px}.notes-content{flex:1}.notes-content strong{color:var(--color-text-primary);margin-bottom:var(--space-1);font-weight:var(--font-weight-semibold);font-size:var(--font-size-label);text-transform:uppercase;letter-spacing:var(--tracking-label);display:block}.notes-content p{color:var(--color-text-primary);font-weight:var(--font-weight-normal);margin:0}.timetable-reduced-notice{align-items:center;gap:var(--space-2);background-color:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);margin:0 auto var(--space-4);font-size:var(--font-size-meta);color:var(--color-text-primary);max-width:800px;font-weight:600;display:flex}.timetable-reduced-notice[hidden]{display:none}.timetable-reduced-notice i{font-size:var(--font-size-sm);flex-shrink:0}[data-theme=dark] .timetable-reduced-notice{background-color:var(--color-surface-secondary);border-color:var(--color-primary-border);color:var(--color-text-primary)}.timetable-container{max-width:800px;margin:0 auto}.hours-minutes-table{table-layout:fixed;border-collapse:separate;border-spacing:0;background-color:var(--color-surface);border-radius:var(--radius-card);border:1px solid var(--color-border);width:100%;overflow:hidden}.hours-minutes-table thead th{background-color:var(--color-surface-secondary);color:var(--color-text-secondary);padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--font-size-label);font-weight:var(--font-weight-semibold);text-transform:uppercase;letter-spacing:var(--tracking-label);border-bottom:1px solid var(--color-border)}.hours-minutes-table thead th:first-child{text-align:center;width:80px}.hours-minutes-table tbody tr{background-color:var(--color-surface);transition:background-color var(--transition-fast)}.hours-minutes-table tbody tr:not(:last-child){border-bottom:1px solid var(--color-border)}.hours-minutes-table tbody tr.past-hour{background-color:var(--color-surface-secondary)}.hours-minutes-table tbody tr.current-hour{background-color:var(--color-primary-surface)}.hours-minutes-table tbody tr.current-hour td{border-top:1px solid var(--color-primary-border);border-bottom:1px solid var(--color-primary-border)}.hour-cell{width:80px;padding:var(--space-3);text-align:center;vertical-align:middle;background-color:var(--color-surface-secondary);color:var(--color-text-primary);font-size:var(--font-size-departure-strong);font-weight:var(--font-weight-bold);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;border-right:1px solid var(--color-border);position:relative}.hours-minutes-table tbody tr.past-hour .hour-cell{background-color:var(--color-surface-tertiary);color:var(--color-text-muted);font-weight:var(--font-weight-semibold)}.hours-minutes-table tbody tr.current-hour .hour-cell{background-color:var(--color-primary-surface);color:var(--color-primary-hover)}.hours-minutes-table tbody tr.current-hour .hour-cell:before{content:"";background-color:var(--color-primary);width:4px;position:absolute;inset:0 auto 0 0}.minutes-cell{padding:var(--space-2) var(--space-3);vertical-align:middle}.minutes-wrapper{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.minute-box{padding:var(--space-2) var(--space-3);border-radius:var(--radius-control);min-width:3rem;min-height:2.5rem;font-size:var(--font-size-departure);font-weight:var(--font-weight-semibold);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;color:var(--color-text-primary);transition:background-color var(--transition-fast) var(--ease-out), border-color var(--transition-fast) var(--ease-out), color var(--transition-fast) var(--ease-out);background-color:#0000;border:1px solid #0000;justify-content:center;align-items:center;display:inline-flex}.minute-box.past{color:var(--color-text-placeholder);font-weight:var(--font-weight-normal);background-color:#0000;border-color:#0000}.minute-box.next{background-color:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary);font-weight:var(--font-weight-bold);min-width:3.25rem;min-height:var(--touch-target)}.minute-box.upcoming{color:var(--color-text-primary);background-color:#0000;border-color:#0000}.time-note{vertical-align:super;color:var(--color-text-primary);margin-left:1px;font-size:.6em;font-weight:700;line-height:0}.minute-box.past .time-note{color:var(--color-text-placeholder)}.minute-box.next .time-note{color:var(--color-on-primary)}.timetable-note-descriptions{max-width:800px;margin:var(--space-4) auto 0;padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);gap:var(--space-1);flex-direction:column;display:flex}.timetable-note-descriptions p{font-size:var(--font-size-meta);color:var(--color-text-secondary);align-items:baseline;gap:var(--space-2);margin:0;display:flex}.time-note--legend{background-color:var(--color-surface-secondary);border:1px solid var(--color-border);min-width:16px;height:16px;font-size:var(--font-size-micro);color:var(--color-text-primary);vertical-align:baseline;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;padding:0 3px;font-weight:800;line-height:1;display:inline-flex}[data-theme=dark] .timetable-note-descriptions{border-top-color:var(--color-border)}[data-theme=dark] .time-note--legend{background-color:var(--color-surface-secondary);border-color:var(--color-primary-border);color:var(--color-text-primary)}.no-service-message{align-items:center;gap:var(--space-2);text-align:center;padding:var(--space-8) var(--space-4);border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--font-size-sm);flex-direction:column;display:flex}.no-service-message i{font-size:var(--font-size-3xl);color:var(--color-warning)}.no-service-message strong{color:var(--color-text-primary);font-size:var(--font-size-base)}.no-service-message p{margin:0}@media (width<=767px){#line-select{padding:16px 48px 16px 16px;font-size:1rem}.timetable-controls{gap:var(--space-4);margin-bottom:var(--space-6)}.direction-toggle,.day-toggle{width:100%}.direction-buttons{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.direction-btn{white-space:normal;word-break:break-word;font-size:var(--font-size-meta);min-height:44px;padding:10px 8px;line-height:1.3}.day-buttons{grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.day-btn{font-size:var(--font-size-meta);min-height:44px;padding:10px 8px}.direction-buttons-wrapper{flex-direction:column;gap:8px}.direction-swap-btn{border-radius:var(--radius-md);width:100%;height:36px;margin:0}.direction-swap-btn:hover{transform:none}.hours-minutes-table{border-radius:var(--radius-md);width:100%;margin:0}.hours-minutes-table thead th{font-size:var(--font-size-meta);padding:14px 12px}.hours-minutes-table thead th:first-child{width:60px}.hour-cell{width:60px;font-size:var(--font-size-lg);padding:14px 8px}.minutes-cell{padding:12px}.minutes-wrapper{justify-content:center;gap:10px}.minute-box{min-width:48px;min-height:48px;font-size:var(--font-size-departure);border-width:1px;padding:10px 14px}.minute-box.next{min-width:54px;min-height:54px;font-size:var(--font-size-xl);border-width:2px}.timetable-notes{padding:var(--space-3);font-size:var(--font-size-sm);margin:0 calc(var(--space-4) * -1) var(--space-4);border-left:none;border-right:none;border-radius:0}}@media (width<=480px){.direction-btn{font-size:var(--font-size-xs);min-height:40px;padding:8px 6px}.day-btn{font-size:var(--font-size-micro);min-height:40px;padding:8px 4px}.hours-minutes-table thead th:first-child,.hour-cell{width:50px}.hour-cell{font-size:var(--font-size-lg);padding:12px 6px}.minute-box{min-width:44px;min-height:44px;padding:8px 10px;font-size:1rem}.minute-box.next{min-width:50px;min-height:50px;font-size:var(--font-size-xl)}}@media (width>=768px){.timetable-controls{max-width:800px;margin:0 auto var(--space-8)}.direction-btn,.day-btn{font-size:var(--font-size-sm);min-height:42px;padding:10px 20px}.hour-cell{width:90px;font-size:var(--font-size-2xl)}.minute-box{min-width:52px;padding:10px 16px}}@media (width>=1024px){.direction-btn,.day-btn{font-size:var(--font-size-sm);padding:10px 24px}}[data-theme=dark] #line-select:focus-visible{box-shadow:0 0 0 3px var(--color-primary-border)}[data-theme=dark] .direction-buttons,[data-theme=dark] .day-buttons{background-color:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .direction-btn:hover,[data-theme=dark] .day-btn:hover{color:var(--color-text-primary);background-color:var(--color-surface-tertiary);border-color:var(--color-border)}[data-theme=dark] .direction-btn.active,[data-theme=dark] .day-btn.active{background-color:var(--color-primary-surface);border-color:var(--color-primary-border);color:var(--color-primary-hover);box-shadow:inset 0 -2px 0 0 var(--color-primary)}[data-theme=dark] .day-btn.is-unavailable.active,[data-theme=dark] .day-btn.is-unavailable.active:hover{background-color:var(--color-warning-surface);border-color:var(--color-warning-border);color:var(--color-warning);box-shadow:inset 0 -2px 0 var(--color-warning)}[data-theme=dark] .direction-swap-btn{background-color:var(--color-surface);border-color:var(--color-border);color:var(--color-text-primary)}[data-theme=dark] .timetable-notes{background-color:var(--color-warning-surface);border-color:var(--color-warning)}[data-theme=dark] .notes-content strong{color:var(--color-warning)}[data-theme=dark] .notes-content p{color:var(--color-text-secondary)}[data-theme=dark] .hours-minutes-table{background-color:var(--color-surface);border-color:var(--color-border)}[data-theme=dark] .hours-minutes-table tbody tr.current-hour td{border-color:var(--color-primary-border)}[data-theme=dark] .hours-minutes-table tbody tr.past-hour{background-color:var(--color-surface-inverse)}[data-theme=dark] .hours-minutes-table tbody tr.past-hour .hour-cell{background-color:var(--color-background)}[data-theme=dark] .minute-box{color:var(--color-text-primary);background-color:#0000;border-color:#0000}[data-theme=dark] .minute-box.past{color:var(--color-text-placeholder);background-color:#0000;border-color:#0000}[data-theme=dark] .minute-box.next{background-color:var(--color-primary);color:var(--color-on-primary);border-color:var(--color-primary);box-shadow:none}[data-theme=dark] .no-service-message{background:var(--color-surface);border-color:var(--color-border)}.visually-hidden{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.timetable-view{scroll-margin-top:100px}.hours-minutes-table tbody tr.current-hour{scroll-margin-top:120px}@media (width>=768px){.timetable-modal .line-selector-wrapper,.timetable-modal .timetable-controls{margin-bottom:var(--space-4)}.timetable-modal .timetable-control-row{gap:var(--space-3);grid-template-columns:minmax(0,1fr);display:grid}.timetable-modal .direction-btn,.timetable-modal .day-btn{min-height:2.25rem;padding:var(--space-2) var(--space-3)}.timetable-modal .direction-swap-btn{width:2.25rem;height:2.25rem}.timetable-modal .hours-minutes-table thead th{padding:var(--space-2) var(--space-3)}.timetable-modal .hours-minutes-table thead th:first-child,.timetable-modal .hour-cell{width:4rem}.timetable-modal .hour-cell{padding:var(--space-2);font-size:var(--font-size-lg)}.timetable-modal .minutes-cell{padding:var(--space-1) var(--space-3)}.timetable-modal .minutes-wrapper{gap:var(--space-1)}.timetable-modal .minute-box{min-width:2.5rem;min-height:2.125rem;padding:var(--space-1) var(--space-2);font-size:var(--font-size-md)}.timetable-modal .minute-box.next{min-width:2.75rem;min-height:2.375rem;font-size:var(--font-size-base)}}@media (width<=767px){.timetable-modal .line-selector-wrapper,.timetable-modal .timetable-controls{margin-bottom:var(--space-4)}.timetable-modal .hours-minutes-table thead th{padding:var(--space-2) var(--space-3)}.timetable-modal .hours-minutes-table thead th:first-child,.timetable-modal .hour-cell{width:3rem}.timetable-modal .hour-cell{padding:var(--space-2) var(--space-1);font-size:var(--font-size-base)}.timetable-modal .minutes-cell{padding:var(--space-1) var(--space-2)}.timetable-modal .minutes-wrapper{gap:var(--space-1);justify-content:flex-start}.timetable-modal .minute-box{min-width:2.5rem;min-height:2rem;padding:2px var(--space-2);font-size:var(--font-size-md)}.timetable-modal .minute-box.next{min-width:2.75rem;min-height:2.25rem;font-size:var(--font-size-base);border-width:1px}}@media (width<=600px){.timetable-modal{border:0;border-radius:0;width:100%;height:100dvh;max-height:none}.timetable-modal__header,.timetable-modal__body{padding:var(--space-4)}.timetable-modal__description{display:none}}
