/*----------------*/
/* Cursor         */
/*----------------*/
a,
button,
[role="button"],
input[type="button"],
input[type="submit"],
input[type="reset"],
label[for],
.cursor-clickable {
    cursor: pointer;
}

button:disabled,
input:disabled,
[aria-disabled="true"] {
    cursor: not-allowed;
}



/*----------------*/
/* Table          */
/*----------------*/
:root {
    --table-border-width: 1px;
    --table-border-color: #cbd5e1;
}

.table-container {
    width: 100%;
}

.table-container table {
    width: 100%;
    color: rgb(71 85 105);
    border: 0;
    border-collapse: separate;
    border-spacing: 0;
    box-shadow:
        0 calc(var(--table-border-width) * -1) 0 0 var(--table-border-color),
        calc(var(--table-border-width) * -1) 0 0 0 var(--table-border-color),
        var(--table-border-width) 0 0 0 var(--table-border-color);
}

.table-container table th {
    padding: 0.75rem 0.5rem;
    background-color: rgb(241 245 249);
    text-align: center;
    font-size: 0.85rem;
    line-height: 1.2rem;
    font-weight: 700;
    color: rgb(51 65 85);
    white-space: nowrap;
}

.table-container table td {
    color: rgb(71 85 105);
    padding: 0.5rem;
    font-size: 0.75rem;
    line-height: 1rem;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    white-space: nowrap;
}

.table-container table th,
.table-container table td {
    border: 0;
    box-shadow:
        inset calc(0px - var(--table-border-width)) 0 0 0 var(--table-border-color),
        inset 0 calc(0px - var(--table-border-width)) 0 0 var(--table-border-color);
}

.table-container table tr > *:last-child {
    box-shadow: inset 0 calc(0px - var(--table-border-width)) 0 0 var(--table-border-color);
}

.table-container table tbody tr:hover {
    background-color: rgb(241 245 249 / 0.8);
}

.table-container table tfoot td {
    padding: 0.65rem;
}

.table-sticky-container {
    max-height: 71vh;
    overflow: auto;
    border: solid var(--table-border-width) var(--table-border-color);
    border-bottom: 0;
}

.table-sticky-container tfoot {
    position: sticky;
    bottom: 0;
    z-index: 4;
    background: #fff;
}



.legal_hday {
    background-color: #ffebeb !important;
    color: red;
}

.legal_hday_edited {
    background-color: #ffebeb !important;
    color: red;
}

.prescribed_hday {
    background-color: #E3F2FD !important;
    color: #0d6efd;
}

.prescribed_hday_edited {
    background-color: #E3F2FD !important;
    color: #0d6efd;
}

.edited_hday {
    background-color: #fff7d6;
}

.working-rate {
    color: #0d6efd;
}

.take-leave-rate {
    color: #f59e0b;
}

.remaining-rate {
    color: #e2e2e2;
}

.chart-center-text {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: left;
    font-size: 0.65rem;
    font-weight: 700;
    line-height: 1.5rem;
    pointer-events: none;
}

.donut-container {
    width: 12rem;
    height: 12rem;
}

.today-selected {
    background-color: #FFFFE0 !important;
}

.bg-selected {
    background-color: #FFFFE0 !important;
}

.bg-orange {
    background-color: #ffc107;
    border: 1px solid #ffc107;
}

.bg-blue {
    background-color: #0d6efd;
    border: 1px solid #0d6efd;
}

.bg-grey {
    background-color: #6c757d;
    border: 1px solid #6c757d;
}

.bg-green {
    background-color: #28a745;
    border: 1px solid #28a745;
    --bs-btn-hover-bg: #47b761;
    --bs-btn-hover-border-color: #47b761;
}

.bg-red {
    background-color: #dc3545;
    border: 1px solid #dc3545;
    --bs-btn-hover-bg: #e14050;
    --bs-btn-hover-border-color: #e14050;
}

.label_bg {
    background-color: var(--bs-secondary-bg) !important;
    opacity: 1;
}

.label_bg:empty::before{
    content: "　";
}

.button_span {
    padding: 0.15rem 0.45rem;
    font-size: 0.5rem;
    text-overflow: clip;
    border-radius: 6px;
    vertical-align: text-top;
}

.hide {
    display: none;
}

.edited {
    color: #ca071a !important;
}

.edited_hday_bg {
    color: #fff7d6 !important;
}

.edited_hday {
    background-color: #fff7d6;
}

.approved {
    background-color: #F0F0F0 !important;
    border-color: #CCC !important;
}

#expense_table .noborder tr:not(:first-child) td {
    padding: 0 0 0 20px !important;
}

.bi-download-complete::after {
    content: "済";
    font-size: 0.6rem;
    font-style: normal;
    background: #f4bac4;
    color: #ff0000;
    border: 1px solid #dc3545;
    border-radius: 100%;
    text-align: center;
    margin-top: -20px;
    margin-right: -15px;
    position: absolute;
    padding: 0 2px;
    font-weight: 600;
}

.btn-file-selected::after {
    content: "済";
    font-size: 0.6rem;
    font-style: normal;
    background: #f4bac4;
    color: #ff0000;
    border: 1px solid #dc3545;
    border-radius: 100%;
    text-align: center;
    margin-top: -20px;
    margin-right: -15px;
    position: absolute;
    padding: 0 2px;
    font-weight: 600;
}