$themes: (
    dark: (
        bodysize: 15px,
        h1: 24px,
        h2: 18px,
        p: 14px,
        bodybg: #4d4d4d,
        cardbg: #3d3d3d,
        navbg: #2c2c2c,
        color0: #000000,
        txtcolor1: #dddddd,
        txtcolor2: #999999,
        txtcolor3: #666666,
        txtcolor4: #424242,
        txtcolor5: #2c2c2c,
        txtcolor100: #ffffff,
        menucolor: #dddddd,
        menuhover: #000000,
        menudropitemhover: #2c2c2c,
        crumbdrophover: #eee,
        crumbdropitemhover: #2c2c2c,
        label-count: #000000,
        label-count-bg: #ffffff, 
        trHoverColor: #eeeeee,
        trBorderColor: #666666,
        barbg: #333333,
        barvalue: #FE802A,
        windblue: #226B9D,
        grassgreen: #309F39,
        neutral: #369894,
        alert: #D52E2B,
        warning: #E8AE31,
        service: #008ACE,
        comm: #dddddd,
    ),
    light: (
        bodysize: 15px,
        h1: 24px,
        h2: 18px,
        p: 14px,
        bodybg: #e0e0e0,
        cardbg: #ffffff, 
        navbg: #ffffff,
        color0: #ffffff,
        txtcolor1: #2c2c2c,
        txtcolor2: #424242,
        txtcolor3: #666666,
        txtcolor4: #999999,
        txtcolor5: #dddddd,
        txtcolor100: #000000,
        menucolor: #666666,
        menuhover: #eee,
        menudropitemhover: #ddd,
        crumbdrophover: #ddd,
        crumbdropitemhover: #999,  
        label-count: #ffffff,
        label-count-bg: #212121,
        trHoverColor: #000000,
        trBorderColor: #dddddd,
        barbg: #f2f2f2,
        barvalue: #FE802A,
        windblue: #20BECE,
        grassgreen: #00C90F,
        neutral: #369894,
        alert: #D52E2B,
        warning: #E8AE31,
        service: #20BECE,
        comm: #dddddd,
    ),
  );
  
  @mixin themify($themes) {
    @each $theme, $map in $themes {
      .theme-#{$theme} & {
        $theme-map: () !global;
        @each $key, $submap in $map {
          $value: map-get(map-get($themes, $theme), '#{$key}');
          $theme-map: map-merge($theme-map, ($key: $value)) !global;
        }
        @content;
        $theme-map: null !global;
      }
    }
  }

  @mixin themifyPrivate($themes) {
    @each $theme, $map in $themes {
      .theme-#{$theme} :host & {
        $theme-map: () !global;
        @each $key, $submap in $map {
          $value: map-get(map-get($themes, $theme), '#{$key}');
          $theme-map: map-merge($theme-map, ($key: $value)) !global;
        }
        @content;
        $theme-map: null !global;
      }
    }
  }
  
  @function themed($key) {
    @return map-get($theme-map, $key);
  }