*:disabled {cursor:not-allowed;}

/* pixel unit : per 15px */
.wx-1 { width: 15px !important; }
.wx-2 { width: 30px !important; }
.wx-3 { width: 45px !important; }
.wx-4 { width: 60px !important; }
.wx-5 { width: 75px !important; }
.wx-6 { width: 90px !important; }
.wx-7 { width: 105px !important; }
.wx-8 { width: 120px !important; }
.wx-9 { width: 135px !important; }
.wx-10 { width: 150px !important; }
.wx-11 { width: 165px !important; }
.wx-12 { width: 180px !important; }
.wx-15 { width: 225px !important; }
.wx-18 { width: 195px !important; }
.wx-20 { width: 300px !important; }
.wx-30 { width: 450px !important; }

/* percent unit : per 10% */
.wp-10 { width: 10% !important; }
.wp-20 { width: 20% !important; }
.wp-30 { width: 30% !important; }
.wp-40 { width: 40% !important; }
.wp-50 { width: 50% !important; }
.wp-60 { width: 60% !important; }
.wp-70 { width: 70% !important; }
.wp-80 { width: 80% !important; }
.wp-90 { width: 90% !important; }
.wp-100, .wp-full { width: 100% !important; }

/* rem unit : 2rem */
.wf-1 { width: 2rem !important; }
.wf-2 { width: 4rem !important; }
.wf-3 { width: 6rem !important; }
.wf-4 { width: 8rem !important; }
.wf-5 { width: 10rem !important; }
.wf-6 { width: 12rem !important; }
.wf-7 { width: 14rem !important; }
.wf-8 { width: 16rem !important; }
.wf-9 { width: 18rem !important; }
.wf-10 { width: 20rem !important; }

.w-0 { width: 0 !important; }
.w-auto { width: auto !important; }

.flex-auto { flex:auto !important; }

/* red for required inputbox/dropdown */
.form-control[data-required='true']:focus,
.form-control[required]:focus {
  border-color: #f00;
}

/* spinner */
.sending-spinner {
  position: relative;
  width:0px;
  visibility:hidden;
}

@keyframes spinner {
  to {transform: rotate(360deg);}
}

.sending-spinner:before {
  content: '';
  box-sizing: border-box;
  position: absolute;
  top: 55%;
  left: 5px;
  width: 20px;
  height: 20px;
  margin-top: -10px;
  margin-left: -10px;
  border-radius: 50%;
  border: 2px solid #ccc;
  border-top-color: #000;
  animation: spinner .6s linear infinite;
}

/* multi file uploader (pluploader widget) */
.file-upload-box .file-size-info { margin:5px 0 0 0; text-align:right; }
.file-upload-box .file-drop-target { border: 5px dashed #999; text-align: center; color: #999; font-size: 1.8vw; width: 100%; padding:10px; cursor: pointer;}
.file-upload-box .file-drop-target > span { display:block; font-size: 1.5vw; color:#b50000}
.file-upload-box .file-drop-target.dragover { background: rgba(255, 255, 255, 0.4); border-color: green;}

@media screen and (min-width: 320px) and (max-width: 767px) {
  .file-upload-box .file-drop-target {font-size: 12px;}
  .file-upload-box .file-drop-target > span {font-size:10px;}
}

@media screen and (min-width: 1200px) {
  .file-upload-box .file-drop-target {font-size: 20px;}
  .file-upload-box .file-drop-target > span {font-size:13px;}
}

.file-upload-box ul.file-queue-list { margin:5px 0 10px 0; padding:0; border:1px dotted #ddd; display:none;}
.file-upload-box ul.file-queue-list li { margin:0; padding:5px 5px; list-style:none; position:relative; font-size:0.9em;}
.file-upload-box ul.file-queue-list li a.upload-action-link { position:absolute; right:10px; top:2px; }
.file-upload-box ul.file-queue-list li div.upload_filename { padding-right:20px; } /* to prevent overlapped with cancel/remove link */
.file-upload-box ul.file-queue-list li:nth-child(odd) { background-color:#fbfbfb; }



.file-upload-box ul.file-queue-list.queue-thumbs li { display:inline-block !important; vertical-align:top !important; max-width:150px; min-height:271px; border:1px solid #eee; margin:5px;padding:0; }
.file-upload-box ul.file-queue-list.queue-thumbs li:hover { border:1px solid #f00; }
.file-upload-box ul.file-queue-list.queue-thumbs li div.upload_filename {overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: block; padding:5px; border-top:1px solid #eee0;}
.file-upload-box ul.file-queue-list.queue-thumbs li a.upload-action-link { position:absolute; right:10px; top:auto; bottom:2px !important; }
.file-upload-box ul.file-queue-list.queue-thumbs li a.view_uploaded_file { position:absolute; right:30px; top:auto; bottom:2px !important; }
.file-upload-box ul.file-queue-list.queue-thumbs li img:hover { cursor:move; }

.file-upload-box .upload_progress { height:1px;opacity:0;}
.file-upload-box .upload_progress_bar { height:100%; background-color:#55a7ff;}

.moxie-shim { width: auto !important; } /* plupload add a fixed width on div.moxie-shim, but it must not be fixed */



/*
   Animation example, for spinners
*/
@-moz-keyframes spin {
  0% {
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  100% {
    -moz-transform: rotate(359deg);
    -o-transform: rotate(359deg);
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@-webkit-keyframes spin {
  0% {
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  100% {
    -moz-transform: rotate(359deg);
    -o-transform: rotate(359deg);
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@-o-keyframes spin {
  0% {
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  100% {
    -moz-transform: rotate(359deg);
    -o-transform: rotate(359deg);
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@-ms-keyframes spin {
  0% {
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  100% {
    -moz-transform: rotate(359deg);
    -o-transform: rotate(359deg);
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}
@keyframes spin {
  0% {
    -moz-transform: rotate(0deg);
    -o-transform: rotate(0deg);
    -webkit-transform: rotate(0deg);
    transform: rotate(0deg);
  }

  100% {
    -moz-transform: rotate(359deg);
    -o-transform: rotate(359deg);
    -webkit-transform: rotate(359deg);
    transform: rotate(359deg);
  }
}


i.spinner{display:inline-block;vertical-align:middle;width:32px;height:32px;border:1px solid #08c;border-width:2px;border-radius:16px;border-bottom-color:transparent!important;
  -moz-animation: spin 2s infinite linear;
  -o-animation: spin 2s infinite linear;
  -webkit-animation: spin 2s infinite linear;
  animation: spin 2s infinite linear;
  display: inline-block;
}
i.spinner.spin-sm{width:16px;height:16px;border-width:1.2px;border-radius:8px;}
i.spinner.spin-lg{width:64px;height:64px;border-width:2.5px;border-radius:32px;}
i.spinner.spin-xl{width:128px;height:128px;border-width:5px;border-radius:64px;}




/* filestyle */
.zfilestyle { width:1px; }

/* input type date */
/* for only datepicker class */
input[type="date"].datepicker::-webkit-calendar-picker-indicator,
input[type="date"].datepicker::-webkit-inner-spin-button{
  display: none;
}


/********************* radio & checkbox *********************/
/* Base for label styling */
[type="checkbox"]:not(:checked),
[type="checkbox"]:checked {
  position: absolute;
  left: -9999px;
}

[type="checkbox"]:not(:checked) + label,
[type="checkbox"]:checked + label {
  position: relative;
  padding-left: 1.5em;
  cursor: pointer;
  margin-bottom:0 !important;
}

/* checkbox aspect */
[type="checkbox"]:not(:checked) + label:before,
[type="checkbox"]:checked + label:before {
  content: '';
  position: absolute;
  left: 0; top: 0;
  width: 1.25em; height: 1.25em;
  border: 1px solid #aaa;
  background: #fff;
}
/* checked mark aspect */
[type="checkbox"]:checked + label:after {
  content: '\e116';
  font-family: 'lined-icons';
  position: absolute;
  top: 0.15em; left: 0em;
  font-size:1em;
  line-height: 0.8;
  padding:0.1em;
  color: #f00;
}

/* IE Only : Because of Reload */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  [type="checkbox"]:checked + label:after {
    content: '';
    width: 0.6em; height: 0.6em;
    background: #f00;
    position: absolute;
    top: 0.3em;
    left: 0.32em;
    border-radius: 0%;
  }
}

/* disabled checkbox */
[type="checkbox"]:disabled:not(:checked) + label:before,
[type="checkbox"]:disabled:checked + label:before {
  box-shadow: none;
  border-color: #aaa;
  background-color: #ddd;
}
[type="checkbox"]:disabled:checked + label:after {
  color: #999;
  border-color: #bbb;
}
/* IE Only : Because of Reload */
@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
  [type="checkbox"]:disabled:checked + label:after {
    background-color: #aaa;
  }
}
[type="checkbox"]:disabled + label {
  color: #666;
}
/* accessibility */
[type="checkbox"]:checked:focus + label:before,
[type="checkbox"]:not(:checked):focus + label:before,
[type="checkbox"]:checked:focus + label:after,
[type="checkbox"]:not(:checked):focus + label:after {
  border-color:#f00;
}

/* hover style just for information */
[type="checkbox"] + label:hover:before {
  /*border: 1px solid red;*/
}

/* radio */
/* Base for label styling */
[type="radio"]:not(:checked),
[type="radio"]:checked {
  position: absolute;
  left: -9999px;
}
[type="radio"]:not(:checked) + label,
[type="radio"]:checked + label {
  position: relative;
  padding-left: 1.5em;
  cursor: pointer;
  margin-bottom:0 !important;
}

/* radio aspect */
[type="radio"]:not(:checked) + label:before,
[type="radio"]:checked + label:before {
  content: '';
  position: absolute;
  left: 0; top: 0;
  width: 1.25em; height: 1.25em;
  border: 1px solid #aaa;
  border-radius:50%;
  background: #fff;
}
/* checked mark aspect */
[type="radio"]:checked + label:after {
  content: '';
  width: 0.6em; height: 0.6em;
  background: #f00;
  position: absolute;
  top: 0.3em;
  left: 0.32em;
  border-radius: 100%;
}

/* disabled radio */
[type="radio"]:disabled:not(:checked) + label:before,
[type="radio"]:disabled:checked + label:before {
  box-shadow: none;
  border-color: #bbb;
  background-color: #ddd;
}
[type="radio"]:disabled:checked + label:after {
  background: #aaa;
}
[type="radio"]:disabled + label {
  color: #666;
}
/* accessibility */
[type="radio"]:checked:focus + label:before,
[type="radio"]:not(:checked):focus + label:before,
[type="radio"]:checked:focus + label:after,
[type="radio"]:not(:checked):focus + label:after {
  border-color:#f00;
}

/* hover style just for information */
[type="radio"] + label:hover:before {
  border-color:#ccc;
}
/********************* //radio & checkbox *********************/


/********************* table *********************/
table.table-cols {width:100%;border:0;border-color:transparent;font-size:0.8rem;border-collapse: collapse;border-spacing: 0;background:#fff;position:relative;}
table.table-cols:before {border-top:1px solid #888;width:100%;height:1px;position:absolute;content:' '}
table.table-cols th{text-align:left;}
table.table-cols td, table.table-cols th{padding:7px 10px;border:1px solid #ddd;vertical-align:middle;}
table.table-cols th {background:#fbfbfb;font-weight:bold;}
table caption{visibility:hidden;overflow:hidden;width:1px;height:1px;font-size:0;line-height:0;padding:0 !important}

/* table side border */
table.table-cols.noside th:first-child, table.table-cols.noside td:first-child { border-left:none; }
table.table-cols.noside th:last-child, table.table-cols.noside td:last-child { border-right:none; }

table.table-cols > tbody + tbody {border-top:0px solid #f00 !important;}
table.table-cols.tcenter th, table.table-cols.tcenter td { text-align:center ;}
table.table-cols.tright th, table.table-cols.tright td { text-align:right;}


table.table-rows {width:100%;border:0;border-color:transparent;font-size:0.8rem;border-collapse: collapse;border-spacing: 0;background:#fff;position:relative;}
table.table-rows:before {border-top:1px solid #888;width:100%;height:1px;position:absolute;top:0;content:' '}
table.table-rows th{text-align:left;font-weight:bold;}
table.table-rows td {padding:5px 5px;}
table.table-rows th {padding:8px 10px;}
table.padding-xs th {padding:8px 1px !important;}
table.table-rows td, table.table-rows th{border:1px solid #bbb;vertical-align:middle;}
table.table-rows thead tr:first-child th { border-bottom:none !important;}

table.table-rows th, table.table-rows thead td{background:#d5d5d5;font-weight:bold;}
table caption{visibility:hidden;overflow:hidden;width:1px;height:1px;font-size:0;line-height:0;padding:0 !important}

table.table-rows.noside th:first-child, table.table-rows.noside td:first-child { border-left:none; }
table.table-rows.noside th:last-child, table.table-rows.noside td:last-child { border-right:none; }

table.table-rows.tcenter th, table.table-rows.tcenter td { text-align:center ;}
table.table-rows.tright th, table.table-rows.tright td { text-align:right;}

table.table-rows.thover tbody tr:hover { background-color:#f0f0f0; }
table.table-rows.novline td { border-left:none !important; border-right:none !important; }

table.noborder td { border:none !important; }

/********************* //table *********************/


/********************* date time picker *********************/
.datepicker .input-group-addon { cursor:pointer; }
.datepicker table th, .datepicker table td {
  font-size:0.9rem;
  border:none !important;
  padding: .5rem;
}

.non-radius .bootstrap-datetimepicker-widget table td,
.non-radius  .bootstrap-datetimepicker-widget table th {
  border-radius: 0 !important;
}

table.table-condensed td, table.table-condensed th{
  border:none !important; /* datetimepicker is for bootstrap 3, we need to remove border for bootstrap 4 */
}

/* change original datetimepicker style */
.bootstrap-datetimepicker-widget table td, .bootstrap-datetimepicker-widget table th { border-radius:0; }
.bootstrap-datetimepicker-widget table th { background-color:#f00 !important; color:#fff;}
.bootstrap-datetimepicker-widget table thead tr:first-child th:hover { background: #f00 !important; opacity:0.8; }
.bootstrap-datetimepicker-widget table th.disabled,
.bootstrap-datetimepicker-widget table th.disabled:hover { color: #000; }
/********************* //date time picker *********************/



/********************* modal ***********************/
.non-radius .modal-content {
  border-radius: 0;
}
.non-radius .modal-header {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}


.modal-dialog.modal-fixed {
  max-width: calc(100% - 20px) !important;
}

.fade-scale {
  transform: scale(0);
  opacity: 0;
  -webkit-transition: all .25s linear;
  -o-transition: all .25s linear;
  transition: all .25s linear;
}

.fade-scale.show {
  opacity: 1;
  transform: scale(1);
}

.modal-dialog.modal-center {
  min-height: calc(100vh - 60px);
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.modal-body {
  max-height: calc(100vh - 160px); /* modal height auto:prevent overflow */
}

.modal-body:not(.body-iframe) {
  overflow: auto;
}

.bootbox-body {
  height: 100%;
  width: 100%;
}

.modal-body iframe.framebody {
  height: 100%;
  width: 100%;
  max-height:calc(100vh - 190px); /* modal height auto:prevent overflow */
  border: 0;
}


.modal-header h4 { font-size:1.05rem; }

.bootbox-alert + .modal-backdrop,
.bootbox-confirm + .modal-backdrop,
.bootbox-prompt + .modal-backdrop { background:#eee !important; }

.bootbox-alert .bootbox-body,
.bootbox-confirm .bootbox-body { font-size:0.8rem; }

/* padding-right를 0으로 줬는데도, 이상하게 동작한다. 그래서 빼자...
.bootbox { padding-right:0 !important; }
*/

/* alert and confirm modal */
.bootbox-alert .modal-header,
.bootbox-confirm .modal-header,
.bootbox-prompt .modal-header { padding:8px 15px; background:#fa2828; color:#fff; }
.bootbox-alert .modal-header .close,
.bootbox-confirm .modal-header .close,
.bootbox-prompt .modal-header .close { padding:5px 10px 10px 10px; margin-top:-8px; color:#fff; } /* set padding depends on the padding of modal-header */

.bootbox-alert .modal-content,
.bootbox-confirm .modal-content,
.bootbox-prompt .modal-content { border-color:#fa2828; } /* modal-content border and modal-header background should be same color */

.bootbox-alert .modal-footer,
.bootbox-confirm .modal-footer,
.bootbox-prompt .modal-footer { padding:8px 15px; }
/********************* //modal ********************/


/********************** input tooltip **********************/
.itooltip.tooltip { opacity: 1; display:none;  }
.itooltip.bs-tooltip-top { padding-top:0;} /* remove the bootstrap tooltip default space */
.itooltip.bs-tooltip-bottom { padding-bottom:0;} /* remove the bootstrap tooltip default space */

.itooltip .tooltip-inner { max-width:400px; font-size:0.72rem; }
.non-radius .itooltip .tooltip-inner { border-radius:0 !important; }
.itooltip .arrow { left: 10px; }
.itooltip .bg-light { color:#000 !important; }

.tooltip.bs-tooltip-top .arrow.bd-primary::before { border-top-color: #007bff !important; }
.tooltip.bs-tooltip-top .arrow.bd-secondary::before { border-top-color: #868e96 !important; }
.tooltip.bs-tooltip-top .arrow.bd-success::before { border-top-color: #28a745 !important; }
.tooltip.bs-tooltip-top .arrow.bd-danger::before { border-top-color: #dc3545 !important; }
.tooltip.bs-tooltip-top .arrow.bd-warning::before { border-top-color: #ffc107 !important; }
.tooltip.bs-tooltip-top .arrow.bd-info::before { border-top-color: #17a2b8 !important; }
.tooltip.bs-tooltip-top .arrow.bd-light::before { border-top-color: #f8f9fa !important; }
.tooltip.bs-tooltip-top .arrow.bd-dark::before { border-top-color: #343a40 !important; }

.tooltip.bs-tooltip-bottom .arrow.bd-primary::before { border-bottom-color: #007bff !important; }
.tooltip.bs-tooltip-bottom .arrow.bd-secondary::before { border-bottom-color: #868e96 !important; }
.tooltip.bs-tooltip-bottom .arrow.bd-success::before { border-bottom-color: #28a745 !important; }
.tooltip.bs-tooltip-bottom .arrow.bd-danger::before { border-bottom-color: #dc3545 !important; }
.tooltip.bs-tooltip-bottom .arrow.bd-warning::before { border-bottom-color: #ffc107 !important; }
.tooltip.bs-tooltip-bottom .arrow.bd-info::before { border-bottom-color: #17a2b8 !important; }
.tooltip.bs-tooltip-bottom .arrow.bd-light::before { border-bottom-color: #f8f9fa !important; }
.tooltip.bs-tooltip-bottom .arrow.bd-dark::before { border-bottom-color: #343a40 !important; }
/********************** //input tooltip **********************/


/********************* toastr customizing **********************/
/* /js/toastr/toastr.css */
body:not(.inframe):not(.popuup) .toast-top-center,
body:not(.inframe):not(.popuup) .toast-top-full-width,
body:not(.inframe):not(.popuup) .toast-top-left,
body:not(.inframe):not(.popuup) .toast-top-right {
  top:  107px !important; /* 95 : header height + 12 : default space */
}
/********************* //toastr customizing **********************/


/********************* password strength checker ***********************/
.pwstrenth {margin-top: 4px;width: 150px; display:none;}
.pwstrenth .label { position:relative; font-size:13px;}

.pw-very-weak .label {color: #d00;}
.pw-very-weak .label:before { content:''; position:absolute; left:0; top:0; height:2px; width:30px; background: #d00; }

.pw-weak .label {color: #d00; font-size:13px;}
.pw-weak .label:before { content:''; position:absolute; left:0; top:0; height:2px; width:60px; background: #d00; }

.pw-mediocre .label {color: #c0bd00; font-size:13px;}
.pw-mediocre .label:before { content:''; position:absolute; left:0; top:0; height:2px; width:90px; background: #c0bd00; }

.pw-strong .label {color: #f3b31a; font-size:13px;}
.pw-strong .label:before { content:''; position:absolute; left:0; top:0; height:2px; width:120px; background: #f3b31a; }

.pw-very-strong .label {color: #00a500; font-size:13px;}
.pw-very-strong .label:before { content:''; position:absolute; left:0; top:0; height:2px; width:150px; background: #00a500; }

/********************* //password strength checker ***********************/

/* treeview */
.treeview .list-group-item { padding:10px !important; }


/********************* etc ***********************/
/* 1. body width - prevent iframe overflow (prevent horizontal scroll bar) */
body.inframe { width:99.9%;}

/********************* //etc ***********************/







/********************* mobile only ***********************/
/**** .mobile : mobile 공통     ****/
/**** .mobile.android : andorid 전용   ****/
/**** .mobile.ios : ios 전용           ****/

/* date time picker */
.mobile.ios .datepicker { height:2.2em !important; } /* ios에서 height가 이상하게 나옴 */
.mobile .datepicker { width:150px !important; }

/* modal iframe body scroll */
.mobile .modal-open {
  max-height: 100vh;
}

/* iframe in modal body*/
.mobile.ios .modal-body.body-iframe {
  width: 100%;
  -webkit-overflow-scrolling: touch;
  overflow: scroll;
}
/********************* //mobile only ***********************/
