@import "vendor/rfs";
@import "mixins/deprecate";
@import "mixins/breakpoints";
@import "mixins/hover";
@import "mixins/image";
@import "mixins/badge";
@import "mixins/resize";
@import "mixins/screen-reader";
@import "mixins/size";
@import "mixins/reset-text";
@import "mixins/text-emphasis";
@import "mixins/text-hide";
@import "mixins/text-truncate";
@import "mixins/visibility";
@import "mixins/alert";
@import "mixins/buttons";
@import "mixins/caret";
@import "mixins/pagination";
@import "mixins/lists";
@import "mixins/list-group";
@import "mixins/nav-divider";
@import "mixins/forms";
@import "mixins/table-row";
@import "mixins/background-variant";
@import "mixins/border-radius";
@import "mixins/box-shadow";
@import "mixins/gradients";
@import "mixins/transition";
@import "mixins/clearfix";
@import "mixins/grid-framework";
@import "mixins/grid";
@import "mixins/float";
@import "functions";
@import "variables";
@import "mixins";
@import "root";
@import "reboot";
@import "type";
@import "images";
@import "code";
@import "grid";
@import "tables";
@import "forms";
@import "buttons";
@import "transitions";
@import "dropdown";
@import "button-group";
@import "input-group";
@import "custom-forms";
@import "nav";
@import "navbar";
@import "card";
@import "breadcrumb";
@import "pagination";
@import "badge";
@import "jumbotron";
@import "alert";
@import "progress";
@import "media";
@import "list-group";
@import "close";
@import "toasts";
@import "modal";
@import "tooltip";
@import "popover";
@import "carousel";
@import "spinners";
@import "utilities";
@import "print";
@import url("https://fonts.googleapis.com/css?family=#
@import url(https://fonts.googleapis.com/css?family=Montserrat);

/* /web/static/lib/bootstrap/scss/_functions.scss defined in bundle 'web.assets_frontend' */
// Bootstrap functions // // Utility mixins and functions for evaluating source code across our variables, maps, and mixins. // Ascending // Used to evaluate Sass maps like our grid breakpoints. @mixin _assert-ascending($map, $map-name){$prev-key: null; $prev-num: null; @each $key, $num in $map{@if $prev-num == null or unit($num) == "%"{// Do nothing}@else if not comparable($prev-num, $num){@warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num}whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";}@else if $prev-num >= $num{@warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num}which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";}$prev-key: $key; $prev-num: $num;}}// Starts at zero // Used to ensure the min-width of the lowest breakpoint starts at 0. @mixin _assert-starts-at-zero($map, $map-name: "$grid-breakpoints"){$values: map-values($map); $first-value: nth($values, 1); @if $first-value != 0{@warn "First breakpoint in #{$map-name}must start at 0, but starts at #{$first-value}.";}}// Replace `$search` with `$replace` in `$string` // Used on our SVG icon backgrounds for custom forms. // // @author Hugo Giraudel // @param{String}$string - Initial string // @param{String}$search - Substring to replace // @param{String}$replace ('') - New value // @return{String}- Updated string @function str-replace($string, $search, $replace: ""){$index: str-index($string, $search); @if $index{@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);}@return $string;}// Color contrast @function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light){$r: red($color); $g: green($color); $b: blue($color); $yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000; @if ($yiq >= $yiq-contrasted-threshold){@return $dark;}@else{@return $light;}}// Retrieve color Sass maps @function color($key: "blue"){@return map-get($colors, $key);}@function theme-color($key: "primary"){@return map-get($theme-colors, $key);}@function gray($key: "100"){@return map-get($grays, $key);}// Request a theme color level @function theme-color-level($color-name: "primary", $level: 0){$color: theme-color($color-name); $color-base: if($level > 0, $black, $white); $level: abs($level); @return mix($color-base, $color, $level * $theme-color-interval);}

/* /web/static/lib/bootstrap/scss/_mixins.scss defined in bundle 'web.assets_frontend' */
// Toggles // // Used in conjunction with global variables to enable certain theme features. // Vendor  // Deprecate  // Utilities             // // Components          // // Skins      // // Layout     

/* /web/static/src/scss/bs_mixins_overrides.scss defined in bundle 'web.assets_frontend' */
//------------------------------------------------------------------------------ // Bootstrap Mixins and Functions Extensions // Those will affect the way bootstrap is generated wherever bootstrap is used //------------------------------------------------------------------------------ // This variable must be defined here instead of bootstrap overridden files // otherwise we will have deprecation messages for assets_common generation $enable-deprecation-messages: false !default; // Override color-yiq function to handle the alpha component of colors and // automatic threshold @function color-yiq($color, $dark: $yiq-text-dark, $light: $yiq-text-light, $background: $body-bg, $cross-mix: true){$threshold: if($yiq-contrasted-threshold != false, $yiq-contrasted-threshold / 255 * 100%, false); @return o-get-most-contrast($color, $light, $dark, $background, $threshold, $cross-mix);}@mixin o-bg-color($color, $text-color: null, $with-muted: true){@if ($color){$-yiq-color: if($text-color, $text-color, color-yiq($color)); background-color: $color !important; color: $-yiq-color; // not important so that text utilities still work @if ($with-muted){.text-muted{color: rgba($-yiq-color, 0.4) !important;}}@include o-bg-color-extension($color, $text-color, $with-muted);}}// Override background utilities so that they come with a default contrasted // color (especially useful in the frontend editor for example). Also modifies // the way .text-muted elements are rendered in those environments. @mixin bg-variant($parent, $color, $text-color: null){#{$parent}{@include o-bg-color($color, $text-color);}a#{$parent}, button#{$parent}{@include hover-focus{@include o-bg-color(darken($color, 10%), $text-color, false);}}}@mixin bg-gradient-variant($parent, $color, $text-color: null){#{$parent}{@include o-bg-color($color, $text-color); background-image: linear-gradient(180deg, mix($body-bg, $color, 15%), $color) !important; background-repeat: repeat-x !important;}}

/* /web/static/src/scss/utils.scss defined in bundle 'web.assets_frontend' */
/// /// This file regroups the odoo mixins. They are available in every asset bundle. /// // ------------------------------------------------------------------ // Caret // ------------------------------------------------------------------ @mixin utils-caret-boilerplate{content: ""; display: inline-block; width: 0; height: 0; vertical-align: middle;}// ------------------------------------------------------------------ // Position absolute // ------------------------------------------------------------------ @mixin o-position-absolute($top: auto, $right: auto, $bottom: auto, $left: auto){position: absolute; top: $top; left: $left; bottom: $bottom; right: $right;}// ------------------------------------------------------------------ // Position sticky // ------------------------------------------------------------------ @mixin o-position-sticky($top: auto, $right: auto, $bottom: auto, $left: auto){position: -webkit-sticky; position: sticky; top: $top; left: $left; bottom: $bottom; right: $right;}// ------------------------------------------------------------------ // Text overflow // ------------------------------------------------------------------ @mixin o-text-overflow($display: inline-block, $max-width: 100%){display: $display; max-width: $max-width; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; vertical-align: top; // To update display context changed by overflow:hidden}// ------------------------------------------------------------------ // Hovering effects // ------------------------------------------------------------------ @mixin o-hover-opacity($default-opacity: 0.5, $hover-opacity: 1){opacity: $default-opacity; &:hover, &:focus, &.focus{opacity: $hover-opacity;}}//------------------------------------------------------------------------------ // Colors //------------------------------------------------------------------------------ @function luma($color){@return ((red($color) * .299) + (green($color) * .587) + (blue($color) * .114)) / 255 * 100%;}// // Given two colors, returns the one which has the most constrast with another // given color. Careful: if you want to find the text color which will suit the // most on a given background color, you should use the 'color-yiq' function. // @function o-get-most-contrast($color, $c1, $c2, $background: #FFFFFF, $threshold: false, $cross-mix: true){$background: if($background == null, #FFFFFF, $background); $real-color: mix(rgba($color, 1.0), $background, percentage(alpha($color))); $luma: luma($real-color); $cross-color: if($cross-mix, $real-color, $background); $real-c1: mix(rgba($c1, 1.0), $cross-color, percentage(alpha($c1))); $luma-c1: luma($real-c1); $real-c2: mix(rgba($c2, 1.0), $cross-color, percentage(alpha($c2))); $luma-c2: luma($real-c2); $-dark: if($luma-c1 <= $luma-c2, $c1, $c2); $-light: if($luma-c1 > $luma-c2, $c1, $c2); @if $threshold == false{// Automatic threshold: give a really small preference to light results // as bootstrap does by default (mainly by compatibility at the moment // this code is written) $threshold: ($luma-c1 + $luma-c2) * 0.515; // 150 / 145.63 * 0.5 would be the BS value}@return if($luma > $threshold, $-dark, $-light);}// ------------------------------------------------------------------ // Padding // ------------------------------------------------------------------ @mixin o-webclient-padding($top: 0px, $right: $o-horizontal-padding, $bottom: 0px, $left: $o-horizontal-padding){padding-top: $top; padding-right: $right; padding-bottom: $bottom; padding-left: $left;}// ------------------------------------------------------------------ // Caret // ------------------------------------------------------------------ @mixin o-caret-down($caret-width: $caret-width){@include utils-caret-boilerplate; border-bottom: 0; border-left: $caret-width solid transparent; border-right: $caret-width solid transparent; border-top: $caret-width solid; -moz-transform: scale(0.9999); // Smooth the caret on firefox}@mixin o-caret-up($caret-width: $caret-width){@include utils-caret-boilerplate; border-bottom: $caret-width solid; border-left: $caret-width solid transparent; border-right: $caret-width solid transparent; border-top: 0; -moz-transform: scale(0.9999); // Smooth the caret on firefox}@mixin o-caret-left($caret-width: $caret-width){@include utils-caret-boilerplate; border-bottom: $caret-width solid transparent; border-left: 0; border-right: $caret-width solid; border-top: $caret-width solid transparent; -moz-transform: scale(0.9999); // Smooth the caret on firefox}@mixin o-caret-right($caret-width: $caret-width){@include utils-caret-boilerplate; border-bottom: $caret-width solid transparent; border-left: $caret-width solid; border-right: 0; border-top: $caret-width solid transparent; -moz-transform: scale(0.9999); // Smooth the caret on firefox}// ------------------------------------------------------------------ // Hovering effects // ------------------------------------------------------------------ @mixin o-hover-text-color($default-color: $body-color, $hover-color: $link-color){color: $default-color; &:hover, &:focus, &.focus{color: $hover-color;}}// ------------------------------------------------------------------ // Mixin to define variations for btn-links and muted btn-links // ------------------------------------------------------------------ @mixin o-btn-link-variant($color, $color-active){text-transform: none; @include o-hover-text-color($default-color: $color, $hover-color: $color-active); &, &:hover, &:focus, &:active, &.active{border-color: transparent; background-color: transparent;}&.text-muted, .text-muted{@include o-hover-opacity; @include o-hover-text-color($default-color: $text-muted, $hover-color: $color-active);}}// Odoo defines a limited Noto font-family for a small variety of unicode // characters that are not necessary defined in the user system or even defined // but not properly readable. This function allows to add this font family in a // given font list. // // @param{list}$font - a list of font names ending with the generic one. // @param{integer}[$index] - the position where to add the support font, if // not given, it will be placed before the generic one. @function o-add-unicode-support-font($font, $index: false){@if $index == false{$index: length($font);}$-with-support-font: (); @for $i from 1 through length($font){@if $i == $index{$-with-support-font: append($-with-support-font, 'Odoo Unicode Support Noto', $separator: comma);}$-with-support-font: append($-with-support-font, nth($font, $i), $separator: comma);}@return $-with-support-font;}// Mixin which allows to extend the BS4 bg-variant mixin @mixin o-bg-color-extension($color, $text-color, $with-muted){}// Function to remove all null values of a map @function o-map-omit($map){$-map: (); @each $key, $value in $map{@if $value != null{$-map: map-merge($-map, ( $key: $value, ));}}@return $-map;}// Function to swap two values in a list @function o-swap($list, $i, $j){$tmp: nth($list, $i); $list: set-nth($list, $i, nth($list, $j)); @return set-nth($list, $j, $tmp);}// ------- Kanban grouped mixins ------- @mixin o-kanban-icon($base-opacity: 0.5){display: block; text-align: center; color: $o-main-text-color; font-size: $font-size-sm; cursor: pointer; @include o-hover-opacity($base-opacity);}@mixin o-kanban-tag-color{@for $size from 1 through length($o-colors){// Note: the first color is supposed to be invisible if there is a color // field but it is used as a default color when there is no color field &.o_tag_color_#{$size - 1}span{background-color: nth($o-colors, $size);}}}@mixin o-kanban-record-color{@for $size from 2 through length($o-colors){// Note: the first color is not defined as it is the 'no color' for kanban .oe_kanban_color_#{$size - 1}::after{background-color: nth($o-colors, $size);}}}@mixin o-kanban-slim-col{position: relative; flex: 0 0 auto; margin: 0; padding: 0 floor($o-kanban-group-padding * 0.7); cursor: pointer;}@mixin o-kanban-header-title{display: flex; align-items: center; height: $o-kanban-header-title-height; line-height: 2.2; color: $headings-color;}@mixin o-kanban-v-title{@include o-position-absolute($o-kanban-inside-vgutter * 2, $left: floor(-$o-kanban-inside-vgutter * 1.2)); transform-origin: left bottom 0; transform: rotate(90deg); overflow: visible; white-space: nowrap; font-size: 15px;}// ------- Kanban records mixins ------- @mixin o-kanban-record-title($font-size){color: $headings-color; font-size: $font-size; font-weight: 500; margin-bottom: 0; margin-top: 0;}@mixin o-kanban-dropdown($padding-base: $o-kanban-inside-vgutter){padding: $padding-base/2 $padding-base; border: none; border-left: 1px solid transparent; vertical-align: top; color: $body-color; &:hover{color: $headings-color;}&:focus, &:active, &:focus:active{outline: none;}}@mixin o-kanban-dropdown-open{position: relative; background: white; border-color: gray('400'); z-index: $zindex-dropdown + 1;}@mixin o-kanban-dropdown-menu{@include o-position-absolute($right: -1px); margin-top: -1px; border-color: gray('400');}@mixin o-kanban-colorpicker{max-width: 150px; padding: 3px ($o-dropdown-hpadding - $o-kanban-inner-hmargin) 3px $o-dropdown-hpadding; > li{display: inline-block; margin: $o-kanban-inner-hmargin $o-kanban-inner-hmargin 0 0; border: 1px solid white; box-shadow: 0 0 0 1px gray('300'); > a{display: block; &::after{content: ""; display: block; width: 20px; height: 15px;}}// No Color &:first-child > a{position: relative; &::before{content: ""; @include o-position-absolute(-2px, $left: 10px); display: block; width: 1px; height: 20px; transform: rotate(45deg); background-color: red;}&::after{background-color: white;}}}}// Emulate dropdown links @mixin o-kanban-dashboard-dropdown-link($link-padding-gap: $o-dropdown-hpadding){padding: 0; > a{margin: auto auto auto (-$link-padding-gap); padding: 3px $link-padding-gap; color: $body-color; display: block; &:hover{background-color: gray('300'); color: $headings-color;}}&:last-child{margin-bottom: 5px;}}// No content helper @mixin o-nocontent-empty{pointer-events: auto; max-width: 650px; margin: auto; padding: 15px; z-index: 1000; text-align: center; color: $o-tooltip-text-color; font-size: 115%; > p:first-of-type{margin-top: 0; color: $o-tooltip-title-text-color; font-weight: bold; font-size: 125%;}a{cursor: pointer;}}%o-nocontent-init-image{content: ""; display: block; margin: auto; background-size: cover;}%o-nocontent-empty-document{@extend %o-nocontent-init-image; @include size(120px, 80px); margin-top: 30px; margin-bottom: 30px; background: transparent url(/web/static/src/img/empty_folder.svg) no-repeat center;}

/* /web/static/src/scss/primary_variables.scss defined in bundle 'web.assets_frontend' */
/// /// This file regroups the variables that style odoo components. /// They are available in every asset bundle. /// // Font sizes $o-root-font-size: 12px; $o-font-size-base: 13rem * (1px / $o-root-font-size); $o-line-height-base: 1.5; // This is BS default // Colors $o-community-color: #7C7BAD; $o-enterprise-color: #875A7B; $o-enterprise-primary-color: #00A09D; $o-brand-odoo: $o-community-color; $o-brand-primary: $o-community-color; $o-brand-secondary: #f0eeee; $o-brand-lightsecondary: #e2e2e0; $o-gray-100: #f8f9fa; // This is BS default $o-main-color-muted: #a8a8a8; $o-main-text-color: #4c4c4c; $o-view-background-color: white; $o-shadow-color: #303030; $o-form-lightsecondary: #ccc; $o-list-footer-bg-color: #eee; $o-list-footer-font-weight: bold; $o-tooltip-background-color: black; $o-tooltip-color: white; $o-tooltip-arrow-color: black; $o-tooltip-text-color: #777777; $o-tooltip-title-text-color: #4c4c4c; // Layout // // Extension of BS4. This is not redefining the BS4 variable directly as we only // need the extra ones for media queries (not creating new breakpoint classes). // Note: default BS4 values are hardcoded here while it should be possible to // merge with the default BS variable (but we would have to take care of // ordering & cie). $o-extra-grid-breakpoints: ( xs: 0, vsm: 475px, sm: 576px, md: 768px, lg: 992px, xl: 1200px, xxl: 1534px, ); $o-form-group-cols: 12; $o-form-spacing-unit: 5px; $o-horizontal-padding: 16px; $o-innergroup-rpadding: 45px; $o-dropdown-hpadding: 20px; $o-sheet-vpadding: 24px; $o-statbutton-height: 44px; $o-statbutton-vpadding: 0px; $o-statbutton-spacing: 6px; $o-modal-lg: 980px; $o-modal-md: 650px; // Needed for having no spacing between sheet and mail body in mass_mailing: // Different required cancel paddings between web and web_enterprise $o-sheet-cancel-tpadding: 0px; $o-avatar-size: 90px; $o-statusbar-height: 33px; $o-label-font-size-factor: 0.8; $o-navbar-height: 46px; $o-nb-calendar-colors: 24; $o-base-settings-mobile-tabs-height: 40px; $o-base-settings-mobile-tabs-overflow-gap: 3%; $o-cp-breadcrumb-height: 30px; $o-datepicker-week-color: #8f8f8f; $o-card-body-bg-opacity: 0.9; // Kanban $o-kanban-default-record-width: 300px; $o-kanban-small-record-width: 240px; $o-kanban-header-title-height: 50px; $o-kanban-image-width: 64px; $o-kanban-image-fill-width: 95px; $o-kanban-inside-vgutter: 8px; $o-kanban-inside-hgutter: 8px; $o-kanban-color-border-width: 3px; $o-kanban-inner-hmargin: 5px; $o-kanban-progressbar-height: 20px; $o-kanban-mobile-tabs-height: 40px; $o-kanban-mobile-empty-height: $o-kanban-image-width; // ------- Kanban dashboard variables ------- // Used to manage spacing in complex dropdown menu $o-kanban-dashboard-dropdown-complex-gap: 5px; // For the frontend part $o-theme-font-size-base: (14 / 16) * 1rem; 

/* /web_enterprise/static/src/scss/primary_variables.scss defined in bundle 'web.assets_frontend' */
/// /// This file regroups the variables that style odoo components. /// They are available in every asset bundle. /// // Font sizes $o-font-size-base-touch: 15px; // Colors $o-brand-odoo: $o-enterprise-color; $o-brand-primary: $o-enterprise-primary-color; $o-brand-secondary: #8f8f8f; $o-brand-lightsecondary: $o-gray-100; $o-main-text-color: #666666; $o-list-footer-bg-color: white; $o-btn-secondary-bg: white; $o-btn-secondary-hover-bg: darken($o-btn-secondary-bg, 10%); $o-btn-secondary-active-bg: darken($o-btn-secondary-bg, 8%); // Home menu $o-home-menu-container-size: 850px; $o-home-menu-app-icon-max-width: 70px; $o-home-studio-menu-shadow: 0 1px 0 rgba(black, 0.45); // snackbar $o-snackbar-background-color: $o-tooltip-background-color; $o-snackbar-color: $o-tooltip-color; $o-snackbar-height: $o-kanban-header-title-height; $o-snackbar-left: 15px; $o-snackbar-right: $o-snackbar-left; $o-snackbar-bottom: 20px; $o-snackbar-inner-padding: 16px; 

/* /web_editor/static/src/scss/web_editor.variables.scss defined in bundle 'web.assets_frontend' */
/// /// This files regroups the variables and mixins which are specific to the editor. /// $o-we-font-family: Roboto, 'Montserrat', 'Segoe UI', 'Helvetica Neue', Helvetica, Arial, sans-serif !default; $o-we-font-size: 13px; $o-we-bg-color: #F7F7F7 !default; $o-we-bg-color-dark: #a7a7a7 !default; $o-we-color: #212629 !default; $o-we-border-width: 1px !default; $o-we-border-color: rgba(0, 0, 0, 0.125) !default; $o-we-dropdown-bg-color: #FFFFFF; $o-we-dropdown-color: inherit; $o-we-color-dark: #2c2c36 !default; $o-we-color-darker: darken($o-we-color-dark, 2%) !default; $o-we-color-divider: #33363e !default; $o-we-color-light: #4e525b !default; $o-we-color-normal: #3D4047 !default; $o-we-color-text-normal: #999999 !default; $o-we-color-text-light: #d4d5d7 !default; $o-we-color-text-lighter: #ebecee !default; $o-we-color-danger: #e6586c !default; $o-we-color-warning: #f0ad4e !default; $o-we-color-success: #40ad67 !default; $o-we-color-info: #6999a8 !default; $o-we-sidebar-width: 230px !default; $o-we-handles-offset-to-hide: 10000px !default; $o-we-handles-btn-size: 18px !default; $o-we-handles-accent-color: #00e2ff !default; $o-we-handles-accent-color-preview: $o-enterprise-color !default; $o-we-handle-edge-size: 8px !default; $o-we-handle-border-width: 2px !default; $o-we-handle-border-width-preview: 6px !default; // Transitions $o-we-md-ease: cubic-bezier(0.19, 1, 0.22, 1) !default; // Editor $o-we-dropzone-size: 30px !default; // $grid-gutter-width (todo: allow to use the variable) $o-we-dropzone-border-width: 2px !default; $o-we-dropzone-border: $o-we-dropzone-border-width dashed $o-brand-odoo !default; $o-we-ace-color: #2F3129 !default; $o-we-switch-size: 2ex !default; $o-we-switch-inactive-color: $o-we-bg-color !default; // Checklist $o-checklist-margin-left: 20px; $o-checklist-checkmark-width: 2px; $o-checklist-before-size: 13px; $o-we-toolbar-height: 32px; // ============ 'Preview' component Mixins =============== // Create a "preview" work-area to edit/customize specific elements @mixin o-we-preview-box($color-text: white){border-top: 1px solid black; border-bottom: 1px solid white; background-image: linear-gradient(-150deg, $o-we-color-dark, $o-we-color-darker); color: $color-text;}@mixin o-we-preview-content{display: inline-block; max-width: 100%; overflow: hidden; box-shadow: 0 0 15px 2px #000;}// Mixins for buttons with alpha bg-color @mixin o-alpha-button-preview{position: relative; z-index: 1; // Place an overlay that inherit the button's bg-color. &::before{content: ""; @include o-position-absolute(0, 0, 0, 0); background-color: inherit;}&::after{content: ""; @include o-position-absolute(0, 0, 0, 0); z-index: -1; background-image: url('/web_editor/static/src/img/transparent.png'); background-size: 10px auto;}}// ============ Preservation mixins =============== // Used to preserve web_editor and website UI from themes customizations @mixin o-w-preserve-base{font-family: $o-we-font-family; line-height: 1.5; color: $o-we-color-divider; .text-muted{color: $o-we-color-text-normal !important;}}@mixin o-w-preserve-headings{h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6{font-family: $o-we-font-family; line-height: 1.5; color: $o-we-color-dark; font-weight: bold;}}@mixin o-w-preserve-links{a:not(.o_btn_preview){color: $o-brand-primary; &:focus, &:active, &:focus:active{outline: none!important;}}.badge{&:hover a, a{color: #fff;}}}@mixin o-w-preserve-forms{:not(.input-group):not(.form-group):not(.input-group-append):not(.input-group-prepend) > .form-control{height: 34px;}.form-control{padding: 6px 12px; font-size: 14px; line-height: 1.5; border: 1px solid $o-we-color-text-light; color: #555; background-color: #fff; border-radius: 0; &.is-invalid{border-color: $danger;}}.input-group .form-control{height: auto;}.input-group-text{background-color: #e9ecef;}.was-validated{.form-control:invalid{border-color: $danger;}}select.form-control{appearance: none; background: url('data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPScxLjEnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZycgeG1 sbnM6eGxpbms9J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsnIHdpZHRoPScyNCcgaGVpZ2 h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0Jz48cGF0aCBpZD0nc3ZnXzEnIGQ9J203LjQwNiw3L jgyOGw0LjU5NCw0LjU5NGw0LjU5NCwtNC41OTRsMC40MDYsMS40MDZsLTUsNC43NjZsLTUsLTQu NzY2bDAuNDA2LC0xLjQwNnonIGZpbGw9JyM4ODgnLz48L3N2Zz4='); background-position: 100% 65%; background-repeat: no-repeat;}}@mixin o-w-preserve-modals{background: 0; .modal-content{border-radius: 0; background-color: $o-we-bg-color; .modal-header{border-bottom-color: #e9ecef;}.modal-body{background-color: white;}.modal-footer{border-top-color: #e9ecef; text-align: left;}}}@mixin o-w-preserve-tabs{.nav-tabs{border-bottom: 1px solid #e9ecef; > li{> a{line-height: 1.5; color: $o-we-color-light; &:hover{border-color: #dee2e6;}&.active{&, &:hover, &:focus{color: $o-we-color-normal; background-color: $o-we-bg-color; border-color: #dee2e6 #dee2e6 #FFFFFF;}}}}}}@mixin o-w-preserve-btn{.btn:not(.o_btn_preview){border-radius: 0; font-weight: normal; text-transform: none; @include button-size(.375rem, .75rem, 0.875rem, 1.5, 0); &.btn-primary{@include button-variant($o-brand-primary, $o-brand-primary);}&.btn-secondary{@include button-variant($o-we-bg-color, $o-we-bg-color); color: $o-brand-primary;}&.btn-link{@include button-variant($o-we-bg-color, $o-we-bg-color); color: $o-brand-primary;}&.btn-success{@include button-variant($o-we-color-success, $o-we-color-success);}&.btn-info{@include button-variant($o-we-color-info, $o-we-color-info);}&.btn-warning{@include button-variant($o-we-color-warning, $o-we-color-warning);}&.btn-danger{@include button-variant($o-we-color-danger, $o-we-color-danger);}}}@mixin o-w-preserve-cards{.card{padding: 19px; margin-bottom: 20px; background-color: $o-we-bg-color; border: 1px solid darken($o-we-bg-color, 5%); border-radius: 0; box-shadow: none;}}@mixin o-w-preserve-dropdown-menus{.dropdown-menu{background-color: white;}.dropdown-item{color: #212529; @include hover-focus{color: darken(#212529, 5%);}&.active, &:active{color: white; @include gradient-bg($o-brand-primary);}}}// Edition colors // Colors $o-color-palettes: ( ( ), ) !default; $o-color-palette-number: 1; // Theme colors $o-theme-color-palettes: ( ( 'alpha': $o-enterprise-primary-color, 'beta': $o-enterprise-color, 'gamma': #5C5B80, 'delta': #5B899E, 'epsilon': #E46F78, ), ) !default; $o-theme-color-palette-number: 1; // Greyscale transparent colours $o-transparent-grays: ( 'black-25': rgba(black, 0.25), 'black-50': rgba(black, 0.5), 'black-75': rgba(black, 0.75), 'white-25': rgba(white, 0.25), 'white-50': rgba(white, 0.5), 'white-75': rgba(white, 0.75), ) !default; $o-gray-color-palettes: ( ( 'white': #FFFFFF, // Those two will enforce the creation of bg-white 'black': #000000, // and bg-black classes. ), ) !default; $o-gray-color-palette-number: 1; // Translations $o-we-content-to-translate-color: rgb(255, 255, 90) !default; $o-we-translated-content-color: rgb(120, 215, 110) !default; 

/* /mail/static/src/scss/variables.scss defined in bundle 'web.assets_frontend' */
$o-mail-thread-avatar-size: 36px !default; $o-mail-thread-icon-opacity: 0.6 !default; $o-mail-thread-side-date-opacity: 0.6 !default; $o-mail-thread-window-bg: #FAFAFA !default; $o-mail-thread-window-width: 325px !default; $o-mail-chatter-gap: 10px !default; $o-mail-chatter-mobile-gap: 2% !default; $o-mail-chat-header-height: 46px !default; $o-mail-attachment-image-size: 100px !default; $o-mail-sidebar-icon-opacity: 0.7 !default; $o-mail-chat-sidebar-width: 250px !default; $o-mail-partner-avatar-size: 24px !default; 

/* /portal/static/src/scss/primary_variables.scss defined in bundle 'web.assets_frontend' */
$o-portal-default-body-bg: white; $o-theme-navbar-logo-height: null; $o-theme-btn-icon-hover-decoration: none; 

/* /website/static/src/scss/primary_variables.scss defined in bundle 'web.assets_frontend' */
$o-theme-layout: 'full'; //------------------------------------------------------------------------------ // Colors //------------------------------------------------------------------------------ // Extend default color palettes with website-related colors $-palettes: (); @each $palette in $o-color-palettes{$-palettes: append($-palettes, map-merge(( 'body': $o-portal-default-body-bg, 'menu': #F9F9F9, 'footer': #F9F9F9, 'text': null, // Default to bootstrap 'h1': null, // Default to text 'h2': null, // Default to h1 'h3': null, // Default to h2 'h4': null, // Default to h3 'h5': null, // Default to h4 'h6': null, // Default to h5 ), $palette));}$o-color-palettes: $-palettes; // By default, all user color palette values are null. Each null value is // automatically replaced with corresponsing color of chosen color palette. $o-user-color-palette: () !default; // By default, all user theme color palette values are null. Each null value // is automatically replaced with corresponsing color of chosen theme color // palette. $o-user-theme-color-palette: () !default; $o-social-colors: ( 'facebook': #3B5999, 'twitter': #55ACEE, 'linkedin': #0077B5, 'google-plus': #DD4B39, 'youtube': #ff0000, 'github': #1a1e22, 'instagram': #cf2872, ); $o-theme-figcaption-opacity: 0.6; //------------------------------------------------------------------------------ // Website customizations //------------------------------------------------------------------------------ $o-website-values-palettes: ( ( 'logo-height': null, // Default to navbar height (see portal) 'header-font-size': null, // Default to BS (normal font-size) 'font-number': 1, 'headings-font-number': 1, 'navbar-font-number': 1, 'buttons-font-number': 1, 'google-fonts': null, ), ) !default; $o-website-values-palette-number: 1 !default; // By default, all user website values are null. Each null value is // automatically replaced with corresponsing value of chosen values palette. $o-user-website-values: () !default; //------------------------------------------------------------------------------ // Fonts //------------------------------------------------------------------------------ $o-theme-fonts: ( ('Roboto', sans-serif), ('Open Sans', sans-serif), ('Source Sans Pro', sans-serif), ('Raleway', sans-serif), ('Noto Serif', serif), ('Arvo', Times, serif), ) !default; $o-theme-font-urls: ( 'Roboto:300,300i,400,400i,700,700i', 'Open+Sans:300,300i,400,400i,700,700i', 'Source+Sans+Pro:300,300i,400,400i,700,700i', 'Raleway:300,300i,400,400i,700,700i', 'Noto+Serif:300,300i,400,400i,700,700i', 'Arvo:300,300i,400,400i,700,700i', ) !default; $o-theme-font-names: ( 'Roboto', 'Open Sans', 'Source Sans Pro', 'Raleway', 'Noto Serif', 'Arvo', ) !default; 

/* /website/static/src/scss/options/user_values.custom.web.assets_common.scss defined in bundle 'web.assets_frontend' */
// This file is meant to be edited automatically by the user. The variables it // contains should not be renamed otherwise it would break existing customers // customizations. $o-user-website-values: map-merge($o-user-website-values, o-map-omit(( 'font-number': null, 'headings-font-number': null, 'navbar-font-number': null, 'buttons-font-number': null, 'header-font-size': 1rem, 'logo-height': 3.125rem, // -- hook -- ))); 

/* /website/static/src/scss/options/colors/user_color_palette.custom.web.assets_common.scss defined in bundle 'web.assets_frontend' */
 $o-user-color-palette: map-merge($o-user-color-palette, o-map-omit(( 'footer': #ffffff, 'menu': #ffffff, 'body': #ffffff, 'h2': #303642, 'product_label': rgba(204, 229, 255, 0.54), 'text': #303642, // -- hook -- ))); 

/* /website/static/src/scss/options/colors/user_theme_color_palette.custom.web.assets_common.scss defined in bundle 'web.assets_frontend' */
 $o-user-theme-color-palette: map-merge($o-user-theme-color-palette, o-map-omit(( 'alpha': #147cbc, 'beta': #303642, 'gamma': #303642, 'delta': null, 'epsilon': null, // -- hook -- ))); 

/* /website_sale/static/src/scss/primary_variables.scss defined in bundle 'web.assets_frontend' */
$o-wsale-products-layout-grid-ratio: 1.0 !default; 

/* /account/static/src/scss/variables.scss defined in bundle 'web.assets_frontend' */
$o-account-action-col-width: 15px; $o-account-main-table-borders-padding: 3px; $o-account-light-border: 1px solid #bbb; $o-account-initial-line-background: #f0f0f0; $o-account-info-color: #44c; 

/* /hr_org_chart/static/src/scss/variables.scss defined in bundle 'web.assets_frontend' */
$o-hr-org-chart-bg: white; $o-hr-org-chart-border-color: $o-brand-secondary; $o-hr-org-chart-entry-v-gap: 6px; $o-hr-org-chart-entry-pic-size: 46px; $o-hr-org-chart-entry-line-w: 1px; $o-hr-org-chart-entry-border-color: darken($o-hr-org-chart-bg, 25%); // MIXINS @mixin o-hr-org-chart-line{content: ''; background-color: $o-hr-org-chart-bg; border: 0px solid $o-hr-org-chart-entry-border-color;}

/* /website_blog/static/src/scss/primary_variables.scss defined in bundle 'web.assets_frontend' */
 @mixin s-latest-posts-js-get-posts-hook{}; @mixin s-latest-posts-figure-hook{}; 

/* /marketing_automation/static/src/scss/variables.scss defined in bundle 'web.assets_frontend' */
$o-ma-border-color-gray-value: '300'; $o-ma-hierarchy-background: #F0F0F0; $o-ma-color-white: #FFFFFF; 

/* /website/static/src/scss/secondary_variables.scss defined in bundle 'web.assets_frontend' */
 //------------------------------------------------------------------------------ // Colors //------------------------------------------------------------------------------ // Color palette // ------------- // By default, all user color palette values are null. Each null value is // automatically replaced with corresponsing colors in chosen default color // palette. $-palette-default: nth($o-color-palettes, $o-color-palette-number); $o-color-palettes: append($o-color-palettes, map-merge($-palette-default, o-map-omit($o-user-color-palette))); // Theme color palette // ------------------- // // Proper themes have to enforce primary = alpha and secondary = beta. // Exceptions to this rule are made for compatibility reasons $-palette-default: nth($o-theme-color-palettes, $o-theme-color-palette-number); // Generate default theme color scheme if alpha is set $-is-alpha-primary: not map-has-key($-palette-default, 'primary'); $-is-beta-secondary: not map-has-key($-palette-default, 'secondary'); $-alpha: map-get($o-user-theme-color-palette, 'alpha'); @if ($-alpha){$o-user-theme-color-palette: map-merge(( beta: lighten(desaturate($-alpha, 60%), 30%), gamma: desaturate(adjust-hue($-alpha, -45deg), 10%), delta: desaturate(adjust-hue($-alpha, 45deg), 10%), epsilon: desaturate(adjust-hue($-alpha, 180deg), 10%), ), o-map-omit($o-user-theme-color-palette));}// By default, all user theme color palette values are null. Each null value is // automatically replaced with corresponsing colors in chosen default theme // color palette. $o-theme-color-palettes: append($o-theme-color-palettes, map-merge($-palette-default, o-map-omit($o-user-theme-color-palette))); // Enable last color and theme color palettes, which are now the user customized // color palettes. $o-color-palette-number: length($o-color-palettes); $o-theme-color-palette-number: length($o-theme-color-palettes); //------------------------------------------------------------------------------ // Website customizations //------------------------------------------------------------------------------ $-website-values-default: nth($o-website-values-palettes, $o-website-values-palette-number); $o-website-values: map-merge($-website-values-default, o-map-omit($o-user-website-values)) !default; $o-website-values-palettes: append($o-website-values-palettes, $o-website-values); $o-website-values-palette-number: length($o-website-values-palettes); @function o-website-value($key){@return map-get($o-website-values, $key);}@if o-website-value('google-fonts'){$o-theme-font-names: join($o-theme-font-names, o-website-value('google-fonts')); @each $font in o-website-value('google-fonts'){$o-theme-fonts: append($o-theme-fonts, (quote($font), sans-serif)); $o-theme-font-urls: append($o-theme-font-urls, quote($font) + ':300,300i,400,400i,700,700i');}}// Add odoo unicode support for all fonts $-with-support-theme-fonts: (); @each $font in $o-theme-fonts{$-with-support-theme-fonts: append($-with-support-theme-fonts, o-add-unicode-support-font($font));}$o-theme-fonts: $-with-support-theme-fonts; $o-theme-navbar-logo-height: o-website-value('logo-height') !default; $o-theme-font: nth($o-theme-fonts, o-website-value('font-number')) !default; $o-theme-headings-font: nth($o-theme-fonts, o-website-value('headings-font-number')) !default; $o-theme-navbar-font: nth($o-theme-fonts, o-website-value('navbar-font-number')) !default; $o-theme-buttons-font: nth($o-theme-fonts, o-website-value('buttons-font-number')) !default; 

/* /web_editor/static/src/scss/secondary_variables.scss defined in bundle 'web.assets_frontend' */
 //------------------------------------------------------------------------------ // Colors //------------------------------------------------------------------------------ // Colors $o-color-palette: nth($o-color-palettes, $o-color-palette-number) !default; @function palette-color($key){@return map-get($o-color-palette, $key);}// Theme colors $o-theme-color-palette: nth($o-theme-color-palettes, $o-theme-color-palette-number) !default; $-main-color: map-get($o-theme-color-palette, 'alpha'); $-main-color-lightness: lightness($-main-color); $o-theme-color-palette: map-merge(( // alpha and beta colors are used to override primary and secondary BS4 // colors by default, so that theme colors affect the default Odoo layouts 'primary': $-main-color, 'secondary': map-get($o-theme-color-palette, 'beta'), // BS light and dark colors are not used for any BS component, just // for color utilities. By default, we set them to a very light and // very dark version of a desaturate version of the main color 'light': lighten(desaturate($-main-color, 80%), min(70%, max(0%, 97% - $-main-color-lightness))), // Does not increase over 97% lightness 'dark': darken(desaturate($-main-color, 80%), min(70%, max(0%, $-main-color-lightness - 10%))), // Does not lower under 10% lightness ), o-map-omit($o-theme-color-palette)); @function palette-theme-color($key){@return map-get($o-theme-color-palette, $key);}// Gray colors // Extend grays with transparent ones (for some reason, BS4 create black-50 and // white-50 but does not allow overridding that with variables). $o-gray-color-palette: nth($o-gray-color-palettes, $o-gray-color-palette-number) !default; $o-gray-color-palette: map-merge($o-transparent-grays, $o-gray-color-palette); @function palette-gray($key){@return map-get($o-gray-color-palette, $key);}

/* /web_enterprise/static/src/scss/secondary_variables.scss defined in bundle 'web.assets_frontend' */
 $o-form-lightsecondary: lighten($o-brand-secondary, 25%) !default; $o-tooltip-background-color: $o-view-background-color !default; $o-tooltip-color: $o-main-text-color !default; $o-tooltip-arrow-color: $o-main-text-color !default; // Needed for having no spacing between sheet and mail body in mass_mailing: // Different required cancel paddings between web and web_enterprise $o-sheet-cancel-tpadding: $o-horizontal-padding !default; $o-sheet-cancel-bpadding: $o-horizontal-padding + $o-sheet-vpadding !default; // Side chatter $o-chatter-min-width: 530px !default; // Safest for the next value would be map-get($container-max-widths, lg) as it // is the minimal width of the default form view design for md/lg sizes $o-form-sheet-min-width: 990px !default; 

/* /web/static/src/scss/secondary_variables.scss defined in bundle 'web.assets_frontend' */
$o-webclient-background-color: desaturate($o-gray-100, 100%) !default; $o-control-panel-background-color: $o-view-background-color !default; $o-list-footer-color: $o-main-text-color !default; $o-list-group-header-color: lighten($o-brand-lightsecondary, 10%) !default; // UI custom colors for tags, kanban records' colors, ...) // Note: the first value is the old BS3 gray-light value $o-colors: lighten(#000, 46.7%), #F06050, #F4A460, #F7CD1F, #6CC1ED, #814968, #EB7E7F, #2C8397, #475577, #D6145F, #30C381, #9365B8 !default; $o-colors-secondary: #aa4b6b, #30C381, #97743a, #F7CD1F, #4285F4, #8E24AA, #D6145F, #173e43, #348F50, #AA3A38, #795548, #5e0231, #6be585, #999966, #e9d362, #b56969, #bdc3c7, #649173 !default; // UI custom colors, complete list $o-colors-complete: join( set-nth(set-nth($o-colors, 1, #134E5E), 6, #3daec3), $o-colors-secondary )!default; $o-sheet-cancel-hpadding: $o-horizontal-padding !default; $o-sheet-cancel-bpadding: $o-horizontal-padding !default; $o-statusbar-arrow-width: $o-statusbar-height / 3 !default; $o-statusbar-disabled-bg: lighten($o-brand-lightsecondary, 7%) !default; $o-navbar-inverse-link-hover-bg: darken($o-brand-odoo, 10%) !default; $o-datepicker-week-bg-color: lighten($o-datepicker-week-color, 30%) !default; // Kanban $o-kanban-record-margin: $o-horizontal-padding / 2 !default; $o-kanban-group-padding: $o-horizontal-padding !default; // Cannot be higher than this $o-kanban-inside-hgutter-mobile: $o-horizontal-padding !default; // ------- Kanban dashboard variables ------- // Since rows and containers are used inside cards, we're // forced to set the padding relative to the grid system. $o-kanban-dashboard-hpadding: $o-horizontal-padding !default; $o-kanban-dashboard-vpadding: $o-horizontal-padding / 2 !default; 

/* /website/static/src/scss/user_custom_bootstrap_overridden.scss defined in bundle 'web.assets_frontend' */
// // /!\ // This file is meant to regroup your bootstrap customizations. In that file, // you must define variables *ONLY*. If you want to introduce new CSS rules // for your website, check the 'user_custom_rules.scss' file you can also edit. // /!\ // // You can change the value of a variable you can find in the bootstrap 4 // documentation (or in the file /web/static/lib/bootstrap/scss/_variables.scss) // and Odoo will automatically adapt its design to your new bootstrap. For // example, doing this will make some shadows and gradients appear, especially // for your buttons design: // // $enable-shadows: true; // $enable-gradients: true; // // Notice that Odoo already overrides bootstrap variables according to your // choices in the "Customize Theme" dialog, you should first take a look at // it and do customizations this way. Indeed, if you overridde the same // variables, Odoo will either have to ignore them or not be able to make // the "Customize Theme" dialog work for these variables anymore. // 

/* /website/static/src/scss/bootstrap_overridden.scss defined in bundle 'web.assets_frontend' */
// // Color system // // Bootstrap default for $yiq-text-light and $yiq-text-dark are $white and // $gray-900. What we want to do is use the user text color as light or dark // depending on its contrast. Themes should be careful if they decide to // override those values. This would be simplified by giving the user the choice // for its dark *and* light text colors. $-light: if(palette-gray('white') != null, palette-gray('white'), #FFFFFF); $-dark: if(palette-gray('900') != null, palette-gray('900'), #212529); $-text: if(palette-color('text') != null, palette-color('text'), $-dark); $-is-light: (o-get-most-contrast($-text, $-light, $-dark, palette-color('body'), $cross-mix: false) == $-dark); $yiq-text-light: if($-is-light, palette-color('text'), null) !default; $yiq-text-dark: if($-is-light, null, palette-color('text')) !default; // Body // // Settings for the `<body>` element. $body-bg: palette-color('body') !default; $body-color: palette-color('text') !default; // Fonts // // Font, line-height, and color for body text, headings, and more. $font-family-sans-serif: $o-theme-font !default; $headings-font-family: $o-theme-headings-font !default; $headings-color: palette-color('h1') !default; // Jumbotron $jumbotron-bg: transparent !default; 

/* /portal/static/src/scss/bootstrap_overridden.scss defined in bundle 'web.assets_frontend' */
// This variable affects the `.h-*` and `.w-*` classes. $sizes: () !default; $sizes: map-merge(( 0: 0, ), $sizes); // Body // // Settings for the `<body>` element. $body-bg: $o-portal-default-body-bg !default; // Fonts // // Font, line-height, and color for body text, headings, and more. $font-size-sm: (12 / 16) * 1rem !default; // Buttons // // For each of Bootstrap's buttons, define text, background, and border color. $btn-padding-y-sm: (1 / 16) * 1rem !default; $btn-padding-x-sm: (5 / 16) * 1rem !default; // Modals $modal-lg: $o-modal-lg; $modal-md: $o-modal-md; 

/* /web_editor/static/src/scss/bootstrap_overridden.scss defined in bundle 'web.assets_frontend' */
// Use auto threshold for yiq colors $yiq-contrasted-threshold: false !default; // Automatically update bootstrap colors map (unused by BS itself) $colors: () !default; $colors: map-merge($o-color-palette, $colors); // Automatically extend bootstrap to create theme background/text/button classes $theme-colors: () !default; $theme-colors: map-merge($o-theme-color-palette, $theme-colors); // Automatically extend bootstrap gray palette (the theme palette is supposed to // at least declare white and black) $grays: () !default; $grays: map-merge($o-gray-color-palette, $grays); // Bootstrap use standard variables to define individual colors which are then // placed into a map which is then used to get the value of each individual // color. As BS4 allows to extend the map a priori to define our own colors, // it does not take care of making the standard variables match the values in // the user's map. The problem is that, at least for grays, bootstrap uses the // standard variables in its _variables.scss file, so if: // // User file: // $grays: ( // '100': blue, // ); // // BS4: // $gray-100: gray !default; // $grays: () !default; // $grays: map-merge(( // '100': $gray-100, // ), $grays); // // -> Here gray('100') is blue but $gray-100 is still gray... so BS4 is not // correctly generated as BS4 uses $gray-100 in _variables.scss $primary: theme-color('primary') !default; $secondary: theme-color('secondary') !default; $success: theme-color('success') !default; $info: theme-color('info') !default; $warning: theme-color('warning') !default; $danger: theme-color('danger') !default; $light: theme-color('light') !default; $dark: theme-color('dark') !default; $white: gray('white') !default; $gray-100: gray('100') !default; $gray-200: gray('200') !default; $gray-300: gray('300') !default; $gray-400: gray('400') !default; $gray-500: gray('500') !default; $gray-600: gray('600') !default; $gray-700: gray('700') !default; $gray-800: gray('800') !default; $gray-900: gray('900') !default; $black: gray('black') !default; 

/* /web/static/src/scss/bootstrap_overridden_frontend.scss defined in bundle 'web.assets_frontend' */
// Fonts // // Font, line-height, and color for body text, headings, and more. $font-size-base: $o-theme-font-size-base !default; 

/* /web/static/lib/bootstrap/scss/_variables.scss defined in bundle 'web.assets_frontend' */
// Variables // // Variables should follow the `$component-state-property-size` formula for // consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs. // Color system $white: #fff !default; $gray-100: #f8f9fa !default; $gray-200: #e9ecef !default; $gray-300: #dee2e6 !default; $gray-400: #ced4da !default; $gray-500: #adb5bd !default; $gray-600: #6c757d !default; $gray-700: #495057 !default; $gray-800: #343a40 !default; $gray-900: #212529 !default; $black: #000 !default; $grays: () !default; // stylelint-disable-next-line scss/dollar-variable-default $grays: map-merge( ( "100": $gray-100, "200": $gray-200, "300": $gray-300, "400": $gray-400, "500": $gray-500, "600": $gray-600, "700": $gray-700, "800": $gray-800, "900": $gray-900 ), $grays ); $blue: #007bff !default; $indigo: #6610f2 !default; $purple: #6f42c1 !default; $pink: #e83e8c !default; $red: #dc3545 !default; $orange: #fd7e14 !default; $yellow: #ffc107 !default; $green: #28a745 !default; $teal: #20c997 !default; $cyan: #17a2b8 !default; $colors: () !default; // stylelint-disable-next-line scss/dollar-variable-default $colors: map-merge( ( "blue": $blue, "indigo": $indigo, "purple": $purple, "pink": $pink, "red": $red, "orange": $orange, "yellow": $yellow, "green": $green, "teal": $teal, "cyan": $cyan, "white": $white, "gray": $gray-600, "gray-dark": $gray-800 ), $colors ); $primary: $blue !default; $secondary: $gray-600 !default; $success: $green !default; $info: $cyan !default; $warning: $yellow !default; $danger: $red !default; $light: $gray-100 !default; $dark: $gray-800 !default; $theme-colors: () !default; // stylelint-disable-next-line scss/dollar-variable-default $theme-colors: map-merge( ( "primary": $primary, "secondary": $secondary, "success": $success, "info": $info, "warning": $warning, "danger": $danger, "light": $light, "dark": $dark ), $theme-colors ); // Set a specific jump point for requesting color jumps $theme-color-interval: 8% !default; // The yiq lightness value that determines when the lightness of color changes from "dark" to "light". Acceptable values are between 0 and 255. $yiq-contrasted-threshold: 150 !default; // Customize the light and dark text colors for use in our YIQ color contrast function. $yiq-text-dark: $gray-900 !default; $yiq-text-light: $white !default; // Options // // Quickly modify global styling by enabling or disabling optional features. $enable-caret: true !default; $enable-rounded: true !default; $enable-shadows: false !default; $enable-gradients: false !default; $enable-transitions: true !default; $enable-prefers-reduced-motion-media-query: true !default; $enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS $enable-grid-classes: true !default; $enable-pointer-cursor-for-buttons: true !default; $enable-print-styles: true !default; $enable-responsive-font-sizes: false !default; $enable-validation-icons: true !default; $enable-deprecation-messages: true !default; // Spacing // // Control the default styling of most Bootstrap elements by modifying these // variables. Mostly focused on spacing. // You can add more entries to the $spacers map, should you need more variation. $spacer: 1rem !default; $spacers: () !default; // stylelint-disable-next-line scss/dollar-variable-default $spacers: map-merge( ( 0: 0, 1: ($spacer * .25), 2: ($spacer * .5), 3: $spacer, 4: ($spacer * 1.5), 5: ($spacer * 3) ), $spacers ); // This variable affects the `.h-*` and `.w-*` classes. $sizes: () !default; // stylelint-disable-next-line scss/dollar-variable-default $sizes: map-merge( ( 25: 25%, 50: 50%, 75: 75%, 100: 100%, auto: auto ), $sizes ); // Body // // Settings for the `<body>` element. $body-bg: $white !default; $body-color: $gray-900 !default; // Links // // Style anchor elements. $link-color: theme-color("primary") !default; $link-decoration: none !default; $link-hover-color: darken($link-color, 15%) !default; $link-hover-decoration: underline !default; // Darken percentage for links with `.text-*` class (e.g. `.text-success`) $emphasized-link-hover-darken-percentage: 15% !default; // Paragraphs // // Style p element. $paragraph-margin-bottom: 1rem !default; // Grid breakpoints // // Define the minimum dimensions at which your layout will change, // adapting to different screen sizes, for use in media queries. $grid-breakpoints: ( xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px ) !default; @include _assert-ascending($grid-breakpoints, "$grid-breakpoints"); @include _assert-starts-at-zero($grid-breakpoints, "$grid-breakpoints"); // Grid containers // // Define the maximum width of `.container` for different screen sizes. $container-max-widths: ( sm: 540px, md: 720px, lg: 960px, xl: 1140px ) !default; @include _assert-ascending($container-max-widths, "$container-max-widths"); // Grid columns // // Set the number of columns and specify the width of the gutters. $grid-columns: 12 !default; $grid-gutter-width: 30px !default; // Components // // Define common padding and border radius sizes and more. $line-height-lg: 1.5 !default; $line-height-sm: 1.5 !default; $border-width: 1px !default; $border-color: $gray-300 !default; $border-radius: .25rem !default; $border-radius-lg: .3rem !default; $border-radius-sm: .2rem !default; $rounded-pill: 50rem !default; $box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default; $box-shadow: 0 .5rem 1rem rgba($black, .15) !default; $box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default; $component-active-color: $white !default; $component-active-bg: theme-color("primary") !default; $caret-width: .3em !default; $caret-vertical-align: $caret-width * .85 !default; $caret-spacing: $caret-width * .85 !default; $transition-base: all .2s ease-in-out !default; $transition-fade: opacity .15s linear !default; $transition-collapse: height .35s ease !default; $embed-responsive-aspect-ratios: () !default; // stylelint-disable-next-line scss/dollar-variable-default $embed-responsive-aspect-ratios: join( ( (21 9), (16 9), (4 3), (1 1), ), $embed-responsive-aspect-ratios ); // Typography // // Font, line-height, and color for body text, headings, and more. // stylelint-disable value-keyword-case $font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default; $font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default; $font-family-base: $font-family-sans-serif !default; // stylelint-enable value-keyword-case $font-size-base: 1rem !default; // Assumes the browser default, typically `16px` $font-size-lg: $font-size-base * 1.25 !default; $font-size-sm: $font-size-base * .875 !default; $font-weight-lighter: lighter !default; $font-weight-light: 300 !default; $font-weight-normal: 400 !default; $font-weight-bold: 700 !default; $font-weight-bolder: bolder !default; $font-weight-base: $font-weight-normal !default; $line-height-base: 1.5 !default; $h1-font-size: $font-size-base * 2.5 !default; $h2-font-size: $font-size-base * 2 !default; $h3-font-size: $font-size-base * 1.75 !default; $h4-font-size: $font-size-base * 1.5 !default; $h5-font-size: $font-size-base * 1.25 !default; $h6-font-size: $font-size-base !default; $headings-margin-bottom: $spacer / 2 !default; $headings-font-family: null !default; $headings-font-weight: 500 !default; $headings-line-height: 1.2 !default; $headings-color: null !default; $display1-size: 6rem !default; $display2-size: 5.5rem !default; $display3-size: 4.5rem !default; $display4-size: 3.5rem !default; $display1-weight: 300 !default; $display2-weight: 300 !default; $display3-weight: 300 !default; $display4-weight: 300 !default; $display-line-height: $headings-line-height !default; $lead-font-size: $font-size-base * 1.25 !default; $lead-font-weight: 300 !default; $small-font-size: 80% !default; $text-muted: $gray-600 !default; $blockquote-small-color: $gray-600 !default; $blockquote-small-font-size: $small-font-size !default; $blockquote-font-size: $font-size-base * 1.25 !default; $hr-border-color: rgba($black, .1) !default; $hr-border-width: $border-width !default; $mark-padding: .2em !default; $dt-font-weight: $font-weight-bold !default; $kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default; $nested-kbd-font-weight: $font-weight-bold !default; $list-inline-padding: .5rem !default; $mark-bg: #fcf8e3 !default; $hr-margin-y: $spacer !default; // Tables // // Customizes the `.table` component with basic values, each used across all table variations. $table-cell-padding: .75rem !default; $table-cell-padding-sm: .3rem !default; $table-color: $body-color !default; $table-bg: null !default; $table-accent-bg: rgba($black, .05) !default; $table-hover-color: $table-color !default; $table-hover-bg: rgba($black, .075) !default; $table-active-bg: $table-hover-bg !default; $table-border-width: $border-width !default; $table-border-color: $border-color !default; $table-head-bg: $gray-200 !default; $table-head-color: $gray-700 !default; $table-dark-color: $white !default; $table-dark-bg: $gray-800 !default; $table-dark-accent-bg: rgba($white, .05) !default; $table-dark-hover-color: $table-dark-color !default; $table-dark-hover-bg: rgba($white, .075) !default; $table-dark-border-color: lighten($table-dark-bg, 7.5%) !default; $table-dark-color: $white !default; $table-striped-order: odd !default; $table-caption-color: $text-muted !default; $table-bg-level: -9 !default; $table-border-level: -6 !default; // Buttons + Forms // // Shared variables that are reassigned to `$input-` and `$btn-` specific variables. $input-btn-padding-y: .375rem !default; $input-btn-padding-x: .75rem !default; $input-btn-font-family: null !default; $input-btn-font-size: $font-size-base !default; $input-btn-line-height: $line-height-base !default; $input-btn-focus-width: .2rem !default; $input-btn-focus-color: rgba($component-active-bg, .25) !default; $input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default; $input-btn-padding-y-sm: .25rem !default; $input-btn-padding-x-sm: .5rem !default; $input-btn-font-size-sm: $font-size-sm !default; $input-btn-line-height-sm: $line-height-sm !default; $input-btn-padding-y-lg: .5rem !default; $input-btn-padding-x-lg: 1rem !default; $input-btn-font-size-lg: $font-size-lg !default; $input-btn-line-height-lg: $line-height-lg !default; $input-btn-border-width: $border-width !default; // Buttons // // For each of Bootstrap's buttons, define text, background, and border color. $btn-padding-y: $input-btn-padding-y !default; $btn-padding-x: $input-btn-padding-x !default; $btn-font-family: $input-btn-font-family !default; $btn-font-size: $input-btn-font-size !default; $btn-line-height: $input-btn-line-height !default; $btn-padding-y-sm: $input-btn-padding-y-sm !default; $btn-padding-x-sm: $input-btn-padding-x-sm !default; $btn-font-size-sm: $input-btn-font-size-sm !default; $btn-line-height-sm: $input-btn-line-height-sm !default; $btn-padding-y-lg: $input-btn-padding-y-lg !default; $btn-padding-x-lg: $input-btn-padding-x-lg !default; $btn-font-size-lg: $input-btn-font-size-lg !default; $btn-line-height-lg: $input-btn-line-height-lg !default; $btn-border-width: $input-btn-border-width !default; $btn-font-weight: $font-weight-normal !default; $btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default; $btn-focus-width: $input-btn-focus-width !default; $btn-focus-box-shadow: $input-btn-focus-box-shadow !default; $btn-disabled-opacity: .65 !default; $btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default; $btn-link-disabled-color: $gray-600 !default; $btn-block-spacing-y: .5rem !default; // Allows for customizing button radius independently from global border radius $btn-border-radius: $border-radius !default; $btn-border-radius-lg: $border-radius-lg !default; $btn-border-radius-sm: $border-radius-sm !default; $btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; // Forms $label-margin-bottom: .5rem !default; $input-padding-y: $input-btn-padding-y !default; $input-padding-x: $input-btn-padding-x !default; $input-font-family: $input-btn-font-family !default; $input-font-size: $input-btn-font-size !default; $input-font-weight: $font-weight-base !default; $input-line-height: $input-btn-line-height !default; $input-padding-y-sm: $input-btn-padding-y-sm !default; $input-padding-x-sm: $input-btn-padding-x-sm !default; $input-font-size-sm: $input-btn-font-size-sm !default; $input-line-height-sm: $input-btn-line-height-sm !default; $input-padding-y-lg: $input-btn-padding-y-lg !default; $input-padding-x-lg: $input-btn-padding-x-lg !default; $input-font-size-lg: $input-btn-font-size-lg !default; $input-line-height-lg: $input-btn-line-height-lg !default; $input-bg: $white !default; $input-disabled-bg: $gray-200 !default; $input-color: $gray-700 !default; $input-border-color: $gray-400 !default; $input-border-width: $input-btn-border-width !default; $input-box-shadow: inset 0 1px 1px rgba($black, .075) !default; $input-border-radius: $border-radius !default; $input-border-radius-lg: $border-radius-lg !default; $input-border-radius-sm: $border-radius-sm !default; $input-focus-bg: $input-bg !default; $input-focus-border-color: lighten($component-active-bg, 25%) !default; $input-focus-color: $input-color !default; $input-focus-width: $input-btn-focus-width !default; $input-focus-box-shadow: $input-btn-focus-box-shadow !default; $input-placeholder-color: $gray-600 !default; $input-plaintext-color: $body-color !default; $input-height-border: $input-border-width * 2 !default; $input-height-inner: calc(#{$input-line-height * 1em}+ #{$input-padding-y * 2}) !default; $input-height-inner-half: calc(#{$input-line-height * .5em}+ #{$input-padding-y}) !default; $input-height-inner-quarter: calc(#{$input-line-height * .25em}+ #{$input-padding-y / 2}) !default; $input-height: calc(#{$input-line-height * 1em}+ #{$input-padding-y * 2}+ #{$input-height-border}) !default; $input-height-sm: calc(#{$input-line-height-sm * 1em}+ #{$input-btn-padding-y-sm * 2}+ #{$input-height-border}) !default; $input-height-lg: calc(#{$input-line-height-lg * 1em}+ #{$input-btn-padding-y-lg * 2}+ #{$input-height-border}) !default; $input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; $form-text-margin-top: .25rem !default; $form-check-input-gutter: 1.25rem !default; $form-check-input-margin-y: .3rem !default; $form-check-input-margin-x: .25rem !default; $form-check-inline-margin-x: .75rem !default; $form-check-inline-input-margin-x: .3125rem !default; $form-grid-gutter-width: 10px !default; $form-group-margin-bottom: 1rem !default; $input-group-addon-color: $input-color !default; $input-group-addon-bg: $gray-200 !default; $input-group-addon-border-color: $input-border-color !default; $custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default; $custom-control-gutter: .5rem !default; $custom-control-spacer-x: 1rem !default; $custom-control-indicator-size: 1rem !default; $custom-control-indicator-bg: $input-bg !default; $custom-control-indicator-bg-size: 50% 50% !default; $custom-control-indicator-box-shadow: $input-box-shadow !default; $custom-control-indicator-border-color: $gray-500 !default; $custom-control-indicator-border-width: $input-border-width !default; $custom-control-indicator-disabled-bg: $input-disabled-bg !default; $custom-control-label-disabled-color: $gray-600 !default; $custom-control-indicator-checked-color: $component-active-color !default; $custom-control-indicator-checked-bg: $component-active-bg !default; $custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5) !default; $custom-control-indicator-checked-box-shadow: none !default; $custom-control-indicator-checked-border-color: $custom-control-indicator-checked-bg !default; $custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default; $custom-control-indicator-focus-border-color: $input-focus-border-color !default; $custom-control-indicator-active-color: $component-active-color !default; $custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default; $custom-control-indicator-active-box-shadow: none !default; $custom-control-indicator-active-border-color: $custom-control-indicator-active-bg !default; $custom-checkbox-indicator-border-radius: $border-radius !default; $custom-checkbox-indicator-icon-checked: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3e%3c/svg%3e"), "#", "%23") !default; $custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default; $custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default; $custom-checkbox-indicator-icon-indeterminate: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3e%3cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3e%3c/svg%3e"), "#", "%23") !default; $custom-checkbox-indicator-indeterminate-box-shadow: none !default; $custom-checkbox-indicator-indeterminate-border-color: $custom-checkbox-indicator-indeterminate-bg !default; $custom-radio-indicator-border-radius: 50% !default; $custom-radio-indicator-icon-checked: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3e%3c/svg%3e"), "#", "%23") !default; $custom-switch-width: $custom-control-indicator-size * 1.75 !default; $custom-switch-indicator-border-radius: $custom-control-indicator-size / 2 !default; $custom-switch-indicator-size: calc(#{$custom-control-indicator-size}- #{$custom-control-indicator-border-width * 4}) !default; $custom-select-padding-y: $input-padding-y !default; $custom-select-padding-x: $input-padding-x !default; $custom-select-font-family: $input-font-family !default; $custom-select-font-size: $input-font-size !default; $custom-select-height: $input-height !default; $custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator $custom-select-font-weight: $input-font-weight !default; $custom-select-line-height: $input-line-height !default; $custom-select-color: $input-color !default; $custom-select-disabled-color: $gray-600 !default; $custom-select-bg: $input-bg !default; $custom-select-disabled-bg: $gray-200 !default; $custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions $custom-select-indicator-color: $gray-800 !default; $custom-select-indicator: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3e%3cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3e%3c/svg%3e"), "#", "%23") !default; $custom-select-background: $custom-select-indicator no-repeat right $custom-select-padding-x center / $custom-select-bg-size !default; // Used so we can have multiple background elements (e.g., arrow and feedback icon) $custom-select-feedback-icon-padding-right: calc((1em + #{2 * $custom-select-padding-y}) * 3 / 4 + #{$custom-select-padding-x + $custom-select-indicator-padding}) !default; $custom-select-feedback-icon-position: center right ($custom-select-padding-x + $custom-select-indicator-padding) !default; $custom-select-feedback-icon-size: $input-height-inner-half $input-height-inner-half !default; $custom-select-border-width: $input-border-width !default; $custom-select-border-color: $input-border-color !default; $custom-select-border-radius: $border-radius !default; $custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default; $custom-select-focus-border-color: $input-focus-border-color !default; $custom-select-focus-width: $input-focus-width !default; $custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width $input-btn-focus-color !default; $custom-select-padding-y-sm: $input-padding-y-sm !default; $custom-select-padding-x-sm: $input-padding-x-sm !default; $custom-select-font-size-sm: $input-font-size-sm !default; $custom-select-height-sm: $input-height-sm !default; $custom-select-padding-y-lg: $input-padding-y-lg !default; $custom-select-padding-x-lg: $input-padding-x-lg !default; $custom-select-font-size-lg: $input-font-size-lg !default; $custom-select-height-lg: $input-height-lg !default; $custom-range-track-width: 100% !default; $custom-range-track-height: .5rem !default; $custom-range-track-cursor: pointer !default; $custom-range-track-bg: $gray-300 !default; $custom-range-track-border-radius: 1rem !default; $custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default; $custom-range-thumb-width: 1rem !default; $custom-range-thumb-height: $custom-range-thumb-width !default; $custom-range-thumb-bg: $component-active-bg !default; $custom-range-thumb-border: 0 !default; $custom-range-thumb-border-radius: 1rem !default; $custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default; $custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-focus-box-shadow !default; $custom-range-thumb-focus-box-shadow-width: $input-focus-width !default; // For focus box shadow issue in IE/Edge $custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default; $custom-range-thumb-disabled-bg: $gray-500 !default; $custom-file-height: $input-height !default; $custom-file-height-inner: $input-height-inner !default; $custom-file-focus-border-color: $input-focus-border-color !default; $custom-file-focus-box-shadow: $input-focus-box-shadow !default; $custom-file-disabled-bg: $input-disabled-bg !default; $custom-file-padding-y: $input-padding-y !default; $custom-file-padding-x: $input-padding-x !default; $custom-file-line-height: $input-line-height !default; $custom-file-font-family: $input-font-family !default; $custom-file-font-weight: $input-font-weight !default; $custom-file-color: $input-color !default; $custom-file-bg: $input-bg !default; $custom-file-border-width: $input-border-width !default; $custom-file-border-color: $input-border-color !default; $custom-file-border-radius: $input-border-radius !default; $custom-file-box-shadow: $input-box-shadow !default; $custom-file-button-color: $custom-file-color !default; $custom-file-button-bg: $input-group-addon-bg !default; $custom-file-text: ( en: "Browse" ) !default; // Form validation $form-feedback-margin-top: $form-text-margin-top !default; $form-feedback-font-size: $small-font-size !default; $form-feedback-valid-color: theme-color("success") !default; $form-feedback-invalid-color: theme-color("danger") !default; $form-feedback-icon-valid-color: $form-feedback-valid-color !default; $form-feedback-icon-valid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='#{$form-feedback-icon-valid-color}' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e"), "#", "%23") !default; $form-feedback-icon-invalid-color: $form-feedback-invalid-color !default; $form-feedback-icon-invalid: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$form-feedback-icon-invalid-color}' viewBox='-2 -2 7 7'%3e%3cpath stroke='#{$form-feedback-icon-invalid-color}' d='M0 0l3 3m0-3L0 3'/%3e%3ccircle r='.5'/%3e%3ccircle cx='3' r='.5'/%3e%3ccircle cy='3' r='.5'/%3e%3ccircle cx='3' cy='3' r='.5'/%3e%3c/svg%3E"), "#", "%23") !default; $form-validation-states: () !default; // stylelint-disable-next-line scss/dollar-variable-default $form-validation-states: map-merge( ( "valid": ( "color": $form-feedback-valid-color, "icon": $form-feedback-icon-valid ), "invalid": ( "color": $form-feedback-invalid-color, "icon": $form-feedback-icon-invalid ), ), $form-validation-states ); // Z-index master list // // Warning: Avoid customizing these values. They're used for a bird's eye view // of components dependent on the z-axis and are designed to all work together. $zindex-dropdown: 1000 !default; $zindex-sticky: 1020 !default; $zindex-fixed: 1030 !default; $zindex-modal-backdrop: 1040 !default; $zindex-modal: 1050 !default; $zindex-popover: 1060 !default; $zindex-tooltip: 1070 !default; // Navs $nav-link-padding-y: .5rem !default; $nav-link-padding-x: 1rem !default; $nav-link-disabled-color: $gray-600 !default; $nav-tabs-border-color: $gray-300 !default; $nav-tabs-border-width: $border-width !default; $nav-tabs-border-radius: $border-radius !default; $nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default; $nav-tabs-link-active-color: $gray-700 !default; $nav-tabs-link-active-bg: $body-bg !default; $nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default; $nav-pills-border-radius: $border-radius !default; $nav-pills-link-active-color: $component-active-color !default; $nav-pills-link-active-bg: $component-active-bg !default; $nav-divider-color: $gray-200 !default; $nav-divider-margin-y: $spacer / 2 !default; // Navbar $navbar-padding-y: $spacer / 2 !default; $navbar-padding-x: $spacer !default; $navbar-nav-link-padding-x: .5rem !default; $navbar-brand-font-size: $font-size-lg !default; // Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link $nav-link-height: $font-size-base * $line-height-base + $nav-link-padding-y * 2 !default; $navbar-brand-height: $navbar-brand-font-size * $line-height-base !default; $navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default; $navbar-toggler-padding-y: .25rem !default; $navbar-toggler-padding-x: .75rem !default; $navbar-toggler-font-size: $font-size-lg !default; $navbar-toggler-border-radius: $btn-border-radius !default; $navbar-dark-color: rgba($white, .5) !default; $navbar-dark-hover-color: rgba($white, .75) !default; $navbar-dark-active-color: $white !default; $navbar-dark-disabled-color: rgba($white, .25) !default; $navbar-dark-toggler-icon-bg: str-replace(url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"), "#", "%23") !default; $navbar-dark-toggler-border-color: rgba($white, .1) !default; $navbar-light-color: rgba($black, .5) !default; $navbar-light-hover-color: rgba($black, .7) !default; $navbar-light-active-color: rgba($black, .9) !default; $navbar-light-disabled-color: rgba($black, .3) !default; $navbar-light-toggler-icon-bg: str-replace(url("data:image/svg+xml,%3csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3e%3cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e"), "#", "%23") !default; $navbar-light-toggler-border-color: rgba($black, .1) !default; $navbar-light-brand-color: $navbar-light-active-color !default; $navbar-light-brand-hover-color: $navbar-light-active-color !default; $navbar-dark-brand-color: $navbar-dark-active-color !default; $navbar-dark-brand-hover-color: $navbar-dark-active-color !default; // Dropdowns // // Dropdown menu container and contents. $dropdown-min-width: 10rem !default; $dropdown-padding-y: .5rem !default; $dropdown-spacer: .125rem !default; $dropdown-font-size: $font-size-base !default; $dropdown-color: $body-color !default; $dropdown-bg: $white !default; $dropdown-border-color: rgba($black, .15) !default; $dropdown-border-radius: $border-radius !default; $dropdown-border-width: $border-width !default; $dropdown-inner-border-radius: calc(#{$dropdown-border-radius}- #{$dropdown-border-width}) !default; $dropdown-divider-bg: $gray-200 !default; $dropdown-divider-margin-y: $nav-divider-margin-y !default; $dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default; $dropdown-link-color: $gray-900 !default; $dropdown-link-hover-color: darken($gray-900, 5%) !default; $dropdown-link-hover-bg: $gray-100 !default; $dropdown-link-active-color: $component-active-color !default; $dropdown-link-active-bg: $component-active-bg !default; $dropdown-link-disabled-color: $gray-600 !default; $dropdown-item-padding-y: .25rem !default; $dropdown-item-padding-x: 1.5rem !default; $dropdown-header-color: $gray-600 !default; // Pagination $pagination-padding-y: .5rem !default; $pagination-padding-x: .75rem !default; $pagination-padding-y-sm: .25rem !default; $pagination-padding-x-sm: .5rem !default; $pagination-padding-y-lg: .75rem !default; $pagination-padding-x-lg: 1.5rem !default; $pagination-line-height: 1.25 !default; $pagination-color: $link-color !default; $pagination-bg: $white !default; $pagination-border-width: $border-width !default; $pagination-border-color: $gray-300 !default; $pagination-focus-box-shadow: $input-btn-focus-box-shadow !default; $pagination-focus-outline: 0 !default; $pagination-hover-color: $link-hover-color !default; $pagination-hover-bg: $gray-200 !default; $pagination-hover-border-color: $gray-300 !default; $pagination-active-color: $component-active-color !default; $pagination-active-bg: $component-active-bg !default; $pagination-active-border-color: $pagination-active-bg !default; $pagination-disabled-color: $gray-600 !default; $pagination-disabled-bg: $white !default; $pagination-disabled-border-color: $gray-300 !default; // Jumbotron $jumbotron-padding: 2rem !default; $jumbotron-color: null !default; $jumbotron-bg: $gray-200 !default; // Cards $card-spacer-y: .75rem !default; $card-spacer-x: 1.25rem !default; $card-border-width: $border-width !default; $card-border-radius: $border-radius !default; $card-border-color: rgba($black, .125) !default; $card-inner-border-radius: calc(#{$card-border-radius}- #{$card-border-width}) !default; $card-cap-bg: rgba($black, .03) !default; $card-cap-color: null !default; $card-color: null !default; $card-bg: $white !default; $card-img-overlay-padding: 1.25rem !default; $card-group-margin: $grid-gutter-width / 2 !default; $card-deck-margin: $card-group-margin !default; $card-columns-count: 3 !default; $card-columns-gap: 1.25rem !default; $card-columns-margin: $card-spacer-y !default; // Tooltips $tooltip-font-size: $font-size-sm !default; $tooltip-max-width: 200px !default; $tooltip-color: $white !default; $tooltip-bg: $black !default; $tooltip-border-radius: $border-radius !default; $tooltip-opacity: .9 !default; $tooltip-padding-y: .25rem !default; $tooltip-padding-x: .5rem !default; $tooltip-margin: 0 !default; $tooltip-arrow-width: .8rem !default; $tooltip-arrow-height: .4rem !default; $tooltip-arrow-color: $tooltip-bg !default; // Form tooltips must come after regular tooltips $form-feedback-tooltip-padding-y: $tooltip-padding-y !default; $form-feedback-tooltip-padding-x: $tooltip-padding-x !default; $form-feedback-tooltip-font-size: $tooltip-font-size !default; $form-feedback-tooltip-line-height: $line-height-base !default; $form-feedback-tooltip-opacity: $tooltip-opacity !default; $form-feedback-tooltip-border-radius: $tooltip-border-radius !default; // Popovers $popover-font-size: $font-size-sm !default; $popover-bg: $white !default; $popover-max-width: 276px !default; $popover-border-width: $border-width !default; $popover-border-color: rgba($black, .2) !default; $popover-border-radius: $border-radius-lg !default; $popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default; $popover-header-bg: darken($popover-bg, 3%) !default; $popover-header-color: $headings-color !default; $popover-header-padding-y: .5rem !default; $popover-header-padding-x: .75rem !default; $popover-body-color: $body-color !default; $popover-body-padding-y: $popover-header-padding-y !default; $popover-body-padding-x: $popover-header-padding-x !default; $popover-arrow-width: 1rem !default; $popover-arrow-height: .5rem !default; $popover-arrow-color: $popover-bg !default; $popover-arrow-outer-color: fade-in($popover-border-color, .05) !default; // Toasts $toast-max-width: 350px !default; $toast-padding-x: .75rem !default; $toast-padding-y: .25rem !default; $toast-font-size: .875rem !default; $toast-color: null !default; $toast-background-color: rgba($white, .85) !default; $toast-border-width: 1px !default; $toast-border-color: rgba(0, 0, 0, .1) !default; $toast-border-radius: .25rem !default; $toast-box-shadow: 0 .25rem .75rem rgba($black, .1) !default; $toast-header-color: $gray-600 !default; $toast-header-background-color: rgba($white, .85) !default; $toast-header-border-color: rgba(0, 0, 0, .05) !default; // Badges $badge-font-size: 75% !default; $badge-font-weight: $font-weight-bold !default; $badge-padding-y: .25em !default; $badge-padding-x: .4em !default; $badge-border-radius: $border-radius !default; $badge-transition: $btn-transition !default; $badge-focus-width: $input-btn-focus-width !default; $badge-pill-padding-x: .6em !default; // Use a higher than normal value to ensure completely rounded edges when // customizing padding or font-size on labels. $badge-pill-border-radius: 10rem !default; // Modals // Padding applied to the modal body $modal-inner-padding: 1rem !default; $modal-dialog-margin: .5rem !default; $modal-dialog-margin-y-sm-up: 1.75rem !default; $modal-title-line-height: $line-height-base !default; $modal-content-color: null !default; $modal-content-bg: $white !default; $modal-content-border-color: rgba($black, .2) !default; $modal-content-border-width: $border-width !default; $modal-content-border-radius: $border-radius-lg !default; $modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default; $modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default; $modal-backdrop-bg: $black !default; $modal-backdrop-opacity: .5 !default; $modal-header-border-color: $border-color !default; $modal-footer-border-color: $modal-header-border-color !default; $modal-header-border-width: $modal-content-border-width !default; $modal-footer-border-width: $modal-header-border-width !default; $modal-header-padding-y: 1rem !default; $modal-header-padding-x: 1rem !default; $modal-header-padding: $modal-header-padding-y $modal-header-padding-x !default; // Keep this for backwards compatibility $modal-xl: 1140px !default; $modal-lg: 800px !default; $modal-md: 500px !default; $modal-sm: 300px !default; $modal-fade-transform: translate(0, -50px) !default; $modal-show-transform: none !default; $modal-transition: transform .3s ease-out !default; // Alerts // // Define alert colors, border radius, and padding. $alert-padding-y: .75rem !default; $alert-padding-x: 1.25rem !default; $alert-margin-bottom: 1rem !default; $alert-border-radius: $border-radius !default; $alert-link-font-weight: $font-weight-bold !default; $alert-border-width: $border-width !default; $alert-bg-level: -10 !default; $alert-border-level: -9 !default; $alert-color-level: 6 !default; // Progress bars $progress-height: 1rem !default; $progress-font-size: $font-size-base * .75 !default; $progress-bg: $gray-200 !default; $progress-border-radius: $border-radius !default; $progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default; $progress-bar-color: $white !default; $progress-bar-bg: theme-color("primary") !default; $progress-bar-animation-timing: 1s linear infinite !default; $progress-bar-transition: width .6s ease !default; // List group $list-group-color: null !default; $list-group-bg: $white !default; $list-group-border-color: rgba($black, .125) !default; $list-group-border-width: $border-width !default; $list-group-border-radius: $border-radius !default; $list-group-item-padding-y: .75rem !default; $list-group-item-padding-x: 1.25rem !default; $list-group-hover-bg: $gray-100 !default; $list-group-active-color: $component-active-color !default; $list-group-active-bg: $component-active-bg !default; $list-group-active-border-color: $list-group-active-bg !default; $list-group-disabled-color: $gray-600 !default; $list-group-disabled-bg: $list-group-bg !default; $list-group-action-color: $gray-700 !default; $list-group-action-hover-color: $list-group-action-color !default; $list-group-action-active-color: $body-color !default; $list-group-action-active-bg: $gray-200 !default; // Image thumbnails $thumbnail-padding: .25rem !default; $thumbnail-bg: $body-bg !default; $thumbnail-border-width: $border-width !default; $thumbnail-border-color: $gray-300 !default; $thumbnail-border-radius: $border-radius !default; $thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default; // Figures $figure-caption-font-size: 90% !default; $figure-caption-color: $gray-600 !default; // Breadcrumbs $breadcrumb-padding-y: .75rem !default; $breadcrumb-padding-x: 1rem !default; $breadcrumb-item-padding: .5rem !default; $breadcrumb-margin-bottom: 1rem !default; $breadcrumb-bg: $gray-200 !default; $breadcrumb-divider-color: $gray-600 !default; $breadcrumb-active-color: $gray-600 !default; $breadcrumb-divider: quote("/") !default; $breadcrumb-border-radius: $border-radius !default; // Carousel $carousel-control-color: $white !default; $carousel-control-width: 15% !default; $carousel-control-opacity: .5 !default; $carousel-control-hover-opacity: .9 !default; $carousel-control-transition: opacity .15s ease !default; $carousel-indicator-width: 30px !default; $carousel-indicator-height: 3px !default; $carousel-indicator-hit-area-height: 10px !default; $carousel-indicator-spacer: 3px !default; $carousel-indicator-active-bg: $white !default; $carousel-indicator-transition: opacity .6s ease !default; $carousel-caption-width: 70% !default; $carousel-caption-color: $white !default; $carousel-control-icon-width: 20px !default; $carousel-control-prev-icon-bg: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3e%3c/svg%3e"), "#", "%23") !default; $carousel-control-next-icon-bg: str-replace(url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3e%3cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3e%3c/svg%3e"), "#", "%23") !default; $carousel-transition-duration: .6s !default; $carousel-transition: transform $carousel-transition-duration ease-in-out !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`) // Spinners $spinner-width: 2rem !default; $spinner-height: $spinner-width !default; $spinner-border-width: .25em !default; $spinner-width-sm: 1rem !default; $spinner-height-sm: $spinner-width-sm !default; $spinner-border-width-sm: .2em !default; // Close $close-font-size: $font-size-base * 1.5 !default; $close-font-weight: $font-weight-bold !default; $close-color: $black !default; $close-text-shadow: 0 1px 0 $white !default; // Code $code-font-size: 87.5% !default; $code-color: $pink !default; $kbd-padding-y: .2rem !default; $kbd-padding-x: .4rem !default; $kbd-font-size: $code-font-size !default; $kbd-color: $white !default; $kbd-bg: $gray-900 !default; $pre-color: $gray-900 !default; $pre-scrollable-max-height: 340px !default; // Utilities $displays: none, inline, inline-block, block, table, table-row, table-cell, flex, inline-flex !default; $overflows: auto, hidden !default; $positions: static, relative, absolute, fixed, sticky !default; // Printing $print-page-size: a3 !default; $print-body-min-width: map-get($grid-breakpoints, "lg") !default; 

/* /web/static/src/scss/import_bootstrap.scss defined in bundle 'web.assets_frontend' */
 // This file is importing bootstrap. While a simple "import "bootstrap";" // should be enough, this does not allow overridding mixins/functions. // Overridding those is necessary for some of our need and allow to generate // more efficient CSS than adding more rules. This file instead copies the // content of the "bootstrap.scss" files but do not import functions, variables // and mixins which will be handled "by hand" in _assets_helpers. //  //  //                                    

/* /web/static/src/scss/bootstrap_review.scss defined in bundle 'web.assets_frontend' */
/// /// This file regroups the CSS rules made to fix/extend bootstrap in all places /// where it is used in Odoo (backend / frontend / reports / ...) /// .alert{// Alerts are block elements with relative positioning. // They would go over floating elements, which is never what we want. clear: both;}// Extend bootstrap to create background and text utilities for gray colors too // Note: the card-body rule below needs those grays utilities to be defined // before so that the related o-bg-color text-muted rules work. @each $color, $value in $grays{@include bg-variant(".bg-#{$color}", $value); @include text-emphasis-variant(".text-#{$color}", $value);}.card-body{// BS4 colored cards do not have a very popular design. This will reset them // to a BS3-like one: only the header and footer are colored and the body // will use the color of a default card background with a light opacity. // Limitation: bg-* utilities cannot be used on card-body elements anymore. @include o-bg-color(rgba($card-bg, $o-card-body-bg-opacity)); &:first-child{@include border-top-radius($card-inner-border-radius);}&:last-child{@include border-bottom-radius($card-inner-border-radius);}&.row{// The 'row' class should not be used on a 'card-body' element but if // it is done, our custom bg color would overflow the card. As a fix // for those cases (normally only one at the time this fix is made), // remove the background color. // TODO remove me in master. background-color: transparent !important;}}.accordion{.collapsing, .collapse.show{> .card-body:first-child{// Above background color would overflow on the card-header border // without this margin-top: $card-border-width;}}}.toast-header{background-clip: border-box;}.toast-body{// Same as card-body, see explanation above @include o-bg-color(opacify($toast-background-color, 0.08));}// Modify modals so that their scrollable element is the modal-body (except in // mobile). @include media-breakpoint-up(sm){.modal-dialog{height: 100%; padding: $modal-dialog-margin-y-sm-up 0; margin: 0 auto;}.modal-content{max-height: 100%;}.modal-header, .modal-footer{flex: 0 0 auto;}.modal-body{overflow: auto; // fix iOS issue https://github.com/scottjehl/Device-Bugs/issues/8 -webkit-transform: translate3d(0, 0, 0); min-height: 0;}}// Restore pointer cursor which came with the 'btn' class until BS 4.3.1 .btn:not(:disabled):not(.disabled){cursor: pointer;}// Disable RTL for the popover position .popover{right: auto#{""};}// Restore height to prevent flex to be ignored .input-group .form-control{height: initial;}

/* /web/static/src/scss/lazyloader.scss defined in bundle 'web.assets_frontend' */
 // Disable buttons and links marked with the o_wait_lazy_js class or in a // section which is marked with the o_wait_lazy_js class. a[href], button, input[type="submit"], input[type="button"], .btn{&.o_wait_lazy_js, .o_wait_lazy_js &{pointer-events: none;}}

/* /web/static/src/scss/navbar_mobile.scss defined in bundle 'web.assets_frontend' */
 .o_main_navbar{.o_app{@include media-breakpoint-down(sm){float: none; margin: 0; border-bottom: 1px solid $o-navbar-inverse-link-hover-bg; color: transparent !important;}}> .o_menu_brand{@include media-breakpoint-down(sm){float: none; margin: 0; border-bottom: 1px solid $o-navbar-inverse-link-hover-bg; color: transparent !important;}}@include media-breakpoint-down(sm){transition: height 200ms linear 0s; position: relative; height: $o-navbar-height; > ul{> li{float: none; .dropdown-backdrop{display: none;}.dropdown-menu.show{max-height: none;}}&.o_menu_sections{width: 100%; display: none; .dropdown-menu.show{position: static; float: none; background-color: transparent; box-shadow: none; border: none; overflow: visible; > .dropdown-item{background-color: transparent; color: inherit;}}}&.o_menu_systray{@include o-position-absolute(0px, $o-navbar-height, auto, $o-navbar-height); height: $o-navbar-height; text-align: right; > li{display: inline-block; .dropdown-menu.show{@include o-position-absolute($o-navbar-height, 0, 0, 0); position: fixed; width: auto;}}.o_user_menu .oe_topbar_name{display: none;}}}}}@include media-breakpoint-down(sm){body.o_mobile_menu_opened > .o_main_navbar{height: 100%; overflow: auto; .o_menu_sections{display: block;}}}@include media-breakpoint-down(sm){.o_switch_company_menu > .dropdown-menu{padding-top: 0px; .bg-info{padding: 10px;}}}

/* /web/static/src/scss/notification.scss defined in bundle 'web.assets_frontend' */
 .o_notification_manager{@include o-position-absolute($nav-link-height, 0); position: fixed; z-index: ($zindex-modal + $zindex-popover) / 2; width: $toast-max-width; max-width: 100%; .o_notification{width: 100%;}}

/* /web_editor/static/src/scss/web_editor.common.scss defined in bundle 'web.assets_frontend' */
/// /// This file regroups basic style rules for web_editor enable page edition and backend utils. /// html, body{position: relative; width: 100%; height: 100%;}.css_non_editable_mode_hidden{display: none !important;}.editor_enable .css_editable_mode_hidden{display: none !important;}.note-toolbar{margin-left: 0 !important;}.note-popover .popover > .arrow{display: none;}.note-popover .popover, .note-editor{.dropdown-menu .dropdown-item{> i{visibility: hidden;}&.checked > i{visibility: visible;}}}#wrapwrap, .o_editable{// Only style editor-made tables (shop/portal/... tables are not supposed to // use table-bordered...) table.table.table-bordered{table-layout: fixed; td{min-width: 20px;}}@include media-breakpoint-down(sm){.table-responsive > table.table{table-layout: auto;}}}// List ul.o_checklist{list-style: none; >li{position: relative; margin-left: $o-checklist-margin-left; &::before{content: ''; position: absolute; left: - $o-checklist-margin-left; display: block; height: $o-checklist-before-size; width: $o-checklist-before-size; margin-top: 4px; border: 1px solid; text-align: center; cursor: pointer;}&.o_checked{text-decoration: line-through; &::after{content: "✓"; position: absolute; left: - ($o-checklist-margin-left - $o-checklist-checkmark-width); top: +1px;}}}}ol > li.o_indent, ul > li.o_indent{margin-left: 0; list-style: none; &::before{content: none;}}// Medias img.shadow{box-shadow: 0px 3px 8px rgba(0, 0, 0, 0.2);}img.padding-small, .img.padding-small, span.fa.padding-small, iframe.padding-small{padding: 4px;}img.padding-medium, .img.padding-medium, span.fa.padding-medium, iframe.padding-medium{padding: 8px;}img.padding-large, .img.padding-large, span.fa.padding-large, iframe.padding-large{padding: 16px;}img.padding-xl, .img.padding-xl, span.fa.padding-xl, iframe.padding-xl{padding: 32px;}img.ml-auto, img.mx-auto{display: block;}.fa-6x{font-size: 6em;}.fa-7x{font-size: 7em;}.fa-8x{font-size: 8em;}.fa-9x{font-size: 9em;}.fa-10x{font-size: 10em;}.fa.d-block.mx-auto{text-align: center;}div.media_iframe_video{margin: 0 auto; text-align: center; position: relative; overflow: hidden; min-width: 100px; iframe{width: 100%; height: 100%; @include o-position-absolute($top: 0); margin: 0 auto; margin-left: -50%;}&.padding-small iframe{padding: 4px;}&.padding-medium iframe{padding: 8px;}&.padding-large iframe{padding: 16px;}&.padding-xl iframe{padding: 32px;}.media_iframe_video_size{padding-bottom: 66.5%; position: relative; width: 100%; height: 0;}.css_editable_mode_display{@include o-position-absolute(0,0,0,0); width: 100%; height: 100%; display: none; z-index: 2;}}html[data-browser^="msie"] div.media_iframe_video iframe{margin-left: 0;}// Fields address{.fa.fa-mobile-phone{margin: 0 3px 0 2px;}.fa.fa-file-text-o{margin-right: 1px;}}span[data-oe-type="monetary"]{white-space: nowrap;}// Menus // TODO should not be here but used by web_studio so must stay here for now ul.oe_menu_editor{.oe_menu_placeholder{outline: 1px dashed #4183C4;}ul{list-style: none;}li div{cursor: move;}}// Generate all spacings for all sizes @mixin o-spacing-all($factor: 1){// Generate vertical margin/padding classes used by the editor @for $i from 0 through (256 / 8){@include o-vspacing($i * 8, $factor);}@include o-vspacing(4, $factor); // 92px vertical margin is kept for compatibility @include o-vmargins(92, $factor); // Some horizontal margin classes defined for convenience // (and compatibility) @include o-hmargins(0, $factor); @include o-hmargins(4, $factor); @include o-hmargins(8, $factor); @include o-hmargins(16, $factor); @include o-hmargins(32, $factor); @include o-hmargins(64, $factor);}// Generate all spacings for one size, scalled by a given factor // (0 <= factor <= 1) @mixin o-vspacing($name, $factor: 1){@include o-vmargins($name, $factor); @include o-vpaddings($name, $factor);}@mixin o-vmargins($name, $factor: 1){@include o-vmargins-define($name, $factor * $name);}@mixin o-vpaddings($name, $factor: 1){@include o-vpaddings-define($name, $factor * $name);}@mixin o-hspacing($name, $factor: 1){@include o-hmargins($name, $factor); @include o-hpaddings($name, $factor);}@mixin o-hmargins($name, $factor: 1){@include o-hmargins-define($name, $factor * $name);}@mixin o-hpaddings($name, $factor: 1){@include o-hpaddings-define($name, $factor * $name);}// Generate all spacings for one size, given the name of the spacing and // intended size @mixin o-vmargins-define($name, $size: $name){.mt#{$name}{margin-top: $size * 1px !important;}.mb#{$name}{margin-bottom: $size * 1px !important;}}@mixin o-vpaddings-define($name, $size: $name){.pt#{$name}{padding-top: $size * 1px !important;}.pb#{$name}{padding-bottom: $size * 1px !important;}}@mixin o-hmargins-define($name, $size: $name){.ml#{$name}{margin-left: $size * 1px !important;}.mr#{$name}{margin-right: $size * 1px !important;}}@mixin o-hpaddings-define($name, $size: $name){.pl#{$name}{padding-left: $size * 1px !important;}.pr#{$name}{padding-right: $size * 1px !important;}}// Generate all margins @include o-spacing-all; // Underline a.o_underline{text-decoration: underline; &:hover{text-decoration: underline;}}// ACE EDITOR .o_ace_view_editor{background: $o-we-ace-color; color: white; display: flex; flex-flow: column nowrap; opacity: 0.97; .o_ace_view_editor_title{flex: 0 0 auto; display: flex; align-items: center; padding: $grid-gutter-width/4; >.o_ace_type_switcher>button::after{@include o-caret-down; margin-left: 4px;}>*{flex: 0 0 auto; margin: 0 $grid-gutter-width/4; &.o_include_option{display: flex; align-items: center; font-size: 11px; >.custom-control{margin-right: $grid-gutter-width/4;}}&.o_res_list{flex: 1 1 auto; min-width: 60px;}}}#ace-view-id{flex: 0 0 auto; padding: $grid-gutter-width/4 $grid-gutter-width/2; background-color: lighten($o-we-ace-color, 10%); .o_ace_editor_resource_info{color: $o-we-color-text-lighter;}}#ace-view-editor{@mixin ace-line-error-mixin{content: ""; z-index: 1000; display: block; background-color: theme-color('danger'); opacity: 0.5; pointer-events: none;}height: 70%; // in case flex is not supported flex: 1 1 auto; .ace_gutter{display: block !important; // display even with aria-hidden cursor: ew-resize; .ace_gutter-cell.o_error{position: relative; &::after{@include o-position-absolute(-100%, 0, -100%, 0); @include ace-line-error-mixin;}}}.ace_resize_bar{@include o-position-absolute($right: 0); width: 25px; height: 100%; cursor: ew-resize;}.ace_scroller.o_error::after{@include o-position-absolute(0, auto, 0, 0); width: 3px; @include ace-line-error-mixin;}}}.o_ace_select2_dropdown{width: auto !important; padding-top: 4px; font-family: monospace !important; >.select2-results{max-height: none; max-height: 70vh; .select2-result-label{padding-top: 1px; padding-bottom: 2px; >.o_ace_select2_result{padding: 0; font-size: 12px; white-space: nowrap;}}}}.o_nocontent_help{@include o-nocontent-empty; .o_empty_folder_image:before{@extend %o-nocontent-empty-document;}}@include media-breakpoint-down(sm){odoo-wysiwyg-container{.panel-heading.note-toolbar{overflow-x: auto;}.btn-group{position: static;}}// modal select media .o_technical_modal.o_web_editor_dialog{// see template 'web_editor.FieldTextHtml.fullscreen' z-index: 2001; > .o_select_media_dialog{max-width: inherit !important; z-index: 2001; .modal-dialog, .model-content{height: 100%;}.modal-body{.nav .nav-item.search{width: 100%; .btn-group{display: flex; justify-content: space-around; padding: 5px;}}// center pictogram .font-icons-icons{text-align: center;}// fix search image .form-control.o_we_search{height: inherit;}.form-inline{.btn-group{width: 100%; .btn.btn-primary:not(.dropdown-toggle){width: 90%;}}> .input-group.ml-2{margin-left: 0 !important; > .input-group-append{width: 100%; > .btn{width: 100%;}> .ml-2{margin-left: 0 !important;}}}}// attachment cells .o_we_existing_attachments > .row{flex-direction: column; > .o_existing_attachment_cell{flex: initial; max-width: 100%; > .o_existing_attachment_remove{opacity: inherit; top: 10px;}}}// select media dialog unsplash error #editor-media-image .unsplash_img_container .unsplash_error .mx-auto{width: 100%; .form-group{input.w-100{min-width: 100px;}}}}}}}

/* /web_editor/static/src/scss/web_editor.frontend.scss defined in bundle 'web.assets_frontend' */
@include media-breakpoint-down(sm){img, .media_iframe_video, span.fa, i.fa{transform: none !important;}}.o_wysiwyg_loader{@extend .form-control:disabled; pointer-events: none; min-height: 100px; color: transparent;}.o_wysiwyg_loading{@include o-position-absolute($top: 50%, $left: 50%); transform: translate(-50%, -50%)}

/* /portal/static/src/scss/bootstrap.extend.scss defined in bundle 'web.assets_frontend' */
@each $breakpoint in map-keys($grid-breakpoints){@include media-breakpoint-up($breakpoint){$infix: breakpoint-infix($breakpoint, $grid-breakpoints); @if $infix != ''{// Standard ones are already created by bootstrap @each $prop, $abbrev in (width: w, height: h){@each $size, $length in $sizes{.#{$abbrev}#{$infix}-#{$size}{#{$prop}: $length !important;}}}}}}

/* /portal/static/src/scss/portal.scss defined in bundle 'web.assets_frontend' */
/// /// This file regroups the frontend general design rules and portal design /// rules. /// // ====== Variables ========= $o-theme-navbar-logo-height: $nav-link-height !default; // Portal toolbar (filters, search bar) $o-portal-mobile-toolbar: true; // Enable/Disable custom design $o-portal-mobile-toolbar-border: $border-color; $o-portal-mobile-toolbar-bg: $gray-200; // Portal Tables $o-portal-table-th-pt: map-get($spacers, 2) !default; // bts4 pt-2 $o-portal-table-th-pb: map-get($spacers, 2) !default; // bts4 pb-2 $o-portal-table-td-pt: map-get($spacers, 1) !default; // bts4 pt-1 $o-portal-table-td-pb: map-get($spacers, 1) !default; // bts4 pb-1 // Portal custom bg color $o-portal-bg-color: desaturate($gray-200, 100%); // Check if portal uses default colors $o-portal-use-default-colors: $body-bg == $o-portal-default-body-bg; // Frontend general body{// Set frontend direction that will be flipped with // rtlcss for right-to-left text direction. direction: ltr;}#wrapwrap{position: relative; display: flex; flex-flow: column nowrap; width: 100%; min-height: 100%; > *{flex: 0 0 auto;}> main{flex: 1 0 auto;}}header{.navbar-brand{flex: 0 0 auto; max-width: 75%; &.logo{padding-top: 0; padding-bottom: 0; img{// object-fit does not work on IE but is only used as a fallback object-fit: contain; display: block; width: auto; height: $o-theme-navbar-logo-height; @include media-breakpoint-down(sm){height: auto; max-height: min($o-theme-navbar-logo-height, 5rem);}}}}.nav-link{white-space: nowrap;}}.navbar{margin-bottom: 0; ul.nav > li{&.divider{display: none; border-right: 1px solid $nav-divider-color;}&.active + .divider{visibility: hidden;}}.nav.navbar-nav.float-right{@include media-breakpoint-down(sm){float: none!important;}}}@include media-breakpoint-up(md){.navbar-expand-md ul.nav > li.divider{display: list-item;}}ul.flex-column > li > a{padding: 2px 15px;}// Link without text but an icon a, .btn-link{&.fa:hover{text-decoration: $o-theme-btn-icon-hover-decoration;}}// Odoo options classes .jumbotron{margin-bottom: 0;}// Typography ul{list-style-type: disc;}ul ul{list-style-type: circle;}ul ul ul{list-style-type: square;}ul ul ul ul{list-style-type: disc;}ul ul ul ul ul{list-style-type: circle;}ul ul ul ul ul ul{list-style-type: square;}ul ul ul ul ul ul ul{list-style-type: disc;}ol{list-style-type: decimal;}ol ol{list-style-type: lower-alpha;}ol ol ol{list-style-type: lower-greek;}ol ol ol ol{list-style-type: decimal;}ol ol ol ol ol{list-style-type: lower-alpha;}ol ol ol ol ol ol{list-style-type: lower-greek;}ol ol ol ol ol ol ol{list-style-type: decimal;}li > p{margin: 0;}// Bootstrap hacks %o-double-container-no-padding{padding-right: 0; padding-left: 0;}.container{.container, .container-fluid{@extend %o-double-container-no-padding;}}.container-fluid .container-fluid{@extend %o-double-container-no-padding;}#wrap{> .container, > .container-fluid{// BS3 used to do this on all containers so that margins and floats are // cleared inside containers. As lots of current odoo layouts may rely // on this for some alignments, this is restored (at least for a while) // here only for main containers of the frontend. &::before, &::after{content: ""; display: table; clear: both;}}}[class^="col-lg-"]{min-height: 24px;}.input-group{flex-flow: row nowrap;}.list-group-item:not([class*="list-group-item-"]):not(.active){color: color-yiq($list-group-bg);}%o-portal-breadcrumbs{background-color: inherit;}// Replaces old BS3 page-header class %o-page-header{margin-bottom: $headings-margin-bottom * 2; padding-bottom: $headings-margin-bottom; border-bottom-width: $border-width; border-bottom-style: solid; border-bottom-color: $border-color; line-height: 2.1rem;}.o_page_header{@extend %o-page-header;}// Images spacing img, .media_iframe_video, .o_image{&.float-right{margin-left: $grid-gutter-width / 2;}&.float-left{margin-right: $grid-gutter-width / 2;}}img.o_we_custom_image{// Images added with the editor are .img-fluid by default but should // still behave like inline content. display: inline-block;}// Others ::-moz-selection{background: rgba(150, 150, 220, 0.3);}::selection{background: rgba(150, 150, 220, 0.3);}.oe_search_box{padding-right: 23px;}// Kept for (up to) saas-12 compatibility .para_large{font-size: 120%;}.jumbotron .para_large p{font-size: 150%;}.readable{font-size: 120%; max-width: 700px; margin-left: auto; margin-right: auto; .container{padding-left: 0; padding-right: 0; width: auto;}}// Background (kept for 8.0 compatibility) (! some are still used by website_blog) .oe_dark{background-color: rgba(200, 200, 200, 0.14);}.oe_black{background-color: rgba(0, 0, 0, 0.9); color: white;}.oe_green{background-color: #169C78; color: white; .text-muted{color: #ddd !important;}}.oe_blue_light{background-color: #41b6ab; color: white; .text-muted{color: #ddd !important;}}.oe_blue{background-color: #34495e; color: white;}.oe_orange{background-color: #f05442; color: white; .text-muted{color: #ddd !important;}}.oe_purple{background-color: #b163a3; color: white; .text-muted{color: #ddd !important;}}.oe_red{background-color: #9C1b31; color: white; .text-muted{color: #ddd !important;}}.oe_none{background-color: #FFFFFF;}.oe_yellow{background-color: #A2A51B;}.oe_green{background-color: #149F2C;}// Portal specific // === Page custom bg === // To be applied to all portal pages if bg-color is white (default). @if ($o-portal-use-default-colors){#wrapwrap.o_portal{@include o-bg-color($o-portal-bg-color);}}.o_portal{.breadcrumb{@extend %o-portal-breadcrumbs;}> tbody.o_portal_report_tbody{vertical-align: middle;}}.o_portal_wrap{.o_portal_my_home > .o_page_header > a:hover{text-decoration: none;}.o_portal_navbar{.breadcrumb{padding-left: 0; padding-right: 0; @extend %o-portal-breadcrumbs;}@if ($o-portal-use-default-colors){background-color: white!important;}}.o_portal_my_doc_table{th{padding-top: $o-portal-table-th-pt; padding-bottom: $o-portal-table-th-pb;}td{padding-top: $o-portal-table-td-pt; padding-bottom: $o-portal-table-td-pb;}tr:last-child td{padding-bottom: $o-portal-table-td-pb * 1.5;}td, th{vertical-align: middle; white-space: nowrap;}}address{span[itemprop="name"]{margin-bottom: 0.3em;}div[itemprop="address"] > div{position: relative; span[itemprop="streetAddress"]{line-height: 1.2; margin-bottom: 0.3em;}.fa{@include o-position-absolute(0, $left: 0); line-height: $line-height-base; + span, + div{display: block; // FontAwesome '.fa-fw' fixed-with + margin padding-left: 1.28571429em + 0.5em;}}}}.o_my_sidebar div[itemprop="address"] > div{margin-top: 0.5em;}@if ($o-portal-mobile-toolbar){#o_portal_navbar_content{@include media-breakpoint-down(md){margin: $navbar-padding-y (-$navbar-padding-x) 0; padding: $navbar-padding-y $navbar-padding-x ; border-top: $border-width solid $o-portal-mobile-toolbar-border; background-color: $o-portal-mobile-toolbar-bg;}}}table.table tr{word-wrap: break-word;}}.oe_attachments .o_image_small{height: 40px; width: 50px;}form label{font-weight: $font-weight-bold; &.label-optional{font-weight: $font-weight-normal;}}.o_portal_contact_img{width: 2.3em; height: 2.3em; object-fit: cover;}.o_portal_sidebar{#sidebar_content.card{border-left: 0; border-bottom: 0; > div.card-body{border-left: $border-width solid $border-color;}> ul > li{border-left: $border-width solid $border-color; margin-bottom: -1px;}> div.card-footer{border-left: $border-width solid $border-color; border-bottom: $border-width solid $border-color;}}.o_portal_html_view{overflow: hidden; background: white; position: relative; .o_portal_html_loader{@include o-position-absolute(45%, 0, auto, 0);}iframe{position: relative;}}}// ------------------------------------------------------------ // Frontend Discuss widget // ------------------------------------------------------------ // Readonly display .o_portal_chatter{padding: 10px; .o_portal_chatter_avatar{width: 45px; height: 45px; margin-right: 1rem;}.o_portal_chatter_header{margin-bottom: 15px;}.o_portal_chatter_composer{margin-bottom: 15px;}.o_portal_chatter_messages{margin-bottom: 15px; .o_portal_chatter_message{div.media-body > p:not(.o_portal_chatter_puslished_date):last-of-type{margin-bottom: 5px;}}.o_portal_chatter_message_title{p{font-size:85%; color:$o-main-color-muted; margin: 0px;}}}.o_portal_chatter_pager{text-align: center;}}// Readonly / Composer mix display .o_portal_chatter, .o_portal_chatter_composer{.o_portal_chatter_attachment{.o_portal_chatter_attachment_name{word-wrap: break-word;}.o_portal_chatter_attachment_delete{@include o-position-absolute($top: 0, $right: 0); opacity: 0;}&:hover .o_portal_chatter_attachment_delete{opacity: 1;}}}

/* /website/static/src/scss/website.scss defined in bundle 'web.assets_frontend' */
/// /// This file regroups the website design rules. /// $-seen: (); $-font-numbers: ( o-website-value('font-number'), o-website-value('headings-font-number'), o-website-value('navbar-font-number'), o-website-value('buttons-font-number'), ); @each $-number in $-font-numbers{@if index($-seen, $-number) == null{$-seen: append($-seen, $-number); $-theme-font: nth($o-theme-font-urls, $-number); @if $-theme-font{{unquote($-theme-font)}&display=swap");}}}:root{// The theme customize modal JS will need to know the value of some scss // variables used to render the user website, and those may have been // customized by themes, the user or anything else (so there is no file to // parse to get them). Those will be printed here as CSS variables. // 0) does this theme enforce primary = alpha or secondary = beta --is-alpha-primary: #{$-is-alpha-primary}; --is-beta-secondary: #{$-is-beta-secondary}; // 1) Handle default values --header-font-size: #{$font-size-base}; // 2) The values in the $theme-colors map are already printed by Bootstrap. // 3) The values in the $colors map are also printed by Bootstrap. // 4) The Odoo values map, $o-website-values, must be printed. @each $key, $value in o-map-omit($o-website-values){--#{$key}: #{$value};}// 5) Use final value used by the theme $-h1-color: if($headings-color == inherit or not $headings-color, $body-color, $headings-color); $-h2-color: if(color('h2'), color('h2'), $-h1-color); $-h3-color: if(color('h3'), color('h3'), $-h2-color); $-h4-color: if(color('h4'), color('h4'), $-h3-color); $-h5-color: if(color('h5'), color('h5'), $-h4-color); $-h6-color: if(color('h6'), color('h6'), $-h5-color); --body: #{$body-bg}; --text: #{$body-color}; --h1: #{$-h1-color}; --h2: #{$-h2-color}; --h3: #{$-h3-color}; --h4: #{$-h4-color}; --h5: #{$-h5-color}; --h6: #{$-h6-color}; --logo-height: #{$o-theme-navbar-logo-height}; --number-of-fonts: #{length($o-theme-fonts)};}#wrapwrap{background-size: cover; background-repeat: no-repeat; background-position: center; background-attachment: fixed; @if ($o-theme-layout == 'boxed'){@include media-breakpoint-up(md){padding: 0 7.5%;}#wrap{background-color: $white;}}}.navbar{@if ($o-theme-navbar-font != $o-theme-font){font-family: $o-theme-navbar-font;}.nav-item{transition: opacity 1000ms ease 0s;}.o_menu_loading .nav-item{height: 0 !important; overflow: hidden !important; opacity: 0 !important;}}.navbar-light{// Style only navbar-light which Odoo is only supposed to use in standard // anyway. Automatically mimic navbar-dark if the user's menu color is dark. // Note: this only works because navbar-light is defined before navbar-dark, // we may want to use a safest way when possible. @if color('menu'){background-color: color('menu') !important; @if (color-yiq(color('menu')) != $yiq-text-dark){@extend .navbar-dark;}}}$-header-nav-link-height: $nav-link-height; @if o-website-value('header-font-size'){$-header-nav-link-height: o-website-value('header-font-size') * $line-height-base + $nav-link-padding-y * 2; header{font-size: o-website-value('header-font-size'); .dropdown-menu{font-size: inherit;}}}@if $o-theme-navbar-logo-height{// With default values, this makes it slightly bigger than standard // navbar-brand, which is what we want header .navbar-brand{font-size: $o-theme-navbar-logo-height / $line-height-base; $-logo-padding-y: max(0, $-header-nav-link-height - $o-theme-navbar-logo-height) / 2; &, &.logo{padding-top: $-logo-padding-y; padding-bottom: $-logo-padding-y;}}}.o_footer{@if color('footer'){@include o-bg-color(color('footer'));}> #footer{// FIXME needed to prevent the dropzone at the bottom of the #wrap element // to be at the same place of the dropzone at the top of the #footer element border-top: 1px solid transparent;}}h2, h3, h4, h5, h6{color: color('h2');}h3, h4, h5, h6{color: color('h3');}h4, h5, h6{color: color('h4');}h5, h6{color: color('h5');}h6{color: color('h6');}.btn{@if ($o-theme-buttons-font != $o-theme-font){font-family: $o-theme-buttons-font;}}// Texts font[style*='background'], font[class*='bg-']{padding: 2px 6px 4px;}// Icons .fa{font-family: "FontAwesome" !important; $size: 3rem; &.rounded-circle, &.rounded, &.rounded-0, &.rounded-leaf, &.img-thumbnail, &.shadow{display: inline-block; vertical-align: middle; text-align: center; // fa-1x is not ouput @include size($size); line-height: $size; @for $i from 2 through 5{&.fa-#{$i}x{@include size($size + $i); line-height: $size + $i;}}// Default, if no background-color already selected background-color: $gray-100;}&.img-thumbnail{padding: 0;}&.rounded-leaf{border-top-left-radius: $size; border-bottom-right-radius: $size;}}// Buttons .btn{&.flat{border: 0; letter-spacing: 0.05em; text-transform: uppercase; @include button-size(0.75rem, 1.5rem, ($font-size-base * .75), $btn-line-height, 0); &.btn-lg{@include button-size(1rem, 2rem, ($font-size-lg * .75), $btn-line-height-lg, 0);}&.btn-sm{@include button-size(.5rem, 1rem, ($font-size-sm * .75), $btn-line-height-sm, 0);}&.btn-xs{@include button-size(.25rem, .5rem, ($font-size-base * .5), $btn-line-height-sm, 0);}}&.rounded-circle{border-radius: 100px !important; @include button-size(0.45rem, 1.35rem, $font-size-base, $btn-line-height, 30px); &.btn-lg{@include button-size(.6rem, 1.8rem, $font-size-lg, $btn-line-height-lg, 30px);}&.btn-sm{@include button-size(.3rem, .9rem, $font-size-sm, $btn-line-height-sm, 30px);}&.btn-xs{@include button-size(.15rem, .45rem, ($font-size-base * .75), $btn-line-height-sm, 30px);}}}.s_btn{.btn + .btn{margin-left: .75rem;}}// Blockquotes .blockquote{font-size: 1rem; footer{background-color: inherit;}}// Background Images .oe_img_bg{background-size: cover; background-repeat: no-repeat; &.o_bg_img_opt_contain{background-size: contain; background-position: center center;}&.o_bg_img_opt_custom{background-size: auto;}&.o_bg_img_opt_repeat{background-repeat: repeat;}&.o_bg_img_opt_repeat_x{background-repeat: repeat-x;}&.o_bg_img_opt_repeat_y{background-repeat: repeat-y;}}// Background videos .o_background_video{position: relative; > *{position: relative;}}.o_bg_video_container{@include o-position-absolute(0, 0 ,0 ,0); overflow: hidden;}.o_bg_video_iframe{position: relative; pointer-events: none !important;}.o_bg_video_loading{@include o-position-absolute(0, 0 ,0 ,0);}// Probably outdated // Lists .o_ul_toggle{display: none;}.o_ul_folded{.o_close{display: none!important;}.o_ul_toggle_self, .o_ul_toggle_next{display: inline-block; line-height: inherit; float: left; position: relative; margin-left: -1em; top: -0.15em; left: 0.2em; font-size: 1.4em; text-decoration: none; &.o_open:before{content: "";}&:before{content: "";}}}// Probably outdated // Disable fixed height @media (max-width: 400px){section, .parallax, .row, .hr, .blockquote{height: auto !important;}}// Probably outdated // Table .table_desc{margin: 0 0 20px 0; width: 100%; word-break: break-all; border: 1px solid #dddddd;}.table_heading{background-color: #f5f5f5; border: 1px solid #dddddd; color: #666666; font-size: 14px; padding: 4px;}table.table_desc tr td{text-align: left; padding: 5px; font-size: 13px; &:first-child{width: 25%; font-weight: bold; border-bottom: 1px solid #c9c9c9; border-right: 1px solid #c9c9c9; border-left: none;}&:last-child{border-bottom: 1px solid #c9c9c9;}}// Jumbotron .jumbotron{border-radius: 0;}// // Snippets // // Title .s_title{.s_title_boxed{> *{display: inline-block; padding: $grid-gutter-width; border: 1px solid;}}.s_title_lines{overflow: hidden; &:before, &:after{content: ""; display: inline-block; vertical-align: middle; width: 100%; border-top: 1px solid; border-top-color: inherit;}&:before{margin: 0 $grid-gutter-width/2 0 -100%;}&:after{margin: 0 -100% 0 $grid-gutter-width/2;}}.s_title_underlined{@extend %o-page-header;}.s_title_small_caps{font-variant: small-caps;}.s_title_transparent{opacity: .5;}.s_title_thin{font-weight: 300;}}// Features Grid .s_features_grid{&_content{overflow: hidden; p{margin-bottom: 0;}}&_icon{float: left; margin-right: $grid-gutter-width/2;}}// Alert .s_alert{margin: $grid-gutter-width/2 0; border: 1px solid; border-radius: 0.25rem; p, ul, ol{&:last-child{margin-bottom: 0;}}&_sm{padding: $grid-gutter-width/3; font-size: $font-size-sm;}&_md{padding: $grid-gutter-width/2; font-size: $font-size-base;}&_lg{padding: $grid-gutter-width; font-size: $font-size-lg;}&_icon{float: left; margin-right: 10px;}&_content{overflow: hidden;}}// Three columns .s_three_columns{.align-items-stretch .card{height: 100%;}}// Comparisons .s_comparisons{.card-body{.card-title{margin: 0;}.s_comparisons_currency, .s_comparisons_price, .s_comparisons_decimal{display: inline-block; vertical-align: middle;}.s_comparisons_currency, .s_comparisons_decimal{font-size: 80%;}.s_comparisons_price{font-size: 200%;}}}// FAQ .s_faq_collapse{.accordion .card{.card-header{cursor: pointer; display: inline-block; width: 100%; padding: .5em 0; border-radius: 0; outline: none; &:before{content:'\f056'; font-family: 'FontAwesome'; display: inline-block; margin: 0 .5em 0 .75em; color: $gray-600;}&.collapsed:before{content:'\f055'; font-family: 'FontAwesome';}&:hover, &:focus{text-decoration: none;}}.card-body{padding: 1em 2.25em;}}.card-body p:last-child, .card-body ul:last-child{margin-bottom: 0;}}// References .s_references .img-thumbnail{border: none;}// Carousel .s_carousel, .s_quotes_carousel{// Controls .carousel-control-prev, .carousel-control-next{cursor: pointer; width: 8%; opacity: 1;}.carousel-control-prev{justify-content: flex-start;}.carousel-control-next{justify-content: flex-end;}.carousel-control-prev-icon, .carousel-control-next-icon{@include size(auto); background-image: none; color: $body-color; &:before{font-family: "FontAwesome"; display: inline-block; background-color: #fff;}}// Content .carousel-inner{overflow: hidden; height: 100%; .carousel-item{height: 100%;}}// Indicators .carousel-indicators li:hover:not(.active){background-color: rgba(255,255,255,.8);}// Default &.s_carousel_default{// Controls - chevron .carousel-control-prev-icon:before{content: "\f053" #{""}; margin-left: 1.5rem;}.carousel-control-next-icon:before{content: "\f054" #{""}; margin-right: 1.5rem;}.carousel-control-prev-icon:before, .carousel-control-next-icon:before{background-color: rgba(0,0,0,0); font-size: 2rem; color: #fff; text-shadow: $box-shadow-sm;}// Indicators .carousel-indicators li{height: .5rem; box-shadow: $box-shadow-sm; border-radius: 2px;}}// Border &.s_carousel_bordered{border: 2rem solid rgba(0,0,0,0); // Controls - caret .carousel-control-prev-icon:before{content: "\f0d9";}.carousel-control-next-icon:before{content: "\f0da";}.carousel-control-prev-icon:before, .carousel-control-next-icon:before{@include size(2rem, 6rem); line-height: 6rem; font-size: 1.5rem;}// Indicators .carousel-indicators li{@include size(3rem, 1rem);}}// Circle &.s_carousel_rounded{// Container // .carousel-inner{// border-top-left-radius: 10rem; // border-bottom-right-radius: 10rem; //}// Controls - arrow .carousel-control-prev{margin-left: 1.5rem;}.carousel-control-next{margin-right: 1.5rem;}.carousel-control-prev-icon:before{content: "\f060";}.carousel-control-next-icon:before{content: "\f061";}.carousel-control-prev-icon:before, .carousel-control-next-icon:before{@include size(4rem); line-height: 4rem; border-radius: 50%; font-size: 1.25rem;}// Indicators .carousel-indicators li{@include size(1rem); border-radius: 50%;}}// Boxed &.s_carousel_boxed{@include make-container(); @include make-container-max-widths(); .carousel-item{padding: 0 1rem;}// Controls - angle .carousel-control-prev, .carousel-control-next{align-items: flex-end; margin-bottom: 1.25rem;}.carousel-control-prev{margin-left: 3rem;}.carousel-control-next{margin-right: 3rem;}.carousel-control-prev-icon:before{content: "\f104";}.carousel-control-next-icon:before{content: "\f105";}.carousel-control-prev-icon:before, .carousel-control-next-icon:before{@include size(2rem); line-height: 2rem; font-size: 1.25rem;}// Indicators .carousel-indicators li{@include size(1rem); &:hover:not(.active){background-color: rgba(255,255,255,.8);}}}}.carousel .container{.carousel-img img{max-height: 95%; padding: 10px;}> .carousel-caption{@include o-position-absolute($right: 50%, $left: 50%); bottom: 20px; > div{position: absolute; text-align: left; padding: 20px; background: rgba(0, 0, 0, 0.4); bottom: 20px;}}> .carousel-image{@include o-position-absolute($top: 5%, $bottom: 5%); max-height: 90%; margin: 0 auto;}.carousel-item.text_image .container{> .carousel-caption{left: 10%; > div{right: 50%; margin-right: -20%; max-width: 550px;}}> .carousel-image{right: 10%; left: 50%;}}.carousel-item.image_text .container{> .carousel-caption{right: 10%; > div{left: 50%; margin-left: -20%; max-width: 550px;}}> .carousel-image{right: 50%; left: 10%;}}.carousel-item.text_only .container{> .carousel-caption{left: 10%; right: 10%; top: 10%; bottom: auto; > div{text-align: center; background: transparent; bottom: auto; width: 100%;}}> .carousel-image{display: none !important;}}}// Quotes Slider .s_quotes_carousel{blockquote{padding: $grid-gutter-width; margin-bottom: 0; .s_quotes_carousel_icon{position: absolute; top: 0; left: -3rem;}img{max-width: 40px; margin-right: 5px; border-radius: 50%;}footer{background-color: transparent; &:before{content:"";}}}}// Company Team .s_company_team{@include media-breakpoint-down(md){img{max-width: 50%;}}}// Gallery .o_gallery{&.o_grid, &.o_masonry{.img{width: 100%;}}&.o_grid{&.o_spc-none div.row{margin: 0; > div{padding: 0;}}&.o_spc-small div.row{margin: 5px 0; > div{padding: 0 5px;}}&.o_spc-medium div.row{margin: 10px 0; > div{padding: 0 10px;}}&.o_spc-big div.row{margin: 15px 0; > div{padding: 0 15px;}}&.size-auto .row{height: auto;}&.size-small .row{height: 100px;}&.size-medium .row{height: 250px;}&.size-big .row{height: 400px;}&.size-small, &.size-medium, &.size-big{img{height: 100%;}}}&.o_masonry{&.o_spc-none div.col{padding: 0; > img{margin: 0 !important;}}&.o_spc-small div.col{padding: 0 5px; > img{margin: 5px 0 !important;}}&.o_spc-medium div.col{padding: 0 10px; > img{margin: 10px 0 !important;}}&.o_spc-big div.col{padding: 0 15px; > img{margin: 15px 0 !important;}}}&.o_nomode{&.o_spc-none .img{padding: 0;}&.o_spc-small .img{padding: 5px;}&.o_spc-medium .img{padding: 10px;}&.o_spc-big .img{padding: 15px;}}&.o_slideshow{.carousel ul.carousel-indicators li{border: 1px solid #aaa;}> .container{height: 100%;}}.carousel-inner .item img{max-width: none;}}.o_gallery, .modal-body{&.o_slideshow{.carousel{height: 100%; .carousel-inner{height: 100%;}.carousel-item.active, .carousel-item-next, .carousel-item-prev{display: flex; align-items: center; height: 100%; padding-bottom: 64px;}img{max-height: 100%; max-width: 100%; margin: auto;}ul.carousel-indicators{height: auto; padding: 0; border-width: 0; position: absolute; bottom: 0; width: 100%; margin-left: 0; left: 0%; > *{list-style-image: none; display: inline-block; width: 40px; height: 40px; line-height: 40px; margin: 2.5px 2.5px 2.5px 2.5px; padding: 0 !important; border: 1px solid #aaa; text-indent: initial; background-size: cover; background-color: #fff; border-radius: 0; vertical-align: bottom; flex: 0 0 40px; &:not(.active){opacity: 0.8; filter: grayscale(1);}}}}}}// Parallax .parallax{position: relative; // TODO this introduces a limitation: no dropdown will be able to // overflow. Maybe there is a better way to find. &:not(.s_parallax_no_overflow_hidden){overflow: hidden;}> *{position: relative;}> .s_parallax_bg{@include o-position-absolute(0, 0, 0, 0); display: block; background-color: inherit; background-size: cover; background-attachment: scroll; pointer-events: none; &::after{content: ""; @include o-position-absolute(0, 0, 0, 0); display: block; background-color: inherit;}}@include media-breakpoint-up(xl){// Fixed backgrounds are disabled when using a mobile/tablet device, // which is not a big deal but, on some of them (iOS...), defining the // background as fixed breaks the background-size/position props. // So we enable this only for >= XL devices. &.s_parallax_is_fixed > .s_parallax_bg{background-attachment: fixed;}}}// HR .s_hr{line-height: 0; hr{padding: 0; border: 0; border-top-color: inherit; margin: 0;}// Style .s_hr_dashed{border-top-style: dashed;}.s_hr_double{border-top-style: double;}.s_hr_dotted{border-top-style: dotted;}.s_hr_solid{border-top-style: solid;}// Thickness $count: 5; $base-width: 1px; @while $count > 0{.s_hr_#{$base-width * $count}{border-top-width: $base-width * $count;}$count: $count - 1;}}// Card .s_card{margin: $grid-gutter-width/2 0; .card-body{// color: initial; p, ul, ol{&:last-child{margin-bottom: 0;}}}}// Share .s_share{> *{display: inline-block; vertical-align: middle;}.s_share_title{margin: 0 .4rem 0 0;}> a + a{margin-left: .4rem;}.s_share_facebook{&, &:hover, &:focus{color: #3b5998;}}.s_share_twitter{&, &:hover, &:focus{color: #1da1f2;}}.s_share_linkedin{&, &:hover, &:focus{color: #0077b5;}}.s_share_google{&, &:hover, &:focus{color: #db4437;}}}// Rating .s_rating{$star: "\f005"; $star-o: "\f006"; $circle: "\f111"; $circle-o: "\f10c"; $heart: "\f004"; $heart-o: "\f08a"; @mixin s_rating_generate_icons($off, $on){.fa:before{content: $off;}@for $counter from 5 to 0{&.s_rating_#{$counter}{.fa:nth-of-type(-n+#{$counter}):before{content: $on;}}}}> .s_rating_stars{@include s_rating_generate_icons($star-o, $star);}> .s_rating_squares{@include s_rating_generate_icons($circle-o, $circle);}> .s_rating_hearts{@include s_rating_generate_icons($heart-o, $heart);}> .s_rating_bar{.fa{display: none;}.s_rating_bar{display: flex; height: $progress-height; background-color: $gray-300; &:before{content: ""; display: flex; flex-direction: column; justify-content: center; @include transition($progress-bar-transition); @include gradient-striped(); background-size: $progress-height $progress-height; background-color: theme-color('primary'); animation: progress-bar-stripes $progress-bar-animation-timing;}}@for $counter from 5 to 0{&.s_rating_#{$counter}{.s_rating_bar:before{width: percentage($counter/5);}}}}> .s_rating_1x{.fa{font-size: 1em;};}> .s_rating_2x{.fa{font-size: 2em;};}> .s_rating_3x{.fa{font-size: 3em;};}}// // Layout // // Header .o_header_affix{display: block; @include o-position-absolute(0, 0, auto, 0); position: fixed; z-index: $zindex-modal - 20; background: $light; margin-top: -999px; transition: margin-top 500ms ease 0s; @include media-breakpoint-down(sm){.navbar-collapse{max-height: 70vh; overflow-y: auto;}}&.affixed{margin-top: 0px !important; // the default margin-top is adapted in JS}}#oe_main_menu_navbar + #wrapwrap .o_header_affix{top: $o-navbar-height;}// Navbar .navbar .o_extra_menu_items.show > ul{> li{+ li{border-top: 1px solid gray('200');}> a.dropdown-toggle{background-color: gray('200'); color: inherit; // Useful when the toggle is active pointer-events: none; // hack to prevent clicking on it because dropdown always opened}> ul{// remove dropdown-menu default style as it is nested in another one position: static; float: none; display: block; max-height: none; margin-top: 0; padding: 0; border: none; box-shadow: none;}}}// Mega menu .o_mega_menu{width: 100%; padding: 0; margin-top: 0; border-radius: 0; background-clip: unset; // Remove the 1px gap introduced by BS4 .container, .container-fluid{// Need to reforce those because they are removed since its a container // inside another container (the one in the navbar) padding-left: $grid-gutter-width / 2; padding-right: $grid-gutter-width / 2;}}.o_mega_menu_container_size{@include media-breakpoint-up(md){left: 50%; transform: translateX(-50%);}$-mm-max-widths: (); @each $k, $v in $container-max-widths{$-mm-max-widths: map-merge($-mm-max-widths, ( #{$k}: $v - $grid-gutter-width, ));}@include make-container-max-widths($-mm-max-widths);}// Copyright .o_footer_copyright{padding: 8px; .js_language_selector{display: inline-block;}@include media-breakpoint-up(md){.row{display: flex; > div{margin: auto 0;}}}}#wrapwrap.o_header_overlay{> header:not(.o_header_affix){@include o-position-absolute(0, 0, auto, 0); z-index: 1000; > .navbar{background-color: transparent !important; border-color: transparent; color: inherit; .nav-item{> .nav-link{background-color: transparent; color: inherit; &.active{font-weight: bolder;}}}}}}// Figure with special style .o_figure_relative_layout{position: relative; .figure-img{margin-bottom: 0;}.figure-caption{@include o-position-absolute(auto, 0, 0, 0); @include o-bg-color(rgba(theme-color('dark'), $o-theme-figcaption-opacity)); padding: $tooltip-padding-y $tooltip-padding-x; font-weight: $font-weight-bold; a{color: inherit;}}}@each $color, $value in $theme-colors{.bg-#{$color}-light{background-color: rgba($value, 0.1);}}@each $media, $color in $o-social-colors{@include text-emphasis-variant(".text-#{$media}", $color);}// TODO: Will be handled properly in master/saas-12.2, temp fix for website_event.registration_attendee_details .modal-footer > .float-left{margin-right: auto;}// CoverProperties .o_record_cover_container{position: relative; .o_record_cover_component{@include o-position-absolute(0, 0, 0, 0); background-size: cover; background-position: center; background-repeat: no-repeat;}}// Fixing job perks icons in website_hr_recruitement by making them full-width .o_perk span{display: block;}

/* /website/static/src/scss/website.ui.scss defined in bundle 'web.assets_frontend' */
/// /// This file regroups main website UI layout rules (when the user is connected) /// and the UI components rules. /// // LAYOUTING body{// Set frontend direction that will be flipped with // rtlcss for right-to-left text direction. direction: ltr;}body.o_connected_user{padding-top: $o-navbar-height!important;}// MAIN MENU STYLE (added above navbar.scss) #oe_main_menu_navbar{@include o-w-preserve-dropdown-menus; @include o-position-absolute(0, 0, auto, 0); position: fixed; z-index: $zindex-modal - 10; font-family: $o-we-font-family; font-size: 14px; a:hover, a:focus{text-decoration: none;}.dropdown-menu{font-size: inherit; border-radius: 0; color: $dropdown-link-active-color;}.o_menu_sections{.o_mobile_preview a{text-align: center; font-size: 20px;}}.o_menu_systray{> li > a{padding: 0 $grid-gutter-width/2; &.css_edit_dynamic{padding: 0 $grid-gutter-width/4;}&[data-action="edit"], &[data-action="translate"], &.css_edit_dynamic{@include button-variant($o-brand-primary, $o-brand-primary);}}.o_mobile_preview a{text-align: center; font-size: 20px;}}@include media-breakpoint-down(sm){#oe_applications{position: inherit; z-index: 1002;}}}@mixin o-w-close-icon($size:12px, $color:#000, $color-hover:#000, $thickness: 1px, $opacity: 0.7, $opacity-hover: 1){color: transparent; position: relative; display: inline-block; opacity: $opacity; width: $size; height: $size; &:hover, &:focus{outline: none; opacity: $opacity-hover; &::after, &::before{background: $color-hover;}}&:after, &:before{content: ''; margin-top: -1px; background: $color; @include size(100%, $thickness); @include o-position-absolute(50%, $left:0); transform: rotate(45deg);}&:after{transform: rotate(-45deg);}}// MODALS body .modal{&.o_technical_modal{@include o-w-preserve-base; @include o-w-preserve-dropdown-menus; @include o-w-preserve-headings; @include o-w-preserve-forms; @include o-w-preserve-links; @include o-w-preserve-btn; @include o-w-preserve-cards; @include o-w-preserve-modals; @include o-w-preserve-tabs;}// MOBILE PREVIEW &.oe_mobile_preview{text-align: center; .modal-dialog{display: inline-block; width: auto; .modal-content{background-color: black!important; border: 3px outset gray; border-radius: 20px; .modal-header{border: none; cursor: pointer; font-family: $o-we-font-family; &, .close{color: white;}h4{font-family: inherit; font-weight: normal; color: inherit; .fa{margin-left: $grid-gutter-width/2;}}.close{color: $o-we-color-light;}}.modal-body{background-color: inherit!important; border-radius: 20px; padding: 15px; $mobile-preview-width: 320px; $mobile-preview-height: 530px; display: flex; width: $mobile-preview-width + 15; height: $mobile-preview-height; transition: all 400ms ease 0s; &.o_invert_orientation{width: $mobile-preview-height + 15; height: $mobile-preview-width;}> iframe{display: block; width: 100%; border: none;}}.modal-footer{display: none;}}}}// TOP MENU EDITOR .oe_menu_editor{ul{padding-left: 37px;}li{margin-top: -1px; .input-group-addon{border-radius: 0;}}}// SEO CONFIGURATION &.oe_seo_configuration{#language-box{padding-right: 25px; background-color: white;}.o_seo_og_image{.o_meta_img{position: relative; transition: border-color 200ms; display: inline-block; border: 2px solid gray('400'); > img{width: 70px; height: 70px; object-fit: cover; cursor: pointer;}&:hover{border-color: $o-brand-primary;}&.o_active_image{border-color: $o-brand-primary; &:before{@include o-position-absolute($right: 0); content: ''; border: 16px solid rgba($o-brand-primary, 0.8); border-left-color: transparent; border-bottom-color: transparent;}&:after{@include o-position-absolute(2px, 3px); display: inline-block; content: "\f00c"; font-family: FontAwesome; color: white; font-size: 12px;}}.o-custom-label{@include o-position-absolute($bottom: 0px); background: rgba(gray('800'), 0.6); font-size: 12px;}}.o_meta_img_upload{transition: 200ms; display: inline-block; padding: 23px 27px; border: 2px dashed lighten(gray('600'), 30%); vertical-align: top; cursor: pointer; color: lighten(gray('600'), 30%); &:hover{border-color: $o-brand-primary; color: $o-brand-primary;}}.o_meta_active_img{height: 240px; object-fit: cover;}}div.oe_seo_preview_g{list-style: none; font-family: arial, sans-serif; .r{cursor: pointer; color:#1a0dab; font-size: 18px; overflow: hidden; text-overflow: ellipsis; -webkit-text-overflow: ellipsis; white-space: nowrap;}.s{font-size: 13px; line-height: 18px; color: #545454; .kv{color: #006621; font-size: 14px; line-height: 18px;}}}td.o_seo_keyword_suggestion span.o_seo_suggestion.badge{cursor: pointer;}}}// ADD NEW PAGE MODAL .o_new_content_open{// Kill the scroll on the body overflow: hidden;}#o_new_content_menu_choices{@include o-w-preserve-base; @include o-position-absolute($o-navbar-height, 0, 0, 0); position: fixed; display: flex; overflow: auto; background-color: rgba(0, 0, 0, 0.8); font-family: $o-we-font-family; &::before{content: " "; @include o-position-absolute(0, 0, 0, 0); z-index: -1; pointer-events: none;}.container{max-width: 720px; margin: auto;}.o_new_content_element{opacity: 0; animation: fadeInDownSmall 1s forwards; a{display: block; font-size: 34px; text-align: center; i{width: 110px; height: 110px; border: 3px solid lighten(#2C2C36, 10%); border-radius: 100%; line-height: 104px; background-color: #2C2C36; color: white; transition: all 0.5s cubic-bezier(0.19, 1, 0.22, 1) 0s;}p{color: white; margin-top: 0.7em; font-size: 0.5em;}&:hover, &:focus{text-decoration: none; outline: none; // remove ugly dotted border on Firefox i{border-color: #1cc1a9; box-shadow: 0 0 10px rgba(28, 193, 169, 0.46);}}}}}// LOGIN FORM .oe_login_form, .oe_signup_form, .oe_reset_password_form{max-width: 300px; position: relative; margin: 50px auto;}// ACE EDITOR .o_ace_view_editor{@include o-w-preserve-base; @include o-w-preserve-btn; @include o-w-preserve-forms; @include o-position-absolute($o-navbar-height, 0, 0); position: fixed; z-index: $zindex-modal;}// POPOVER NAVIGATION .tour .popover-navigation{margin-left: 13px; margin-bottom: 8px;}// PUBLISH .css_published{.btn-danger, .css_publish{display: none;}}.css_unpublished{.btn-success, .css_unpublish{display: none;}}[data-publish='off'] > *:not(.css_options){opacity: 0.5;}// Do not show path behind the links in browser printing @media print{a[href]:after{content: initial;}}// Pages Management .o_page_management_info{.o_switch{padding-top: 9px;}}#list_website_pages{th{background-color: $o-brand-odoo; color: white;}td, th{padding: 0.45rem;}td{> a.fa{margin-left: 5px; color: $o-brand-odoo;}.text-muted{opacity: 0.5;}}.fa-check, .fa-eye-slash{color: $info;}}

/* /website/static/src/scss/user_custom_rules.scss defined in bundle 'web.assets_frontend' */
// // This file is meant to regroup your design customizations. For example, doing // this will separate your footer with a dotted border using your primary color. // // footer{// border-top: 5px dotted theme-color('primary'); //}// 

/* /website_enterprise/static/src/scss/website_enterprise.scss defined in bundle 'web.assets_frontend' */
.o_menu_toggle{float: left; padding: 4px 0 0 16px; font-size: 1.3em; color: white; &:hover, &:focus, &:active{color: white; outline: none;}}

/* /website_form/static/src/scss/website_form.scss defined in bundle 'web.assets_frontend' */
// Radio buttons and checkboxes flex layout .o_website_form_flex{display: flex; flex-wrap: wrap;}.o_website_form_flex_item{// col-lg-4 flex-basis: 33%; // col-md-6 @include media-breakpoint-down(md){flex-basis: 50%;}// col-12 @include media-breakpoint-down(sm){flex-basis: 100%;}}// Hidden field is only partially hidden in editor .o_website_form_field_hidden{display: none;}.editor_enable .o_website_form_field_hidden{display: flex; opacity: 0.5;}// Select inputs do not trigger the default browser behavior // Since we use a custom editable element .editor_enable .s_website_form .form-field select{pointer-events: none;}// Required fields have a star which is not part of the field label .o_website_form_required, .o_website_form_required_custom{.col-form-label:after{content: ' *';}}// Quickfix to display the editable select as a single big field #editable_select.form-control{height: 100%;}// Fix for firefox browse button which is too big for Bootstrap form-field // http://stackoverflow.com/questions/22049739/fix-for-firefox-file-input-using-bootstrap-3-1 .form-field input[type=file].form-control{height: 100%;}

/* /website_mail/static/src/css/website_mail.scss defined in bundle 'web.assets_frontend' */
.js_follow[data-follow='on'] .js_follow_btn , .js_follow[data-follow='off'] .js_unfollow_btn{display: none;}.js_follow_icons_container{.js_follow_btn, .js_unfollow_btn{animation: js_follow_fade 1s ease forwards; opacity: 0; small{opacity: 0; transition: opacity 0.3s ease;}@include hover-focus (){small{transition-duration: 1s; opacity: 1;}};}.fa:before{content: "\f0f3"; color: $text-muted;}.js_follow_btn:hover .fa:before{color: $body-color;}.js_unfollow_btn .fa:before{color: theme-color('primary');}.js_unfollow_btn:hover .fa:before{content: "\f1f6"; color: theme-color('danger');}}@keyframes js_follow_fade{to{opacity: 1;}}

/* /website_blog/static/src/scss/website_blog.scss defined in bundle 'web.assets_frontend' */
// ======= VARIABLES ======= $o-wblog-read-width: 620px; $o-wblog-read-container-sidebar-width :900px; $o-wblog-loader-size: 50px; $o-wblog-title-sizes-variants: ( tiny: ( title: $display4-size*0.6, subtitle: $lead-font-size ), small: ( title: $display4-size*0.75, subtitle: $lead-font-size ), big: ( title: $display3-size, subtitle: $lead-font-size*1.25 ), huge: ( title: $display2-size, subtitle: $lead-font-size*1.5 ), hero: ( title: $display1-size, subtitle: $lead-font-size*1.75 ) ) !default; // ======= ANIMATIONS ======= // Attention keeper for the "scroll down" top-banner button @keyframes o-wblog-anim-heart{0%, 14%, 35%{transform: scale(1);}7%, 21%{transform: scale(1.3); background-color: rgba(theme-color('primary'), 0.8);}}// Generic fade-in @keyframes o-wblog-fade-In{0%{opacity: 0;}100%{opacity: 1;}}@keyframes o-wblog-loader{0%, 100%{animation-timing-function: cubic-bezier(0.5, 0, 1, 0.5);}0%{transform: rotateY(0deg);}50%{transform: rotateY(1800deg); animation-timing-function: cubic-bezier(0, 0.5, 0.5, 1);}100%{transform: rotateY(3600deg);}}// ======== MIXINS ========= // Create easing-linear-gradients. Compared to the standards liner-gradients // these are smoother and blends into their context increasing readability when // acts as background for text placed over images. // based on: https://css-tricks.com/easing-linear-gradients/ @mixin o-wbblog-scrim-gradient($colorFrom, $colorTo){$scrimStops: 0% 0%, 26.2% 19%, 45.9% 34%, 61.8% 47%, 72.2% 56.5%, 80.6% 65%, 87.4% 73%, 92.5% 80.2%, 95.8% 86.1%, 97.9% 91%, 99.2% 95.2%, 99.8% 98.2%, 100% 100%; $stops: (); @each $scrimStop in $scrimStops{$stops: append($stops, mix($colorTo, $colorFrom, nth($scrimStop, 1)) nth($scrimStop, 2), comma)}background-image: linear-gradient(#{$stops});}//------------------------------------------------------------------------------ // Website Blog //------------------------------------------------------------------------------ .website_blog{.css_website_mail{.o_has_error{border-color: red;}.css_nav_month{display: none; &:first-of-type{display: block;}}}.o_wblog_page_cards_bg{// To be applied to the main container when 'card design' option is // enabled. Provide a slight darker bg that will blend the background // color chosen by the user, visually increasing the contrast in case of // brights (or white) backgrounds. // It shouldn't be noticeable on dark backgrounds. background-color: rgba(black, 0.005);}.o_wblog_read{max-width: $o-wblog-read-width;}.o_wblog_read_with_sidebar{max-width: $o-wblog-read-container-sidebar-width;}// This option class is assigned to the post's content using the "Customize" // menu. The aim is to be able to write simple articles on the fly, // achieving a good design without being forced to use snippets. .o_wblog_read_text{font-size: 18px; line-height: 28px; font-weight: 300; p, ul, ol{margin-bottom: 1.55em;}li{margin-bottom: 1em;}.lead{font-size: 26px; line-height: 34px; margin-bottom: 40px;}}.o_wblog_author_avatar{width: 1.2em; height: 1.2em; max-width: none; object-fit: cover;}.o_wblog_author_avatar_date{// Resize in order to double the current font-size and accommodate // two text lines, name and date. width: 2em; height: 2em; max-width: none; object-fit: cover;}.o_wblog_social_links > a{@include size(3em); > i{font-size: 1.3em;}}// Blog Post Page // ============================================== #o_wblog_post_content{min-height: 350px !important; a.oe_mail_expand:after{content: " →";}a.oe_mail_expand{font-weight: bold;}}#o_wblog_post_comments{.o_portal_chatter > hr{display: none;}}// Blog Post Page Cover // ============================================== .o_wblog_post_page_cover{// By default (no image defined), inner filters elements are hidden. .o_record_cover_component{display: none;}// If a cover image is defined, show filters + adapt inner typography &.o_record_has_cover{.o_record_cover_image:after{content: ""; display: block; @include o-position-absolute(0,0,50%,0); @include o-wbblog-scrim-gradient(rgba(black, 0.5), transparent);}.o_record_cover_component{display: block;}.o_wblog_post_title{color: white;}#o_wblog_post_content_jump{@include size($o-wblog-loader-size); display: none; background-color: rgba(black, 0.5); &:hover{background-color: rgba(black, 0.7);}}// Cover sizes // ============================================== &.cover_full{min-height: 600px; min-height: 100vh;}&.cover_mid{min-height: 400px; min-height: 55vh;}&.cover_full, &.cover_mid{#o_wblog_post_content_jump{display: flex; animation: o-wblog-anim-heart 2.6s ease-in-out 1s infinite; &:hover{animation-iteration-count: 1;}}}&.cover_auto{padding: 3rem 0; // The actual height will always be 'auto'. The following // min-height rule is set to trigger the page transition only. min-height: 1px;}// "Regular Cover" design sizes // ============================================== &.o_wblog_post_page_cover_regular{.o_record_cover_image:after{visibility: hidden;}&.cover_full{min-height: 350px;}&.cover_mid{min-height: 250px;}&.cover_auto{min-height: 150px; padding: 0;}}}}// Blog Post Specific // ============================================== .o_wblog_post_title{#o_wblog_post_name{font-weight: $display4-weight; line-height: $display-line-height; // Default font-size. @include font-size($display4-size);}#o_wblog_post_subtitle{font-weight: $lead-font-weight; // Default font-size. @include font-size($lead-font-size);}}// Size variants @each $size, $map in $o-wblog-title-sizes-variants{.o_record_cover_font_#{$size}.o_wblog_post_title{#o_wblog_post_name{@include font-size(map-get($map, title));}#o_wblog_post_subtitle{@include font-size(map-get($map, subtitle));}}}// Refine multi-lines titles when using 'regular' cover .o_wblog_regular_cover_container #o_wblog_post_name{line-height: 1; padding-bottom: 0.5rem;}.o_wblog_post_page_cover_footer{min-height: 33vh; // Emulate native jQuery 'swing' easing to match js code transition: all 0.3s cubic-bezier(.02, .01, .47, 1);}#o_wblog_next_container{background-color: $body-bg; cursor: pointer; .o_wblog_next_loader{transform: translateZ(1px); div{@include size($o-wblog-loader-size); margin-top: $o-wblog-loader-size * -2; background: rgba(black, 0.15); animation: o-wblog-loader 2.4s cubic-bezier(0, 0.2, 0.8, 1) infinite;}}.o_wblog_next_fake_btn{height: $o-wblog-loader-size;}}#o_wblog_post_main.o_wblog_post_main_transition{animation: o-wblog-fade-In 1s cubic-bezier(.02, .01, .47, 1);}// Blog Index Pages // ============================================== #o_wblog_posts_loop{.o_record_cover_container{box-shadow: inset 0 0 0 1px rgba(white, 0.3); background: rgba(black, 0.1); padding-top: 33%; height: auto!important; &:hover .o_record_cover_image{opacity: 0.8;}}.o_wblog_normalize_font{// normalize fonts font-size: 13px; line-height: 1.45;}.o_wblog_post_list_author{@include o-wbblog-scrim-gradient(transparent, rgba(black, 0.5));}&.o_wblog_list_view{.o_record_cover_container{padding-top: 20%;}.o_wblog_post_cover_nocard .o_record_cover_container{padding-top: 33%;}}}// Editor Helpers // ============================================== body.editor_enable &{// Make empty covers visible in edit mode .o_record_cover_container.o_wblog_post_page_cover:not(.o_record_has_cover){background-color: $gray-100; padding: 30px 0; border: 1px dashed $gray-500;}// Hide the big "DRAG BUILDING BLOCKS HERE" box when inside a sidebar. // The purple lines are enough to help the user dropping snippets. #o_wblog_sidebar .oe_structure:empty{display: none;}}}//------------------------------------------------------------------------------ // Latest posts snippets //------------------------------------------------------------------------------ .s_latest_posts, .s_latest_posts_big_picture{.s_latest_posts_loader{@include o-position-absolute(0, 0, 0, 0); transform: translateZ(1px); > div{animation: o-wblog-loader 2.4s cubic-bezier(0, 0.2, 0.8, 1) infinite; max:{width: 30px; height: 30px;}}}.s_latest_posts_post_title{font-weight: $headings-font-weight; // Tweek line-height to help fit multi-line titles. line-height: 1;}.s_latest_posts_post_subtitle{font-size: 1em;}}.s_latest_posts{// Set sizes relative to the container font-size. // (handle parents with, for example, '.small' or '.h1' classes) .s_latest_posts_post_cover{@include size(3.5em); max:{width: 85px; height: 85px}}.s_latest_posts_post_title{font-size: 1.25em;}}.s_latest_posts_big_picture{.s_latest_posts_post{min-height: 150px; figcaption{position: relative; justify-content: center;}.s_latest_posts_post_cover{min-height: 100%; .o_record_cover_container{top: 0;}}.s_latest_posts_post_title{@include font-size($h3-font-size); margin-bottom: 0.5em; word-spacing: -0.15em;}@include s-latest-posts-figure-hook;}.js_get_posts{@include s-latest-posts-js-get-posts-hook;}}

/* /website_sale/static/src/scss/website_sale.scss defined in bundle 'web.assets_frontend' */
// Prevent grid gutter to be higher that bootstrap gutter width to make sure // the negative margin layout does not overflow on elements. This prevents the // use of an ugly overflow: hidden which would break box-shadows. $o-wsale-products-layout-grid-gutter-width: $grid-gutter-width / 2 !default; $o-wsale-products-layout-grid-gutter-width: min($grid-gutter-width / 2, $o-wsale-products-layout-grid-gutter-width); @mixin wsale-break-table-to-list(){table, tbody, td, tr{display: block; width: 100%;}}.oe_website_sale{ul ul{margin-left: 1.5rem;}.o_payment_form .card{border-radius: 4px !important;}.address-inline address{display: inline-block;}table#cart_products tr td, table#suggested_products tr td{vertical-align: middle;}table#cart_products{margin-bottom: 0; td, th{&:first-child{padding-left: $grid-gutter-width*0.5;}}}h1[itemprop="name"], .oe_product_cart form h5{word-wrap: break-word;}@include media-breakpoint-down(sm){.td-img{display: none;}}.toggle_summary_div{@include media-breakpoint-up(xl){max-width: 400px;}}input.js_quantity{min-width: 48px; text-align: center;}input.quantity{padding: 0;}}.o_alternative_product{margin: auto;}// Base style for a product card with image/description .oe_product_cart{.oe_product_image{height: 0; text-align: center; img{max-height: 100%;}}.o_wsale_product_information{position: relative; flex: 0 0 auto; transition: .3s ease;}.oe_subdescription{max-height: 0; overflow: hidden; font-size: $font-size-sm; margin-bottom: map-get($spacers, 1); transform: scale(1, 0); transition: all ease 0.3s;}.o_wsale_product_btn{@include o-position-absolute(auto, 0, 100%, 0); padding-bottom: map-get($spacers, 1); .btn{transform: scale(0); transition: transform ease 200ms 0s;}&:empty{display: none !important;}}&:hover{box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.1); .o_wsale_product_information{background-color: gray('200') !important;}.oe_subdescription{max-height: $line-height-base * 1em; // Max 1 line @include media-breakpoint-up(lg){max-height: $line-height-base * 2em; // Max 2 lines}@include media-breakpoint-up(xl){max-height: $line-height-base * 3em; // Max 3 lines}}.oe_subdescription, .o_wsale_product_btn .btn{transform: scale(1);}}@include media-breakpoint-down(sm){&, &:hover{.oe_subdescription{max-height: $line-height-base * 3em; // Max 3 lines}}.oe_subdescription, .o_wsale_product_btn .btn{transform: scale(1);}}// Ribbon for promotions on products .ribbon-wrapper{display: none; width: 85px; height: 88px; z-index: 5; overflow: hidden; @include o-position-absolute($left: 0, $top: 0);}.ribbon{font: bold 15px Sans-Serif; color: white; text-align: center; transform: rotate(-45deg); position: relative; padding: 7px 0; left: -31px; top: 14px; width: 120px; cursor: default;}}// Options relative to where the product card is put .oe_product{// Image full option &.oe_image_full{.oe_product_image{@include border-bottom-radius($card-inner-border-radius);}.o_wsale_product_information{@include o-position-absolute(auto, 0, 0, 0); // The wrapper is always relatively positioned}}// Enable product promo ribbon &.oe_ribbon_promo .ribbon-wrapper{display: block;}}#products_grid{.table{table-layout: fixed; td{margin-top: $o-wsale-products-layout-grid-gutter-width; // For list and mobile design padding: 0; @if $o-wsale-products-layout-grid-gutter-width <= 0{border: $card-border-width solid $card-border-color;}}tr:first-child td:first-child{margin-top: 0; // For list and mobile design}.o_wsale_product_grid_wrapper{position: relative; @for $x from 1 through 4{@for $y from 1 through 4{&.o_wsale_product_grid_wrapper_#{$x}_#{$y}{padding-top: 100% * $o-wsale-products-layout-grid-ratio * $y / $x;}}}> *{$-pos: ($o-wsale-products-layout-grid-gutter-width / 2); @include o-position-absolute($-pos, $-pos, $-pos, $-pos); @if $o-wsale-products-layout-grid-gutter-width <= 0{&.card{border: none; &, .card-body{border-radius: 0;}}}}}}.o_wsale_products_grid_table_wrapper{// Necessary to compensate the outer border-spacing of the table. No // overflow will occur as the gutter width cannot be higher than the // BS4 grid gutter and the vertical margins of the wrapper's parent are // set accordingly. // Note: a possible layout could also be ok by removing the wrapper // related spacings and setting a background to it, thus including the // outer border spacing as part of the design. margin: (-$o-wsale-products-layout-grid-gutter-width / 2);}@include media-breakpoint-down(sm){@include wsale-break-table-to-list(); .table .o_wsale_product_grid_wrapper{padding-top: 100% !important;}}&.o_wsale_layout_list{@include media-breakpoint-up(sm){@include wsale-break-table-to-list(); .o_wsale_products_grid_table_wrapper{margin: 0;}.table .o_wsale_product_grid_wrapper{padding-top: 0 !important; > *{@include o-position-absolute(0, 0, 0, 0); position: relative;}}.oe_product_cart{$-wsale-list-layout-height: 10rem; flex-flow: row nowrap; min-height: $-wsale-list-layout-height; .oe_product_image{flex: 0 0 auto; width: $-wsale-list-layout-height; max-width: 35%; min-width: 100px; height: auto;}.o_wsale_product_information{position: static; display: flex; flex: 1 1 auto; text-align: left !important;}.o_wsale_product_information_text{flex: 1 1 auto;}.o_wsale_product_btn{flex: 0 0 auto; position: static; display: flex; flex-flow: column nowrap; align-items: center; padding: map-get($spacers, 2); background-color: gray('200'); .btn + .btn{margin-top: map-get($spacers, 2);}}.oe_subdescription{max-height: none !important;}.oe_subdescription, .o_wsale_product_btn .btn{transform: scale(1) !important;}&:hover{.o_wsale_product_information{background-color: $white !important;}}}}}}.o_wsale_products_main_row{// Special case. Normally vertical margins would be set using the BS4 // mt-* / my-* / mb-* utility classes, but here we need to use the shop max // grid gutter width to prevent the grid wrapper to overflow because of its // negative margins. margin-top: $grid-gutter-width / 2; margin-bottom: $grid-gutter-width / 2;}.oe_cart{table td:first-child{min-width: 76px;}> .oe_structure{clear: both;}}div#payment_method{div.list-group{margin-left: 40px;}.list-group-item{padding-top: 5px; padding-bottom: 5px;}}ul.wizard{padding: 0; margin-top: 20px; list-style: none outside none; border-radius: 4px; box-shadow: 0 1px 2px rgba(0, 0, 0, 0.065); li{border: 1px solid gray('200'); border-right-width: 0; position: relative; float: left; padding: 0 10px 0 20px; margin: 0; line-height: 38px; background: #fbfbfb; .chevron{position: absolute; top: 0; right: -10px; z-index: 1; display: block; border: 20px solid transparent; border-right: 0; border-left: 10px solid gray('200');}.chevron:before{position: absolute; top: -20px; right: 1px; display: block; border: 20px solid transparent; border-right: 0; border-left: 10px solid #fbfbfb; content: "";}.o_link_disable{text-decoration: none; color: inherit; cursor: text;}&.text-success{background: #f3f4f5;}&.text-success .chevron:before{border-left: 10px solid #f5f5f5;}&.text-primary{background: #f1f6fc;}&.text-primary .chevron:before{border-left: 10px solid #f1f6fc;}&:first-child{padding-left: 15px; border-radius: 4px 0 0 4px;}&:last-child{border-radius: 0 4px 4px 0; border-right-width: 1px; .chevron{display: none;}}}}#o_shop_collapse_category li{width: 100%; a{display: inline-block; width: 80%; padding-left: 3px;}i.fa{cursor: pointer;}}.mycart-popover{max-width: 500px; min-width: 250px; .cart_line{border-bottom: 1px #EEE solid;}}tr#empty{display: none;}.js_change_shipping{cursor: pointer;}a.no-decoration{cursor: pointer; text-decoration: none !important;}#o-carousel-product{&.css_not_available{opacity: 0.2;}.carousel-outer{height: 400px; max-height: 90vh;}.carousel-control-prev, .carousel-control-next{height: 70%; top: 15%; opacity: 0.5; cursor: pointer; &:focus{opacity: 0.65;}&:hover{opacity: 0.8;}> span{background: rgba(0, 0, 0, 0.8);}}.carousel-indicators{li{width: 64px; height: 64px; text-indent: unset; border: 1px solid gray('600'); opacity: 0.5; position: relative; .o_product_video_thumb{@include o-position-absolute($top: 50%, $left: 50%); transform: translate(-50%, -50%); color: gray('400');}&.active{opacity: 1; border: 1px solid theme-color('primary');}}}}.ecom-zoomable{&:not(.ecom-autozoom){img[data-zoom]{cursor: zoom-in;}}&.ecom-autozoom{img[data-zoom]{cursor: crosshair;}}.o_editable img[data-zoom]{cursor: pointer;}}#coupon_box form{max-width: 300px;}.o_website_sale_animate{opacity: 0.7; position: absolute !important; height: 150px; width: 150px; z-index: 1020;}.o_red_highlight{background: theme-color('danger') !important; box-shadow: 0 0 0 0 rgba(240,8,0,0.4); transition: all 0.5s linear;}.o_shadow_animation{box-shadow: 0 0 5px 10px rgba(240,8,0,0.4)!important;}.o_carousel_product_card{.o_carousel_product_card_img_top{object-fit: scale-down; @include media-breakpoint-down(sm){height: 12rem;}@include media-breakpoint-up(md){height: 8rem;}@include media-breakpoint-up(lg){height: 12rem;}}.o_carousel_product_img_link:hover + .o_carousel_product_remove{display: block;}}.o_carousel_product_card_wrap{@include media-breakpoint-up(sm){float: left;}}.o_carousel_product_control{top: percentage(1/3); bottom: percentage(1/3); width: 2rem; border-radius: 5px; background-color: $o-enterprise-primary-color;}.o_carousel_product_remove{position: absolute; display: none; cursor: pointer; right: 5%; top: 5%;}.o_carousel_product_remove:hover{display: block;}

/* /website_sale/static/src/scss/website_mail.scss defined in bundle 'web.assets_frontend' */
 .oe_msg{img.oe_msg_avatar{width: 50px; margin-right: 10px;}}.oe_msg_attachment{display: inline-block; width: 120px; margin: 4px 2px; min-height: 80px; position: relative; border-radius: 3px; text-align: center; vertical-align: top; a{img.oe_attachment_embedded{display: block; position: relative; margin: 0 0 0 10px; width: 100px; height: 80px; border-radius: 1px; border: solid 3px #FFF; -webkit-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.19); -moz-box-shadow: 0 3px 10px rgba(0, 0, 0, 0.19); box-shadow: 0 3px 10px rgba(0, 0, 0, 0.19);}div.oe_attachment_name{display: inline-block; max-width: 100%; padding: 1px 3px; margin-top: 2px; margin-bottom: 5px; background: #F4F5FA; overflow: hidden; color: #4c4c4c; text-shadow: none; border-radius: 3px; word-wrap: break-word;}}}

/* /website_sale/static/src/scss/website_sale_frontend.scss defined in bundle 'web.assets_frontend' */
//## Website Sale frontent design //## ---------------------------- // Theming variables $o-wsale-wizard-thickness: 0.125rem; $o-wsale-wizard-dot-size: 0.625rem; $o-wsale-wizard-dot-active-glow: 0.25rem; $o-wsale-wizard-color-inner: white; $o-wsale-wizard-color-default: gray('200'); $o-wsale-wizard-dot-active: theme-color('primary'); $o-wsale-wizard-dot-completed: theme-color('success'); $o-wsale-wizard-label-default: $text-muted; $o-wsale-wizard-label-active: $body-color; $o-wsale-wizard-label-completed: $success; .progress-wizard{// Scoped variables $tmp-dot-radius: ($o-wsale-wizard-dot-size + $o-wsale-wizard-thickness)*0.5; $tmp-check-size: max($font-size-base, $o-wsale-wizard-dot-size + $o-wsale-wizard-thickness + $o-wsale-wizard-dot-active-glow*2); $tmp-check-pos: $o-wsale-wizard-dot-size*0.5 - $tmp-check-size*0.5; margin-top: $grid-gutter-width*0.5; padding: 0 $grid-gutter-width*0.5; @include media-breakpoint-up(md){padding: 0;}.progress-wizard-step{position: relative; @include media-breakpoint-up(md){margin-top: $tmp-dot-radius + $o-wsale-wizard-thickness*3.5; float: left; width: percentage(1/3); .o_wizard_has_extra_step + &{width: percentage(1/4);}}@include media-breakpoint-down(sm){&.disabled, &.complete{display:none;}}.progress-wizard-dot{width: $o-wsale-wizard-dot-size; height: $o-wsale-wizard-dot-size; position: relative; display: inline-block; background-color: $o-wsale-wizard-color-inner; border-radius: 50%; box-shadow: 0 0 0 $o-wsale-wizard-thickness $o-wsale-wizard-color-default; @include media-breakpoint-up(md){@include o-position-absolute($left: 50%); margin: (-$tmp-dot-radius) 0 0 (-$o-wsale-wizard-dot-size*0.5);}}.progress-wizard-steplabel{color: $o-wsale-wizard-label-default; margin: 5px 0 5px 5px; font-size: $font-size-base; display: inline-block; @include media-breakpoint-up(md){display: block; margin: (0.625rem + $tmp-dot-radius) 0 20px 0;}@include media-breakpoint-down(sm){margin-left: -15px; font-size: 24px;}}.progress-wizard-bar{height: $o-wsale-wizard-thickness; background-color: $o-wsale-wizard-color-default;}&.active{.progress-wizard-dot{animation: fadeIn 1s ease 0s 1 normal none running; background: $o-wsale-wizard-dot-active; box-shadow: 0 0 0 ($o-wsale-wizard-dot-active-glow - 0.0625rem) $o-wsale-wizard-color-inner, 0 0 0 $o-wsale-wizard-dot-active-glow rgba($o-wsale-wizard-dot-active, 0.5);}.progress-wizard-steplabel{color: $o-wsale-wizard-label-active; font-weight: bolder;}}&.complete{.progress-wizard-dot{background: none; box-shadow: none; &:after{@include o-position-absolute($tmp-check-pos, $left: $tmp-check-pos); width: $tmp-check-size; height: $tmp-check-size; border-radius: 100%; background: $o-wsale-wizard-color-inner; color: $o-wsale-wizard-dot-completed; text-align: center; line-height: 1; font-size: $tmp-check-size; font-family: FontAwesome; content: "\f058";}}.progress-wizard-steplabel{color: $o-wsale-wizard-label-completed;}&:hover:not(.disabled){.progress-wizard-dot:after{color: $o-wsale-wizard-label-completed;}.progress-wizard-steplabel{color: $o-wsale-wizard-label-active;}}}&.disabled{cursor: default;}}}

/* /sale/static/src/scss/sale_portal.scss defined in bundle 'web.assets_frontend' */
 .orders_vertical_align{display: flex; align-items: center;}.orders_label_text_align{vertical-align: 15%;}.sale_tbody .o_line_note{word-break: break-word; word-wrap: break-word; overflow-wrap: break-word;}.o_portal .sale_tbody .js_quantity_container{width: 50%; .js_quantity{text-align: center; padding: 0;}.input-group-text{padding: 0.2rem 0.4rem;}@include media-breakpoint-down(sm){width: 100%;}}

/* /sale/static/src/scss/product_configurator.scss defined in bundle 'web.assets_frontend' */
.css_attribute_color{display: inline-block; border: 1px solid #999999; text-align: center; input{margin: 8px; height: 13px; opacity: 0;}&.active{border: 3px ridge #66ee66;}&.active input{margin: 6px;}&.custom_value{background-image: linear-gradient(to bottom right, #FF0000, #FFF200, #1E9600);}}.css_not_available_msg{display: none;}.css_not_available.js_product{.css_quantity, .product_price{display: none;}.css_not_available_msg{display: block;}.js_add, .oe_price, .oe_default_price, .oe_optional{display: none;}}.css_quantity{width: initial; // We don't want the quantity form to be full-width input[name="add_qty"]{max-width: 50px; text-align: center;}}option.css_not_available{color: #ccc;}label.css_not_available{opacity: 0.6;}label.css_attribute_color.css_not_available{opacity: 1; background-image: url("/website_sale/static/src/img/redcross.png"); background-size: cover;}.variant_attribute{padding-bottom: 0.5rem; .attribute_name{padding-bottom: 0.5rem; display: block;}.radio_input{margin-right: 0.7rem; vertical-align: middle;}.radio_input_value{display: inline-block; vertical-align: middle; line-height: 1;}.variant_custom_value{margin-bottom: 0.7rem; &.custom_value_own_line{display: inline-block;}}.custom_value_radio{margin: 0.3rem 0rem 0.3rem 1.6rem;}select{margin-bottom: 0.5rem;}}.o_product_configurator{.product_detail_img{max-height: 240px;}.variant_attribute{.custom_value_radio{margin: 0.3rem 0rem 0.3rem 2.1rem;}}}.oe_optional_products_modal{.table-striped tbody tr:nth-of-type(odd){background-color: rgba(0, 0, 0, 0.025);}.o_total_row{font-size: 1.2rem;}}.modal.o_technical_modal .oe_optional_products_modal .btn.js_add_cart_json{padding: 0.075rem 0.75rem;}.js_product{&.in_cart{.js_add_cart_variants{display: none;}}select{-webkit-appearance: menulist; -moz-appearance: menulist; appearance: menulist; background-image: none;}.td-product_name{word-wrap: break-word;}.td-product_name{min-width: 140px;}.td-img{width: 100px;}.td-qty{width: 200px; a.input-group-addon{background-color: transparent; border: 0px;}.input-group{display: inline-flex;}}.td-action{width: 30px;}.td-price, .td-price-total{width: 120px;}@include media-breakpoint-down(sm){.td-img, .td-price-total{display: none;}.td-qty{width: 60px;}.td-price{width: 80px;}}@media (max-width: 476px){.td-qty{width: 60px;}#modal_optional_products table thead, .oe_cart table thead{display: none;}#modal_optional_products table td.td-img, .oe_cart table td.td-img{display: none;}}}.o_total_row{height: 50px;}.oe_striked_price{text-decoration: line-through; white-space: nowrap;}.o_list_view{.o_data_row.o_selected_row > .o_data_cell:not(.o_readonly_modifier){.o_field_widget .o_edit_product_configuration{padding: 0; background-color: inherit; margin-left: 3px;}}}

/* /website_sale_comparison/static/src/scss/website_sale_comparison.scss defined in bundle 'web.assets_frontend' */
.o_product_feature_panel{position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); z-index:10; border-top-left-radius: 10px; border-top-right-radius: 10px; border-bottom: 0px; padding: 10px 20px; text-align: center; border: 2px solid theme-color('primary'); border-bottom: 0px; background-color: white; opacity: 0.95; .o_product_panel{position: relative; .o_product_panel_header{margin: 0 10px 0 10px; cursor: pointer; .o_product_icon{margin-right: 5px;}.o_product_text{text-transform: uppercase; vertical-align: middle; font-size: 16px;}.o_product_circle{vertical-align: 6px; padding: 0 3px; line-height: 14px;}}.o_product_panel_content{display: none !important;}}}.oe_website_sale{.product_summary > *{display: block; margin: 15px 0 15px 0;}.table-comparator{.o_product_comparison_collpase{margin-right: 8px;}}div.css_not_available .o_add_compare_dyn{display: none;}.o_comparelist_remove{@include o-position-absolute($top: 0, $right: 0.5rem);}.o_ws_compare_image{vertical-align: middle;}}

/* /sale/static/src/scss/product_configurator.scss defined in bundle 'web.assets_frontend' */
.css_attribute_color{display: inline-block; border: 1px solid #999999; text-align: center; input{margin: 8px; height: 13px; opacity: 0;}&.active{border: 3px ridge #66ee66;}&.active input{margin: 6px;}&.custom_value{background-image: linear-gradient(to bottom right, #FF0000, #FFF200, #1E9600);}}.css_not_available_msg{display: none;}.css_not_available.js_product{.css_quantity, .product_price{display: none;}.css_not_available_msg{display: block;}.js_add, .oe_price, .oe_default_price, .oe_optional{display: none;}}.css_quantity{width: initial; // We don't want the quantity form to be full-width input[name="add_qty"]{max-width: 50px; text-align: center;}}option.css_not_available{color: #ccc;}label.css_not_available{opacity: 0.6;}label.css_attribute_color.css_not_available{opacity: 1; background-image: url("/website_sale/static/src/img/redcross.png"); background-size: cover;}.variant_attribute{padding-bottom: 0.5rem; .attribute_name{padding-bottom: 0.5rem; display: block;}.radio_input{margin-right: 0.7rem; vertical-align: middle;}.radio_input_value{display: inline-block; vertical-align: middle; line-height: 1;}.variant_custom_value{margin-bottom: 0.7rem; &.custom_value_own_line{display: inline-block;}}.custom_value_radio{margin: 0.3rem 0rem 0.3rem 1.6rem;}select{margin-bottom: 0.5rem;}}.o_product_configurator{.product_detail_img{max-height: 240px;}.variant_attribute{.custom_value_radio{margin: 0.3rem 0rem 0.3rem 2.1rem;}}}.oe_optional_products_modal{.table-striped tbody tr:nth-of-type(odd){background-color: rgba(0, 0, 0, 0.025);}.o_total_row{font-size: 1.2rem;}}.modal.o_technical_modal .oe_optional_products_modal .btn.js_add_cart_json{padding: 0.075rem 0.75rem;}.js_product{&.in_cart{.js_add_cart_variants{display: none;}}select{-webkit-appearance: menulist; -moz-appearance: menulist; appearance: menulist; background-image: none;}.td-product_name{word-wrap: break-word;}.td-product_name{min-width: 140px;}.td-img{width: 100px;}.td-qty{width: 200px; a.input-group-addon{background-color: transparent; border: 0px;}.input-group{display: inline-flex;}}.td-action{width: 30px;}.td-price, .td-price-total{width: 120px;}@include media-breakpoint-down(sm){.td-img, .td-price-total{display: none;}.td-qty{width: 60px;}.td-price{width: 80px;}}@media (max-width: 476px){.td-qty{width: 60px;}#modal_optional_products table thead, .oe_cart table thead{display: none;}#modal_optional_products table td.td-img, .oe_cart table td.td-img{display: none;}}}.o_total_row{height: 50px;}.oe_striked_price{text-decoration: line-through; white-space: nowrap;}.o_list_view{.o_data_row.o_selected_row > .o_data_cell:not(.o_readonly_modifier){.o_field_widget .o_edit_product_configuration{padding: 0; background-color: inherit; margin-left: 3px;}}}

/* /website_sale_product_configurator/static/src/scss/website_sale_options.scss defined in bundle 'web.assets_frontend' */
.css_not_available.js_product{> *:nth-child(5) > *{display: none;}}div#modal_optional_products table tr td{border: 0;}@include media-breakpoint-down(sm){div#modal_optional_products .td-qty{display: none;}}

/* /website_sale_wishlist/static/src/scss/website_sale_wishlist.scss defined in bundle 'web.assets_frontend' */
.oe_website_sale{.td-wish-btn{width: 140px;}div.css_not_available .o_add_wishlist_dyn{display: none;}}// XS size @include media-breakpoint-down(sm){.oe_website_sale{.td-wish-btn{width: 100px;}}}table.table-comparator .td-img img{// allows sizing the placeholder image to the "image" size of 100px max-height: 100px;}

/* /website_links/static/src/css/website_links.css defined in bundle 'web.assets_frontend' */
.no-link-style{color: black; text-decoration: none;}.required-form-control{background-color: #CECDFF;}#filters li a, #filters li.active a, #filters li.active a.active, #filters li.active a:hover, #filters li.active a:focus, #filters li a:hover{padding: 0px 5px; border-radius: 0px; border: 0px; border-color: transparent; border-right: 1px solid #999; padding-bottom: 0; background-color: #FFFFFF;}#filters li.active a{color: #999;}#filters li:last-child a, #filters li:last-child a:hover, #filters li:last-child a:focus{border-right: 0px;}.nav-tabs-inline{font-size: 14px;}#o_website_links_recent_links{min-height:30em;}.o_website_links_code_error{display:none; color:red; font-weight:bold;}.truncate_text{white-space: nowrap; text-overflow: ellipsis; overflow: hidden; max-width: 500px;}

/* /website_mass_mailing/static/src/scss/website_mass_mailing_popup.scss defined in bundle 'web.assets_frontend' */
.o_newsletter_modal{.modal-header{padding: 0; border: none;}.modal-title{display: none;}.close{@include o-position-absolute(0, 0); font-size: $font-size-sm; width: 2 * $font-size-sm; height: 2 * $font-size-sm; padding: 0; margin: (-$font-size-sm) (-$font-size-sm) 0 0; opacity: 1; background-color: $white; z-index: 1; border-radius: $font-size-sm; box-shadow: $box-shadow-sm;}}

/* /mail/static/src/scss/abstract_thread_window.scss defined in bundle 'web.assets_frontend' */
$o-mail-thread-window-zindex: $zindex-modal + 1 !default; .o_thread_window{direction: ltr; display: flex; flex-flow: column nowrap; position: fixed; width: $o-mail-thread-window-width; max-width: 100%; height: 400px; max-height: 100%; font-size: 12px; background-color: $o-mail-thread-window-bg; border-radius: 6px 6px 0 0; z-index: $o-mail-thread-window-zindex; box-shadow: -5px -5px 10px rgba(black, 0.18); @include media-breakpoint-down(sm){width: 100%; height: 100%!important; box-shadow: none; &.o_folded{display: none;}}@media print{display: none;}.o_thread_window_header{display: flex; flex: 0 0 auto; color: white; padding: $o-mail-chatter-gap*0.5 $o-mail-chatter-gap; border-radius: 3px 3px 0 0; border-bottom: 1px solid gray('300'); background-color: $o-brand-odoo; padding: 8px; @include media-breakpoint-down(sm){align-items: center; height: $o-mail-chat-header-height; padding: 0; border-radius: 0px; .o_thread_window_title{font-size: 16px; margin-left: 10px;}.o_thread_window_close{$o-close-font-size: 17px; padding: (($o-mail-chat-header-height - $o-close-font-size) / 2); font-size: $o-close-font-size; color: white;}}.o_thread_window_title{cursor: pointer; flex: 1 1 auto; @include o-text-overflow; .o_mail_thread_typing_icon{padding-left: 2px; .o_mail_thread_typing_icon_dot{background: gray('300');}}}.o_thread_window_buttons{flex: 0 0 auto; .o_thread_window_close, .o_thread_window_expand{color: white; padding: 3px; margin-left: 5px; @include o-hover-opacity(0.7, 1);}}}.o_out_of_office{background-color: #9dd0e8; padding:8px; .o_out_of_office_info{font-weight: bold;}.o_out_of_office_text{word-wrap: break-word; overflow: hidden; text-overflow: ellipsis;}.o_text_wrap{white-space: nowrap;}.o_out_of_office_read_more_less_button{display: none;}}.o_mail_thread{flex: 1 1 100%; overflow: auto; -webkit-overflow-scrolling: touch; // smooth scrolling in iOS app (Safari) .o_thread_date_separator{margin: 0px 0px 15px 0px; .o_thread_date{background-color: $o-mail-thread-window-bg;}}.o_thread_message{padding: 4px 5px; .o_thread_message_sidebar{margin-right: 5px;}.o_attachment{@include media-breakpoint-up(md){width: percentage(1/3);}}}}.o_thread_composer input{width: 100%; outline: 0; height: 39px; padding: 10px; font-size: 13px; border: none; border-top: 1px solid #dee2e6;}}.o_thread_window_dropdown{width: auto; height: 28px; color: white; background-color: gray('900'); cursor: pointer; box-shadow: none; @include media-breakpoint-down(sm){display: none;}.o_thread_window_header{border-radius: 0;}.o_thread_window_dropdown_toggler{padding: 5px; .o_total_unread_counter{@include o-position-absolute(-10px, 0, auto, auto); background-color: $o-brand-primary; padding: 0 2px; font-size: smaller;}}&.show .o_thread_window_dropdown_toggler .o_total_unread_counter, .o_thread_window_expand{display: none;}> ul{max-width: $o-mail-thread-window-width; padding: 0; > li.o_thread_window_header{font-size: 12px; padding: 3px 5px; &~li.o_thread_window_header{border-top: 1px solid white;}&:hover{background-color: darken($o-brand-odoo, 10%);}}}}.o_ui_blocked .o_thread_window{// We cannot put the z-index of thread windows directly to be greater than // blockUI's as ui-autocomplete dropdowns (which are below blockUI) would // appear under the thread windows (and ui-autocomplete is used to choose the // person you want to chat with). So we only raise the z-index value when // the ui is really blocked (in that case, the ui-autocomplete dropdowns // will disappear under the thread windows but this is not really an issue as // there should not be any at that time). z-index: 1101; // blockUI's z-index is 1100}.o_no_thread_window .o_thread_window{display: none;}

/* /mail/static/src/scss/thread.scss defined in bundle 'web.assets_frontend' */
.o_mail_thread_loading{display: flex; align-items: center; justify-content: center;}.o_mail_thread_loading_icon{margin-right: 5px;}.o_mail_thread, .o_mail_activity{.o_thread_show_more{text-align: center;}.o_mail_thread_content{display: flex; flex-direction: column; min-height: 100%;}.o_thread_bottom_free_space{height: 15px;}.o_thread_tooltip_container{display: inline; position: relative;}.o_thread_date_separator{margin-top: 15px; margin-bottom: 30px; @include media-breakpoint-down(sm){margin-top: 0px; margin-bottom: 15px;}border-bottom: 1px solid gray('400'); text-align: center; .o_thread_date{position: relative; top: 10px; margin: 0 auto; padding: 0 10px; font-weight: bold; background: white;}}.o_thread_new_messages_separator{margin-bottom: 15px; border-bottom: solid lighten($o-brand-odoo, 15%) 1px; text-align: right; .o_thread_separator_label{position: relative; top: 8px; padding: 0 10px; background: white; color: lighten($o-brand-odoo, 15%); font-size: smaller;}}.o_thread_message{display: flex; padding: 4px $o-horizontal-padding; margin-bottom: 0px; &.o_mail_not_discussion{background-color: rgba(gray('300'), 0.5); border-bottom: 1px solid gray('400');}.o_thread_message_sidebar{flex: 0 0 $o-mail-thread-avatar-size; margin-right: 10px; margin-top: 2px; text-align: center; font-size: smaller; .o_thread_message_sidebar_image{position: relative; height: $o-mail-thread-avatar-size; .o_updatable_im_status{width: $o-mail-thread-avatar-size;}.o_mail_user_status{position: absolute; bottom: 0; right: 0; &.fa-circle-o{display: none;}}}@include media-breakpoint-down(sm){margin-top: 4px; font-size: x-small;}.o_thread_message_avatar{width: $o-mail-thread-avatar-size; height: $o-mail-thread-avatar-size; object-fit: cover;}.o_thread_message_side_date{display: none; margin-left: -5px;}.o_thread_message_star{display: none; margin-right: -5px;}.o_thread_message_side_date{opacity: 0;}.o_mail_thread_message_seen_icon:not(.o_all_seen){opacity: $o-mail-thread-icon-opacity*0.5;}}.o_thread_icon{cursor: pointer; opacity: 0; &.fa-star{opacity: $o-mail-thread-icon-opacity; color: gold;}}&:hover, &.o_thread_selected_message{.o_thread_message_side_date{display: inline-block; opacity: $o-mail-thread-side-date-opacity;}.o_thread_icon{display: inline-block; opacity: $o-mail-thread-icon-opacity; &:hover{opacity: 1;}}.o_thread_message_sidebar{.o_mail_thread_message_seen_icon{display: none;}}}.o_mail_redirect{cursor: pointer;}.o_thread_message_core{flex: 1 1 auto; min-width: 0; max-width: 100%; word-wrap: break-word; > pre{white-space: pre-wrap; word-break: break-word; text-align: justify;}.o_mail_note_title{margin-top: 9px;}.o_mail_subject{font-style: italic;}.o_mail_notification{font-style: italic; color: gray;}[summary~=o_mail_notification]{// name conflicts with channel notifications, but is odoo notification buttons to hide in chatter if present display: none;}p{margin: 0 0 9px; // Required by the old design to override a general rule on p's &:last-child{margin-bottom: 0;}}a{display: inline-block; word-break: break-all;}:not(.o_image_box) > img{max-width: 100%; height: auto;}.o_mail_body_long{display: none;}.o_mail_info{margin-bottom: 2px; strong{color: $headings-color;}}.o_thread_message_star, .o_thread_message_needaction, .o_thread_message_reply, .o_thread_message_email{padding: 4px;}i.o_thread_message_email{&.o_thread_message_email_ready{color: grey;}&.o_thread_message_email_exception, &.o_thread_message_email_bounce{color: red; opacity: 1; cursor: pointer;}}.o_attachments_list, .o_attachments_previews{&:last-child{margin-bottom: $grid-gutter-width;}}.o_thread_tooltip_container{display: inline; position: relative;}}}.o_thread_title{margin-top: 20px; margin-bottom: 20px; font-weight: bold; font-size: 125%; &.o_neutral_face_icon:before{@extend %o-nocontent-init-image; @include size(120px, 140px); background: transparent url(/web/static/src/img/neutral_face.svg) no-repeat center;}}.o_mail_no_content{@include o-position-absolute(30%, 0, 0, 0); text-align: center; font-size: 115%;}.o_thread_message .o_thread_message_core .o_mail_read_more{display: block;}}.o_web_client .popover .o_thread_tooltip_icon{min-width: 1rem;}.o_web_client.o_touch_device{.o_mail_thread .o_thread_icon{opacity: $o-mail-thread-icon-opacity;}}// ------------------------------------------------------------------ // Thread typing icon: shared between discuss and chat windows // ------------------------------------------------------------------ .o_mail_thread_typing_icon{position: relative; text-align: center; margin-left: auto; margin-right: auto; .o_mail_thread_typing_icon_dot{display: inline-block; width: 3px; height: 3px; border-radius: 50%; background: gray('800'); animation: o_mail_thread_typing_icon_dot 1.5s linear infinite; &:nth-child(2){animation-delay: -1.35s;}&:nth-child(3){animation-delay: -1.2s;}}}@keyframes o_mail_thread_typing_icon_dot{0%, 40%, 100%{transform: initial;}20%{transform: translateY(-5px);}}// ------------------------------------------------------------------ // Thread seen icon: shared between discuss and chat windows // ------------------------------------------------------------------ .o_mail_thread_message_seen_icon{position: relative; opacity: 0.6; &.o_all_seen{color: $o-enterprise-color;}&:hover{cursor: pointer; opacity: 0.8;}.fa-check:nth-child(1){padding-left: 3px;}.fa-check:nth-child(2){position: absolute; top: -1px; left: 0px;}}

/* /im_livechat/static/src/scss/im_livechat.scss defined in bundle 'web.assets_frontend' */
.o_livechat_button{position: fixed; bottom: 0px; right: 6px; min-width: 100px; cursor: pointer; white-space: nowrap; background-color: rgba(60, 60, 60, 0.6); font-family: 'Lucida Grande', 'Lucida Sans Unicode', Arial, Verdana, sans-serif; font-size: 14px; font-weight: bold; padding: 10px; color: white; text-shadow: rgb(59, 76, 88) 1px 1px 0px; border: 1px solid rgb(80, 80, 80); border-bottom: 0px; border-top-left-radius: 5px; border-top-right-radius: 5px; z-index: 5;}.o_thread_window{z-index: 1002; // to go over the navbar .o_thread_date_separator{display: none;}.o_livechat_rating{flex: 1 1 auto; overflow: auto; padding: 15px; font-size: 14px; .o_livechat_email{font-size: 12px; > div{padding: 5px 0;}}.o_livechat_no_feedback{text-decoration: underline; cursor: pointer; margin: 20px 0;}.o_livechat_rating_box{margin: 40px 0 30px 0;}.o_livechat_rating_choices{margin: 10px 0; > img{width: 65px; opacity: 0.60; cursor: pointer; margin: 10px; &:hover, &.selected{opacity: 1;}}}.o_livechat_rating_reason{margin: 10px 0; display: none; > textarea{width: 100%; height: 70px; resize: none;}}.o_livechat_rating_reason_button > input{float: right;}}}.o_livechat_operator_avatar{padding-right: 8px;}.o_livechat_no_rating{opacity: 0.5;}

/* /website_sale_delivery/static/src/scss/website_sale_delivery.scss defined in bundle 'web.assets_frontend' */
@include media-breakpoint-down(sm){.o_wsale_delivery_badge_price{max-width: 130px; text-overflow: ellipsis; overflow: hidden;}}#delivery_method .o_delivery_carrier_select:hover{cursor: pointer;}

/* /website_profile/static/src/scss/website_profile.scss defined in bundle 'web.assets_frontend' */
// Retrive the tab's height by summ its properties $owprofile-tabs-height: ($nav-link-padding-y*2) + ($font-size-base * $line-height-base); // Overal page bg-color: Blend it 'over' the color chosen by the user // ($body-bg), rather than force it replacing the variable's value. $owprofile-color-bg: mix($body-bg, #efeff4); .o_wprofile_body{background-color: $owprofile-color-bg;}.o_wprofile_gradient{background-image: linear-gradient(120deg, #875A7B, darken(#875A7B, 10%));}.o_wprofile_pict{@include size(100%); padding-top: 30%; background-size: cover; background-position: center; @include media-breakpoint-up(md){padding-top: 70%; border: 1px solid darken(#875A7B, 10%); border-bottom-width: 0;}}.o_wprofile_header{@include media-breakpoint-up(md){&:before{content: ""; @include o-position-absolute(auto, 0, 0, 0); height: $owprofile-tabs-height; background: rgba(black, 0.2);}}}.o_wprofile_sidebar{border: 1px solid $border-color; @include media-breakpoint-up(md){border-top-width: 0;}}.o_wprofile_nav_tabs{@include media-breakpoint-up(md){margin-top: $owprofile-tabs-height * -1; border-bottom: 0; .nav-link{border-radius: 0; border-width: 0 1px; line-height: $line-height-base; @include o-hover-text-color(rgba(white, 0.8), white); &, &:hover{border-color: #875A7B; background: transparent;}&.active{color: color-yiq($owprofile-color-bg); background: $owprofile-color-bg; border-color: $owprofile-color-bg;}}}@include media-breakpoint-only(xs){overflow-x: auto; overflow-y: hidden; li{white-space: nowrap;}}}.o_wprofile_tabs_content{@include media-breakpoint-down(sm){background-color: $nav-tabs-link-active-bg; padding:0 ($grid-gutter-width * 0.5);}@include media-breakpoint-only(xs){margin: 0 ($grid-gutter-width * -0.5);}}/// Progress Circle .o_wprofile_progress_circle{position: relative; svg.o_pc_circular_chart{display: block; max-width: 100%; .o_pc_circle_bg, .o_pc_circle{fill: none; stroke-width: 1.5px; stroke-linecap: round;}.o_pc_circle_bg{stroke: rgba(black, 0.1);}.o_pc_circle{animation: progress 1s ease-out forwards;}#gradient{--o-pc-color-stop-1: lighten(theme-color('primary'), 10%); --o-pc-color-stop-2: theme-color('primary');}}.o_pc_overlay{@include o-position-absolute(0,0,0,0);}@keyframes progress{0%{stroke-dasharray: 0 100;}}}// All Users Page .o_wprofile_all_users_nav{border-width: 1px 0; &, .o_wprofile_course_nav_search, .o_wprofile_all_users_nav_btn{background-color: rgba(white, 0.05); border-color: rgba(white, 0.1); border-style: solid;}.o_wprofile_course_nav_search, .o_wprofile_all_users_nav_btn{border-width: 0 1px;}.o_wprofile_all_users_nav_btn{@include media-breakpoint-up(md){@include o-hover-text-color(white, $gray-800); margin-top: -1px; border-radius: 0; min-height: 35px; &:hover{background-color: white;}}}.o_wprofile_all_users_nav_btn_container{@include media-breakpoint-down(sm){~ .o_wprofile_user_profile_sub_nav_mobile_col{padding-left: 0;}.o_wprofile_all_users_nav_btn{@include o-hover-text-color(white, white); border-radius: $btn-border-radius; background-color: rgba(black, 0.25);}}}.breadcrumb-item.active a, .breadcrumb-item a:hover{color: white;}.breadcrumb-item a, .breadcrumb-item + .breadcrumb-item::before, .o_wprofile_course_nav_search input::placeholder{color: rgba(white, 0.8);}}.o_wprofile_top3_card_footer div{border-color: $border-color; border-style: solid; border-width: 1px 0; margin-top: -1px; + div{border-left-width: 1px; margin-left: -1px;}}.o_wprofile_pager{li.page-item{a.page-link{background-color: transparent; border: 0; color: $gray-600; transition-duration: .3s; &:hover{color: $primary;}}&.active{a.page-link{color: $white;}}&.o_wprofile_pager_arrow a{color: $primary; &:hover{transform: scaleX(1.50) scaleY(1.50);}}&.o_wprofile_pager_arrow.disabled a{color: $gray-600;}.page-link:focus{box-shadow: 0 0 0 0;}}}// Other stuffs .country_flag{display: inline-block; margin-left: 2px; max-height: 13px; width: auto !important;}// Tools .o_wprofile_pointer{cursor: pointer;}

/* /website_slides/static/src/scss/website_slides.scss defined in bundle 'web.assets_frontend' */
$MAX-Z-INDEX : 2147483647 !default; // Retrive the tab's height by summ its properties $o-wslides-tabs-height: ($nav-link-padding-y*2) + ($font-size-base * $line-height-base); // Overal page bg-color: Blend it 'over' the color chosen by the user // ($body-bg), rather than force it replacing the variable's value. $o-wslides-color-bg: mix($body-bg, #efeff4); $o-wslides-color-dark1: #47525f; $o-wslides-color-dark2: #1f262d; $o-wslides-color-dark3: #101216; $o-wslides-fs-side-width: 300px; // Common to new slides pages // ************************************************** .o_wslides_gradient{background-image: linear-gradient(120deg, #875A7B, darken(#875A7B, 10%));}.o_wslides_course_pict{@include size(100%); object-fit: cover; @include media-breakpoint-up(md){border: 1px solid darken(#875A7B, 10%); border-bottom-width: 0;}}.o_wslides_body{background-color: $o-wslides-color-bg; .o_wslides_home_nav{top: -40px; @include media-breakpoint-up(lg){font-size: 1rem; .o_wslides_nav_navbar_right{padding-left: $spacer; margin-left: auto; border-left: 1px solid $border-color;}}}.o_wslides_js_slide_like_up, .o_wslides_js_slide_like_down{&:not(.disabled){cursor: pointer; color: $link-color;}}.o_wslides_js_lesson_quiz_question{.list-group-item{font-size: 1rem; input:checked + i.fa-circle{color: $primary !important;}}&.disabled{opacity: 0.5; pointer-events: none;}&.completed-disabled{pointer-events: none;}}// tools // **************************************** .text_small_caps{font-variant: small-caps;}.o_wslides_entry_muted{opacity: 0.5;}// Solve an overfow issue caused in some // circumstances by flex containers. hr{min-height: 1px;}// Truncate text descriptions to a specific number of lines. // If '-webkit-line-clamp' is not supported, a less effective // 'line-height' fallback will be used instead. $truncate-limits: 2, 3, 10; @each $limit in $truncate-limits{.o_wslides_desc_truncate_#{$limit}{$line-height: 1.3; max-height: $limit * $line-height * 1em; overflow: hidden; text-overflow: ellipsis; white-space: normal; line-height: $line-height; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: $limit;}}}// New home page // ************************************************** .o_wslides_home_main{.o_wslides_home_aside_loggedin{@include media-breakpoint-up(lg){background: none; border: none;}}.o_wprofile_progress_circle{margin-left: auto; margin-right: auto; max-width: 200px;}}// Courses Card // ************************************************** .o_wslides_course_card.o_wslides_course_unpublished{opacity: 0.5;}// New course page // ************************************************** .o_wslides_course_sidebar{border: 1px solid $border-color; @include media-breakpoint-up(md){border-top-width: 0;}}@mixin o-wslides-tabs($tab-active-color: $o-wslides-color-bg){margin-top: ($o-wslides-tabs-height * -1) + 0.05rem; border-bottom: 0; .nav-link{border-radius: 0; border-width: 0 1px; line-height: $line-height-base; @include o-hover-text-color(rgba(white, 0.8), white); &, &:hover{border-color: #875A7B; background: transparent;}&.active{color: color-yiq($tab-active-color); background: $tab-active-color; border-color: $tab-active-color;}}}@mixin o-wslides-header-bar(){&:before{content: ""; @include o-position-absolute(auto, 0, 0, 0); height: $o-wslides-tabs-height; background: rgba(black, 0.2);}}.o_wslides_course_nav{@include o-position-absolute(0,0,auto,0); border-width: 1px 0; &, .o_wslides_course_nav_search{background-color: rgba(white, 0.05); border-color: rgba(white, 0.1); border-style: solid;}.o_wslides_course_nav_search{border-width: 0 1px;}.breadcrumb-item.active a, .breadcrumb-item a:hover{color: white;}.breadcrumb-item a, .breadcrumb-item + .breadcrumb-item::before, .o_wslides_course_nav_search input::placeholder{color: rgba(white, 0.8);}}.o_wslides_course_header{@include media-breakpoint-up(md){@include o-wslides-header-bar();}}.o_wslides_course_doc_header{@include o-wslides-header-bar();}.o_wslides_course_main{.o_wslides_nav_tabs{@include media-breakpoint-up(md){@include o-wslides-tabs();}@include media-breakpoint-only(xs){overflow-x: auto; overflow-y: hidden; line-height: 1.51; li{white-space: nowrap;}}}.o_wslides_doc_nav_tabs{@include o-wslides-tabs($gray-100);}.o_wslides_tabs_content{@include media-breakpoint-down(sm){background-color: $nav-tabs-link-active-bg; padding:0 ($grid-gutter-width * 0.5);}@include media-breakpoint-only(xs){margin: 0 ($grid-gutter-width * -0.5);}}// Slides list reordering widget .o_wslides_slides_list{.o_wslides_slide_list_category_header{z-index: 1; & + ul{z-index: 0;}}.o_text_link{text-decoration: none!important; > *{text-decoration: none!important; color: map-get($grays, "600");}&:hover > *{color: inherit;}}.o_wslides_slides_list_drag{cursor: pointer; i{opacity: 0.4;}&:hover i{opacity: 1;}}.o_wslides_slide_list_category_header, .o_wslides_slides_list_slide{border: 1px solid $border-color;}.o_wslides_slides_list_slide{a{text-decoration: none;}.badge-hide{display: none;}&:hover .badge-hide{display: block;}}.o_wslides_slides_list_slide_hilight{background-color: #1252F3; height: 1px; z-index: 3; &:before, &:after{content: ""; @include size(6px); display: block; border-radius: 100%; background-color: inherit; @include o-position-absolute(-2px, -2px);}&:after{right: auto; left: -2px;}}}}// New lesson page (not fullscreens) // ************************************************** .o_wslides_lesson_main{.o_wslides_lesson_aside{.o_wslides_lesson_aside_collapse.collapsed{transform: rotate(90deg);}.o_wslides_lesson_aside_list{@include media-breakpoint-up (lg){top: -58px;}}.o_wslides_lesson_aside_list{.o_wslides_lesson_aside_list_link{@include o-hover-text-color($gray-600, $headings-color ); .o_wslides_lesson_link_name{line-height: 1.2;}&.active{box-shadow:inset 2px 0 theme-color('primary');}&:hover .o_wslides_lesson_link_name{color: $headings-color;}}}}.o_wslides_lesson_content{.o_wslides_lesson_nav{.nav-link{background-color: transparent; border: 0; border-bottom: 1px solid $border-color; color: $gray-600; &.active{border-bottom: 1px solid $success; color: $gray-800;}}}}}// Modals // ************************************************** .o_wslides_quiz_modal{@include media-breakpoint-up (sm){.modal-body{overflow: visible!important;}.modal-content{height: 461px; .o_wslides_quiz_modal_hero{margin-left: -30px; position: absolute; margin-top: -45px;}}}}// Embed PDFViewer // ************************************************** #PDFViewer.o_wslides_fs_pdf_viewer{background-image: linear-gradient(120deg, $o-wslides-color-dark2, $o-wslides-color-dark3); #PDFViewerNav{background-image: linear-gradient(120deg, $o-wslides-color-dark1, $o-wslides-color-dark2);}.oe_slides_panel_footer a, .oe_slides_share_bar a{@include o-hover-text-color(rgba(white, 0.7), white); &.disabled{@include o-hover-text-color(rgba(white, 0.2), rgba(white, 0.2)); cursor: default;}}.oe_slide_embed_option{@include o-position-absolute(0,0,0,0);}}.oe_slides_share_bar{padding: 10px 0;}.oe_show_footer{z-index: $MAX-Z-INDEX; // Looks terrible but seems necessary due to fullscreen & canvas in PDFSlidesViewer}

/* /website_slides/static/src/scss/website_slides_profile.scss defined in bundle 'web.assets_frontend' */
// Quest - Course Card .o_wprofile_slides_course_card_body{cursor: pointer;}

/* /website_slides/static/src/scss/slides_slide_fullscreen.scss defined in bundle 'web.assets_frontend' */
 .o_wslides_fs_main{@include o-position-absolute(0,0,0,0); z-index: $zindex-dropdown; background-image: linear-gradient(120deg, $o-wslides-color-dark2, $o-wslides-color-dark3); .o_wslides_slide_fs_header{background-image: linear-gradient(-6deg, $o-wslides-color-dark1, $o-wslides-color-dark2); height: 50px; > div > a{background-color: rgba($o-wslides-color-dark3, 0.5); @include o-hover-text-color(rgba(white, 0.8), white); text-decoration: none!important; + a{margin-left: 1px;}&:hover{background-color: rgba($o-wslides-color-dark3, 0.2);}&.active{background-color: $o-wslides-color-dark1; color: #fff;}}}.o_wslides_fs_player, .o_wslides_fs_sidebar, .o_wslides_fs_sidebar_content{transition: all .2s ease-in;}.o_wslides_fs_sidebar{background-image: linear-gradient(160deg, $o-wslides-color-dark1, $o-wslides-color-dark2); position: relative; z-index: $zindex-fixed; .o_wslides_fs_sidebar_content{min-width: $o-wslides-fs-side-width;}.o_wslides_fs_toggle_sidebar{@include o-position-absolute(0, auto, 0, 100%); width: 700px; background: rgba(black, 0.2);}@include media-breakpoint-down (md){@include o-position-absolute(0, auto, 0, 0); box-shadow: 5px 0 15px rgba(black, 0.2); &.o_wslides_fs_sidebar_hidden{display: none;}}@include media-breakpoint-up (md){width: $o-wslides-fs-side-width; &.o_wslides_fs_sidebar_hidden{width: 0; .o_wslides_fs_sidebar_content{transform: translateX(-100%);}}}a{text-decoration: none !important; @include o-hover-text-color(rgba(white, 0.8), white);}.o_wslides_fs_sidebar_section{background-color: rgba($o-wslides-color-dark3, 0.3); margin-bottom: 1px;}.o_wslides_fs_sidebar_section_slides li{color: rgba(white, 0.8); line-height: 1.3; &.active{box-shadow: inset 2px 0 0 theme-color('primary'); background-color: rgba($o-wslides-color-dark3, 0.5); &, a{color: white;}}.o_wslides_fs_slide_name{line-height: 1;}}}.o_wslides_js_lesson_quiz_question{.list-group-item{font-size: 1rem; input:checked + i.fa-circle{color: $primary !important;}}&.disabled{opacity: 0.5; pointer-events: none;}&.completed-disabled{pointer-events: none;}}}.modal-open{> .modal-backdrop{z-index: $zindex-dropdown - 1;}}

/* /website_slides_survey/static/src/scss/website_slides_survey.scss defined in bundle 'web.assets_frontend' */
$o_wss_color_1 : #5B7687; $o_wss_color_2 : #485761; // General // ************************************************** .o_wss_certification_icon{@include size(1.4em, auto);}// Course page // ************************************************** #wrap.o_wss_certification_channel{.o_wslides_course_header{background-image: linear-gradient(120deg, $o_wss_color_1, $o_wss_color_2);}.o_wslides_course_pict{@include media-breakpoint-up(md){border-color: $o_wss_color_2;}}.o_wslides_nav_tabs .nav-link{@include media-breakpoint-up(md){&, &:hover{border-color: $o_wss_color_1;}&.active{border-color: $gray-100;}}}}

/* /social_push_notifications/static/src/scss/social_push_notifications_frontend.scss defined in bundle 'web.assets_frontend' */
.o_social_push_notifications_permission_request{bottom: 0; z-index: $zindex-tooltip + 100; @include media-breakpoint-up(sm){top: 0; bottom: auto; // Reach 91px position left compensating the container's padding padding-left: 91px - ($grid-gutter-width * .5); &.o_social_push_notifications_permission_with_menubar{top: $o-navbar-height + 4px;}.o_social_push_notifications_permission_content{max-width: $popover-max-width;}}.close{@include o-position-absolute(0, 0);}.dropdown-toggle:after{display: none;}.o_social_push_notifications_permission_content{min-width: 150px;}}

/* /job_portal/static/src/css/yamm.css defined in bundle 'web.assets_frontend' */
 .yamm .megamenu-dropdown{position: static;}.yamm .dropdown-menu{left: auto;}.yamm .yamm-content{padding: 20px 30px;}.yamm .dropdown.yamm-fw .dropdown-menu{left: 0; right: 0;}

/* /job_portal/static/src/css/style.css defined in bundle 'web.assets_frontend' */
 #topNav{z-index:-1;}#nav{width: 100%; box-shadow: 0px 0px 20px #868383;}#nav.affix-top{top:5; left:0; z-index:10; background-color: #FFF; border:0;}#nav.affix{position: fixed; top: 0; z-index:10; background-color: #FFF; -webkit-transition: all .6s ease-in-out;}.scroll-top{position:fixed; bottom:0; right:6%; z-index:100; background-color: #FFF; font-size:24px; border-top-left-radius:3px; border-top-right-radius:3px;}#footer{background-color: #262626 !important;}footer{background-color: #262626 !important; color: #ffffff; font-size: 12px;}#footer{clear: both; width: 100%; margin: auto; background: #262626; -webkit-transition: -webkit-transform 500ms ease; -o-transition: -o-transform 500ms ease; transition: -webkit-transform 500ms ease;}#footer .container{padding-bottom: 50px; padding-top: 50px;}#footer .widgettitle{color: #ffffff; font-size: 25px; letter-spacing: 2px; text-transform: uppercase;}#footer a{color: #ffffff; letter-spacing: 2px;}#footer div{color: #ffffff; font-size: 12px;}#footer a:hover{color: #337AB7; text-decoration: blink; cursor:pointer;}.footer_copyright a{color: #ffffff;}.footer_copyright a:hover{color: #fc5000; text-decoration: blink; cursor:pointer;}#footer .footer_content{height: 150px;}@media (min-width: 992px){#footer .footer_content{border-right: 1px solid #ffffff;}}ul.social-network{list-style: none; display: inline; margin-left:0 !important; padding: 0;}ul.social-network li{display: inline; margin: 0 5px;}.social-network a.icoRss,.social-network a.icoRss:hover{background-color: #F56505;}.social-network a.icoFacebook,.social-network a.icoFacebook:hover{background-color:#3B5998;}.social-network a.icoTwitter,.social-network a.icoTwitter:hover{background-color:#33ccff;}.social-network a.icoSkype,.social-network a.icoSkype:hover{background-color:#00aff0;}.social-network a.icoVimeo,.social-network a.icoVimeo:hover{background-color:#0590B8;}.social-network a.icoLinkedin,.social-network a.icoLinkedin:hover{background-color:#007bb7;}.social-network a.icoYoutube,.social-network a.icoYoutube:hover{background: #bb0000;}.social-network a.icoGoogleplus,.social-network a.icoGoogleplus:hover{background: #dd4b39;}.social-network a.icoInstagram,.social-network a.icoInstagram:hover{background: #125688;}.social-network a.icoGithub,.social-network a.icoGithub:hover{background-color: #c9510c;}.social-network a.icoRss:hover i, .social-network a.icoFacebook:hover i, .social-network a.icoTwitter:hover i, .social-network a.icoGoogle:hover i, .social-network a.icoVimeo:hover i, .social-network a.icoLinkedin:hover i, .social-network a.icoYoutube:hover i, .social-network a.icoGoogleplus:hover i, .social-network a.icoGithub:hover i, .social-network a.icoInstagram:hover i{color:#fff;}a.socialIcon:hover, .socialHoverClass{color:#44BCDD;}.social-circle li a{display:inline-block; position:relative; margin:0 auto 0 auto; -moz-border-radius:50%; -webkit-border-radius:50%; border-radius:50%; text-align:center; width: 35px; height: 35px; font-size:20px;}.social-circle li i{margin:0; line-height: 35px; text-align: center;}.social-circle i{color: #fff; -webkit-transition: all 0.8s; -moz-transition: all 0.8s; -o-transition: all 0.8s; -ms-transition: all 0.8s; transition: all 0.8s;}.hr_form span.input-group-addon{border-color: #262626; border-radius: 0px !important; color: #262626;}.hr_form input.form-control:focus,.hr_form select.form-control:focus,.hr_form textarea.form-control:focus{border-color: #262626; -webkit-box-shadow: none box-shadow: none}.has-error .form-control{border-color: #a94442 !important;}.preview p,.preview li{padding: 10px; background-color: #D9DDE0;}.preview ul{padding: 0;}.form_padding{background-color: rgba(217, 221, 224, 0.37); padding: 20px;}.carousel-indicators .active{background-color: #b93434 !important;}.carousel-inner img{width: 100%; max-height: 460px}.carousel-control{width: 0;}.carousel-control.left, .carousel-control.right{opacity: 1; filter: alpha(opacity=100); background-image: none; background-repeat: no-repeat; text-shadow: none;}.carousel-control.left span{padding: 15px;}.carousel-control.right span{padding: 15px;}.carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right, .carousel-control .icon-prev, .carousel-control .icon-next{position: absolute; top: 45%; z-index: 5; display: inline-block;}.carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev{left: 0;}.carousel-control .glyphicon-chevron-right, .carousel-control .icon-next{right: 0;}.carousel-control.left span, .carousel-control.right span{background-color: #000;}.carousel-control.left span:hover, .carousel-control.right span:hover{opacity: .7; filter: alpha(opacity=70);}.header-text{position: absolute; top: 15%; right: auto; width: 96.66666666666666%; color: #fff;}.header-text h2{font-size: 40px;}.header-text h3 span{background-color: #000; padding: 15px;}.btn-min-block{min-width: 170px; line-height: 26px;}.btn-theme{color: #fff; background-color: transparent; border: 2px solid #fff; margin-right: 15px;}.btn-theme:hover{color: #000; background-color: #fff; border-color: #fff;}.carousel-indicators li{width: 14px; height: 14px; border: 1px solid #fff; border-radius: 0px; cursor: pointer; background-color: #000 \9; background-color: #fff;}.carousel-indicators .active{width: 16px; height: 16px; background-color: #b93434 !important;}div.carousel .carousel-indicators li{border: 1px solid rgba(0, 0, 0, 0);}.about_para{padding-left: 130px; padding-right: 130px;}.box img{border-radius: 50%;}div.bhoechie-tab-container{background-color: #ffffff; padding: 0 !important; border-radius: 4px; -moz-border-radius: 4px; border:1px solid #ddd; margin-top: 20px; margin-left: 50px; -webkit-box-shadow: 0 6px 12px rgba(0,0,0,.175); box-shadow: 0 6px 12px rgba(0,0,0,.175); -moz-box-shadow: 0 6px 12px rgba(0,0,0,.175); background-clip: padding-box; opacity: 0.97; filter: alpha(opacity=97);}div.bhoechie-tab-menu{padding-right: 0; padding-left: 0; padding-bottom: 0;}div.bhoechie-tab-menu div.list-group{margin-bottom: 0;}div.bhoechie-tab-menu div.list-group>a{margin-bottom: 0;}div.bhoechie-tab-menu div.list-group>a .glyphicon, div.bhoechie-tab-menu div.list-group>a .fa{color: #b93434;}div.bhoechie-tab-menu div.list-group>a:first-child{border-top-right-radius: 0; -moz-border-top-right-radius: 0;}div.bhoechie-tab-menu div.list-group>a:last-child{border-bottom-right-radius: 0; -moz-border-bottom-right-radius: 0;}div.bhoechie-tab-menu div.list-group>a.active, div.bhoechie-tab-menu div.list-group>a.active .glyphicon, div.bhoechie-tab-menu div.list-group>a.active .fa{background-color: #b93434; background-image: #b93434; color: #ffffff;}div.bhoechie-tab-menu div.list-group>a.active:after{content: ''; position: absolute; left: 100%; top: 50%; margin-top: -13px; border-left: 0; border-bottom: 13px solid transparent; border-top: 13px solid transparent; border-left: 10px solid #b93434;}div.bhoechie-tab-content{background-color: #ffffff; padding-left: 20px; padding-top: 10px;}div.bhoechie-tab div.bhoechie-tab-content:not(.active){display: none;}.list-group-item.active, .list-group-item.active:hover, .list-group-item.active:focus{border: 1px solid #ddd;}.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .active > a:focus{color: #b93434; background-color: inherit; font-weight: 700;}.yamm-content a:hover,.yamm-content a:focus{color: #b93434; text-decoration: none; font-weight: 700;}.yamm-content li{margin-top: 5px;}.yamm-content a{color: #333;}input.btn.btn-lg, input.btn.btn-lg:focus{outline: none; width: 70%; height: 60px; border-top-right-radius: 0; border-bottom-right-radius: 0;}.promise{color: #999;}.box-icon-service{background-color: #333333; border-radius: 50%; display: table; height: 150px; margin: 0 auto; width: 150px; margin-top: 60px;}.box-icon-service span{color: #fff; display: table-cell; text-align: center; vertical-align: middle;}.box-icon-service:hover{background-color: #b93434; cursor: pointer;}.btn-file{position: relative; overflow: hidden;}.btn-file input[type=file]{position: absolute; top: 0; right: 0; width: 100px; height: 100px; font-size: 100px; text-align: right; filter: alpha(opacity=0); opacity: 0; outline: none; background: white; cursor: inherit; display: block;}#img-upload{width: 100px; height: 100px; background: white;}.image-preview-input{position: relative; overflow: hidden; margin: 0px; color: #333; background-color: #fff; border-color: #ccc;}.image-preview-input input[type=file]{position: absolute; top: 0; right: 0; margin: 0; padding: 0; font-size: 20px; cursor: pointer; opacity: 0; filter: alpha(opacity=0);}.image-preview-input-title{margin-left:2px;}@keyframes move{0%{left: 0; opacity: 0;}5%{opacity: 0.0;}48%{opacity: 0.2;}80%{opacity: 0.0;}100%{left: 82%;}}@-webkit-keyframes move{0%{left: 0; opacity: 0;}5%{opacity: 0.0;}48%{opacity: 0.2;}80%{opacity: 0.0;}100%{left: 82%;}}@-moz-keyframes move{0%{left: 0; opacity: 0;}5%{opacity: 0.0;}48%{opacity: 0.2;}80%{opacity: 0.0;}100%{left: 88%;}}@-ms-keyframes move{0%{left: 0; opacity: 0;}5%{opacity: 0.0;}48%{opacity: 0.2;}80%{opacity: 0.0;}100%{left: 82%;}}@-o-keyframes move{0%{left: 0; opacity: 0;}5%{opacity: 0.0;}48%{opacity: 0.2;}80%{opacity: 0.0;}100%{left: 82%;}}.box{background: rgba(165, 158, 158, 0.16); border-radius: 3px; padding: 10px 25px; text-align: right; display: block; margin-top: 60px;}.box-icon{background-color: #57a544; border-radius: 50%; display: table; height: 150px; margin: 0 auto; width: 150px; margin-top: -86px;}.box-icon span{color: #fff; display: table-cell; text-align: center; vertical-align: middle;}.info h4{font-size: 26px; letter-spacing: 2px; text-transform: uppercase;}.info > p{color: #717171; font-size: 16px; padding-top: 10px; text-align: justify;}.info > a{background-color: #03a9f4; border-radius: 2px; box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12); color: #fff; transition: all 0.5s ease 0s;}.info > a:hover{background-color: #0288d1; box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.16), 0 2px 5px 0 rgba(0, 0, 0, 0.12); color: #fff; transition: all 0.5s ease 0s;}.event-list{list-style: none; font-family: 'Lato', sans-serif; margin: 0px; padding: 0px;}.event-list > li{background-color: rgb(255, 255, 255); box-shadow: 0px 0px 5px rgb(51, 51, 51); box-shadow: 0px 0px 5px rgba(51, 51, 51, 0.7); padding: 0px; margin: 0px 0px 20px;}.event-list > li > time{display: inline-block; width: 100%; color: rgb(255, 255, 255); background-color: #333333; padding: 5px; text-align: center; text-transform: uppercase;}.event-list > li:nth-child(even) > time{background-color: rgb(165, 82, 167);}.event-list > li > time > .day{display: block; font-size: 20pt; font-weight: 500;}.event-list > li time > .month{display: block; font-size: 20pt; font-weight: 500;}.event-list > li time > .year{display: block; font-size: 20pt; font-weight: 500;}.event-list > li > img{width: 100%;}.event-list > li > .info{padding-top: 5px; text-align: center;}.event-list > li > .info > .title{font-size: 12pt; font-weight: 700; margin: 0px;}.event-list > li > .info > .desc{font-size: 10pt; font-weight: 300; margin: 0px;}.event-list > li > .info > ul, .event-list > li > .social > ul{display: table; list-style: none; margin: 10px 0px 0px; padding: 0px; width: 100%; text-align: center;}.event-list > li > .social > ul{margin: 0px;}.event-list > li > .info > ul > li, .event-list > li > .social > ul > li{display: table-cell; cursor: pointer; color: rgb(30, 30, 30); font-size: 11pt; font-weight: 300; padding: 3px 0px;}.event-list > li > .info > ul > li > a{display: block; width: 100%; color: rgb(30, 30, 30); text-decoration: none;}.event-list > li > .social > ul > li{padding: 0px;}.event-list > li > .social > ul > li > a{padding: 3px 0px;}.event-list > li > .info > ul > li:hover, .event-list > li > .social > ul > li:hover{color: rgb(30, 30, 30); background-color: rgb(200, 200, 200);}.facebook a, .twitter a, .google-plus a{display: block; width: 100%; color: rgb(75, 110, 168) !important;}.twitter a{color: rgb(79, 213, 248) !important;}.google-plus a{color: rgb(221, 75, 57) !important;}.facebook a,.facebook:hover a{color: rgb(255, 255, 255) !important; background-color: rgb(75, 110, 168) !important;}.twitter a,,.twitter:hover a{color: rgb(255, 255, 255) !important; background-color: rgb(79, 213, 248) !important;}.google-plus a,.google-plus:hover a{color: rgb(255, 255, 255) !important; background-color: rgb(221, 75, 57) !important;}@media (min-width: 768px){.event-list > li{position: relative; display: block; width: 100%; height: 120px; padding: 0px;}.event-list > li > time, .event-list > li > img{display: inline-block;}.event-list > li > time, .event-list > li > img{width: 120px; float: left;}.event-list > li > .info{background-color: rgb(245, 245, 245); overflow: hidden;}.event-list > li > time, .event-list > li > img{width: 105px; height: 120px; padding: 0px; margin: 0px;}.event-list > li > .info{position: relative; height: 120px; text-align: left; padding-right: 40px;}.event-list > li > .info > .title, .event-list > li > .info > .desc{padding: 0px 10px;}.event-list > li > .info > ul{position: absolute; left: 0px; bottom: 0px;}.event-list > li > .social{position: absolute; top: 0px; right: 0px; display: block; width: 40px;}.event-list > li > .social > ul{border-left: 1px solid rgb(230, 230, 230);}.event-list > li > .social > ul > li{display: block; padding: 0px;}.event-list > li > .social > ul > li > a{display: block; width: 40px; padding: 10px 0px 9px;}}.box-service :hover{}.box-service img{border-radius: 50%; width: 200px; height: 150px;} *{margin: 0; padding: 0;}html{}body{font-family: montserrat, arial, verdana;}.msform{margin: 50px auto; text-align: center; position: relative;}.msform .form_border{background: white; border: 0 none; border-radius: 3px; box-shadow: 0 0 10px 0px rgba(0, 0, 0, 0.4); box-sizing: border-box; position: relative;}.msform fieldset:not(:first-of-type){display: none;}.msform input, .msform textarea, .msform select{border-radius: 3px; width: 100%; box-sizing: border-box;}.msform .action-button{width: 100px; background: #27AE60; font-weight: bold; color: white; border: 0 none; border-radius: 1px; cursor: pointer; padding: 10px 5px; margin: 10px 5px;}.msform .action-button:hover, .msform .action-button:focus{box-shadow: 0 0 0 2px white, 0 0 0 3px #27AE60;}.fs-title{font-size: 15px; text-transform: uppercase; color: #2C3E50; margin-bottom: 10px;}.fs-subtitle{font-weight: normal; font-size: 13px; color: #666; margin-bottom: 20px;}#progressbar{margin-bottom: 30px; overflow: hidden; counter-reset: step;}#progressbar li{list-style-type: none; color: white; text-transform: uppercase; font-size: 9px; width: 33.33%; float: left; position: relative;}#progressbar li:before{content: counter(step); counter-increment: step; width: 20px; line-height: 20px; display: block; font-size: 10px; color: #333; background: white; border-radius: 3px; margin: 0 auto 5px auto;}#progressbar li:after{content: ''; width: 100%; height: 2px; background: white; position: absolute; left: -50%; top: 9px; z-index: -1;}#progressbar li:first-child:after{content: none;}#progressbar li.active:before, #progressbar li.active:after{background: #27AE60; color: white;}.form-horizontal .control-label{text-align: right; margin-bottom: 0;}.form-header-group{background-image: url(/job_portal/static/src/img/apply_now_bannerHeader.jpg);}.header-text{padding: 10px; padding-left: 36px; background: rgba(48, 44, 37, 0.55); width: 60%; border-top-right-radius: 10px; border-bottom-right-radius: 10px;}.htvam{vertical-align: middle;}.httal{text-align: left;}h2.form-header{line-height: 1.618em; font-size: 1.714em; font-weight: bold;}h2 ~ .form-subHeader{line-height: 1.5em; font-size: 1.071em;}.page_bg{background-color: #efefed;}.o_website_form_required .control-label:after, .o_website_form_required_custom .control-label:after{content: ' *'; font-weight: normal; color: red; font-size: 16px;}.color_red{color:#d9534f; font-size: 0.6em;}.with-nav-tabs.panel-primary .nav-tabs > li > a, .with-nav-tabs.panel-primary .nav-tabs > li > a:hover, .with-nav-tabs.panel-primary .nav-tabs > li > a:focus{color: #fff;}.with-nav-tabs.panel-primary .nav-tabs > .open > a, .with-nav-tabs.panel-primary .nav-tabs > .open > a:hover, .with-nav-tabs.panel-primary .nav-tabs > .open > a:focus, .with-nav-tabs.panel-primary .nav-tabs > li > a:hover, .with-nav-tabs.panel-primary .nav-tabs > li > a:focus{color: #fff; background-color: #3071a9; border-color: transparent;}.with-nav-tabs.panel-primary .nav-tabs > li.active > a, .with-nav-tabs.panel-primary .nav-tabs > li.active > a:hover, .with-nav-tabs.panel-primary .nav-tabs > li.active > a:focus{color: #428bca; background-color: #fff; border-color: #428bca; border-bottom-color: transparent;}.with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu{background-color: #428bca; border-color: #3071a9;}.with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu > li > a{color: #fff;}.with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu > li > a:hover, .with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu > li > a:focus{background-color: #3071a9;}.with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu > .active > a, .with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu > .active > a:hover, .with-nav-tabs.panel-primary .nav-tabs > li.dropdown .dropdown-menu > .active > a:focus{background-color: #4a9fe9;}

/* /website_rating/static/src/scss/website_rating.scss defined in bundle 'web.assets_frontend' */
 $o-w-rating-star-color: #FACC2E; .o_website_rating_static{color: $o-w-rating-star-color;}.o_website_rating_card_container{.o_message_counter{color: gray('700');}table.o_website_rating_progress_table{width: 100%; overflow: visible; .o_website_rating_table_star_num{min-width: 50px;}.o_website_rating_select[style*="opacity: 1"]{cursor: pointer;}.o_website_rating_table_progress{min-width: 120px; > .progress{margin-bottom: 5px; margin-left: 5px; margin-right: 5px;}.o_rating_progressbar{background-color: $o-w-rating-star-color;}}.o_website_rating_table_percent{text-align: right; padding-left: 5px; font-size: $font-size-sm;}.o_website_rating_table_reset{.o_website_rating_select_text{visibility: hidden;}}}}.o_rating_star_card{margin-bottom: 5px; .stars{display: inline-block; color: #FACC2E; margin-right: 15px;}.stars i{margin-right: -3px; text-align: center;}.stars.enabled{cursor: pointer;}.rate_text{display: inline-block;}}.o_rating_popup_composer{.o_rating_clickable{cursor: pointer;}.o_portal_chatter_avatar{margin-right: 10px;}}.o_rating_popup_composer_label{color: color-yiq(white);}

/* /payment/static/src/scss/portal_payment.scss defined in bundle 'web.assets_frontend' */
input#cc_number{background-repeat: no-repeat; background-position: center right calc(2.7em);}div.card_placeholder{background-image: url("/website_payment/static/src/img/placeholder.png"); background-repeat: no-repeat; width: 32px; height: 20px; position: absolute; top: 8px; right: 20px; -webkit-transition: 0.4s cubic-bezier(0.455,0.03,0.515,0.955); transition: 0.4s cubic-bezier(0.455,0.03,0.515,0.955); pointer-events: none;}div.o_card_brand_detail{position: relative; div.card_placeholder{right: 5px;}}div.amex{background-image: url("/website_payment/static/src/img/amex.png"); background-repeat: no-repeat;}div.diners{background-image: url("/website_payment/static/src/img/diners.png"); background-repeat: no-repeat;}div.discover{background-image: url("/website_payment/static/src/img/discover.png"); background-repeat: no-repeat;}div.jcb{background-image: url("/website_payment/static/src/img/jcb.png"); background-repeat: no-repeat;}div.mastercard{background-image: url("/website_payment/static/src/img/mastercard.png"); background-repeat: no-repeat;}div.visa{background-image: url("/website_payment/static/src/img/visa.png"); background-repeat: no-repeat;}ul.payment_method_list img.rounded{max-width: 100px; max-height: 40px;}

/* /payment/static/src/scss/payment_form.scss defined in bundle 'web.assets_frontend' */
.o_payment_form{label > input[type="radio"], input[type="checkbox"]{vertical-align: middle; margin-right: 5px;}.payment_option_name{font-size: 14px; font-weight: normal !important; font-family: Helvetica Neue, sans-serif; line-height: 1.3em; color: #4d4d4d;}label{font-weight: normal; margin-top: 5px;}.card-body:first-child{border-top: 0px;}.card{border-radius: 10px;}.card-footer:last-child{border-bottom-right-radius: 10px !important; border-bottom-left-radius: 10px !important;}.card-body{border-top: 1px solid #ddd; padding: 1.14em !important; &.o_payment_acquirer_select:hover{cursor: pointer;}}.payment_icon_list{position: relative; li{padding-left: 5px !important; padding-right: 0px !important;}.more_option{@include o-position-absolute($right: 10px); font-size:10px;}margin-top: 0px !important; margin-bottom: -5px !important;}}

/* /sale/static/src/scss/sale_portal.scss defined in bundle 'web.assets_frontend' */
 .orders_vertical_align{display: flex; align-items: center;}.orders_label_text_align{vertical-align: 15%;}.sale_tbody .o_line_note{word-break: break-word; word-wrap: break-word; overflow-wrap: break-word;}.o_portal .sale_tbody .js_quantity_container{width: 50%; .js_quantity{text-align: center; padding: 0;}.input-group-text{padding: 0.2rem 0.4rem;}@include media-breakpoint-down(sm){width: 100%;}}

/* /project/static/src/scss/portal_rating.scss defined in bundle 'web.assets_frontend' */
.o_portal_project_rating{.thumbnail{height: 240px;}.o_top_partner_rating_image{height: 15px;}.o_top_partner_image{height: 30px; width: 30px;}.o_top_partner_feedback{word-wrap: break-word;}.o_vertical_separator{border-left: 1px solid #eeeeee}.o_rating_progress{margin-bottom: 10px;}.o_rating_count{display: inline-block; min-width: 22px}.o_smiley_no_padding_left{padding-left: 0;}.o_smiley_no_padding_right{padding-right: 0;}.o_lighter_smileys{opacity: 0.4}}

/* /sale_timesheet/static/src/scss/sale_timesheet_portal.scss defined in bundle 'web.assets_frontend' */
.o_timesheet_accordion{.card-header{a{text-decoration: none; &:after{content: "\f0d7"; font-family: 'FontAwesome';}&.collapsed:after{content: "\f0da"; font-family: 'FontAwesome';}}}}

/* /auth_oauth/static/src/scss/auth_oauth.scss defined in bundle 'web.assets_frontend' */
.o_auth_oauth_providers{.fa-facebook-square{color: #3b5998;}.fa-google-plus-square{color: #de564a;}.o_custom_icon{margin: 0 0.15em; @include size(1em); border: 3px solid #875A7B; border-radius: 100%; transform: translateY(2px);}}