@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;
}

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

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

.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), #999 50%, #999 calc(50% + 0.5px), transparent calc(50% + 1px))
}
td.table-cell-slash,
th.table-cell-slash {
    background-image: linear-gradient(to left top, transparent calc(50% - 0.5px), #999 50%, #999 calc(50% + 0.5px), transparent calc(50% + 1px))
}

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

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