/* ==========================================================================
   Base Styles & Utilities
   ========================================================================== */

.overflow-y-scroll
{
    overflow-y: auto !important;
    scrollbar-gutter: auto;
}


/* Badge */
.badge { 
    padding-left: 6px !important; 
    padding-bottom: 5px !important; 
}

/* Text Overflow */
.overflow-ellipsis {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ==========================================================================
   Form Elements & Controls
   ========================================================================== */

/* Select Controls */
select.form-control {
    padding-right: 2.1875rem;
    background: none !important;
}

/* Number Input Controls */
/* Chrome, Safari, Edge, Opera */
input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type=number] {
    -moz-appearance: textfield;
}

/* File Upload Controls */
.custom-file-label::after { 
    content: "파일선택" !important; 
    background-color: #3a8ee5 !important;  
    color: #ffffff !important;  
}

.custom-file-label { 
    color: #b9b9b9 !important;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Form Validation States */
.form-control.is-valid, 
.was-validated .form-control:valid {
    border-color: #66bb6a !important;
}

.form-control.is-invalid, 
.was-validated .form-control:invalid {
    border-color: #ef5350 !important;
}

.validation-invalid-label
{

}


/* Custom Control Labels */
span.custom-control-label {
    margin-top: 4px; 
    display: inline-block;
}

/* Tree Option Controls */
.treeOption .input-group-sm>.form-control:not(textarea) {
    height: 26px;
}

.treeOption .bootstrap-touchspin.input-group-sm .input-group-btn-vertical>.btn {
    width: 23px;
    padding: 0px;
}



/* 기본 숨김 */
.ph-hidden::placeholder { color: transparent; opacity: 0; }
/* 표시할 때는 클래스 제거 */

/* ==========================================================================
   Layout & Spacing
   ========================================================================== */

   .text-success-500
   {
    color:#d3e200 !important;
   }




.mh-100
{
    min-height: 100% !important;
}
/* ==========================================================================
   Borders & Dividers
   ========================================================================== */

.border-005
{
    border: 1px solid rgba(255, 255, 255, 0.05) !important;
}
.border-006
{
    border: 1px solid rgba(255, 255, 255, 0.06) !important;
}
.border-007
{
    border: 1px solid rgba(255, 255, 255, 0.07) !important;
}

.border-01
{
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
}
.border-02
{
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
}
.border-03
{
    border: 1px solid rgba(255, 255, 255, 0.3) !important;
}
/* Bottom Borders */
.border-b-1 {
    border-bottom: 1px solid #e6e6e6;
}

.border-b-2 {
    border-bottom: 2px solid #e6e6e6;
}

.border-bottom-1 { 
    border-bottom: 1px solid #dddddd; 
}

/* Top Borders */
.border-t-2 {
    border-top: 2px solid #e6e6e6;
}

.border-top-1 {
    border-top: 1px solid;
}

.border-top-01
{
    border-top: 1px solid rgba(255,255,255,0.1) !important;
}

.btn-group>.btn-group:not(:last-child)>.btn, .btn-group>.btn:not(:last-child):not(.dropdown-toggle) {
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}
.btn-group>.btn-group:not(:first-child)>.btn, .btn-group>.btn:not(:first-child) {
    border-top-left-radius: 0 !important;
    border-bottom-left-radius: 0 !important;
}
.btn-group.border-side > .btn:not(:first-child):not([class^="border-"]):not([class*=" border-"]) {
    border-left:1px solid rgba(0,0,0,0.3);
    margin-left:0px;
}



.btn-rounded
{
    border-radius: 50% !important;
}


.border-dark-005
{
    border:1px solid rgba(0,0,0,0.05) !important;
}

.border-dark-01
{
    border:1px solid rgba(0,0,0,0.1) !important;
}

.border-dark-02
{
    border:1px solid rgba(0,0,0,0.2) !important;
}
.border-dark-03
{
    border:1px solid rgba(0,0,0,0.3) !important;
}


.border-dark-1
{
    border:1px solid #333333 !important;
}



.border-radius-right-0
{
    border-top-right-radius: 0px !important;
    border-bottom-right-radius: 0px !important;
}
.border-radius-left-0
{
    border-top-left-radius: 0px !important;
    border-bottom-left-radius: 0px !important;
}

.border-radius-bottom-0
{
    border-bottom-left-radius: 0px !important;
    border-bottom-right-radius: 0px !important;
}

.border-radius-bottom-5
{
    border-bottom-left-radius: 5px !important;
    border-bottom-right-radius: 5px !important;
}


.border-radius-top-0
{
    border-top-left-radius: 0px !important;
    border-top-right-radius: 0px !important;
}

.border-radius-top-3
{
    border-top-left-radius: 3px !important;
    border-top-right-radius: 3px !important;
}

.border-radius-top-5
{
    border-top-left-radius: 5px !important;
    border-top-right-radius: 5px !important;
}


.border-radius-3 {
    border-radius: 3px !important;
}

.border-radius-5 {
    border-radius: 5px !important;
}

.border-radius-10 {
    border-radius: 10px !important;
}

.border-radius-bottom-right-0 
{
    border-bottom-right-radius: 0px !important;
}

.border-radius-bottom-left-0
{
    border-bottom-left-radius: 0px !important;
}


.border-left-01
{
    border-left: 1px solid rgba(255,255,255,0.1) !important;
}
.border-left-02
{
    border-left: 1px solid rgba(255,255,255,0.2) !important;
}


.border-right-01
{
    border-right: 1px solid rgba(255,255,255,0.1) !important;
}

.border-right-02
{
    border-right: 1px solid rgba(255,255,255,0.2) !important;
}

.border-bottom-01
{
    border-bottom: 1px solid rgba(255,255,255,0.1) !important;
}

.border-bottom-02
{
    border-bottom: 1px solid rgba(255,255,255,0.2) !important;
}

.border-left-dark-01
{
    border-left: 1px solid rgba(0,0,0,0.1) !important;
}
.border-left-dark-02
{
    border-left: 1px solid rgba(0,0,0,0.2) !important;
}
.border-left-dark-03
{
    border-left: 1px solid rgba(0,0,0,0.3) !important;
}


.border-dark-bottom-01
{
    border-bottom: 1px solid rgba(0,0,0,0.1) !important;
}

.border-dark-bottom-02
{
    border-bottom: 1px solid rgba(0,0,0,0.2) !important;
}

.border-dark-bottom-03
{
    border-bottom: 1px solid rgba(0,0,0,0.3) !important;
}
.border-dark-bottom-04
{
    border-bottom: 1px solid rgba(0,0,0,0.4) !important;
}
.border-dark-bottom-05
{
    border-bottom: 1px solid rgba(0,0,0,0.5) !important;
}


.border-dark-top-02
{
    border-top: 1px solid rgba(0,0,0,0.2) !important;
}

.border-dark-top-025
{
    border-top: 1px solid rgba(0,0,0,0.25) !important;
}

.border-dark-top-03
{
    border-top: 1px solid rgba(0,0,0,0.3) !important;
}
.border-dark-top-04
{
    border-top: 1px solid rgba(0,0,0,0.4) !important;
}
.border-dark-top-05
{
    border-top: 1px solid rgba(0,0,0,0.5) !important;
}

.border-dotted-bottom-01
{
    border-bottom: 1px dotted rgba(255,255,255,0.1) !important;
}

.border-dotted-bottom-02
{
    border-bottom: 1px dotted rgba(255,255,255,0.2) !important;
}

.border-dotted-bottom-03
{
    border-bottom: 1px dotted rgba(255,255,255,0.3) !important;
}
.border-dotted-bottom-04
{
    border-bottom: 1px dotted rgba(255,255,255,0.4) !important;
}
.border-dotted-bottom-05
{
    border-bottom: 1px dotted rgba(255,255,255,0.5) !important;
}

.bg-dark-01
{
    background-color: rgba(0,0,0,0.1) !important;
}
.bg-dark-02
{
    background-color: rgba(0,0,0,0.2) !important;
}

.bg-dark-025
{
    background-color: rgba(0,0,0,0.25) !important;
}

.bg-dark-03
{
    background-color: rgba(0,0,0,0.3) !important;
}
.bg-dark-04
{
    background-color: rgba(0,0,0,0.4) !important;
}
.bg-dark-05
{
    background-color: rgba(0,0,0,0.5) !important;
}
.bg-dark-055
{
    background-color: rgba(0,0,0,0.55) !important;
}
.bg-dark-06
{
    background-color: rgba(0,0,0,0.6) !important;
}
.bg-dark-07
{
    background-color: rgba(0,0,0,0.7) !important;
}

.bg-dark-08
{
    background-color: rgba(0,0,0,0.8) !important;
}

.bg-dark-09
{
    background-color: rgba(0,0,0,0.9) !important;
}

.bg-pink-01
{
    background-color: rgba(223, 75, 72,0.1) !important;
}

.bg-pink-001
{
    background-color: rgba(223, 75, 72,0.01) !important;
}

.bg-pink-002
{
    background-color: rgba(223, 75, 72,0.02) !important;
}

.bg-pink-003
{
    background-color: rgba(223, 75, 72,0.03) !important;
}

.bg-teal-005
{
    background-color: rgba(38, 166, 154,0.05)!important;
}
.bg-teal-007
{
    background-color: rgba(38, 166, 154,0.07)!important;
}

.bg-teal-01
{
    background-color: rgba(38, 166, 154,0.1)!important;
}
.bg-teal-02
{
    background-color: rgba(38, 166, 154,0.2)!important;
}
.bg-teal-03
{
    background-color: rgba(38, 166, 154,0.3)!important;
}

.bg-teal-04
{
    background-color: rgba(38, 166, 154,0.4)!important;
}
.bg-teal-05
{
    background-color: rgba(38, 166, 154,0.5)!important;
}

.bg-teal-06
{
    background-color: rgba(38, 166, 154,0.6)!important;
}

.bg-teal-07
{
    background-color: rgba(38, 166, 154,0.7)!important;
}

.bg-teal-08
{
    background-color: rgba(38, 166, 154,0.8)!important;
}

.bg-teal-09
{
    background-color: rgba(38, 166, 154,0.9)!important;
}

.bg-danger-01
{
    background-color: rgba(223, 75, 72,0.1)!important;
}
.bg-danger-02
{
    background-color: rgba(223, 75, 72,0.2)!important;
}
.bg-danger-03
{
    background-color: rgba(223, 75, 72,0.3)!important;
}

.bg-danger-04
{
    background-color: rgba(223, 75, 72,0.4)!important;
}
.bg-danger-05
{
    background-color: rgba(223, 75, 72,0.5)!important;
}

.bg-danger-06
{
    background-color: rgba(223, 75, 72,0.6)!important;
}
.bg-danger-07
{
    background-color: rgba(223, 75, 72,0.7)!important;
}

.bg-danger-08
{
    background-color: rgba(223, 75, 72,0.8)!important;
}
.bg-danger-09
{
    background-color: rgba(223, 75, 72,0.9)!important;
}

.bg-white-001
{
    background-color: rgba(255,255,255,0.01)!important;
}
.bg-white-002
{
    background-color: rgba(255,255,255,0.02)!important;
}
.bg-white-003
{
    background-color: rgba(255,255,255,0.03)!important;
}
.bg-white-004
{
    background-color: rgba(255,255,255,0.04)!important;
}

.bg-white-005
{
    background-color: rgba(255,255,255,0.05)!important;
}

.bg-white-006
{
    background-color: rgba(255,255,255,0.06)!important;
}
.bg-white-007
{
    background-color: rgba(255,255,255,0.07)!important;
}


.bg-white-01
{
    background-color: rgba(255,255,255,0.1)!important;
}


.bg-hover-white-001:hover
{
    background-color: rgba(255,255,255,0.01)!important;
}
.bg-hover-white-002:hover
{
    background-color: rgba(255,255,255,0.02)!important;
}
.bg-hover-white-003:hover
{
    background-color: rgba(255,255,255,0.03)!important;
}

.bg-hover-white-004:hover
{
    background-color: rgba(255,255,255,0.04)!important;
}   

.bg-hover-white-005:hover
{
    background-color: rgba(255,255,255,0.05)!important;
}

.bg-hover-white-01:hover
{
    background-color: rgba(255,255,255,0.1)!important;
}

.bg-image-none
{
    background-image: none !important;
}

.h-auto
{
    height: auto !important;
}

/* ==========================================================================
   File Upload & Image Preview
   ========================================================================== */

/* Image Preview Container */
.custom-file-set .preview-container {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(70px, 1fr));
    gap: 6px;
    margin-top: 7px;
}

/* Image Wrapper */
.custom-file-set .image-wrapper {
    position: relative;
    padding-bottom: 75.0%; /* 3:2 비율 */
    overflow: hidden;
}

/* Preview Image */
.custom-file-set img.preview-image {  
    object-fit: cover;  
    border-radius: 5px; 
    border: 1px solid #ccc; 
}

.custom-file-set .preview-container img.preview-image {
    width: 100%; 
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
}

/* Placeholder Style */
.custom-file-set .preview-container .placeholder-style {
    border: 1px dashed #ccc;
    border-radius: 5px;
    background-color: #f5f5f5;
    width: 100%; 
    height: 100%;
    position: relative;
    padding-bottom: 75.0%; /* 3:2 비율 */
    overflow: hidden;
}

/* Delete Button */
.custom-file-set .delete-btn {
    position: absolute;
    top: 3px;
    right: 3px;
    background-color: rgba(255, 0, 0, 0.7);
    color: #FFF;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    lin-height: 20px;
    width: 20px; 
    height: 20px;
    text-overflow: clip;
    text-align: center;
}

.custom-file-set .delete-btn .icon-trash { 
    top: -6px; 
    left: -4px; 
}

.custom-file-set .delete-btn .icon-trash:before {  
    font-size: 10px !important; 
}
  
/* ==========================================================================
   Admin Client Panel (floating horizontal toolbar)
   ========================================================================== */

#client-side-menu-wrap {
    position: static;
    width: 0;
    height: 0;
    overflow: visible;
    pointer-events: none;
}

#client-admin-panel {
    position: fixed;
    right: 20px;
    bottom: 60px;
    z-index: 9999;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    background: rgba(15, 17, 26, 0.92);
    border-radius: 10px;
    padding: 5px 8px;
    box-shadow: 0 4px 24px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.07);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    user-select: none;
    pointer-events: all;
}

/* Items container */
.cap-items {
    display: flex;
    align-items: center;
    gap: 2px;
}

/* Drag Handle */
.cap-handle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 34px;
    color: rgba(255,255,255,0.3);
    cursor: grab;
    margin-right: 4px;
    flex-shrink: 0;
    border-radius: 4px;
    transition: color 0.15s, background 0.15s;
}

.cap-handle:hover {
    color: rgba(255,255,255,0.7);
    background: rgba(255,255,255,0.07);
}

.cap-handle:active,
.cap-handle.dragging {
    cursor: grabbing;
    color: #fff;
}

/* Buttons */
.cap-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    color: rgba(255,255,255,0.65);
    border-radius: 6px;
    border: none;
    background: transparent;
    cursor: pointer;
    transition: color 0.15s, background 0.15s;
    text-decoration: none;
    flex-shrink: 0;
    padding: 0;
}

.cap-btn:hover {
    color: #fff;
    background: rgba(255,255,255,0.12);
    text-decoration: none;
}

.cap-btn:active {
    background: rgba(255,255,255,0.18);
}

.cap-btn.cap-btn-active {
    color: #64b5f6;
}

.cap-btn.cap-btn-active:hover {
    color: #90caf9;
}

.cap-btn i {
    font-size: 14px;
    line-height: 1;
    margin: 0 !important;
}

/* Divider */
.cap-divider {
    width: 1px;
    height: 20px;
    background: rgba(255,255,255,0.1);
    margin: 0 4px;
    flex-shrink: 0;
}

/* Dropdown */
.cap-dropdown {
    position: relative;
    display: flex;
    align-items: center;
}

.cap-dropdown-toggle::after {
    display: none;
}

.cap-dropdown-menu {
    display: none;
    position: absolute;
    bottom: calc(100% + 10px);
    left: 50%;
    transform: translateX(-50%);
    background: rgba(15, 17, 26, 0.96);
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.5), 0 0 0 1px rgba(255,255,255,0.08);
    min-width: 140px;
    padding: 4px;
    z-index: 10000;
}

.cap-dropdown-menu::after {
    content: '';
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    border: 5px solid transparent;
    border-top-color: rgba(15, 17, 26, 0.96);
}

.cap-dropdown.open .cap-dropdown-menu {
    display: block;
}

.cap-dropdown-item {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 7px 10px;
    color: rgba(255,255,255,0.7);
    border-radius: 5px;
    text-decoration: none;
    font-size: 12px;
    transition: color 0.12s, background 0.12s;
    white-space: nowrap;
}

.cap-dropdown-item:hover {
    color: #fff;
    background: rgba(255,255,255,0.1);
    text-decoration: none;
}

.cap-dropdown-item i {
    font-size: 12px;
    opacity: 0.7;
}

/* ==========================================================================
   Modal & Overlay
   ========================================================================== */

/* Overlay Block */
.blinder-block {
    position: fixed;
    top: 0; 
    left: 0; 
    right: 0px; 
    bottom: 0px;
    z-index: 1001;
    background: rgba(0,0,0,0.55);
}

/* Modal Body */
#static-modal .modal-body { 
    position: relative; 
}

/* ==========================================================================
   Branding & Logo
   ========================================================================== */

/* Logo Container */
.common-logo { 
    margin-bottom: 20px; 
    margin-top: 15px; 
}

/* Logo Image */
.common-logo img { 
    max-width: 200px; 
}

.fancytree-node {
    display: flex !important;
    align-items: center;

}

.fancytree-expander {
    margin-left: 0px !important;
    margin-right: 0px !important;
    text-align: center !important;
}




div:where(.swal2-icon) .swal2-icon-content {
    font-size:1em !important;
    justify-content: center;
    text-align: center;
    font-family: 'Noto Sans KR', sans-serif !important;
}

.tippy-box[data-theme~='translucent'] {
    background-color: rgba(0, 0, 0, 0.75) !important;  /* 반투명 검정 */
    color: #fff;
    backdrop-filter: blur(4px);               /* 유리 느낌 */
    border-radius: 6px;
    font-size: 14px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  }
  
  .tippy-box[data-theme~='translucent'][data-placement^='top'] > .tippy-arrow::before {
    border-top-color: rgba(0, 0, 0, 0.75);
  }
  .tippy-box[data-theme~='translucent'][data-placement^='bottom'] > .tippy-arrow::before {
    border-bottom-color: rgba(0, 0, 0, 0.75);
  }
  .tippy-box[data-theme~='translucent'][data-placement^='left'] > .tippy-arrow::before {
    border-left-color: rgba(0, 0, 0, 0.75);
  }
  .tippy-box[data-theme~='translucent'][data-placement^='right'] > .tippy-arrow::before {
    border-right-color: rgba(0, 0, 0, 0.75);
  }



  .tippy-box[data-theme~='danger'] {
    background-color: rgba(223, 75, 72, 0.75) !important;  /* 반투명 검정 */
    color: #fff;
    backdrop-filter: blur(4px);               /* 유리 느낌 */
    border-radius: 6px;
    font-size: 14px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  }
  .tippy-box[data-theme~='danger'][data-placement^='top'] > .tippy-arrow::before {
    border-top-color: rgba(223, 75, 72, 0.75);
  }
  .tippy-box[data-theme~='danger'][data-placement^='bottom'] > .tippy-arrow::before {
    border-bottom-color: rgba(223, 75, 72, 0.75);
  }
  .tippy-box[data-theme~='danger'][data-placement^='left'] > .tippy-arrow::before {
    border-left-color: rgba(223, 75, 72, 0.75);
  }
  .tippy-box[data-theme~='danger'][data-placement^='right'] > .tippy-arrow::before {
    border-right-color: rgba(223, 75, 72, 0.75);
  }



  @keyframes rubberBand {
    0% { transform: scale3d(1, 1, 1); }
    30% { transform: scale3d(1.25, 0.75, 1); }
    40% { transform: scale3d(0.75, 1.25, 1); }
    50% { transform: scale3d(1.15, 0.85, 1); }
    65% { transform: scale3d(.95, 1.05, 1); }
    75% { transform: scale3d(1.05, .95, 1); }
    100% { transform: scale3d(1, 1, 1); }
  }
  
  /* tippy 애니메이션 구조 */
  .tippy-box[data-animation='rubberBand'][data-state='visible'] {
    animation: rubberBand 0.8s both;
  }
  
  .tippy-box[data-animation='rubberBand'][data-state='hidden'] {
    animation: none;
  }


  @keyframes tada {
    from { transform: scale3d(1, 1, 1); }
  
    10%, 20% { transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); }
    30%, 50%, 70%, 90% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); }
    40%, 60%, 80% { transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); }
  
    to { transform: scale3d(1, 1, 1); }
  }
  
  /* Tippy의 data-animation 훅에 연결 */
  .tippy-box[data-animation='tada'] {
    transform-origin: center;
  }
  
  .tippy-box[data-animation='tada'][data-state='visible'] {
    animation: tada 0.7s both;
  }


  .ml-15
  {
    margin-left: 15px !important;
  }



.ratio-320-240
{
    aspect-ratio: 320 / 240;
}

.ratio-250-340
{
    aspect-ratio: 250 / 340;
}

.ratio-250-355
{
    aspect-ratio: 250 / 355;
}

.ratio-100-100
{
    aspect-ratio: 100 / 100;
}
.ratio-cover
{
    aspect-ratio: 800 / 533;
}

.img-cover {
    overflow: hidden;
} 

.ladda-button
{
    overflow: hidden;
    position: relative;
}

.btn-ladda[data-style=none][data-loading] .ladda-label
{

}



.btn-ladda[data-style=none][data-loading] .ladda-spinner 
{
    -webkit-transform: none;
    transform: none;
    opacity: 1;
    left:50%;
    transition:.3s ease all;
}

.select2-container {
    transition:none !important;
}
.select2-dropdown 
{
    transition:none !important;
}
.select2-results
{
    transition:none !important;
}
.select2-dropdown
{
    z-index: 5020 !important;
}

.scale-15
{
    scale: 1.5;
}

.scale-16
{
    scale: 1.6;
}

.scale-17
{
    scale: 1.7;
}

.scale-18
{
    scale: 1.8;
}


.scale-105
{
    scale: 1.05;
}
.scale-95
{
    scale: 0.95;
}

.scale-08
{
    scale:0.8;
}
.scale-075
{
    scale:0.75;
}

.scale-07
{
    scale:0.7;
}
.scale-06
{
    scale:0.6;
}
.scale-05
{
    scale:0.5;
}


.w-90
{
    width:90%;
}
.w-95
{
    width:95%;
}

.py-05
{
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
}
.px-15
{
    padding-left: 0.5rem !important;
    padding-right: 0.5rem !important;
}


/* Padding Utilities */
.p-2-5 {
    padding: 15px !important;
}

.pl-2-5, .px-2-5 {
    padding-left: 15px !important;
}
.pr-2-5, .px-2-5 {
    padding-right: 15px !important;
}

.pb-15
{
    padding-bottom: 0.5rem !important;
}

.p-05
{
    padding: 5px !important;
}
.p-06
{
    padding: 6px !important;
}
.p-07
{
    padding: 7px !important;
}

.m-05
{
    margin: 5px !important;
}   

.mr-01
{
    margin-right: 1px !important;
}
.mr-02
{
    margin-right: 2px !important;
}



.mr-03
{
    margin-right: 3px !important;
}
.mr-04
{
    margin-right: 4px !important;
}
.mr-05
{
    margin-right: 5px !important;
}
.mt-01
{
    margin-top: 1px !important;
}

.mt-02
{
    margin-top: 2px !important;
}
.mt-03
{
    margin-top: 3px !important;
}

.mt-04
{
    margin-top: 4px !important;
}
.mt-05
{
    margin-top: 5px !important;
}

.mr-05
{
    margin-right: 5px !important;
}

.mb-01
{
    margin-bottom: 1px !important;
}
.mb-02
{
    margin-bottom: 2px !important;
}
.mb-03
{
    margin-bottom: 3px;
}

.mb-04
{
    margin-bottom: 4px;
}

.mb-05
{
    margin-bottom: 5px;
}

.mr-25{
    margin-right: 15px !important;
}

.mb-2-5{
    margin-bottom: 15px !important;
}

.img-cover img:not(.basic-mask) {
    width: 100%;
    height: 100%;
    object-fit: cover;

}

.lazy-loader {

    justify-content: center;
    position: relative;
    overflow: hidden;
}

.lazy-loader img { 
    visibility: hidden; 
    will-change:opacity;
}

.lazy-loader.lazy-completed img
{
    will-change:auto !important;
}


@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.transform-rotate
{
    animation: spin 1s linear infinite;
}



/* 기본 상태 (입력 안됨) */
.code-cell {
    width: 40px;
    height: 40px;
    text-align: center;
    font-size: 17px;
    font-family: Arial, sans-serif;
    border: 2px solid #444;
    border-radius: 6px;
    margin: 0 2px;
    color: #666;              /* 흐린 글자색 */
    background-color: #222;   /* 어두운 배경 */
    transition: all 0.2s ease;
}

/* 입력 중 (focus) */
.code-cell:focus {
    outline: none;
    border-color: #0d6efd;    /* 진한 파랑 */
    background-color: #1a1f2e;
    color: #eee;              /* 밝은 글자 */
}

/* 입력 완료 (값이 있을 때) */
.code-cell.filled {
    border-color: #198754;    /* 진한 초록 */
    background-color: #1d2b1f;
    color: #fff;              /* 흰색 글자 */
}





div:where(.swal2-icon).swal2-success .swal2-success-fix
{
    display: none !important;
}

div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]
{
    display: none !important;
}

div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]
{
    display: none !important;
}

.swal2-icon.swal2-success [class^=swal2-success-line][class$=tip]
{
    left: 1.05rem !important;
    height:5px !important;
    border-right:none !important;
    border-top:none !important;
}
div:where(.swal2-icon).swal2-success .swal2-success-ring
{
    display: none !important;
    
}

.swal2-popup.swal2-toast
{
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    background-color: rgba(0, 0, 0, 0.75) !important;
}

.no-filter
{
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
}

.blockUI.blockOverlay,.blockUI.blockMsg.blockPage
{
    will-change:opacity;
}


.icon-2x {
    font-size: 2rem !important;
}

.icon-1-2x {
    font-size: 1.2rem !important;
}


.btn-outline-light {
    border-color: #f0f2f5 !important;
}


.pr-25
{
    padding-right: 15px !important;
}

.opacity-20
{
    opacity: 0.2;
}
.opacity-30
{
    opacity: 0.3;
}

.opacity-70
{
    opacity: 0.7;
}


.opacity-02
{
    opacity: 0.2;
}
.opacity-03
{
    opacity: 0.3;
}
.opacity-05
{
    opacity: 0.5;
}
.opacity-07
{
    opacity: 0.7;
}

.top-5
{
    top: 5px !important;
}


.left-5
{
    left: 5px !important;
}


.right-5
{
    right: 5px !important;
}

.right-10
{
    right: 10px !important;
}

.right-15
{
    right: 15px !important;
}

.w-90 
{
    width: 90% !important;
}
.w-92 
{
    width: 92% !important;
}
.w-95
{
    width: 95% !important;
}

.w-97
{
    width: 97% !important;
}


.w-200 {
    width: 200px !important;
}
.w-250 {
    width: 250px !important;
}
.w-300 {
    width: 300px !important;
}
.w-320 {
    width: 320px !important;
}
.w-350 {
    width: 350px !important;
}
.w-380 {
    width: 380px !important;
}
.w-400 {
    width: 400px !important;
}
.w-410 {
    width: 410px !important;
}
.w-420 {
    width: 420px !important;
}
.w-450 {
    width: 450px !important;
}
.w-500 {
    width: 500px !important;
}
.w-550 {
    width: 550px !important;
}
.w-600 {
    width: 600px !important;
}
.w-650 {
    width: 650px !important;
}
.w-700 {
    width: 700px !important;
}
.w-750 {
    width: 750px !important;
}
.w-800 {
    width: 800px !important;
}
.w-850 {
    width: 850px !important;
}
.w-900 {
    width: 900px !important;
}
.w-950 {
    width: 950px !important;
}
.w-980 {
    width: 980px !important;
}
.w-1000 {   
    width: 1000px !important;
}

.scale-05 {
    scale:0.5 !important;
}
.scale-07
{
    scale:0.7 !important;
}
.scale-09
{
    scale:0.9 !important;
}
.scale-10
{
    scale:1.0 !important;
}
.scale-12
{
    scale:1.2 !important;
}
.scale-13
{
    scale:1.3 !important;
}
.scale-15
{
    scale:1.5 !important;
}

.max-h-90
{
    max-height: 90% !important;
}

.max-h-100vh
{
    max-height: 100vh !important;
}


.cursor-text
{
    cursor: text !important;
}

@media (min-width: 576px) {


    .pr-sm-25
    {
        padding-right: 15px !important;
    }
    


    .scale-sm-05 {
        scale:0.5 !important;
    }
    .scale-sm-07
    {
        scale:0.7 !important;
    }
    .scale-sm-09
    {
        scale:0.9 !important;
    }
    .scale-sm-10
    {
        scale:1.0 !important;
    }


    .w-sm-200 {
        width: 200px !important;
    }
    .w-sm-250 {
        width: 250px !important;
    }
    .w-sm-300 {
        width: 300px !important;
    }
    .w-sm-350 {
        width: 350px !important;
    }
    .w-sm-320 {
        width: 320px !important;
    }
    .w-sm-400 {
        width: 400px !important;
    }
    .w-sm-450 {
        width: 450px !important;
    }
    .w-sm-500 {
        width: 500px !important;
    }
    .w-sm-550 {
        width: 550px !important;
    }
    .w-sm-600 {
        width: 600px !important;
    }
    .w-sm-650 {
        width: 650px !important;
    }
    .w-sm-700 {
        width: 700px !important;
    }
    .w-sm-750 {
        width: 750px !important;
    }
    .w-sm-800 {
        width: 800px !important;
    }
    .w-sm-850 {
        width: 850px !important;
    }
    .w-sm-900 {
        width: 900px !important;
    }
    .w-sm-950 {
        width: 950px !important;
    }
    .w-sm-980 {
        width: 980px !important;
    }
    .w-sm-1000 {
        width: 1000px !important;
    }
}



@media (min-width: 768px) {


    .border-md-none {
        border: none !important;
    }


    .pl-md-2-5, .px-md-2-5 {
        padding-left: 15px !important;
    }
    .pr-md-2-5, .px-md-2-5 {
        padding-right: 15px !important;
    }


    .pr-md-25
    {
        padding-right: 15px !important;
    }


    .scale-md-05 {
        scale:0.5 !important;
    }
    .scale-md-07
    {
        scale:0.7 !important;
    }
    .scale-md-09
    {
        scale:0.9 !important;
    }
    .scale-md-10
    {
        scale:1.0 !important;
    }


    .w-md-200 {
        width: 200px !important;
    }
    .w-md-250 {
        width: 250px !important;
    }
    .w-md-300 {
        width: 300px !important;
    }
    .w-md-320 {
        width: 320px !important;
    }
    .w-md-350 {
        width: 350px !important;
    }
    .w-md-400 {
        width: 400px !important;
    }
    .w-md-450 {
        width: 450px !important;
    }
    .w-md-500 {
        width: 500px !important;
    }
    .w-md-550 {
        width: 550px !important;
    }
    .w-md-600 {
        width: 600px !important;
    }
    .w-md-650 {
        width: 650px !important;
    }
    .w-md-700 {
        width: 700px !important;
    }
    .w-md-750 {
        width: 750px !important;
    }
    .w-md-800 {
        width: 800px !important;
    }
    .w-md-850 {
        width: 850px !important;
    }
    .w-md-900 {
        width: 900px !important;
    }
    .w-md-950 {
        width: 950px !important;
    }
    .w-md-980 {
        width: 980px !important;
    }
    .w-md-1000 {
        width: 1000px !important;
    }

    .w-md-auto {
        width: auto !important;
    }
}



@media (min-width: 992px) {

    .pr-lg-25
    {
        padding-right: 15px !important;
    }

    .w-lg-200 {
        width: 200px !important;
    }
    .w-lg-250 {
        width: 250px !important;
    }
    .w-lg-300 {
        width: 300px !important;
    }
    .w-lg-320 {
        width: 320px !important;
    }
    .w-lg-350 {
        width: 350px !important;
    }
    .w-lg-400 {
        width: 400px !important;
    }
    .w-lg-450 {
        width: 450px !important;
    }
    .w-lg-500 {
        width: 500px !important;
    }
    .w-lg-550 {
        width: 550px !important;
    }
    .w-lg-600 {
        width: 600px !important;
    }
    .w-lg-650 {
        width: 650px !important;
    }
    .w-lg-700 {
        width: 700px !important;
    }
    .w-lg-750 {
        width: 750px !important;
    }
    .w-lg-800 {
        width: 800px !important;
    }
    .w-lg-850 {
        width: 850px !important;
    }
    .w-lg-900 {
        width: 900px !important;
    }
    .w-lg-950 {
        width: 950px !important;
    }
    .w-lg-980 {
        width: 980px !important;
    }
    .w-lg-1000 {
        width: 1000px !important;
    }
}


@media (min-width: 1450px) {
    .d-xxl-flex {
        display: -ms-flexbox!important;
        display: flex !important;
    }
}

select.autocomplete
{
    display: none;
}

/* 자식 높이에 따라 늘어나되, 부모 높이의 최대 100%를 넘지 않음.
   한쪽 요소가 숨겨지면 나머지가 100% 높이를 가짐 (flex:1).
   .content-empty: 로그인 전 등 자식이 없을 때 공간을 안 쓰고, 나머지가 100% 사용 (changeLoginState 연동). */
.flex-fill-h
{
    flex: 1; min-height: 0; max-height: 100%;
}
.flex-fill-h:only-child
{
    flex: 1 1 100%;
}
.flex-fill-h.login-element.content-empty
{
    flex: 0 0 0; min-height: 0; overflow: hidden; margin-top: 0;
}


/* 필요하면 스타일에 추가 */
.popup-backdrop {
    position: fixed;
    inset: 0;              /* top:0; right:0; bottom:0; left:0; */
    background: transparent;  /* 또는 rgba(0,0,0,0.1) 정도로 살짝 어둡게 */
    display: none;
}

.tippy-thumb .tippy-content { padding:5px !important; }

.tippy-box[data-animation=scale][data-placement^=top]{transform-origin:bottom}.tippy-box[data-animation=scale][data-placement^=bottom]{transform-origin:top}.tippy-box[data-animation=scale][data-placement^=left]{transform-origin:right}.tippy-box[data-animation=scale][data-placement^=right]{transform-origin:left}.tippy-box[data-animation=scale][data-state=hidden]{transform:scale(.5);opacity:0}




/*******************************
             Flag
*******************************/

i.flag:not(.icon) {
    display: inline-block;
    width: 16px !important;
    height: 11px !important;
    line-height: 11px;
    vertical-align: baseline;
    margin: 0em 0.5em 0em 0em;
    text-decoration: inherit;
    speak: none;
    font-smoothing: antialiased;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
  }
  
  /* Sprite */
  i.flag:not(.icon):before {
    display: inline-block;
    content: '';
    background: url("../image/flags.png") no-repeat -108px -1976px;
    width: 16px !important;
    height: 11px !important;
  }
  
  /* Flag Sprite Based On http://www.famfamfam.com/lab/icons/flags/ */
  
  
  /*******************************
           Theme Overrides
  *******************************/
  
  i.flag.ad:before,
  i.flag.andorra:before {
    background-position: 0px 0px;
  }
  i.flag.ae:before,
  i.flag.united.arab.emirates:before,
  i.flag.uae:before {
    background-position: 0px -26px;
  }
  i.flag.af:before,
  i.flag.afghanistan:before {
    background-position: 0px -52px;
  }
  i.flag.ag:before,
  i.flag.antigua:before {
    background-position: 0px -78px;
  }
  i.flag.ai:before,
  i.flag.anguilla:before {
    background-position: 0px -104px;
  }
  i.flag.al:before,
  i.flag.albania:before {
    background-position: 0px -130px;
  }
  i.flag.am:before,
  i.flag.armenia:before {
    background-position: 0px -156px;
  }
  i.flag.an:before,
  i.flag.netherlands.antilles:before {
    background-position: 0px -182px;
  }
  i.flag.ao:before,
  i.flag.angola:before {
    background-position: 0px -208px;
  }
  i.flag.ar:before,
  i.flag.argentina:before {
    background-position: 0px -234px;
  }
  i.flag.as:before,
  i.flag.american.samoa:before {
    background-position: 0px -260px;
  }
  i.flag.at:before,
  i.flag.austria:before {
    background-position: 0px -286px;
  }
  i.flag.au:before,
  i.flag.australia:before {
    background-position: 0px -312px;
  }
  i.flag.aw:before,
  i.flag.aruba:before {
    background-position: 0px -338px;
  }
  i.flag.ax:before,
  i.flag.aland.islands:before {
    background-position: 0px -364px;
  }
  i.flag.az:before,
  i.flag.azerbaijan:before {
    background-position: 0px -390px;
  }
  i.flag.ba:before,
  i.flag.bosnia:before {
    background-position: 0px -416px;
  }
  i.flag.bb:before,
  i.flag.barbados:before {
    background-position: 0px -442px;
  }
  i.flag.bd:before,
  i.flag.bangladesh:before {
    background-position: 0px -468px;
  }
  i.flag.be:before,
  i.flag.belgium:before {
    background-position: 0px -494px;
  }
  i.flag.bf:before,
  i.flag.burkina.faso:before {
    background-position: 0px -520px;
  }
  i.flag.bg:before,
  i.flag.bulgaria:before {
    background-position: 0px -546px;
  }
  i.flag.bh:before,
  i.flag.bahrain:before {
    background-position: 0px -572px;
  }
  i.flag.bi:before,
  i.flag.burundi:before {
    background-position: 0px -598px;
  }
  i.flag.bj:before,
  i.flag.benin:before {
    background-position: 0px -624px;
  }
  i.flag.bm:before,
  i.flag.bermuda:before {
    background-position: 0px -650px;
  }
  i.flag.bn:before,
  i.flag.brunei:before {
    background-position: 0px -676px;
  }
  i.flag.bo:before,
  i.flag.bolivia:before {
    background-position: 0px -702px;
  }
  i.flag.br:before,
  i.flag.brazil:before {
    background-position: 0px -728px;
  }
  i.flag.bs:before,
  i.flag.bahamas:before {
    background-position: 0px -754px;
  }
  i.flag.bt:before,
  i.flag.bhutan:before {
    background-position: 0px -780px;
  }
  i.flag.bv:before,
  i.flag.bouvet.island:before {
    background-position: 0px -806px;
  }
  i.flag.bw:before,
  i.flag.botswana:before {
    background-position: 0px -832px;
  }
  i.flag.by:before,
  i.flag.belarus:before {
    background-position: 0px -858px;
  }
  i.flag.bz:before,
  i.flag.belize:before {
    background-position: 0px -884px;
  }
  i.flag.ca:before,
  i.flag.canada:before {
    background-position: 0px -910px;
  }
  i.flag.cc:before,
  i.flag.cocos.islands:before {
    background-position: 0px -962px;
  }
  i.flag.cd:before,
  i.flag.congo:before {
    background-position: 0px -988px;
  }
  i.flag.cf:before,
  i.flag.central.african.republic:before {
    background-position: 0px -1014px;
  }
  i.flag.cg:before,
  i.flag.congo.brazzaville:before {
    background-position: 0px -1040px;
  }
  i.flag.ch:before,
  i.flag.switzerland:before {
    background-position: 0px -1066px;
  }
  i.flag.ci:before,
  i.flag.cote.divoire:before {
    background-position: 0px -1092px;
  }
  i.flag.ck:before,
  i.flag.cook.islands:before {
    background-position: 0px -1118px;
  }
  i.flag.cl:before,
  i.flag.chile:before {
    background-position: 0px -1144px;
  }
  i.flag.cm:before,
  i.flag.cameroon:before {
    background-position: 0px -1170px;
  }
  i.flag.cn:before,
  i.flag.china:before {
    background-position: 0px -1196px;
  }
  i.flag.co:before,
  i.flag.colombia:before {
    background-position: 0px -1222px;
  }
  i.flag.cr:before,
  i.flag.costa.rica:before {
    background-position: 0px -1248px;
  }
  i.flag.cs:before,
  i.flag.serbia:before {
    background-position: 0px -1274px;
  }
  i.flag.cu:before,
  i.flag.cuba:before {
    background-position: 0px -1300px;
  }
  i.flag.cv:before,
  i.flag.cape.verde:before {
    background-position: 0px -1326px;
  }
  i.flag.cx:before,
  i.flag.christmas.island:before {
    background-position: 0px -1352px;
  }
  i.flag.cy:before,
  i.flag.cyprus:before {
    background-position: 0px -1378px;
  }
  i.flag.cz:before,
  i.flag.czech.republic:before {
    background-position: 0px -1404px;
  }
  i.flag.de:before,
  i.flag.germany:before {
    background-position: 0px -1430px;
  }
  i.flag.dj:before,
  i.flag.djibouti:before {
    background-position: 0px -1456px;
  }
  i.flag.dk:before,
  i.flag.denmark:before {
    background-position: 0px -1482px;
  }
  i.flag.dm:before,
  i.flag.dominica:before {
    background-position: 0px -1508px;
  }
  i.flag.do:before,
  i.flag.dominican.republic:before {
    background-position: 0px -1534px;
  }
  i.flag.dz:before,
  i.flag.algeria:before {
    background-position: 0px -1560px;
  }
  i.flag.ec:before,
  i.flag.ecuador:before {
    background-position: 0px -1586px;
  }
  i.flag.ee:before,
  i.flag.estonia:before {
    background-position: 0px -1612px;
  }
  i.flag.eg:before,
  i.flag.egypt:before {
    background-position: 0px -1638px;
  }
  i.flag.eh:before,
  i.flag.western.sahara:before {
    background-position: 0px -1664px;
  }
  i.flag.gb.eng:before,
  i.flag.england:before {
    background-position: 0px -1690px;
  }
  i.flag.er:before,
  i.flag.eritrea:before {
    background-position: 0px -1716px;
  }
  i.flag.es:before,
  i.flag.spain:before {
    background-position: 0px -1742px;
  }
  i.flag.et:before,
  i.flag.ethiopia:before {
    background-position: 0px -1768px;
  }
  i.flag.eu:before,
  i.flag.european.union:before {
    background-position: 0px -1794px;
  }
  i.flag.fi:before,
  i.flag.finland:before {
    background-position: 0px -1846px;
  }
  i.flag.fj:before,
  i.flag.fiji:before {
    background-position: 0px -1872px;
  }
  i.flag.fk:before,
  i.flag.falkland.islands:before {
    background-position: 0px -1898px;
  }
  i.flag.fm:before,
  i.flag.micronesia:before {
    background-position: 0px -1924px;
  }
  i.flag.fo:before,
  i.flag.faroe.islands:before {
    background-position: 0px -1950px;
  }
  i.flag.fr:before,
  i.flag.france:before {
    background-position: 0px -1976px;
  }
  i.flag.ga:before,
  i.flag.gabon:before {
    background-position: -36px 0px;
  }
  i.flag.gb:before,
  i.flag.uk:before,
  i.flag.united.kingdom:before {
    background-position: -36px -26px;
  }
  i.flag.gd:before,
  i.flag.grenada:before {
    background-position: -36px -52px;
  }
  i.flag.ge:before,
  i.flag.georgia:before {
    background-position: -36px -78px;
  }
  i.flag.gf:before,
  i.flag.french.guiana:before {
    background-position: -36px -104px;
  }
  i.flag.gh:before,
  i.flag.ghana:before {
    background-position: -36px -130px;
  }
  i.flag.gi:before,
  i.flag.gibraltar:before {
    background-position: -36px -156px;
  }
  i.flag.gl:before,
  i.flag.greenland:before {
    background-position: -36px -182px;
  }
  i.flag.gm:before,
  i.flag.gambia:before {
    background-position: -36px -208px;
  }
  i.flag.gn:before,
  i.flag.guinea:before {
    background-position: -36px -234px;
  }
  i.flag.gp:before,
  i.flag.guadeloupe:before {
    background-position: -36px -260px;
  }
  i.flag.gq:before,
  i.flag.equatorial.guinea:before {
    background-position: -36px -286px;
  }
  i.flag.gr:before,
  i.flag.greece:before {
    background-position: -36px -312px;
  }
  i.flag.gs:before,
  i.flag.sandwich.islands:before {
    background-position: -36px -338px;
  }
  i.flag.gt:before,
  i.flag.guatemala:before {
    background-position: -36px -364px;
  }
  i.flag.gu:before,
  i.flag.guam:before {
    background-position: -36px -390px;
  }
  i.flag.gw:before,
  i.flag.guinea-bissau:before {
    background-position: -36px -416px;
  }
  i.flag.gy:before,
  i.flag.guyana:before {
    background-position: -36px -442px;
  }
  i.flag.hk:before,
  i.flag.hong.kong:before {
    background-position: -36px -468px;
  }
  i.flag.hm:before,
  i.flag.heard.island:before {
    background-position: -36px -494px;
  }
  i.flag.hn:before,
  i.flag.honduras:before {
    background-position: -36px -520px;
  }
  i.flag.hr:before,
  i.flag.croatia:before {
    background-position: -36px -546px;
  }
  i.flag.ht:before,
  i.flag.haiti:before {
    background-position: -36px -572px;
  }
  i.flag.hu:before,
  i.flag.hungary:before {
    background-position: -36px -598px;
  }
  i.flag.id:before,
  i.flag.indonesia:before {
    background-position: -36px -624px;
  }
  i.flag.ie:before,
  i.flag.ireland:before {
    background-position: -36px -650px;
  }
  i.flag.il:before,
  i.flag.israel:before {
    background-position: -36px -676px;
  }
  i.flag.in:before,
  i.flag.india:before {
    background-position: -36px -702px;
  }
  i.flag.io:before,
  i.flag.indian.ocean.territory:before {
    background-position: -36px -728px;
  }
  i.flag.iq:before,
  i.flag.iraq:before {
    background-position: -36px -754px;
  }
  i.flag.ir:before,
  i.flag.iran:before {
    background-position: -36px -780px;
  }
  i.flag.is:before,
  i.flag.iceland:before {
    background-position: -36px -806px;
  }
  i.flag.it:before,
  i.flag.italy:before {
    background-position: -36px -832px;
  }
  i.flag.jm:before,
  i.flag.jamaica:before {
    background-position: -36px -858px;
  }
  i.flag.jo:before,
  i.flag.jordan:before {
    background-position: -36px -884px;
  }
  i.flag.jp:before,
  i.flag.japan:before {
    background-position: -36px -910px;
  }
  i.flag.ke:before,
  i.flag.kenya:before {
    background-position: -36px -936px;
  }
  i.flag.kg:before,
  i.flag.kyrgyzstan:before {
    background-position: -36px -962px;
  }
  i.flag.kh:before,
  i.flag.cambodia:before {
    background-position: -36px -988px;
  }
  i.flag.ki:before,
  i.flag.kiribati:before {
    background-position: -36px -1014px;
  }
  i.flag.km:before,
  i.flag.comoros:before {
    background-position: -36px -1040px;
  }
  i.flag.kn:before,
  i.flag.saint.kitts.and.nevis:before {
    background-position: -36px -1066px;
  }
  i.flag.kp:before,
  i.flag.north.korea:before {
    background-position: -36px -1092px;
  }
  i.flag.kr:before,
  i.flag.south.korea:before {
    background-position: -36px -1118px;
  }
  i.flag.kw:before,
  i.flag.kuwait:before {
    background-position: -36px -1144px;
  }
  i.flag.ky:before,
  i.flag.cayman.islands:before {
    background-position: -36px -1170px;
  }
  i.flag.kz:before,
  i.flag.kazakhstan:before {
    background-position: -36px -1196px;
  }
  i.flag.la:before,
  i.flag.laos:before {
    background-position: -36px -1222px;
  }
  i.flag.lb:before,
  i.flag.lebanon:before {
    background-position: -36px -1248px;
  }
  i.flag.lc:before,
  i.flag.saint.lucia:before {
    background-position: -36px -1274px;
  }
  i.flag.li:before,
  i.flag.liechtenstein:before {
    background-position: -36px -1300px;
  }
  i.flag.lk:before,
  i.flag.sri.lanka:before {
    background-position: -36px -1326px;
  }
  i.flag.lr:before,
  i.flag.liberia:before {
    background-position: -36px -1352px;
  }
  i.flag.ls:before,
  i.flag.lesotho:before {
    background-position: -36px -1378px;
  }
  i.flag.lt:before,
  i.flag.lithuania:before {
    background-position: -36px -1404px;
  }
  i.flag.lu:before,
  i.flag.luxembourg:before {
    background-position: -36px -1430px;
  }
  i.flag.lv:before,
  i.flag.latvia:before {
    background-position: -36px -1456px;
  }
  i.flag.ly:before,
  i.flag.libya:before {
    background-position: -36px -1482px;
  }
  i.flag.ma:before,
  i.flag.morocco:before {
    background-position: -36px -1508px;
  }
  i.flag.mc:before,
  i.flag.monaco:before {
    background-position: -36px -1534px;
  }
  i.flag.md:before,
  i.flag.moldova:before {
    background-position: -36px -1560px;
  }
  i.flag.me:before,
  i.flag.montenegro:before {
    background-position: -36px -1586px;
  }
  i.flag.mg:before,
  i.flag.madagascar:before {
    background-position: -36px -1613px;
  }
  i.flag.mh:before,
  i.flag.marshall.islands:before {
    background-position: -36px -1639px;
  }
  i.flag.mk:before,
  i.flag.macedonia:before {
    background-position: -36px -1665px;
  }
  i.flag.ml:before,
  i.flag.mali:before {
    background-position: -36px -1691px;
  }
  i.flag.mm:before,
  i.flag.myanmar:before,
  i.flag.burma:before {
    background-position: -73px -1821px;
  }
  i.flag.mn:before,
  i.flag.mongolia:before {
    background-position: -36px -1743px;
  }
  i.flag.mo:before,
  i.flag.macau:before {
    background-position: -36px -1769px;
  }
  i.flag.mp:before,
  i.flag.northern.mariana.islands:before {
    background-position: -36px -1795px;
  }
  i.flag.mq:before,
  i.flag.martinique:before {
    background-position: -36px -1821px;
  }
  i.flag.mr:before,
  i.flag.mauritania:before {
    background-position: -36px -1847px;
  }
  i.flag.ms:before,
  i.flag.montserrat:before {
    background-position: -36px -1873px;
  }
  i.flag.mt:before,
  i.flag.malta:before {
    background-position: -36px -1899px;
  }
  i.flag.mu:before,
  i.flag.mauritius:before {
    background-position: -36px -1925px;
  }
  i.flag.mv:before,
  i.flag.maldives:before {
    background-position: -36px -1951px;
  }
  i.flag.mw:before,
  i.flag.malawi:before {
    background-position: -36px -1977px;
  }
  i.flag.mx:before,
  i.flag.mexico:before {
    background-position: -72px 0px;
  }
  i.flag.my:before,
  i.flag.malaysia:before {
    background-position: -72px -26px;
  }
  i.flag.mz:before,
  i.flag.mozambique:before {
    background-position: -72px -52px;
  }
  i.flag.na:before,
  i.flag.namibia:before {
    background-position: -72px -78px;
  }
  i.flag.nc:before,
  i.flag.new.caledonia:before {
    background-position: -72px -104px;
  }
  i.flag.ne:before,
  i.flag.niger:before {
    background-position: -72px -130px;
  }
  i.flag.nf:before,
  i.flag.norfolk.island:before {
    background-position: -72px -156px;
  }
  i.flag.ng:before,
  i.flag.nigeria:before {
    background-position: -72px -182px;
  }
  i.flag.ni:before,
  i.flag.nicaragua:before {
    background-position: -72px -208px;
  }
  i.flag.nl:before,
  i.flag.netherlands:before {
    background-position: -72px -234px;
  }
  i.flag.no:before,
  i.flag.norway:before {
    background-position: -72px -260px;
  }
  i.flag.np:before,
  i.flag.nepal:before {
    background-position: -72px -286px;
  }
  i.flag.nr:before,
  i.flag.nauru:before {
    background-position: -72px -312px;
  }
  i.flag.nu:before,
  i.flag.niue:before {
    background-position: -72px -338px;
  }
  i.flag.nz:before,
  i.flag.new.zealand:before {
    background-position: -72px -364px;
  }
  i.flag.om:before,
  i.flag.oman:before {
    background-position: -72px -390px;
  }
  i.flag.pa:before,
  i.flag.panama:before {
    background-position: -72px -416px;
  }
  i.flag.pe:before,
  i.flag.peru:before {
    background-position: -72px -442px;
  }
  i.flag.pf:before,
  i.flag.french.polynesia:before {
    background-position: -72px -468px;
  }
  i.flag.pg:before,
  i.flag.new.guinea:before {
    background-position: -72px -494px;
  }
  i.flag.ph:before,
  i.flag.philippines:before {
    background-position: -72px -520px;
  }
  i.flag.pk:before,
  i.flag.pakistan:before {
    background-position: -72px -546px;
  }
  i.flag.pl:before,
  i.flag.poland:before {
    background-position: -72px -572px;
  }
  i.flag.pm:before,
  i.flag.saint.pierre:before {
    background-position: -72px -598px;
  }
  i.flag.pn:before,
  i.flag.pitcairn.islands:before {
    background-position: -72px -624px;
  }
  i.flag.pr:before,
  i.flag.puerto.rico:before {
    background-position: -72px -650px;
  }
  i.flag.ps:before,
  i.flag.palestine:before {
    background-position: -72px -676px;
  }
  i.flag.pt:before,
  i.flag.portugal:before {
    background-position: -72px -702px;
  }
  i.flag.pw:before,
  i.flag.palau:before {
    background-position: -72px -728px;
  }
  i.flag.py:before,
  i.flag.paraguay:before {
    background-position: -72px -754px;
  }
  i.flag.qa:before,
  i.flag.qatar:before {
    background-position: -72px -780px;
  }
  i.flag.re:before,
  i.flag.reunion:before {
    background-position: -72px -806px;
  }
  i.flag.ro:before,
  i.flag.romania:before {
    background-position: -72px -832px;
  }
  i.flag.rs:before,
  i.flag.serbia:before {
    background-position: -72px -858px;
  }
  i.flag.ru:before,
  i.flag.russia:before {
    background-position: -72px -884px;
  }
  i.flag.rw:before,
  i.flag.rwanda:before {
    background-position: -72px -910px;
  }
  i.flag.sa:before,
  i.flag.saudi.arabia:before {
    background-position: -72px -936px;
  }
  i.flag.sb:before,
  i.flag.solomon.islands:before {
    background-position: -72px -962px;
  }
  i.flag.sc:before,
  i.flag.seychelles:before {
    background-position: -72px -988px;
  }
  i.flag.gb.sct:before,
  i.flag.scotland:before {
    background-position: -72px -1014px;
  }
  i.flag.sd:before,
  i.flag.sudan:before {
    background-position: -72px -1040px;
  }
  i.flag.se:before,
  i.flag.sweden:before {
    background-position: -72px -1066px;
  }
  i.flag.sg:before,
  i.flag.singapore:before {
    background-position: -72px -1092px;
  }
  i.flag.sh:before,
  i.flag.saint.helena:before {
    background-position: -72px -1118px;
  }
  i.flag.si:before,
  i.flag.slovenia:before {
    background-position: -72px -1144px;
  }
  i.flag.sj:before,
  i.flag.svalbard:before,
  i.flag.jan.mayen:before {
    background-position: -72px -1170px;
  }
  i.flag.sk:before,
  i.flag.slovakia:before {
    background-position: -72px -1196px;
  }
  i.flag.sl:before,
  i.flag.sierra.leone:before {
    background-position: -72px -1222px;
  }
  i.flag.sm:before,
  i.flag.san.marino:before {
    background-position: -72px -1248px;
  }
  i.flag.sn:before,
  i.flag.senegal:before {
    background-position: -72px -1274px;
  }
  i.flag.so:before,
  i.flag.somalia:before {
    background-position: -72px -1300px;
  }
  i.flag.sr:before,
  i.flag.suriname:before {
    background-position: -72px -1326px;
  }
  i.flag.st:before,
  i.flag.sao.tome:before {
    background-position: -72px -1352px;
  }
  i.flag.sv:before,
  i.flag.el.salvador:before {
    background-position: -72px -1378px;
  }
  i.flag.sy:before,
  i.flag.syria:before {
    background-position: -72px -1404px;
  }
  i.flag.sz:before,
  i.flag.swaziland:before {
    background-position: -72px -1430px;
  }
  i.flag.tc:before,
  i.flag.caicos.islands:before {
    background-position: -72px -1456px;
  }
  i.flag.td:before,
  i.flag.chad:before {
    background-position: -72px -1482px;
  }
  i.flag.tf:before,
  i.flag.french.territories:before {
    background-position: -72px -1508px;
  }
  i.flag.tg:before,
  i.flag.togo:before {
    background-position: -72px -1534px;
  }
  i.flag.th:before,
  i.flag.thailand:before {
    background-position: -72px -1560px;
  }
  i.flag.tj:before,
  i.flag.tajikistan:before {
    background-position: -72px -1586px;
  }
  i.flag.tk:before,
  i.flag.tokelau:before {
    background-position: -72px -1612px;
  }
  i.flag.tl:before,
  i.flag.timorleste:before {
    background-position: -72px -1638px;
  }
  i.flag.tm:before,
  i.flag.turkmenistan:before {
    background-position: -72px -1664px;
  }
  i.flag.tn:before,
  i.flag.tunisia:before {
    background-position: -72px -1690px;
  }
  i.flag.to:before,
  i.flag.tonga:before {
    background-position: -72px -1716px;
  }
  i.flag.tr:before,
  i.flag.turkey:before {
    background-position: -72px -1742px;
  }
  i.flag.tt:before,
  i.flag.trinidad:before {
    background-position: -72px -1768px;
  }
  i.flag.tv:before,
  i.flag.tuvalu:before {
    background-position: -72px -1794px;
  }
  i.flag.tw:before,
  i.flag.taiwan:before {
    background-position: -72px -1820px;
  }
  i.flag.tz:before,
  i.flag.tanzania:before {
    background-position: -72px -1846px;
  }
  i.flag.ua:before,
  i.flag.ukraine:before {
    background-position: -72px -1872px;
  }
  i.flag.ug:before,
  i.flag.uganda:before {
    background-position: -72px -1898px;
  }
  i.flag.um:before,
  i.flag.us.minor.islands:before {
    background-position: -72px -1924px;
  }
  i.flag.us:before,
  i.flag.america:before,
  i.flag.united.states:before {
    background-position: -72px -1950px;
  }
  i.flag.uy:before,
  i.flag.uruguay:before {
    background-position: -72px -1976px;
  }
  i.flag.uz:before,
  i.flag.uzbekistan:before {
    background-position: -108px 0px;
  }
  i.flag.va:before,
  i.flag.vatican.city:before {
    background-position: -108px -26px;
  }
  i.flag.vc:before,
  i.flag.saint.vincent:before {
    background-position: -108px -52px;
  }
  i.flag.ve:before,
  i.flag.venezuela:before {
    background-position: -108px -78px;
  }
  i.flag.vg:before,
  i.flag.british.virgin.islands:before {
    background-position: -108px -104px;
  }
  i.flag.vi:before,
  i.flag.us.virgin.islands:before {
    background-position: -108px -130px;
  }
  i.flag.vn:before,
  i.flag.vietnam:before {
    background-position: -108px -156px;
  }
  i.flag.vu:before,
  i.flag.vanuatu:before {
    background-position: -108px -182px;
  }
  i.flag.gb.wls:before,
  i.flag.wales:before {
    background-position: -108px -208px;
  }
  i.flag.wf:before,
  i.flag.wallis.and.futuna:before {
    background-position: -108px -234px;
  }
  i.flag.ws:before,
  i.flag.samoa:before {
    background-position: -108px -260px;
  }
  i.flag.ye:before,
  i.flag.yemen:before {
    background-position: -108px -286px;
  }
  i.flag.yt:before,
  i.flag.mayotte:before {
    background-position: -108px -312px;
  }
  i.flag.za:before,
  i.flag.south.africa:before {
    background-position: -108px -338px;
  }
  i.flag.zm:before,
  i.flag.zambia:before {
    background-position: -108px -364px;
  }
  i.flag.zw:before,
  i.flag.zimbabwe:before {
    background-position: -108px -390px;
  }
  
  
  /*******************************
           Site Overrides
  *******************************/
  