/* open-sans-regular - latin */
@font-face {
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: url('../resources/fonts/open-sans-v16-latin-regular.eot'); /* IE9 Compat Modes */
  src: local('Open Sans Regular'), local('OpenSans-Regular'),
       url('../resources/fonts/open-sans-v16-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('../resources/fonts/open-sans-v16-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
       url('../resources/fonts/open-sans-v16-latin-regular.woff') format('woff'), /* Modern Browsers */
       url('../resources/fonts/open-sans-v16-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
       url('../resources/fonts/open-sans-v16-latin-regular.svg#OpenSans') format('svg'); /* Legacy iOS */
}

* {
    box-sizing: border-box;
    font-family: 'Open Sans', sans-serif;
    font-weight: normal;
    font-size: 14px;
}
*:focus { outline: none; }
* {
    -webkit-transition: width 0.5s;
    transition: width 0.5s;
}
*[disabled] {
    opacity: 0.6;
    pointer-events: none;
}
a {
    text-decoration: none;
}
.headline-text {
    font-size: 20px;
    font-weight: 600;
}
.title-text {
    font-size: 16px;
    font-weight: 600;
}

.ib {
    display: inline-block;
}
.vc {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
}
.hc {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
}
.hover-p {
    cursor: pointer;
}
.mt10 {
    margin-top: 10px;
}
.vt {
    vertical-align: top;
}

button, input[type=button] {
    font-size: 13px;
    font-weight: 600;
    border-radius: 12px;
    background-color: #d5d5d5;
    color: #3a3a3a;
    border: none;
    padding: 6px 12px;
    margin-left: 10px;
    min-width: 100px;

    border: 1px solid #9bc841;
    cursor: pointer;
}
button:first-child, input[type=button]:first-child {
    margin-left: 0px;
}
button[data-default], input[type=button][data-default] {
    background-color: #9bc841;
    color: #ffffff;
}

input, textarea {
    user-select: text;
    -moz-user-select: text;
    -webkit-user-select: text;
    -ms-user-select: text;
}

input[type="number"]::-webkit-outer-spin-button,
input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

input[type="number"] {
    -moz-appearance: textfield;
}

html {
    min-width: 1200px;
    height: 100%;
    overflow: hidden;
    background: #fafafa;
}

html[data-widget] { min-width: auto; }
html[data-widget] body {
    margin-left: 80px;
    width: calc(100% - 80px);
    background-color: transparent;
    position: relative;
}

html[data-temperature-c] .temperature-display-f,
html[data-temperature-f] .temperature-display-c  {
    display: none !important;
}

/* editable list item style */
html[data-operate=edit] *[data-hide-on-edit=true],
html[data-operate=edit] .item-display,
html[data-operate=edit] #header #normal,
html[data-operate=edit] #header #searchable,
html[data-operate=normal] *[data-hide-on-edit=false],
html[data-operate=normal] .item-editor,
html[data-operate=normal] #header #editable,
html[data-operate=normal] #header #searchable,
html[data-operate=search] *[data-hide-on-edit=false],
html[data-operate=search] .item-editor,
html[data-operate=search] #header #normal,
html[data-operate=search] #header #editable {
    display: none !important;
}
html[data-operate=edit] .list-item input,
html[data-operate=edit] .list-item .delete,
html[data-operate=edit] .list-item .reorder {
    pointer-events: all;
}

.list-item .item-display .title,
.list-item .item-display .sub-title {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.panel .ind {
    background-image: url('/resources/icons/icon-fold-n@3x.png');
}
.panel .ind.edit {
    background-image: url('/resources/icons/icon-edit-n@3x.png');
}
.panel[data-active=false] .ind {
    background-image: url('/resources/icons/icon-fold-n@3x.png');
}
.reorder {
    float: left;
    width: 40px;
    height: 34px;
    cursor: pointer;
}

body {
    opacity: 0;
    height: 100%;
    margin: 0px;
    padding: 0px;
    overflow-x: hidden;
    overflow-y: hidden;
    -webkit-transition: opacity 0.5s;
    transition: opacity 0.5s;
}
body[data-initialized] {
    opacity: 1;
}
iframe {
    position: absolute;
    width: 100%;
    min-width: 1200px;
    height: calc(100% - 50px);
    top: 50px;
    /*left: 80px;*/
    margin: 0px;
    padding: 0px;
    border: none;
    background: transparent;
}
iframe[data-active=true] {
    -webkit-transition: opacity 0.5s;
    transition: opacity 0.5s;                
    opacity: 1;
    z-index: 100;
}
iframe[data-active=false] {
    -webkit-transition: opacity 0.5s;
    transition: opacity 0.5s;                
    opacity: 0;
    z-index: 0;
}
input {
    width: 100%;
    height: 30px;
    border-radius: 6px;
    border: 1px solid transparent;
    margin-bottom: 5px;
    padding: 0 7px 0 7px;
}
input[type=checkbox] {
    width: auto;
    height: auto;
    border-radius: 0px;
    border: 0px;
    margin: 0px;
    padding: 0px;
}
.popup-container {
    background-color: rgba(0,0,0,0.8);
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
}
.popup-container[data-active=true] {
    -webkit-transition: opacity 0.5s;
    transition: opacity 0.5s;                
    opacity: 1;
    z-index: 100000;
}
.popup-container[data-modal-view=true] {
    z-index: 100;
}

.template {
    display: none;
}

#app-prompt:not(:empty)::before {
    content: '';
    display: block;
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: rgba(255,255,255,0.9);
}
#app-prompt {
    position: absolute;
    top: 0px;
    width: 100%;
    height: 100%;
    text-align: center;
    opacity: 1;
}
#app-prompt > * {
    position: relative;
    top: 50%;
    transform: translateY(-50%);
    display: inline-block;
    /*padding: 24px;*/
    padding: 0px;
    box-shadow: 2px 2px 12px gray;
}
#app-prompt:empty {
    display: none;
    opacity: 0;
    -webkit-transition: opacity 0.2s;
    transition: opacity 0.2s;
    width: 0%;
}

html[data-popup] {
    background: transparent;
}
html[data-popup] body {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: auto;
    height: auto;
    border-radius: 10px;
    box-shadow: 0 20px 20px 0 rgba(0, 0, 0, 0.4);
    padding: 0px;
}
html[data-popup] body > .panel {
    padding: 0px;
}
html[data-popup] body .content {
    height: auto !important;
    padding: 0px 16px;
}

.panel-buttons {
    position: absolute;
    bottom: 0px;
    width: 100%;
    border-top: 1px solid #a0a0a0;
    text-align: center;
    padding: 20px;
}


html #header {
    background-color: transparent;
    height: 50px;
    padding: 0px;
    vertical-align: middle;
    line-height: 22px;
    z-index: 1000;
    pointer-events: none;
}

html #header > #title {
    padding: 14px 0px;
    position: absolute;
    left: 16px;
    display: inline-block;
    text-align: left;
    pointer-events: all;
    color: white;
}

html #header > #title-v2 {
    padding: 4px 0px;
    position: absolute;
    left: 11px;
    display: inline-block;
    text-align: left;
    pointer-events: all;
    color: white;
}

html #header > #links {
    position: absolute;
    right: 0px;
    display: inline-block;
    text-align: right;
    pointer-events: all;
}
html #header > #links > * {
    padding: 14px 16px 14px 16px;
    display: inline-block;
}
html #footer {
    position: absolute;
    bottom: 0px;
    height: 60px;
    width: 100%;
    text-align: center;
    padding: 20px 0px;
}

.dock[data-active=false] {
    left: -80px;
    -webkit-transition: left 0.5s;
    transition: left 0.5s;
}
.dock {
    position: absolute;
    left: 0px;
    top: 105px;
    z-index: 1000;

    width: 80px;
    border-radius: 12px;
    background-color: #58585861;
    -webkit-transition: left 0.5s;
    transition: left 0.5s;
    opacity: 0.8;
}
.dock-item {
    display: block;
    position: relative;
    line-height: 70px;
    width: 70px;
    height: 70px;
    margin: 5px;
    border-radius: 12px;
    color: #ffffff;
    -webkit-transition: background-color 0.5s;
    transition: background-color 0.5s;
    cursor: pointer;
}
/*.dock-item[data-active=true],*/
.dock-item:hover {
    background-color: #616169;
    color: lightgray;
    -webkit-transition: background-color 0.5s;
    transition: background-color 0.5s;
}
.dock-item[data-active=true] {
    background-color: #616169;
}
.dock-item[data-active=false] .i,
.dock-item[data-active=true] .a {
    opacity: 1;
}
.dock-item[data-active=true] .i,
.dock-item[data-active=false] .a {
    opacity: 0;
}
.dock-item > img {
    position: absolute;
    top: 5px;
    left: 15px;
    width: 40px;
    height: 40px;
    margin: 0px;
}
.dock-item > div {
    position: absolute;
    top: 48px;
    width: 70px;
    text-align: center;
    line-height: 18px;
    font-size: 12px;
    font-weight: 600;
}
.dock-item[data-active=false] > div {
    font-weight: 100;
}


.panel {
    position: relative;
    height: 400px;
    margin-right: 10px;
    display: inline-block;
    border-radius: 10px;
    box-shadow: 0 20px 20px 0 rgba(0, 0, 0, 0.4);
    background-color: #eeeeee;
    padding: 10px;
}
.panel:last-child {
    margin-right: 0px;
}
.panel-side {
    border-radius: 10px;
    box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.4);
    background-color: #eeeeee;
    padding: 10px;
}
.panel-float {
    border-radius: 10px;
    background-color: rgba(255, 255, 255, 0.8);
    padding: 10px;
}
.panel-title {
    font-size: 16px;
    line-height: 22px;
    font-weight: 600;
    font-style: normal;
    font-stretch: normal;
    line-height: normal;
    letter-spacing: normal;
    color: #3a3a3a;
    margin-bottom: 10px;
}
.fieldgroup-1 {
    border-radius: 12px;
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
    background-color: #3a3a3a;
    padding: 5px;
}
.fieldgroup-2 {
    border-radius: 12px;
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
    background-color: #d5d5d5;
    padding: 5px;
}
.fieldgroup-3 {
    border-radius: 12px;
    box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.1);
    background-color: #ffffff;
    padding: 5px;
}

.status-icon,
.reorder-icon,
.reorder-icon-w,
.reorder-icon-b {
    background-repeat: no-repeat;
    background-size: 24px 24px;
}

.reorder-icon-w {
    background-image: url(/resources/icons/icon-move-w@3x.png);
}
.reorder-icon-b,
.reorder-icon {
    background-image: url(/resources/icons/icon-move-bk@3x.png);
}

.status-icon.user {
    background-image: url(/resources/icons/icon-user-n@3x.png);
}
.status-icon.growth {
    background-image: url(/resources/icons/icon-growth-2@3x.png);
}
.status-icon.preplant {
    background-image: url(/resources/icons/icon-preplant-2@3x.png) !important;
}
.status-icon.critical {
    background-image: url(/resources/icons/icon-critical-n@3x.png);
}
.status-icon.warning {
    background-image: url(/resources/icons/icon-warning-n@3x.png);
}
.status-icon.normal {
    background-image: url(/resources/icons/icon-normal-n@3x.png);
}
.status-icon.offline {
    background-image: url(/resources/icons/icon-offline-n@3x.png);
}
.status-icon.idle {
    background-image: url(/resources/icons/icon-idle@3x.png);
}
.status-icon.inactive {
    background-image: url(/resources/icons/icon-offline-2-n@3x.png);
}
.status-icon.moisture {
    background-image: url(/resources/icons/icon-moisture-n@3x.png);
}
.status-icon.humidity {
    background-image: url(/resources/icons/icon-humidity-n@3x.png);
}
.status-icon.temperature {
    background-image: url(/resources/icons/icon-temp-n@3x.png);
}
.status-icon.grouped {
    background-image: url(/resources/icons/icon-grouped-n@3x.png);
}
.status-icon.ungrouped {
    background-image: url(/resources/icons/icon-ungrouped-n@3x.png);
}
.soiltech-device {
    background-image: url(/resources/icons/icon-device-n@3x.png);
}

/* general css */
.left  { float: left; }
.right { float: right; }
.hide  { display: none !important; }
.hidden { visibility: hidden; }
.half  { width: 50%; }

/* width */
.w150 {
    width: 150px;
}
.w200 {
    width: 200px;
}

/*
    text css
*/
.red { color: red !important; }
.blue { color: blue !important; }
.tl { text-align: left; }
.tc { text-align: center; }
.tr { text-align: right; }
.blod { font-weight: bold; }
.soiltech-yellow { color: yellow !important; }
.soiltech-green { color: #99c841 !important; }
.font-size16 { font-size: 16px; }

.icon32 {
    width: 32px;
    height: 32px;
    background-repeat: no-repeat;
    background-size: 32px 32px;
}
.icon24 {
    width: 24px;
    height: 24px;
    background-repeat: no-repeat;
    background-size: 24px 24px;
}
.icon20 {
    width: 20px;
    height: 20px;
    background-repeat: no-repeat;
    background-size: 20px 20px;
}
.icon18 {
    width: 18px;
    height: 18px;
    background-repeat: no-repeat;
    background-size: 18px 18px;
}
.icon16 {
    width: 16px;
    height: 16px;
    background-repeat: no-repeat;
    background-size: 16px 16px;
}
.icon8 {
    width: 8px;
    height: 8px;
    background-repeat: no-repeat;
    background-size: 8px 8px;
}

.setting {
    background-image: url(/resources/icons/icon-setting-n.png);
    cursor: pointer;
}
.close {
    background-image: url(/resources/icons/icon-close-n@3x.png);
    cursor: pointer;
}
.delete {
    background-image: url(/resources/icons/icon-trash-n.png);
    cursor: pointer;
}
.delete2 {
    background-image: url(/resources/icons/icon-delete-w@3x.png);
    cursor: pointer;
}
.delete2s {
    background-image: url(/resources/icons/icon-batch-delete-w@3x.png);
    cursor: pointer;
}
.search {
    background-image: url(/resources/icons/icon-search-n@3x.png);
    cursor: pointer;
}
.add {
    background-image: url(/resources/icons/icon-add-n@3x.png);
    cursor: pointer;
}
.arrow {
    background-image: url(/resources/icons/arrow-direction.png);
    cursor: pointer;
}
.logout {
    background-image: url(/resources/icons/icon-logout-b@3x.png);
    cursor: pointer;
    filter: opacity(60%);
}

div.table { display: table; }
div.row   { display: table-row; }
div.col   { display: table-cell; }
div.colspan,
div.colspan+div.col { border: 0; }
div.group { display: table-row-group; }
div.caption { caption-side: bottom; display: table-caption; }

div.button { cursor: pointer; }
div.button:hover {}

.set-password {
    background-repeat: no-repeat;
    background-size: 16px 16px;
    background-position: center right 7px;
}

.set-password:focus {
    background-image: url(/resources/icons/icon-eye-o.png);
}

.set-password {
    background-image: url(/resources/icons/icon-eye-x.png);
}

/* 
    tab 
*/
.tab {
    overflow: hidden;
    background-color: transparent;
}

.tab button {
    background-color: transparent;
    float: left;
    border: none;
    outline: none;
    cursor: pointer;
    padding: 12px 0px 0px 0px;
    transition: 0.3s;
    font-size: 13px;
    color: #3a3a3a;
    margin: 0 !important;
    margin-left: 16px !important;
    min-width: 50px !important;
    border-radius: 0 !important;
    border-bottom: 2px solid transparent;
    line-height: 30px;
}

.tab button:first-child {
    margin-left: 0px !important;
}

.tab button:hover {
}

.tab button.active {
    border-bottom: 2px solid #99c841;
}

.tab-content-container {
    position: relative;
    width: 100%;
    height: 100%;
}
.tab-content {
    position: absolute;
    opacity: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    pointer-events: none;
}
.tab-content.active {
    z-index: auto;
    opacity: 1;
    pointer-events: all;
}

.content-title {
    font-weight: 600;
    font-size: 13px;
    color: #3a3a3a;
}

.content-wrapper {
    margin: 20px 0px 20px 0px;
}
.content-wrapper > div {
    display: inline-block;
}
.content-wrapper > .arrow {
    margin: 0 9px 0 9px;
}

.content-line {
    display: block !important;
    margin-bottom: 8px;
}
.content-line > div {
    display: inline-block;
}
.content-line > .arrow {
    margin: 0 9px 0 9px;
}

.content-text {
    font-size: 13px;
    color: #3a3a3a;
}

.extra-button {
    position: absolute;
    right: 60px;
    bottom: 24px;
}


.grid-table {
    table-layout: fixed;
    width: 100%;
    height: auto;
    border-spacing: 0px;
}
.grid-table thead tr th {
    position: -webkit-sticky;
    position: sticky;
    z-index: 999;
    top: 0;
    background-color: #ffffff;
}
.grid-table .grid-header th {
    /*width: 120px;*/
    height: 46px;
    max-height: 46px;
    /*text-align: start;*/
    color: #888888;
    font-size: 13px;
    vertical-align: bottom;
    padding-bottom: 5px;
    border-bottom: 1px solid #888888;
}
.grid-table .grid-body td {
    /*width: 120px;*/
    min-height: 36px;
    height: 36px;
    max-height: 36px;
    text-align: start;
    color: #3a3a3a;
    font-size: 13px;
    vertical-align: middle;
    border-bottom: 1px solid #eeeeee;
}
.grid-table th:first-child, td:first-child {
    padding-left: 10px;
    /*width: 160px;*/
}

.apps {
    /*background: #d6f58c;*/
    background: #c8c8c8;
    height: 49px;
    border-bottom: 1px solid lightgray;
    padding: 0px 0px 0px 16px;
}

.apps > * {
    font-size: 16px !important;
    height: 32px;
    width: 120px;
    padding: 0px;
    margin: 8px 16px 8px 0px;
    border-radius: 4px;
    font-weight: thin;
    border: 1px solid white;
    background: #EEE;
    color:#AAA;
}
.apps > *[disabled] {
    background: #9bc841;
    color: white;
    opacity: 1;
}
.content {
    padding: 32px 16px;
    height: calc(100vh - 49px);
}

#account {
    position: absolute; 
    right: 75px; 
    top: 0px; 
    font-size: 16px !important; 
    padding-top: 16px;
    color: #5e5e5e;
}

#logout {
    position: absolute;
    top: 15px;
    right: 15px;
}

.user-info a,
.device-info a {
    /*text-decoration: underline;*/
    color: blue;
}

.disabled {
    opacity: 0.6 !important;
    pointer-events: none !important;
}

/*
    spinner, progress bar ...
*/
.spinner-view-blocker {
    pointer-events: auto;
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    z-index: 1000002;
    background-color: transparent;
    opacity: 0.6;
}
.spinner-bulletin {
    color: #ffffff;
    font-size: 36px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}
.spinner-preloader {
    color: official;
    display: inline-block;
    position: relative;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80px;
    height: 80px;
}
.spinner-preloader div {
    transform-origin: 40px 40px;
    animation: spinner-preloader 1.2s linear infinite;
}
.spinner-preloader div:after {
    content: " ";
    display: block;
    position: absolute;
    top: 3px;
    left: 37px;
    width: 6px;
    height: 18px;
    border-radius: 20%;
    background: #3c3c3c;
}
.spinner-preloader div:nth-child(1) {
    transform: rotate(0deg);
    animation-delay: -1.1s;
}
.spinner-preloader div:nth-child(2) {
    transform: rotate(30deg);
    animation-delay: -1s;
}
.spinner-preloader div:nth-child(3) {
    transform: rotate(60deg);
    animation-delay: -0.9s;
}
.spinner-preloader div:nth-child(4) {
    transform: rotate(90deg);
    animation-delay: -0.8s;
}
.spinner-preloader div:nth-child(5) {
    transform: rotate(120deg);
    animation-delay: -0.7s;
}
.spinner-preloader div:nth-child(6) {
    transform: rotate(150deg);
    animation-delay: -0.6s;
}
.spinner-preloader div:nth-child(7) {
    transform: rotate(180deg);
    animation-delay: -0.5s;
}
.spinner-preloader div:nth-child(8) {
    transform: rotate(210deg);
    animation-delay: -0.4s;
}
.spinner-preloader div:nth-child(9) {
    transform: rotate(240deg);
    animation-delay: -0.3s;
}
.spinner-preloader div:nth-child(10) {
    transform: rotate(270deg);
    animation-delay: -0.2s;
}
.spinner-preloader div:nth-child(11) {
    transform: rotate(300deg);
    animation-delay: -0.1s;
}
.spinner-preloader div:nth-child(12) {
    transform: rotate(330deg);
    animation-delay: 0s;
}
@keyframes spinner-preloader {
    0% {
        opacity: 1;
    }
    100% {
        opacity: 0;
    }
}

.progress-view-blocker {
}
.progress-bar {
    display: inline-block;
    position: relative;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    
    z-index: 1000003;
    margin: 20px;
    width: 400px;
    height: 8px;
}

/* select */
.select-v1 {
    border-radius: 4px;
    border-color: #c8c8c8;
    pointer-events: all;
    cursor: pointer;
}

/* input */
.input-v1 {
    background: transparent;
    /*border: 0px;*/
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}
input[readonly] {
    border: 0px solid transparent;
    background-color: transparent;
    cursor: default;
}

/*
    20241031 - the following style causes scrollbar to disappear. 
    This style is added by William on June 22, 2022 with comment "Scrollbar behavior fix on Windows".
    Blocking this style to making scrollbar to show.
*/
/*::-webkit-scrollbar {
    display: none;
}*/

/** {
    -ms-overflow-style: none;
    scrollbar-width: none;
}*/

datalist {
    display: none !important;
}

.gear {
    /*content: "\2699";*/
    position: absolute;
    right: 50px;
    top: 5px;
    font-size: 32px !important;
    color: #5e5e5e;
    cursor: pointer;
}