/*
GENERIC
==============================================================================
*/

.eyal-noselect
{
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;        
}

.eyal-disabled
{
    pointer-events: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;        
    opacity: 0.5;
}

.eyal-text-ellipsis
{
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.eyal-hover
{
    opacity: 0.75;
}

.eyal-hover:hover
{
    opacity: 1;
}

.eyal-hover:active
{
    opacity: 0.75;
}

.eyal-fancy-scroll
{
    --track-width: 8px;
    --track-color: #f7f7f7;
    --thumb-color: #9c9c9c;
    --thumb-color-hover: #777777;
    --thumb-radius: 8px;
}

.eyal-fancy-scroll::-webkit-scrollbar
{
    width: var(--track-width);
    height: var(--track-width);
}

.eyal-fancy-scroll::-webkit-scrollbar-track
{
    background: var(--track-color);
}

.eyal-fancy-scroll::-webkit-scrollbar-thumb
{
    background: var(--thumb-color);
    border-radius: var(--thumb-radius);
    background-clip: padding-box;      
}

.eyal-fancy-scroll::-webkit-scrollbar-thumb:hover
{
    background: var(--thumb-color-hover);
}

.eyal-reflect
{
    -webkit-box-reflect: below 2px linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(255,255,255,0.3) 108%);    
}

.eyal-reflect-more
{
    -webkit-box-reflect: below 2px linear-gradient(180deg, rgba(0,0,0,0) 20%, rgba(255,255,255,0.3) 108%);    
}

.eyal-reflect-full
{
    -webkit-box-reflect: below 2px linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(255,255,255,0.3) 108%);    
}

.eyal-center
{
    width: 100%;
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: center;     
}

.eyal-center-top
{
    width: 100%;
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: start;         
}

.eyal-row
{
    display: flex;
    flex-flow: row wrap;
    justify-content: start;
    align-items: start;    
    gap: 1rem;
}

.eyal-row-gap-small
{
    gap: 0.3rem;
}

.eyal-row-gap-medium
{
    gap: 0.5rem;
}

.eyal-row-gap-large
{
    gap: 0.8rem;
}

.eyal-row-no-wrap
{
    display: flex;
    flex-flow: row nowrap;
    justify-content: start;
    align-items: start;    
}

.eyal-row-no-gap
{
    display: flex;
    flex-flow: row nowrap;
    justify-content: start;
    align-items: start;    
    gap: 0rem;
}

.eyal-row-spread
{
    width: 100%;    
    display: flex;
    flex-flow: row wrap;
    justify-content: space-between;
    align-items: start;    
    gap: 1rem;    
}

.eyal-row-h-center
{
    display: flex;
    flex-flow: row wrap;
    justify-content: start;
    align-items: center;
}

.eyal-row-h-bottom
{
    display: flex;
    flex-flow: row wrap;
    justify-content: start;
    align-items: end;
}

.eyal-shadow-soft
{
    -webkit-box-shadow: 0px 3px 15px 0px rgba(0,0,0,0.1); 
    box-shadow: 0px 3px 15px 0px rgba(0,0,0,0.1);
}

/*
UI
==============================================================================

UI - TABS
===================
*/

.eyal-ui-tabs-hint
{
    color: #9a9b9c;
    font-size: 1rem;
}

.eyal-ui-tabs
{
    width: 100%;
    height: 100%;    
    font-size: 1rem;

    --color-text: #000;
    --color-text-active: #007bf7;
    --color-main: #FFF;    
    --color-secondary: #e7e7e7;
    --color-bg: #f0f0f0;
    --selected-size: 3px;
    --padding-w: 20px;
    --padding-h: 10px;    
    --icon-size: 25px;
    --content-padding: 0px;
}

.eyal-ui-tabs-titles
{
    width: 100%;
    display: flex;
    flex-flow: row wrap;
    align-items: end;
    justify-items: end;
    
    background-color: var(--color-bg);
}

.eyal-ui-tabs-title
{        
    display: grid;
    grid-template-columns: auto max-content;
    grid-template-rows: auto;
    gap: 10px;
    place-items: center;
    padding: var(--padding-h) var(--padding-w) calc(var(--padding-h) - var(--selected-size)) var(--padding-w);  
    margin-top: var(--selected-size);

    transition: all ease-out 200ms;
    
    cursor: pointer;
    
    color: var(--color-text);
    font-family: 'Lato';
    font-size: 16px;
    font-weight: 400;
    background-color: var(--color-secondary);
    
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;       
}

.eyal-ui-tabs-title.eyal-ui-tabs-active
{
    color: var(--color-text-active);
    background-color: var(--color-main);
    padding: var(--padding-h) var(--padding-w);  
    margin-top: 0;    
}

.eyal-ui-tabs-title i
{
    font-size: var(--icon-size);
}

.eyal-ui-tabs-pages
{
    width: 100%;
    min-height: 100%;
    position: relative;
    max-height: 548px;  
    overflow-y: auto;  
    background-color: var(--color-main);
}

.eyal-ui-tabs-pages > div
{
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    display: none;
    padding: var(--content-padding);
}

.eyal-ui-tabs-pages > div.eyal-ui-tabs-active
{
    display: block;
}

/*
UI - COLLAPSE
===================
*/

.eyal-ui-clp
{
    padding: 0px;
}

.eyal-ui-clp-padding
{
    padding: 10px 10px 0px 10px;
}

.eyal-ui-clp-title
{
    position: relative;
    padding: 15px 40px 15px 22px;   
    background-color: #E3F2FD;
    font-weight: 700;
    
    cursor: pointer;
        
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;    
}

.eyal-ui-clp-title:hover
{
    background-color: #BBDEFB;
}

.eyal-ui-clp-title::after
{
    font-family: 'Font Awesome 5 Free';
    font-weight: 900;
    font-size: 20px;
    position: absolute;
    right: 22px;
    top: calc(50% - 10px);
    content: "\f107";
}

.eyal-ui-clp-active.eyal-ui-clp-title::after
{
    content: "\f106";
}

.eyal-ui-clp-content
{
    background-color: #FFF;    
    padding: 21px 22px; 
    border: solid 1px #BBDEFB;
    word-break: break-all;
    word-wrap: break-word;    
}

.eyal-ui-clp-content .eyal-ui-clp-section
{
    margin: 5px 0px;
}

/*
UI - CONTROLS
==============================================================================
*/

.eyal_ui_ctrls_base
{
    --font-size: 16px;
    --text-padding: 5px 8px;
    --text-weight: 600;
    --text-color: #2e2e2e;
    --text-color-lighter: #9b9b9b;
    --text-color-light: #ffffff;
    --text-hover-color: #808080;

    --gap: 0.5rem;
    --gap-less: 0.3rem;    
    --gap-more: 0.8rem;

    --border-color: #b4b4b4;
    --border-width: 1px;
    --border-radius: 10px;
    --border-radius-wrapper: 5px;

    --divider-color: #b4b4b4;
    --divider-size: 1px;

    --panel-bg-color: #e9e9e9; 
    --panel-bg-color-lighter: #f9f9f9; 
    --panel-bg-color-darker: #a5a5a5; 
    --panel-bg-color-dark: #5f5f5f;
    --panel-border-color: #cccccc; 
    --panel-padding: 0rem 0.5rem 0.4rem 0.4rem; 
    --panel-shadow: 0px 5px 10px 0px rgba(0,0,0,0.2);
    --panel-shadow-thin: 0px 3px 7px 0px rgba(0,0,0,0.3);
    --panel-shadow-strong: 0px 5px 10px 0px rgba(0,0,0,0.5);

    --status-bar-bg-color: #f7f7f7; 

    --item-color: #313131;
    --item-bg-color: #FFFFFF;

    --item-hover-color: #313131;        
    --item-hover-bg-color: #ebebeb;
    
    --item-selected-color: #313131;
    --item-selected-bg-color: #d3d3d3;

    --item-selected-hover-color: #313131;
    --item-selected-hover-bg-color: #dddddd;   
    
    --tabs-title-font-size: 1rem;
    --tabs-title-color: #000;
    --tabs-title-color-active: #007bf7;
    --tabs-title-bg: #e7e7e7;
    --tabs-title-bg-active: #FFF;
    --tabs-titles-panel-bg: #f0f0f0;    
    --tabs-title-active-offset: 3px;
    --tabs-title-padding-w: 20px;
    --tabs-title-padding-h: 10px;
    --tabs-title-icon-size: 25px;
    --tabs-content-padding: 0px;

    --color-invalid: #FFF;
    --bg-invalid: #ff0000; 

    font-size: var(--font-size);
}

.eyal_ui_ctrls_theme_blue .eyal_ui_ctrls_base
{
    --panel-bg-color-dark: #1976D2;  
}

.eyal_ui_ctrls_wrapper .eyal_ui_ctrls_control
{
    grid-area: control;
}

.eyal-theme-flat .eyal_ui_ctrls_base
{
    --border-radius: 0px;
}

.eyal_ui_ctrls_base .eyal_ui_ctrls_control_shadow
{
    -webkit-box-shadow: var(--panel-shadow); 
    box-shadow: var(--panel-shadow); 
}

.eyal_ui_ctrls_base .eyal_ui_ctrls_control_shadow_thin
{
    -webkit-box-shadow: var(--panel-shadow-thin); 
    box-shadow: var(--panel-shadow-thin); 
}

.eyal_ui_ctrls_base .eyal_ui_ctrls_control_shadow_strong
{
    -webkit-box-shadow: var(--panel-shadow-strong); 
    box-shadow: var(--panel-shadow-strong); 
}

.eyal_control_hidden
{
    display: none!important;
}

.eyal_ui_ctrls_content
{
    display: flex;
    flex-flow: row nowrap;
    justify-content: center;
    align-items: center;
    gap: 0.3rem;
}

.eyal_ui_ctrls_content_title
{
    font-size: var(--font-size);
    font-weight: var(--text-weight);    
    color: var(--text-color);
}

.eyal_ui_ctrls_content_icon
{
    font-size: 1.2rem;
    color: var(--text-color);
}

.eyal_ui_ctrls_content_image
{
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
}

/*
UI - CONTROLS - Divider
====================
*/

.eyal_ui_ctrls_divider
{
    width: 100%;    
    height: 100%;
    background-color: var(--divider-color);
    margin: var(--gap) 0px;
}

.eyal_ui_ctrls_divider.eyal_ui_ctrls_divider_nogap
{
    --gap: 0px;
}

/*
UI - CONTROLS - Panel
====================
*/

.eyal_ui_ctrls_panel
{
    --align-items: start;
    --justify-items: start;

    position: relative;
    padding: var(--panel-padding);
    border-width: var(--border-width);
    border-radius: var(--border-radius-wrapper);
    border-color: var(--border-color);
    background-color: var(--panel-bg-color);
    align-items: start;
    justify-content: start;
    margin: 0px;
}

.eyal_ui_ctrls_panel legend
{
    font-size: 0.8rem;
    color: var(--text-color);
    font-weight: var(--text-weight);
}

.eyal_ui_ctrls_panel_flex_h
{
    display: flex;
    flex-flow: row wrap;
    align-items: var(--justify-items);
    justify-content: var(--align-items);
    gap: var(--gap);
}

.eyal_ui_ctrls_panel_flex_v
{
    display: flex;
    flex-flow: column wrap;
    align-items: var(--align-items);
    justify-content: var(--justify-items);    
    gap: var(--gap);
}

.eyal_ui_ctrls_panel_tmplt_transparent
{
    background-color: transparent;    
}

/*
UI - CONTROLS - Button
====================
*/

.eyal_ui_ctrls_button
{
    cursor: pointer;    
}

.eyal_ui_ctrls_button.eyal_ui_ctrls_button_thm_flat
{
    background: none;
    border: none;
    padding: 0;
    color: var(--text-color);
}

.eyal_ui_ctrls_button.eyal_ui_ctrls_button_thm_flat:hover,
.eyal_ui_ctrls_button.eyal_ui_ctrls_button_thm_flat:hover i
{
    color: var(--text-hover-color)!important;
}

.eyal_ui_ctrls_button.eyal_ui_ctrls_button_thm_flat:active
{
    transform: scale(0.98) translateY(1px);
    color: var(--text-hover-color);
}

/*
UI - CONTROLS - Segmented Select
====================
*/


.eyal_ui_ctrls_segmented
{
    display: grid;
    width: max-content;
    min-height: 30px;
    grid-auto-columns: max-content;
    grid-auto-flow: column;
    justify-items: stretch;
    align-items: stretch;
    gap: 0;

    border: solid var(--border-width) var(--border-color);    
    border-radius: var(--border-radius);
    overflow: hidden;
}

.eyal_ui_ctrls_segmented .eyal_ui_ctrls_segmented_option
{
    display: flex;
    flex-flow: column nowrap;    
    align-items: center;
    justify-content: center;

    font-size: var(--font-size);
    font-weight: var(--text-weight);
    padding: var(--text-padding);
}

.eyal_ui_ctrls_segmented .eyal_ui_ctrls_segmented_option
{
    color: var(--item-color);
    background-color: var(--item-bg-color);

    border-right: solid var(--divider-size) var(--divider-color);
    cursor: pointer;
}

.eyal_ui_ctrls_segmented .eyal_ui_ctrls_segmented_option:hover
{
    color: var(--item-hover-color);
    background-color: var(--item-hover-bg-color);
}

.eyal_ui_ctrls_segmented .eyal_ui_ctrls_segmented_option.eyal_selected
{
    color: var(--item-selected-color);
    background-color: var(--item-selected-bg-color);
}

.eyal_ui_ctrls_segmented .eyal_ui_ctrls_segmented_option.eyal_selected:hover
{
    color: var(--item-selected-hover-color);
    background-color: var(--item-selected-hover-bg-color);
}

.eyal_ui_ctrls_segmented .eyal_ui_ctrls_segmented_option:last-child
{
    border-right: none;
}

/*
UI - CONTROLS - Status Bar
====================
*/

.eyal_ui_ctrls_status_bar
{
    --min-height: 1rem;
    --gap: 0.8rem;
    --paddingBar: 0 0.2rem;

    min-height: var(--min-height);
    background-color: var(--status-bar-bg-color);
    border-top: solid var(--border-width) var(--panel-border-color);
    padding: var(--paddingBar);

    display: grid;
    grid-template-columns: auto auto;
    grid-template-rows: 1fr;
    gap: var(--gap);
}

.eyal_ui_ctrls_status_bar_column
{
    display: flex;
    flex-flow: row nowrap;
    overflow: hidden;
    gap: var(--gap);    
    justify-content: flex-start;
    align-items: center;
}

.eyal_ui_ctrls_status_bar_left
{
    justify-content: flex-start;
}

.eyal_ui_ctrls_status_bar_right
{
    justify-content: flex-end;
}

.eyal_ui_ctrls_status_bar_control.eyal_ui_ctrls_status_bar_label
{
    font-size: 0.8rem;
    font-weight: 400;
    color: var(--color-text);   
}

.eyal_ui_ctrls_status_bar_label.eyal_label_no_wrap
{    
    white-space: nowrap;
}

.eyal_ui_ctrls_status_bar_label.eyal_label_ellipsis
{
    overflow: hidden;
    text-overflow: ellipsis;
}

/*
UI - CONTROLS - ListView
====================
*/
.eyal_ui_ctrls_listview 
{
    --columns: auto;    
    --columns-gap: 1px;
    --cell-padding: 0.1rem 0.3rem;

    background-color: var(--panel-bg-color-darker);
    outline: solid var(--border-width) var(--panel-border-color);  
    border-radius: var(--border-radius-wrapper);    
    margin: var(--border-width);
        
    height: inherit;
    max-height: inherit;
}

.eyal_ui_ctrls_listview_items
{
    position: relative;
    max-height: inherit;
    overflow: hidden;
    overflow-y: auto;

    display: grid;
    grid-template-columns: var(--columns);
    grid-template-rows: max-content;
    justify-items: stretch;
    align-items: stretch;
    gap: var(--columns-gap);

    background-color: var(--border-color);
    outline: solid var(--border-width) var(--border-color);  
    border-radius: var(--border-radius-wrapper);
    margin: var(--border-width);
}

.eyal_ui_ctrls_listview_header
{
    background-color: var(--panel-bg-color);
    padding: var(--cell-padding);
    position: sticky;
    text-transform: capitalize;
    top: 0px;
}

.eyal_ui_ctrls_listview_item_cell
{
    background-color: var(--item-bg-color);
    color: var(--item-color);
    padding: var(--cell-padding);
}

.eyal_ui_ctrls_listview_item_cell.eyal_ui_ctrls_listview_item_cell_hover
{
    background-color: var(--item-hover-bg-color);
    color: var(--item-hover-color);
}

.eyal_ui_ctrls_listview_item_cell.eyal_ui_ctrls_listview_item_cell_selected
{
    background-color: var(--item-selected-bg-color);
    color: var(--item-selected-color);
}

.eyal_ui_ctrls_listview_item_cell.eyal_ui_ctrls_listview_item_cell_hover.eyal_ui_ctrls_listview_item_cell_selected
{
    background-color: var(--item-selected-hover-bg-color);
    color: var(--item-selected-hover-color);
}

/*
UI - CONTROLS - Dropdown
====================
*/

.eyal_ui_ctrls_dropdown
{
    width: max-content;
}

/*
UI - CONTROLS - Textbox
====================
*/

.eyal_ui_ctrls_textbox
{
    width: max-content;
}

.eyal_ui_ctrls_base.eyal-invalid input[type="text"],
input[type="text"].eyal-invalid
{
    background-color: var(--bg-invalid);
    color: var(--color-invalid);
}

/*
UI - CONTROLS - Control title
====================
*/

.eyal_ui_ctrls_wrapper.eyal_ui_ctrls_title_wrapper
{
    --title-size: 0.8rem;
    --title-weight: 400;
    --gap: 0.0rem;
    --title-color: var(var(--color-text));
    --title-padding: 0px;

    width: max-content;
    display: grid;
    gap: var(--gap);

    grid-template-areas:    "title"
                            "control";    
}

.eyal_ui_ctrls_title_wrapper .eyal_ui_ctrls_title
{
    grid-area: title;
    font-size: var(--title-size);
    font-weight: var(--title-weight);
    color: var(--title-color);
    text-transform: capitalize;
    padding: var(--title-padding);
}

/*
UI - CONTROLS - Tabs
====================
*/

.eyal_ui_ctrls_tabs
{
    width: 100%;
    height: 100%;    
    font-size: var(--tabs-title-font-size);

    --color-text: var(--tabs-title-color);
    --color-text-active: var(--tabs-title-color-active);
    --color-main: var(--tabs-title-bg-active);    
    --color-secondary: var(--tabs-title-bg);
    --color-bg: var(--tabs-titles-panel-bg);
    --selected-size: var(--tabs-title-active-offset);
    --padding-w: var(--tabs-title-padding-w);
    --padding-h: var(--tabs-title-padding-h);    
    --icon-size: var(--tabs-title-icon-size);
    --content-padding: var(--tabs-content-padding);
}

.eyal_ui_ctrls_tabs_titles
{
    width: 100%;
    display: flex;
    flex-flow: row wrap;
    align-items: end;
    justify-items: end;
    
    background-color: var(--color-bg);
}

.eyal_ui_ctrls_tabs_title
{
    display: grid;
    grid-template-columns: auto max-content;
    grid-template-rows: auto;
    gap: 10px;
    place-items: center;
    padding: var(--padding-h) var(--padding-w) calc(var(--padding-h) - var(--selected-size)) var(--padding-w);  
    margin-top: var(--selected-size);

    transition: all ease-out 200ms;
    
    cursor: pointer;
    
    color: var(--color-text);
    font-family: 'Lato';
    font-size: 16px;
    font-weight: 400;
    background-color: var(--color-secondary);
    
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;     
}

.eyal_ui_ctrls_tabs_title.eyal_ui_ctrls_tabs_active
{
    color: var(--color-text-active);
    background-color: var(--color-main);
    padding: var(--padding-h) var(--padding-w);  
    margin-top: 0;      
}

.eyal_ui_ctrls_tabs_title i
{
    font-size: var(--icon-size);
}

.eyal_ui_ctrls_tabs_contents
{
    width: 100%;
    position: relative;
    background-color: var(--color-main);
}

.eyal_ui_ctrls_tabs_content
{
    width: 100%;
    display: none;
    padding: var(--content-padding);    
}

.eyal_ui_ctrls_tabs_content.eyal_ui_ctrls_tabs_active
{
    display: block;
}

/*
ICONS
==============================================================================
*/

.eyal-icon
{
    display: inline-block;
    --icon-size: 26px;
    width: var(--icon-size);
    height: var(--icon-size);
    background-size: var(--icon-size);
    background-position: center;
    background-repeat: no-repeat;
}

.eyal-icon-image
{
    background-image: url(svg/play.svg);    
}