/** -------------------------------------------------------------- Font ----- */
@font-face {
    font-family: 'LINE Seed JP';
    src: url("/fonts/LINESeedJP_OTF_Th.woff2") format("woff2");
    font-weight: 100;
}
@font-face {
    font-family: 'LINE Seed JP';
    src: url("/fonts/LINESeedJP_OTF_Rg.woff2") format("woff2");
    font-weight: normal;
}
@font-face {
    font-family: 'LINE Seed JP';
    src: url("/fonts/LINESeedJP_OTF_Bd.woff2") format("woff2");
    font-weight: bold;
}
@font-face {
    font-family: 'LINE Seed JP';
    src: url("/fonts/LINESeedJP_OTF_Eb.woff2") format("woff2");
    font-weight: 800;
}
@font-face {
    font-family: 'SF Pro JP';
    font-style: normal;
    font-weight: 600;
    src: url("/fonts/SFProJP_semibold.ttf") format("truetype");
}

@font-face {
    font-family: 'SF Pro JP';
    font-style: normal;
    font-weight: 400;
    src: url("/fonts/SFProJP_regular.ttf") format("truetype");
}

/** ----------------------------------------------------------- Generic ----- */
html {
    font-size: 13px;
}
body {
    font-family: 'Line Seed JP';
}
a {
    transition: all .2s linear;
    text-decoration: none;
}
a:hover:not(.btn) {
    text-decoration: underline;
}
[data-href] {
    cursor: pointer;
}
::placeholder {
    opacity:.5 !important;
    font-style: italic;
}

/** -------------------------------------------------------- Breadcrumb ----- */
nav[aria-label="breadcrumb"] a {
    color: var(--cui-secondary-color);
}
nav[aria-label="breadcrumb"] a:hover {
    color: rgba(var(--cui-link-color-rgb), var(--cui-link-opacity, 1));
}

/** -------------------------------------------------------------- Card ----- */
.card .card-header {
    display: flex;
    align-items: center;
}
.card .card-header .card-header-actions {
    margin-left: auto;
    font-size: .875em;
}
.card .card-header .card-header-actions .card-header-action {
    padding-left: .5rem;
}
.card-filter {
    background-color: rgba(0, 0, 0, .075);
    border: 1px solid rgba(0, 0, 0, .1);
    border-radius: .5rem;
    padding: 1rem;
    margin-bottom: 1rem;
}
.filter.filtering:after {
    content: 'あり';
    color: #fff;
    background-color: #3399ff;
    border-radius: 1em;
    padding: .25em .4em;
    font-size: 75%;
}

/* -------------------------------------------------------------- Table ----- */
.table th {
    white-space: nowrap;
}
.table td {
    white-space: nowrap;
}
.table .sorting a {
    display: block;
    position: relative;
    white-space: nowrap;
    padding-right: 1rem;
}
.table .sorting a:after {
    font-family: 'Font Awesome 6 Free';
    display: block;
    float: right;
    opacity: .5;
    right: 0;
    content: '\f0dc';
    position: absolute;
    top: 0;
}
.table .sorting a.asc:after {
    content: '\f0de';
    opacity: .8;
}
.table .sorting a.desc:after {
    content: '\f0dd';
    opacity: .8;
}


/** --------------------------------------------- Dropdown (Horizontal) ----- */
.dropdown-horizontal .dropdown-menu.show {
    display: flex;
    border-radius: 5rem;
    padding: 0;
    margin-top: -.3rem !important;
    background-color: rgba(255,255,255,.7);
    backdrop-filter: blur(5px);
}
.dropdown-horizontal .dropdown-item {
    font-size: .9rem;
    padding: 0.3rem 1rem;
}
.dropdown-horizontal .dropdown-item:hover {
    background: transparent;
}

/** ---------------------------------------------------------- Datalist ----- */
.dl-horizontal {
    margin-bottom: 0;
}
.dl-horizontal dt {
    flex: 0 0 auto;
    width: 100%;
    text-align: left;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.dl-horizontal dd {
    flex: 0 0 auto;
    width: 100%;
    text-align: left;
}
.dl-horizontal dd:not(.after-d-none):after {
    content: '';
    display: inline-block;
}
@media (min-width: 768px) {
    .dl-horizontal dt {
        width: 150px;
        text-align: right;
    }
    .dl-horizontal dd {
        width: calc(100% - 150px);
    }
}

/** -------------------------------------------------------------- Form ----- */
select.form-control:not(.is-invalid) {
    background-image: url('data:image/svg+xml;charset=utf8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20640%20640%22%3E%3Cpath%20d%3D%22M297.4%20438.6C309.9%20451.1%20330.2%20451.1%20342.7%20438.6L502.7%20278.6C515.2%20266.1%20515.2%20245.8%20502.7%20233.3C490.2%20220.8%20469.9%20220.8%20457.4%20233.3L320%20370.7L182.6%20233.4C170.1%20220.9%20149.8%20220.9%20137.3%20233.4C124.8%20245.9%20124.8%20266.2%20137.3%20278.7L297.3%20438.7z%22%2F%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-position: right calc(0.375em + 0.1875rem) center;
    background-size: calc(0.75em + 0.375rem) calc(0.75em + 0.375rem);
}
.input-group.has-validation > :not(:last-child):not(.dropdown-toggle):not(.dropdown-menu):not(.form-floating) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}

/* ------------------------------------------------------ Form > Upload ----- */
.drop-area {
    border: 2px dashed rgba(177, 183, 193, 1);
    border-radius: 1rem;
    transition: all .1s linear;
    color: rgba(44, 56, 74, 0.95) !important;
}
.drop-area.focus {
    border-color: rgb(0, 157, 205);
    box-shadow: 0 0 0 0.25rem rgba(0, 157, 205, .25);
}
input[type="file"] {
    font-size: .9em;
    font-weight: bold;
    border-radius: 0.25rem;
    background-color: rgba(79, 93,115, .2);
}
input[type="file"]::file-selector-button {
    color: rgba(255, 255, 255, 0.87);
    background-color: #4f5d73;
    font-size: 0.8em;
    border: 1px solid #4f5d73;
    border-radius: 0.25rem;
    padding: 0.25rem 0.5rem;
}
