.bus_route_info_page{min-height:100vh;background-color:#f8f9fa}.bus_route_info_container{max-width:800px;margin:0 auto;padding:1rem}.route_info_section{display:flex;flex-direction:column;gap:1rem}.route_header{background:white;padding:1rem;margin-bottom:1rem;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1)}.route_meta{display:flex;gap:0.5rem;margin-bottom:0.5rem}.city_badge,.route_type_badge{font-size:0.9rem;background-color:#487eb0;color:#FFFFFF;padding:4px 8px;border-radius:4px;font-weight:500}.route_number{font-size:1.5rem;font-weight:600;color:#212529;margin:0 0 0.25rem}.route_direction{color:#6c757d;font-size:1rem;margin:0 0 0.75rem;display:flex;align-items:center;gap:0.5rem}.route_direction i{color:#adb5bd;font-size:0.875rem}.route_actions{display:flex;gap:0.75rem;margin-top:0.5rem}.action_button{display:flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.5rem 1rem;border-radius:4px;font-size:0.875rem;font-weight:500;text-decoration:none;transition:all 0.2s ease}.dynamics_button{background-color:#f3f0ff;color:#6741d9;border:1px solid #d0bfff}.dynamics_button:hover{background-color:#e5dbff}.map_button{background-color:#e6fcf5;color:#087f5b;border:1px solid #96f2d7}.map_button:hover{background-color:#c3fae8}.route_links{margin-top:0.5rem;display:flex;gap:0.75rem}.route_link{display:inline-flex;align-items:center;justify-content:center;gap:0.5rem;padding:0.5rem 1rem;background-color:#ffffff;color:#495057;border:1px solid #adb5bd;border-radius:4px;font-size:0.875rem;font-weight:500;text-decoration:none;transition:all 0.2s ease}.route_link:hover{background-color:#e9ecef;color:#212529;border-color:#6c757d;text-decoration:none}.route_link i{color:#495057}.info_card{background:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1);overflow:hidden}.card_title{padding:0.75rem 1rem;margin:0;font-size:1rem;font-weight:600;color:#212529;border-bottom:1px solid #e9ecef}.card_content{padding:1rem}.fare_info .card_content{display:flex;flex-direction:column;gap:0.75rem}.ticket_price,.fare_buffer_zone{padding:0.75rem;background-color:#f8f9fa;border-radius:4px}.buffer_zone_title{font-weight:600;margin-bottom:0.25rem;color:#495057}.operators_info .card_content{display:flex;flex-direction:column;gap:0.75rem}.operator{padding:0.75rem;background-color:#f8f9fa;border-radius:4px;border:1px solid #e9ecef}.operator_name{font-size:0.875rem;font-weight:600;color:#212529;margin-bottom:0.5rem;display:flex;align-items:center;gap:0.5rem}.operator_contact{display:flex;flex-wrap:wrap;gap:0.75rem}.operator_phone,.operator_url{display:flex;align-items:center;gap:0.5rem;color:#495057;text-decoration:none;font-size:0.875rem;padding:0.25rem 0.5rem;background-color:white;border:1px solid #e9ecef;border-radius:4px;transition:all 0.2s ease}.operator_phone:hover,.operator_url:hover{background-color:#f1f3f5;color:#0d6efd;text-decoration:none}.operator_phone i,.operator_url i{color:#0d6efd}.bus_first_last_trips .card_content{display:flex;flex-direction:column;gap:1rem}.direction_trips{background-color:#f8f9fa;border-radius:4px;padding:0.75rem}.direction_header{margin-bottom:0.75rem}.direction_title{font-size:1rem;font-weight:600;color:#212529;margin:0}.weekday_tabs{display:flex;flex-wrap:wrap;gap:0.5rem;margin-bottom:0.75rem}.tab_button{padding:0.25rem 0.5rem;background-color:white;border:1px solid #e9ecef;border-radius:4px;font-size:0.875rem;cursor:pointer;transition:all 0.2s ease}.tab_button:hover{background-color:#f1f3f5}.tab_button.active{background-color:#0d6efd;color:white;border-color:#0d6efd}.trip_times{display:flex;flex-direction:column;gap:0.5rem}.trip_time_block{display:flex;justify-content:space-between;padding:0.5rem;background-color:white;border-radius:4px;border:1px solid #e9ecef}.time_item{display:flex;flex-direction:column;align-items:center}.time_label{font-size:0.75rem;color:#6c757d;margin-bottom:0.25rem}.time_value{font-size:1rem;font-weight:600;color:#212529}.bus_schedule_frequencies .card_content{display:flex;flex-direction:column;gap:1rem}.direction_frequencies{background-color:#f8f9fa;border-radius:4px;padding:0.75rem}.frequency_blocks{display:flex;flex-direction:column;gap:0.5rem;margin-top:0.75rem}.frequency_block{padding:0.75rem;background-color:white;border-radius:4px;border:1px solid #e9ecef;transition:all 0.2s ease;margin-bottom:0.6rem}.frequency_block.current{border-color:#1971c2;box-shadow:0 0 0 2px rgba(25,113,194,0.1);background-color:#e7f5ff}.time_range{font-size:0.875rem;font-weight:600;color:#212529;margin-bottom:0.25rem}.headway{font-size:0.875rem;color:#6c757d}.bus_schedule_timetables .card_content{display:flex;flex-direction:column;gap:1rem}.timetable_direction{background-color:#f8f9fa;border-radius:4px;padding:0.75rem}.stop_selector{margin:0.75rem 0;display:flex;align-items:center;gap:0.5rem}.stop_label{font-size:0.875rem;color:#495057;white-space:nowrap}.stop_select{width:100%;padding:0.5rem;border:1px solid #e9ecef;border-radius:4px;font-size:0.875rem;background-color:white}.schedule_timetable_day_block{display:flex;flex-direction:column}.stop_name_display{margin-bottom:0.75rem}.stop_name_title{font-size:1rem;font-weight:600;color:#212529;margin:0;padding:0.5rem 0;border-bottom:2px solid #0d6efd}.timetable_times{display:flex;flex-wrap:wrap}.departure_time{padding:0.25rem 0.5rem;background-color:white;border-radius:4px;font-size:0.875rem;color:#495057;border:1px solid #e9ecef;transition:all 0.2s ease;margin-right:0.6rem;margin-bottom:0.6rem}.departure_time.coming_soon{border-color:#1971c2;box-shadow:0 0 0 2px rgba(25,113,194,0.1);background-color:#e7f5ff;font-weight:600}.daily_timetables .card_content{display:flex;flex-direction:column;gap:1rem}.no_data{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;background-color:white;border-radius:8px;box-shadow:0 1px 3px rgba(0,0,0,0.1);color:#6c757d}.no_data i{font-size:2rem;margin-bottom:0.75rem;color:#adb5bd}.no_data p{font-size:1rem;margin:0}.bus_schedule_timetable{display:flex;flex-wrap:wrap}@media (max-width:768px){.bus_route_info_container{padding:0.5rem}.route_number{font-size:1.25rem}.route_direction{font-size:0.875rem}.weekday_tabs{overflow-x:auto;padding-bottom:0.5rem}.trip_time_block{flex-direction:column;gap:0.5rem}.time_item{width:100%;flex-direction:row;justify-content:space-between}.time_label{margin-bottom:0}}