@keyframes fadein {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@keyframes fadeout {
    0% {
        opacity: 1;
    }

    100% {
        opacity: 0;
    }
}

.fadein {
    animation-name: fadein;
    animation-duration: 500ms;
    animation-timing-function: ease;
}

fieldset {
    border: none;
}

* {
    font-family: Kosugi Maru, sans-serif;
}

.mincho {
    font-family: "ヒラギノ明朝 Pro", "Hiragino Mincho Pro", "MS P明朝", "MS PMincho", serif !important;
}

.nowrap {
    white-space: nowrap;
}

.prewrap {
    white-space: pre-wrap;
}

.table-fixed,
.is-fixed {
    table-layout: fixed;
}

.h-deco {
    padding-left: 10px;
    border-left: #00d1b2 solid 5px;
    border-bottom: 2px lightgray dashed;
}

.flex-equal>* {
    flex: 1;
}

.has-text-middle {
    vertical-align: middle !important;
}

.has-text-vertical {
    writing-mode: vertical-rl;
    text-orientation: upright;
}

table.th-sticky tr:last-child th {
    position: sticky;
    z-index: 1;
    top: 0;
    left: 0;
    /* border-top: none;
    border-bottom: none; */
}

table.th-sticky tr:last-child :before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    /* border-top: 1px solid #dbdbdb;
    border-bottom: 1px solid #dbdbdb; */

    background: rgba(255, 255, 255, 0.9);
    z-index: -1;
}

.p-0 {
    padding: 0px;
}

td.table-cell-backslash,
th.table-cell-backslash {
    /* background-image: linear-gradient(to right top, transparent calc(50% - 0.5px), #000 50%, #000 calc(50% + 0.5px), transparent calc(50% + 0.5px)) */
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Cline x1='0' y1='0' x2='100%25' y2='100%25' stroke='dimgray' stroke-width='1.2' shape-rendering='geometricPrecision' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");

    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;

    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

td.table-cell-slash,
th.table-cell-slash {
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100%25' height='100%25'%3E%3Cline x1='0' y1='100%25' x2='100%25' y2='0' stroke='dimgray' stroke-width='1.2' shape-rendering='geometricPrecision' vector-effect='non-scaling-stroke'/%3E%3C/svg%3E");

    background-repeat: no-repeat;
    background-position: center;
    background-size: 100% 100%;

    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
}

.grid-half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0px;
}

.grid-half>* {
    height: 100%;
}

.position-relative {
    position: relative;
}

.position-absolute {
    position: absolute;
}