<?xml version="1.0" encoding="utf-8"?>
<!--
     Copyright (C) 2014 The Android Open Source Project

     Licensed under the Apache License, Version 2.0 (the "License");
     you may not use this file except in compliance with the License.
     You may obtain a copy of the License at

          http://www.apache.org/licenses/LICENSE-2.0

     Unless required by applicable law or agreed to in writing, software
     distributed under the License is distributed on an "AS IS" BASIS,
     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     See the License for the specific language governing permissions and
     limitations under the License.
-->

<resources xmlns:android="http://schemas.android.com/apk/res/android">
    <color name="lb_grey">#888888</color>

    <color name="lb_browse_title_color">#EEEEEE</color>
    <color name="lb_browse_header_color">#FFFFFF</color>

    <color name="lb_list_item_unselected_text_color">#FFF1F1F1</color>
    <color name="lb_background_protection">#99000000</color>

    <color name="lb_view_dim_mask_color">#000000</color>

    <color name="lb_details_overview_bg_color">#1B1B1B</color>
    <color name="lb_details_description_color">#EEEEEE</color>
    <color name="lb_details_description_body_color">#B2EEEEEE</color>

    <color name="lb_error_background_color_opaque">#262626</color>
    <color name="lb_error_background_color_translucent">#E6000000</color>
    <color name="lb_error_message">#80EEEEEE</color>

    <color name="lb_action_text_color">#EEEEEE</color>

    <color name="lb_search_bar_text">#80EEEEEE</color>
    <color name="lb_search_bar_text_speech_mode">#FF444444</color>
    <color name="lb_search_bar_hint">#FF888888</color>
    <color name="lb_search_bar_hint_speech_mode">#66222222</color>

    <color name="lb_speech_orb_not_recording">#CCCCCC</color>
    <color name="lb_speech_orb_not_recording_pulsed">#EEEEEE</color>
    <color name="lb_speech_orb_recording">#ff4343</color>
    <color name="lb_speech_orb_not_recording_icon">#555555</color>

    <color name="lb_basic_card_bg_color">#FF3B3B3B</color>
    <color name="lb_basic_card_info_bg_color">#FF3B3B3B</color>
    <color name="lb_basic_card_title_text_color">#FFEEEEEE</color>
    <color name="lb_basic_card_content_text_color">#99EEEEEE</color>

    <color name="lb_default_brand_color">#FF455A64</color>
    <color name="lb_default_search_color">#FFFFAA3F</color>

    <color name="lb_control_button_color">#66EEEEEE</color>
    <color name="lb_control_button_text">#EEEEEE</color>
    <color name="lb_playback_progress_color_no_theme">#ff40c4ff</color>
    <color name="lb_playback_icon_highlight_no_theme">#ff40c4ff</color>
    <color name="lb_playback_secondary_progress_color">#33FFFFFF</color>
    <color name="lb_playback_background_progress_color">#19FFFFFF</color>
    <color name="lb_playback_controls_background_light">#80000000</color>
    <color name="lb_playback_controls_background_dark">#c0000000</color>
    <color name="lb_playback_controls_time_text_color">#B2EEEEEE</color>

    <color name="lb_search_plate_hint_text_color">#FFCCCCCC</color>
</resources>
