@charset "utf-8";

/* font */

@font-face {
    font-family: Roboto;
    font-style: normal;
    font-weight: 400;
    src: url(../resrc/fonts/Roboto/Roboto-Regular.ttf) format("truetype");
}

@font-face {
    font-family: Roboto;
    font-style: normal;
    font-weight: 700;
    src: url(../resrc/fonts/Roboto/Roboto-Bold.ttf) format("truetype");
}

@font-face {
    font-family: RobotoCondensed;
    font-style: normal;
    font-weight: 400;
    src: url(../resrc/fonts/Roboto_Condensed/RobotoCondensed-Regular.ttf) format("truetype");
}

@font-face {
    font-family: RobotoCondensed;
    font-style: normal;
    font-weight: 700;
    src: url(../resrc/fonts/Roboto_Condensed/RobotoCondensed-Bold.ttf) format("truetype");
}

@font-face {
    font-family: Raleway;
    font-style: normal;
    font-weight: 700;
    src: url(../resrc/fonts/Raleway/Raleway-Bold.ttf) format("truetype");
}

@font-face {
    font-family: Lato;
    font-style: italic;
    font-weight: 900;
    src: url(../resrc/fonts/Lato/Lato-BlackItalic.ttf) format("truetype");
}

body {
    font-family: Roboto, -apple-system, BlinkMacSystemFont, "Segoe UI", Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    height: 100%;
}

body {
    overflow: hidden;
}

.navbar-brand {
    display: flex;
    align-items: center;
    font-family: Raleway;
    font-weight: bold;
    font-size: 24px;
}

.navbar-brand::after {
    content: "IPSUM";
    display: inline-block;
    font-size: 12px;
    font-weight: bold;
    border: 1px solid white;
    border-radius: 10px;
    margin-left: 8px;
    padding: 0 8px;
    height: 20px;
}

#bg {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: -100;
    background: linear-gradient(to bottom, #303f9f, #001970);
}

main {
    position: fixed;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    overflow: auto;
}

p {
    margin-bottom: 0;
}

hr {
    margin: 0;
}

input,
button,
[type=button],
[type=reset],
[type=submit],
[type=text],
[type="radio"],
[type="checkbox"] {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    outline: none !important;
    background: transparent;
    border: none;
    border-radius: 0;
}

.vhr {
    display: inline-block;
    width: 1px;
    min-height: 25px;
    vertical-align: middle;
    background-color: white;
}

.footer {
    font-size: 12px;
    color: rgba(255, 255, 255, 0.5);
    text-align: center;
}

.nav-item.active {
    font-weight: bold;
}

.navbar-toggler {
    border: none;
}

.dropdown-menu {
    border: none;
    box-shadow: 0 8px 16px 0 rgba(0, 0, 0, .3);
    font-size: 14px;
    position: relative;
}

.dropdown-toggle .tooltip-span {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.dropdown-item {
    padding: 12px 14px;
    transition: all .1s;
}

.dropdown-item:active {
    color: #212529;
    background-color: rgba(0, 0, 0, .15);
}

/* layout */

main {
    padding: 0 15px;
}

.navbar {
    margin: 12px 0;
}

#status_bar {
    margin: 12px 15px;
}

#status_bar>p {
    opacity: 0;
    transition: opacity .2s;
}

.footer {
    margin: 12px 0 80px 0;
}

.container-fluid,
.row,
[class|="col"] {
    margin: 0;
    padding: 0;
}

[class|="col"] {
    display: flex;
    flex-direction: column;
}

.row {
    height: 100%;
}

.card {
    margin: 20px 0;
    height: 100%;
}

.card-nested {
    margin-bottom: 0;
}

.card-header {
    margin: 0 15px;
    padding: 0 4px;
    height: 36px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}

.card-body {
    margin: 12px 15px;
    padding: 0;
    min-height: 48px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.dropdown,
.btn-group {
    margin-left: 4px;
}

/* card */

.card>.container-fluid {
    position: relative;
}

.card>.container-fluid::before {
    content: "";
    z-index: -100;
    position: absolute;
    top: 36px;
    right: 39px;
    bottom: 36px;
    left: 39px;
    background-color: rgba(142, 153, 243, .3);
}

.card>.container-fluid .container-fluid::before {
    background-color: transparent;
}

.card {
    background: none;
    border: none;
    border-radius: 24px;
    color: white;
}

.card-header {
    background: none;
    border: none;
}

.card.red .card-body {
    border: 6px solid #e57373;
}

.card.green .card-body {
    border: 6px solid #4db6ac;
}

.card.red .card-title::after {
    content: "";
    display: inline-block;
    width: 12px;
    height: 12px;
    margin-bottom: 10px;
    margin-left: 6px;
    border-radius: 50%;
    background-color: #ef5350;
}

.card.green .card-title::after {
    content: "";
    display: inline-block;
    width: 12px;
    height: 12px;
    margin-bottom: 10px;
    margin-left: 6px;
    border-radius: 50%;
    background-color: #26a69a;
}

.card-title {
    font-family: Raleway;
    font-style: normal;
    font-weight: bold;
    font-size: 24px;
    margin: 0;
    padding: 0 8px;
}

.card-nested .card-header {
    justify-content: center;
}

.card-nested .card-title {
    font-size: 20px;
}

.card-body {
    background-color: rgb(255, 255, 255);
    border: none;
    border-radius: 24px;
    color: rgb(52, 58, 64);
    box-shadow: 0 8px 16px 0 rgba(0, 0, 0, .3);
}

.card-body.dark {
    background-color: #263238;
    border: 2px solid #5c6bc0;
}

/* status bar */

#status_bar {
    background-color: rgba(0, 0, 0, .2);
    border-radius: 16px;
    height: 32px;
    color: white;
    font-size: 12px;
    text-align: center;
}

#status_bar>* {
    vertical-align: middle;
    display: inline-block;
    margin: 0;
    padding: 0;
}

#status_bar::before {
    content: "";
    display: inline-block;
    height: 100%;
    vertical-align: middle;
}

/* list */

.list-group-item {
    background: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 24px;
    height: 76px;
}

.list-group-item>div:first-child {
    flex: 0 1 auto;
}

.list-group-item>div:last-child {
    flex: 1 1 auto;
    text-align: right;
}

p.title {
    font-size: 16px;
}

p.description {
    color: #6c757d;
    font-size: 12px;
}

.card-article-menu {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 24px;
    height: 76px;
}

p.card-article-title {
    font-size: 18px;
    color: rgb(57, 73, 171);
}

.card-article {
    padding: 16px 24px;
    min-height: 76px;
}

/* table */

.table {
    font-family: RobotoCondensed;
    margin-bottom: 0;
}

.table-sm {
    font-size: 13px;
    text-align: center;
}

.table-sm thead th,
.table-sm tbody td {
    padding: 8px;
    height: 46px;
    max-height: 46px;
    vertical-align: middle;
    border: none;
}

.table>thead {
    color: #6c757d;
}

.table>tbody>tr:nth-of-type(odd):hover {
    background-color: rgba(0, 0, 0, .125);
}

.table>tbody>tr:nth-of-type(even):hover {
    background-color: rgba(0, 0, 0, .10);
}

.table>tbody>tr:nth-of-type(odd).focus {
    background-color: rgba(0, 0, 0, .175);
}

.table>tbody>tr:nth-of-type(even).focus {
    background-color: rgba(0, 0, 0, .125);
}

.table-container {
    max-height: 400px;
    /* 원래는 height */
    align-self: flex-start;
    /**/
    overflow: auto;
    background: #b0bec5;
    border-top: 1px solid #b0bec5;
    border-bottom: 1px solid #b0bec5;
    display: flex;
    position: relative;
}

.table-container::before {
    content: "";
    position: absolute;
    display: block;
    background-color: white;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: 4px;
}

.table-container>table {
    clip-path: inset(4px);
    overflow: auto;
    background-color: white;
}

.card-body>.data-container:only-child>.table-container {
    background-color: #9fa8da;
}

.card-body>.data-container:last-child>.table-container {
    border-bottom-left-radius: 24px;
    border-bottom-right-radius: 24px;
    border-bottom: none;
}

.card-body>.data-container:first-child>.table-container {
    border-top-left-radius: 24px;
    border-top-right-radius: 24px;
    border-top: none;
}

.card-body>.data-container:last-child>.table-container::before {
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
}

.card-body>.data-container:first-child>.table-container::before {
    border-top-left-radius: 20px;
    border-top-right-radius: 20px;
}

.card-body>.data-container:last-child>.table-container>table {
    clip-path: inset(4px round 0 0 20px 20px);
}

.card-body>.data-container:first-child>.table-container>table {
    clip-path: inset(4px round 20px 20px 0 0);
}

.card-body>.data-container:only-child>.table-container>table {
    clip-path: inset(4px round 20px);
}

/* text field */

input[type="text"] {
    background-color: rgb(245, 245, 245);
    border-bottom: 1px solid rgba(0, 0, 0, .3);
    border-top-left-radius: 4px;
    border-top-right-radius: 4px;
    padding: 8px 14px;
    font-size: 14px;
    transition: all .1s;
}

table input[type="text"] {
    padding: 4px 14px;
}

input[type="text"].purple {
    border-color: rgb(57, 73, 171);
}

input[type="text"]:hover {
    background-color: rgb(235, 235, 235);
}

input[type="text"]:focus {
    background-color: rgb(220, 220, 220);
}

input[type="text"].outlined {
    background-color: transparent;
    border: 1px solid rgba(0, 0, 0, .2);
    border-radius: 19px;
}

input[type="text"].outlined:hover {
    border-color: rgba(0, 0, 0, .4);
}

input[type="text"].outlined:focus {
    border-color: rgba(0, 0, 0, .6);
}

input[type="text"].outlined.purple:focus {
    border-color: rgb(57, 73, 171);
}

.text-field {
    width: 320px;
}

.text-field-sm {
    width: 80px;
}

/* input (radio, checkbox) */

.form-check {
    margin-left: 8px;
    margin-right: 8px;
}

.form-check-input[type="radio"],
.form-check-input[type="checkbox"] {
    width: 20px;
    height: 20px;
    /*margin: 0;*/
    background-size: cover;
    position: relative;
}

.form-check-input[type="radio"] {
    background-image: url("../resrc/icons/radio_button_unchecked.svg");
}

.form-check-input[type="radio"]:checked {
    background-image: url("../resrc/icons/radio_button_checked.svg");
}

.form-check-input[type="checkbox"] {
    background-image: url("../resrc/icons/check_box_outline_blank.svg");
}

.form-check-input[type="checkbox"]:checked {
    background-image: url("../resrc/icons/check_box.svg");
}

.form-check-input[type="checkbox"]:indeterminate {
    background-image: url("../resrc/icons/indeterminate_check_box.svg");
}

/* button */

button:focus {
    outline: none;
}

.btn:focus,
.btn:active:focus,
.btn.active:focus,
.btn.focus,
.btn:active.focus,
.btn.active.focus {
    outline: none;
    box-shadow: none;
}

.btn {
    font-weight: bold;
    border-radius: 18px;
    padding: 6px 16px;
}

.btn-sm {
    border-radius: 16px;
    padding: 4px 12px;
}

.btn-lg {
    border-radius: 24px;
    padding: 8px 24px;
}

.btn.purple {
    background: rgb(57, 73, 171);
    border: none;
    color: white;
}

.btn[class*="text"] {
    background: none;
    border: none;
}

.btn[class*="outline"] {
    background: none;
    border-width: 1px;
    border-style: solid;
}

.btn.purple-text,
.btn.purple-outline {
    color: rgb(57, 73, 171);
}

.btn.purple-outline {
    border-color: #5c6bc0;
}

.btn.white-outline {
    border-color: rgb(248, 249, 250);
    color: rgb(248, 249, 250);
}

.btn.white-outline.active {
    background: rgb(248, 249, 250);
    color: rgb(57, 73, 171);
}

.btn.purple-text:hover:not(.active),
.btn.purple-outline:hover:not(.active) {
    background: rgba(57, 73, 171, 0.1);
}

.btn.purple-text:active:not(.active),
.btn.purple-outline:active:not(.active) {
    background: rgba(57, 73, 171, 0.3);
}

.btn.purple:hover:not(.active) {
    background: #5c6bc0;
}

.btn.purple:active:not(.active) {
    background: #283593;
}

.btn.white-outline:hover:not(.active) {
    background: rgba(248, 249, 250, 0.1);
}

.btn.white-outline:active:not(.active) {
    background: rgba(248, 249, 250, 0.3);
}

.btn-group-sm>.btn:first-child {
    border-top-left-radius: 16px;
    border-bottom-left-radius: 16px;
    padding-left: 12px;
}

.btn-group-sm>.btn:last-child {
    border-top-right-radius: 16px;
    border-bottom-right-radius: 16px;
    padding-right: 12px;
}

/* floating button */

[class*="float-btn"] {
    background-position: center center;
    background-size: 60%;
    background-repeat: no-repeat;
    border-radius: 50%;
    box-shadow: 0 8px 16px 0 rgba(0, 0, 0, .3);
    position: relative;
    cursor: pointer;
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 56px;
    height: 56px;
    background-color: white;
    transition: background-color .2s;
}

[class*="float-btn"]:hover {
    background-color: rgb(232, 234, 246);
}

[class*="float-btn"]:active {
    background-color: rgb(197, 202, 233);
}

[class*="float-btn"][class*="purple"] {
    background-color: rgb(63, 81, 181);
}

[class*="float-btn"][class*="purple"]:hover {
    background-color: rgb(92, 107, 192);
}

[class*="float-btn"][class*="purple"]:active {
    background-color: rgb(121, 134, 203);
    /*rgb(159, 168, 218)*/
}

/* refresh button */

[class*="float-btn"]>* {
    position: absolute;
}

[class*="float-btn"]>.icon {
    width: 75%;
    height: 75%;
}

[class*="float-btn"]>.spinner {
    width: 50%;
    height: 50%;
}

[class*="float-btn"][class*="white"]>.spinner {
    color: rgb(63, 81, 181);
}

#refresh_btn {
    position: fixed;
    bottom: 48px;
    left: 48px;
}

/* tooltip button */

.tooltip-inner {
    font-family: Roboto;
    font-size: 12px;
    background-color: rgba(0, 0, 0, .7);
    border-radius: 6px;
    padding: 4px 8px;
    white-space: pre-wrap;
}

.tooltip>.arrow {
    opacity: 0;
}

.tooltip-btn {
    width: 20px;
    height: 20px;
    margin: 0;
    vertical-align: middle;
    background-color: transparent;
    background-image: url("../resrc/icons/info-outline.svg");
    background-size: cover;
    border: none;
    opacity: .5;
}

.tooltip-btn.white {
    margin-bottom: 2px;
    background-image: url("../resrc/icons/info-outline-white.svg");
}

.btn-icon {
    width: 24px;
    height: 24px;
    background-size: cover;
    position: relative;
}

.btn-icon::after,
.form-check-input::after {
    content: "";
    position: absolute;
    left: -8px;
    right: -8px;
    top: -8px;
    bottom: -8px;
    border-radius: 50%;
    background-color: rgba(0, 0, 0, 0);
    transition: all .2s;
}

.btn-icon:hover::after,
.form-check-input:hover::after {
    background-color: rgba(0, 0, 0, .1);
}

.icon-close {
    background-image: url("../resrc/icons/close.svg");
}

/* toast */

.toast-container {
    position: fixed;
    right: 0;
    bottom: 0;
    padding: 48px 40px 48px 16px;
    z-index: 100;
    overflow-y: auto;
    max-height: 100%;
}

.toast {
    border: none;
    border-radius: 16px;
    background-color: white;
    box-shadow: 0 8px 16px 0 rgba(0, 0, 0, .3);
    width: 480px;
    max-width: 480px;
    padding: 16px 20px 16px 24px;
}

.toast-body {
    background: transparent;
    border: none;
    padding: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.toast-body>div:first-child {
    margin-right: 24px;
}

.toast-title {
    font-family: Raleway;
    font-weight: bold;
    font-size: 18px;
    color: rgb(52, 58, 64);
}

.toast-description {
    font-size: 14px;
    color: #6c757d;
}

.toast-time {
    font-size: 12px;
    color: #6c757d;
}

[class*="toast-state"] .toast-time::before {
    content: "";
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #9e9e9e;
    margin-right: 8px;
}

.toast-state-danger .toast-time::before {
    background-color: #e53935;
}

.toast-state-caution .toast-time::before {
    background-color: #f9a825;
}

.toast-state-normal .toast-time::before {
    background-color: #66bb6a;
}