/*=== layout ===*/
img {
    max-width: 100%;
}

header {
    background: #ECECEC;
    padding: 5px 20px;
    color: gray;
    position: relative;
    height: 70px;
    box-sizing: border-box;
}

header p {
    display: inline-block;
}

header .logo img {
    width: 80px;
    vertical-align: bottom;
    margin-right: 20px;
}

header .logo {
    padding: 17px 0;
    display: inline-block;
}

header a.logout {
    position: absolute;
    right: 25px;
    top: 27px;
    color: #fff;
}

header .user_info p {
    display: block;
    text-align: right;
}

header .user_info {
    position: absolute;
    right: 0;
    top: 0;
    padding: 13px 0px;
    padding-right: 65px;
}

header span.prof_icon img {
    width: 100%;
}

header span.prof_icon {
    width: 40px;
    height: 40px;
    display: inline-block;
    overflow: hidden;
    border-radius: 50px;
    position: absolute;
    right: 15px;
    top: 13px;
}

.main_wrapper {
    display: flex;
    height: calc(100vh - 70px);
}

.content {
    box-sizing: border-box;
    padding: 30px 30px 130px 30px;
    position: relative;
    width: calc(100% - 200px);
    overflow-y: auto;
}

p.alert {
    color: red;
}

/*--- sidebar ---*/
.sidebar {
    width: 220px;
    border-right: 1px #ccc solid;
    box-sizing: border-box;
    position: relative;
    background: #4D92A0;
}

.sidebar dt {
    color: lightslategray;
    padding: 20px;
}

.sidebar ul li a,
a.logout {
    padding: 15px 0;
    display: block;
    color: #fff;
    position: relative;
}

.sidebar ul li a {
    padding-left: 40px;
}

.sidebar ul li a:hover {
    background: rgb(234 250 251 / 50%);
}

.sidebar ul li.active a {
    background: rgb(234 250 251 / 50%);
    color: #fff;
}

.sidebar ul li a i {
    margin-right: 10px;
}

.sidebar ul li.active {
    background: #4d92a0;
}

.sidebar a.logout {
    padding: 20px;
    border-top: 1px #ccc solid;
    position: absolute;
    bottom: 0;
    width: 100%;
    box-sizing: border-box;
}

.sidebar a.logout i {
    margin-right: 5px;
    font-size: 16px;
    position: relative;
    top: 1px;
}

.sidebar ul li a:before {
    content: "\f015";
    font-family: 'Font Awesome 6 Free';
    margin-right: 5px;
    font-size: 18px;
    position: absolute;
    left: 10px;
    font-weight: bold;
}

.sidebar ul li.menu_02 a:before {
    content: "\f073";
}

.sidebar ul li.menu_03 a:before {
    content: "\f022";
}

.sidebar ul li.menu_04 a:before {
    content: "\f007";
}

.sidebar ul li.menu_05 a:before {
    content: "\f06a";
}

.sidebar ul li.menu_05.alert a:after {
    content: "";
    width: 10px;
    height: 10px;
    display: block;
    background: #f6222d;
    border-radius: 40px;
    position: absolute;
    left: 23px;
    top: 13px;
}

.sidebar ul li.menu_06 a:before {
    content: "\f0ae";
}

.sidebar ul li.menu_07 a:before {
    content: "\f0f3";
}

.sidebar ul li.menu_08 a:before {
    display: none;
}

.sidebar ul li.menu_08 a {
    padding-left: 0;
}

.sidebar ul li.menu_08:before {
    content: "\f013";
    font-family: 'Font Awesome 6 Free';
    margin-right: 5px;
    font-size: 18px;
    position: absolute;
    left: 10px;
    font-weight: bold;
    color: #fff;
}

.sidebar ul li.menu_08 {
    padding: 15px 0;
    padding-left: 40px;
}

.sidebar ul li.menu_09 a:before {
    content: "\f08b";
}

/* toggle */
.acd-check {
    display: none;
}

.acd-label:hover {
    cursor: pointer;
}

.acd-label {
    color: #fff;
    display: block;
    position: relative;
}

.acd-content {
    height: 0;
    opacity: 0;
    transition: .5s;
    visibility: hidden;
}

.acd-check:checked+.acd-label+.acd-content {
    height: auto;
    opacity: 1;
    padding: 10px 0;
    visibility: visible;
}

.acd-label:after {
    content: '\f105';
    font-family: 'Font Awesome 6 Free';
    font-weight: bold;
    margin-right: 10px;
    display: inline-block;
    transition: .3s;
    position: absolute;
    right: 0;
    top: 3px;
}

.acd-check:checked+.acd-label:after {
    transform: rotate(90deg);
}

/* //toggle */
/*--- //sidebar ---*/
/*--- button ---*/
.flat-button {
    background-color: #4d92a0;
    border: none;
    color: #FFF;
    font-size: 16px;
    padding: 7px 24px;
    border-radius: 4px;
    cursor: pointer;
    transition: background-color 0.3s ease-in-out;
    display: block;
    min-width: 150px;
    font-size: 14px;
    font-weight: normal;
    border: 1px #4d92a0 solid;
}

.flat-button.center {
    margin: 0 auto;
}

.flat-button.white {
    background: #fff;
    color: #4d92a0;
}

td .flat-button.white {
    min-width: auto;
    padding: 4px 10px;
    display: inline-block;
}

.flat-button.red {
    border-color: #DC6229;
    background: #DC6229;
}

.flat-button:hover {
    opacity: 0.8;
}

.flat-button.mini {
    display: inline-block;
    min-width: 70px;
}

table.list_table.ta_l td .flat-button.white.mini {
    min-width: auto;
}

.flat-button.delete {
    background: #fff;
    color: #f4222d;
    border-color: #f4222d;
    padding: 7px 10px;
}

.flat-button.right {
    margin-left: auto;
    margin-bottom: 10px;
}

.flat-button.alert {
    background: red;
    border-color: red;
}

h2 .flat-button {
    position: absolute;
    right: 0;
    top: 0;
}

a.download:before {
    content: "\f019";
    font-family: 'Font Awesome 6 Free';
    font-weight: bold;
    margin-right: 5px;
}

input,
select,
textarea {
    border: 1px #ccc solid;
    border-radius: 5px;
    padding: 10px 10px;
    font-size: 14px;
    display: inline-block;
    color: #444;
    min-width: 200px;
}

textarea {
    width: 100%;
    min-height: 80px;
}

input.wide {
    width: 100%;
    box-sizing: border-box;
}

input[type="date"],
input[type="month"] {
    padding: 7px 10px;
}

option[selected] {
    color: blue;
}

button:hover {
    cursor: pointer;
}

a.flat-button {
    box-sizing: border-box;
    text-align: center;
}

/*--- //button ---*/
.gray_box {
    background: #F7F7F7;
    padding: 30px 20px;
    border-radius: 8px;
    margin-bottom: 30px;
}

h2 {
    margin-bottom: 30px;
    position: relative;
}

h3 {
    margin-bottom: 20px;
    position: relative;
}

p.strong {
    font-weight: bold;
}

/*--- table ---*/
table tr>* {
    text-align: left;
    padding: 10px 10px;
    font-weight: normal;
}

table.list_table tr>* {
    border: 1px #ccc solid;
    text-align: center;
}

table.list_table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

table.list_table tr th {
    background: #f7f7f7;
}

table.list_table tr:nth-child(odd) {
    background-color: #edf3f5;
}

table.list_table tr:first-child>* {
    font-weight: bold;
}

table.list_table td button {
    border: 1px #4d92a0 solid;
    border-radius: 5px;
    background: #fff;
    padding: 3px 10px;
    color: #4d92a0;
}

table.list_table td button.rejected {
    background: #F6222D;
    color: #fff;
    border-color: #F6222D;
}

table.list_table td button.approval {
    background: #4d92a0;
    color: #fff;
    border-color: #4d92a0;
}

table.list_table td button.rejected,
table.list_table td button.approval {
    margin: 0px 3px;
}

table.list_table td .delete {
    border: none;
    background: transparent;
    color: #f4222d;
    font-size: 13px;
}

table.list_table td .delete:before {
    content: "\f2ed";
    font-family: 'Font Awesome 6 Free';
    margin-right: 3px;
}

table.list_table.simple th {
    padding: 3px 10px;
}

table.list_table.simple {
    border: 1px #ccc solid;
}

table.list_table.simple tr>* {
    border: none;
    border-bottom: 1px #ccc solid;
}

table.list_table tr .ta_l {
    text-align: left;
}

table.list_table.ta_l tr>* {
    text-align: left;
}

span.alert {
    color: #F6222D;
}

/*--- pager ---*/
.pager {
    position: relative;
}

.pager ul li a {
    background: #fff;
    border: 1px #ddd solid;
    border-radius: 5px;
    padding: 4px 9px;
    display: inline-block;
    font-size: 12px;
    font-weight: bold;
    color: gray;
}

.pager ul li {
    display: inline-block;
}

.pager.number {
    text-align: center;
}

.pager p,
.pager ul {
    display: inline-block;
}

.pager p {
    margin-right: 10px;
}

.pager ul li a.now {
    background: #4d92a0;
    border-color: #4d92a0;
    color: #fff;
}

/*--- //pager ---*/
/*--- form ---*/
span.req {
    display: inline-block;
    background: #f1212c;
    color: #fff;
    font-size: 12px;
    padding: 0px 5px;
    border-radius: 3px;
    margin-left: 8px;
}

.form_box dl {
    margin-bottom: 20px;
}

.form_box label {
    margin-bottom: 5px;
    display: inline-block;
}

/*--- //form ---*/
/*=== //layout ===*/
/*=== login ===*/
body#login {
    background: #ececec;
}

body#login .wrapper {
    width: 1024px;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    -webkit-transform: translateY(-50%) translateX(-50%);
}

body#login h3 {
    text-align: center;
    margin-bottom: 40px;
    border: none;
}

body#login img.logo {
    display: block;
    margin: 0 auto;
    margin-bottom: 10px;
}

.login_form {
    background: #fff;
    padding: 60px 80px;
    border-radius: 10px;
    box-sizing: border-box;
    width: 600px;
    margin: 0 auto;
}

.login_form h3 {
    font-size: 18px;
    text-align: center;
    margin-bottom: 20px;
}

.login_form dd {
    padding-bottom: 25px;
    position: relative;
}

.login_form dt {
    padding-bottom: 5px;
}

.login_form span#buttonEye {
    position: absolute;
    right: 10px;
    top: 13px;
    color: gray;
    left: auto;
}

#login .flat-button.center {
    margin: 10px auto;
    width: 100%;
}

#login .pw_attention {
    color: gray;
    margin-top: 30px;
    border-bottom: 1px #ccc solid;
    padding-bottom: 20px;
    margin-bottom: 30px;
}

span#buttonEye {
    color: gray;
    position: relative;
    left: -28px;
}

/*=== //login ===*/
/*=== home ===*/
#home .content .alert {
    background: #FAFAFA;
    border: 2px #F85757 solid;
    border-radius: 5px;
    padding: 20px;
    margin-bottom: 35px;
}

#home .alert i {
    font-size: 20px;
    vertical-align: middle;
    margin-right: 10px;
    color: #F85757;
}

h3.select_month {
    display: inline-block;
}

h3.select_day select,
h3.select_month select {
    border: none;
    font-size: 20px;
    font-weight: bold;
    padding-right: 30px;
    min-width: auto;
}

h3.select_day {
    width: 100%;
}

h3.select_day a.download.right {
    font-size: 14px;
    font-weight: normal;
    position: absolute;
    right: 0;
    bottom: 0;
}

/*h3.select_day:after {
    content: "\f107";
    font-family: 'Font Awesome 6 Free';
    font-weight: bold;
    margin-right: 5px;
    position: relative;
    right: 29px;
    color: gray;
}*/
h3.select_day,
.sort_btn {
    display: inline-block;
}

.sort_btn {
    margin-left: 20px;
}

.sort_btn button {
    background: #fff;
    border: 1px #ccc solid;
    padding: 2px 10px;
    border-radius: 5px;
    color: gray;
}

.sort_btn button.visible {
    border: none;
}

.sort_btn button.visible.active {
    color: #4d92a0;
}

.sort_btn button.active {
    border-color: #4d92a0;
    color: #4d92a0;
}

.sort_radio {
    display: inline-block;
}

.sort_radio .radio-p::before,
.sort_radio .radio:checked+.radio-p::after {
    display: none;
}

.sort_radio .radio-p {
    padding: 0;
    margin: 0;
    display: inline-block;
    padding: 3px 10px;
    color: #4d92a0;
    border: 1px #4d92a0 solid;
}

.sort_radio .radio:checked+.radio-p {
    color: #fff;
    background: #4d92a0;
}

.sort_radio label {
    letter-spacing: -5px;
}

.sort_radio label:last-child .radio-p {
    border-radius: 0 5px 5px 0;
    border-left: 0;
}

.sort_radio label:first-child .radio-p {
    border-radius: 5px 0 0px 5px;
    border-right: 0;
}

/*--- shift_table_week ---*/
table.shift_table_week {
    table-layout: fixed;
    border-collapse: collapse;
}

table.shift_table_week tr>* {
    border: 1px #ccc solid;
    width: 5%;
}

table.shift_table_week tr th {
    text-align: center;
    padding: 20px;
}

table.shift_table_week tr td {
    vertical-align: top;
}

table.shift_table_week tr .holiday {
    background: #fafafa;
}

table.shift_table_week .schedule p {
    background: #ccc;
    border-radius: 8px;
    margin-bottom: 8px;
    padding: 8px 10px;
    font-weight: bold;
    color: #fff;
    position: relative;
}
table.shift_table_week .schedule p.blue,
table.shift_table_month .schedule p.blue {
    background: #768BEA;
}

table.shift_table_week .schedule p.light-blue,
table.shift_table_month .schedule p.light-blue {
    background: #62CDDA;
}

table.shift_table_week .schedule p.banana,
table.shift_table_month .schedule p.banana {
    background: #E3C651;
}

table.shift_table_week .schedule p.navel,
table.shift_table_month .schedule p.navel {
    background: #F6A623;
}

table.shift_table_week .schedule p.orange,
table.shift_table_month .schedule p.orange {
    background: #F5A623;
}

table.shift_table_week .schedule p.lilac,
table.shift_table_month .schedule p.lilac {
    background: #B39DDB;
}

table.shift_table_week .schedule p.turquoise,
table.shift_table_month .schedule p.turquoise {
    background: #1ABC9C;
}

table.shift_table_week .schedule p.green,
table.shift_table_month .schedule p.green {
    background: #2ECC71;
}

table.shift_table_week .schedule p.purple,
table.shift_table_month .schedule p.purple {
    background: #9B59B6;
}

table.shift_table_week .schedule p.navy,
table.shift_table_month .schedule p.navy {
    background: #34495E;
}

table.shift_table_week .schedule p.gray,
table.shift_table_month .schedule p.gray {
    background: #95A5A6;
}

table.shift_table_week .schedule p.magenta,
table.shift_table_month .schedule p.magenta {
    background: #E91E63;
}

table.shift_table_week .schedule p.brown,
table.shift_table_month .schedule p.brown {
    background: #795548;
}

table.shift_table_week .schedule p.line_blue,
table.shift_table_month .schedule p.line_blue {
    background: #3498DB;
}

table.shift_table_week .schedule p.line_red,
table.shift_table_month .schedule p.line_red {
    background: #E74C3C;
}

table.shift_table_week tr.schedule p span {
    font-size: 12px;
    font-weight: normal;
    display: inline-block;
    margin-right: 7px;
}

table.shift_table_week th.today p {
    background: #F85757;
    width: 55px;
    margin: 0 auto;
    border-radius: 50px;
    color: #fff;
}

/*--- //shift_table_week ---*/
/*=== //home ===*/
/*=== shift_schedule ===*/
.shift_table_week .schedule .user {
    text-align: center;
}

.shift_table_week .schedule .user p span {
    display: block;
    color: gray;
}

.shift_table_week .schedule .user p {
    background: transparent;
    color: #444;
    margin-bottom: 0;
}

.user span.prof_ico {
    margin: 0;
    width: 70px;
    height: 70px;
}


/*--- shift_table_month ---*/
.month_container {
    min-width: 100%;
}

table.shift_table_month {
    border-collapse: collapse;
    width: 5300px;
}

table.shift_table_month tr>* {
    border: 1px #ccc solid;
    width: 180px;
}

table.shift_table_month tr th {
    text-align: center;
    padding: 20px;
}

table.shift_table_month tr td {
    vertical-align: top;
}

table.shift_table_month tr .holiday {
    background: #fafafa;
}

table.shift_table_month .schedule p {
    background: #ccc;
    border-radius: 8px;
    margin-bottom: 8px;
    padding: 8px 10px;
    font-weight: bold;
    color: #fff;
    position: relative;
}

table.shift_table_month .schedule p.blue {
    background: #768BEA;
}

table.shift_table_month .schedule p.light-blue {
    background: #62CDDA;
}

table.shift_table_month tr.schedule p span {
    font-size: 12px;
    font-weight: normal;
    display: inline-block;
    margin-right: 7px;
}

table.shift_table_month th.today p {
    background: #F85757;
    width: 55px;
    margin: 0 auto;
    border-radius: 50px;
    color: #fff;
}

/*--- //shift_table_month ---*/
/*=== //home ===*/
/*=== shift_schedule ===*/
table.shift_table_month .schedule .user {
    text-align: center;
}

table.shift_table_month .schedule .user p span {
    display: block;
    color: gray;
}

table.shift_table_month .schedule .user p {
    background: transparent;
    color: #444;
    margin-bottom: 0;
}

table.shift_table_month .schedule .user span.prof_ico {
    margin: 0;
    width: 70px;
    height: 70px;
}

.shift_wrap {
    overflow-x: auto;
    width: 100%;
}

.shift_wrap table {
    min-width: 1200px;
}

.schedule_tag_list {
    position: fixed;
    width: calc(100% - 217px);
    bottom: 0;
    background: #fff;
    box-shadow: 0 0 8px rgb(0 0 0 / 10%);
    right: 0;
    box-sizing: border-box;
    padding: 20px;
    padding-right: 180px;
    z-index: 100;
}

.schedule_tag_list a.flat-button {
    display: inline-block;
    position: absolute;
    right: 20px;
    top: 33px;
    padding: 10px 10px;
}

.schedule_tag_list p {
    display: inline-block;
    width: 130px;
    background: #ccc;
    border-radius: 5px;
    margin-bottom: 5px;
    padding: 3px 10px;
    box-sizing: border-box;
    border: 1px #ccc solid;
    color: #fff;
}

.schedule_tag_list p.blue {
    background: #768BEA;
    border-color: #768BEA;
}

.schedule_tag_list p.light-blue {
    background: #62CDDA;
    border-color: #62CDDA;
}

.schedule_tag_list p.banana {
    background: #EDBE07;
    border-color: #EDBE07;
}

.schedule_tag_list p.navel {
    background: #E2705E;
    border-color: #E2705E;
}

.schedule_tag_list p.orange {
    background: #F19F56;
    border-color: #F19F56;
}

.schedule_tag_list p.lilac {
    background: #D6A3E8;
    border-color: #D6A3E8;
}

.schedule_tag_list p.turquoise {
    background: #4F9BAA;
    border-color: #4F9BAA;
}

.schedule_tag_list p.green {
    background: #3CA858;
    border-color: #3CA858;
}

.schedule_tag_list p.purple {
    background: #A45AAA;
    border-color: #A45AAA;
}

.schedule_tag_list p.navy {
    background: #516690;
    border-color: #516690;
}

.schedule_tag_list p.gray {
    background: #919191;
    border-color: #919191;
}

.schedule_tag_list p.magenta {
    background: #DF4C94;
    border-color: #DF4C94;
}

.schedule_tag_list p.brown {
    background: #C6757D;
    border-color: #C6757D;
}

.schedule_tag_list p.line_blue {
    background: #fff;
    color: #768BEA;
    border-color: #768BEA;
}

.schedule_tag_list p.line_red {
    background: #fff;
    color: #F85757;
    border-color: #F85757;
}

/*=== //shift_schedule ===*/
/*=== verified ===*/
.flex_box {
    display: flex;
}

.right_content {
    flex: 1;
    padding: 30px 30px;
}

.white_box {
    border: 1px #ccc solid;
    border-radius: 10px;
    padding: 20px;
}

.flex_box.white_box {
    padding: 0;
    min-height: 400px;
}

.content_side ul li a {
    padding: 10px 20px;
    padding-right: 75px;
    position: relative;
    display: block;
    color: #444;
}

.content_side ul li a:hover {
    background: #f7f7f7;
}

.content_side ul li.active {
    font-weight: bold;
}

.content_side ul li.active a:before {
    content: "";
    display: block;
    width: 3px;
    height: 40px;
    background: #444;
    position: absolute;
    left: 0;
    top: 0;
}

.content_side ul li span {
    color: gray;
    position: absolute;
    right: 20px;
}

.content_side ul li span.alert {
    color: #F6222D;
}

.content_side {
    padding: 20px 0px;
    border-right: 1px #ccc solid;
}

.verified_list {
    flex: 1;
    padding: 20px 30px;
}

/*=== //verified ===*/
/*=== setting ===*/
.form_box dt {
    margin-bottom: 5px;
}

p.attention {
    color: gray;
}

/*=== //setting ===*/
/*=== staff_manage ===*/
span.prof_ico img {
    width: 100%;
}

span.prof_ico {
    width: 30px;
    height: 30px;
    overflow: hidden;
    border-radius: 50%;
    display: inline-block;
    vertical-align: middle;
    margin-right: 10px;
}

/*=== //staff_manage ===*/
/*=== contact_list ===*/
#contact_list table.list_table tr:nth-child(odd) {
    background: #fff;
}

#contact_list table.list_table tr.unread>* {
    background: #edf3f5;
    font-weight: bold;
}

#contact_list .command {
    position: absolute;
    right: 0;
    bottom: 0;
}

#contact_list .command .unread_btn,
#contact_list .command .read_btn {
    background: transparent;
    border: none;
    color: #C3C3C3;
    margin-left: 5px;
}

#contact_list .command .unread_btn:before,
#contact_list .command .read_btn:before {
    content: "\f0e0";
    font-family: 'Font Awesome 6 Free';
    font-weight: bold;
    margin-right: 3px;
}

#contact_list .command .read_btn:before {
    content: "\f2b6";
}

#contact_list .sort_btn {
    margin-left: 0;
}

#contact_list td a:hover {
    text-decoration: underline;
}

#contact_list td a {
    color: #444;
}

/*=== //contact_list ===*/
/*=== contact_page ===*/
.single {
    width: 80%;
    margin: 20px auto;
    border: 1px #ccc solid;
    border-radius: 5px;
    padding: 20px;
    box-sizing: border-box;
}

.single .date {
    color: gray;
}

.single h3 {
    font-size: 22px;
}

.single .date .cat {
    color: #f1212c;
    border: 1px #f1212c solid;
    padding: 0px 10px;
    display: inline-block;
    font-size: 13px;
    margin-right: 10px;
    margin-bottom: 15px;
}

.single>div p {
    color: gray;
    margin-bottom: 14px;
}

/*=== //contact_page ===*/
/*=== staff_reg ===*/
.tab {
    display: flex;
    justify-content: center;
    border-bottom: 1px solid #ccc;
}

.tab button {
    background-color: inherit;
    color: black;
    padding: 5px 10px;
    font-size: 14px;
    border: none;
    cursor: pointer;
    transition: background-color 0.3s ease;
    border-bottom: 3px #fff solid;
}

.tab button.active {
    border-color: #4d92a0;
    color: #4d92a0;
}

.tab button:not(:last-child) {
    margin-right: 10px;
}

.staff_reg_form {
    padding: 30px 70px;
    width: 80%;
    margin: 0 auto;
    box-sizing: border-box;
}

.staff_reg_form dt,
.form dt {
    margin-bottom: 5px;
}

.staff_reg_form dd,
.form dd {
    margin-bottom: 25px;
}

.btn_area {
    text-align: center;
    margin-top: 50px;
}

.btn_area label {
    display: block;
    margin-bottom: 20px;
}

.btn_area button {
    display: inline-block;
}

body#staff_registration .content h2 {
    padding: 0 30px;
}

body#staff_registration .content {
    padding: 30px 0;
}

/*=== //staff_reg ===*/
/*=== vacation_req ===*/
body#vacation_req_conf dd {
    color: gray;
}

body#vacation_req_conf dt {
    font-weight: bold;
}

/*=== //vacation_req ===*/
/*=== 36kyotei ===*/
.kyotei36 dl dd {
    border: 1px #ccc solid;
    padding: 10px 20px;
    border-radius: 0 0 10px 10px;
}

.kyotei36 dl dt {
    background: #eee;
    border: 1px #ccc solid;
    padding: 10px 20px;
    border-radius: 10px 10px 0 0;
    margin: 0;
    border-bottom: none;
}

.kyotei36 input[type="number"] {
    min-width: auto;
    width: 50px;
    margin: 0 10px;
    text-align: right;
}

.kyotei36 table {
    width: 100%;
    table-layout: fixed;
}

.kyotei36 .flat-button {
    margin: 0 auto;
    margin-bottom: 80px;
    margin-top: 40px;
}

.kyotei36 .setting .copy_btn {
    background: transparent;
    border: none;
    color: #4d92a0;
    margin-left: 20px;
}

.kyotei36 .setting .copy_btn:before {
    content: "\f24d";
    font-family: 'Font Awesome 6 Free';
    margin-right: 5px;
}

.kyotei36 .setting p.attention {
    margin-top: 6px;
    font-size: 13px;
}

.kyotei36 .setting p {
    margin-bottom: 5px;
}

.kyotei36 {
    border-top: 2px #eee solid;
    padding-top: 25px;
}

.kyotei36 td {
    text-align: right;
}

.kyotei36 div#new36-content,
.kyotei36 div#old36-content {
    max-width: 880px;
}

/*=== //36kyotei ===*/

.sort_radio a.active {
    color: white;
}

/*=== modal ===*/
.modal {
    display: none; /* 初期表示ではモーダルを非表示にする */
    width: 100%;
    height: 100vh;
    position: absolute;
    top: 0;
    left: 0;
    background: rgb(0 0 0 / 30%);
    justify-content: center;
    align-items: center;
    z-index: 200;
}

.modal .inner {
    background: #fff;
    padding: 50px 30px;
    text-align: center;
    border-radius: 10px;
    position: relative;
    max-width: 500px;
    margin: 100px auto;
    z-index: 300;
}

.modal .inner dl {
    text-align: left;
    display: inline-block;
}

.modal .inner p {
    font-size: 16px;
    padding: 20px 0;
}

.modal .inner .sbmit_btn .btn {
    margin: 0 20px;
    margin-top: 30px;
}

.modal .inner a.close {
    color: #c6c6c6;
    font-size: 24px;
    position: absolute;
    right: 11px;
    top: 0px;
}

.modal .inner a.close_txt {
    display: block;
    width: 100%;
    color: gray;
    margin-top: 30px;
}

.modal .inner table {
    width: 500px;
    margin: 0 auto;
    text-align: left;
}

.modal .inner.add_user {
    padding: 0;
    padding-top: 20px;
}

.modal .inner.add_user table tr>* {
    border: none;
}

.modal .inner.add_user th {
    width: 30%;
    vertical-align: top;
}

.modal .inner.add_user .sbmit_btn .btn {
    margin: 0;
}

.modal .inner.add_user .sbmit_btn p {
    padding-bottom: 10px;
    padding-top: 0;
}

.modal .inner.add_user .sbmit_btn {
    border-top: 1px #ccc solid;
    margin-top: 30px;
    padding: 0 30px;
    padding-bottom: 30px;
    padding-top: 20px;
}

.modal .inner.add_user h3 {
    margin-bottom: 30px;
}

.modal .inner p.attention {
    font-size: 12px;
    color: #ec0000;
    padding: 5px 0;
}

.modal .inner p.attention:before {
    content: "\f071";
    font-family: "Font Awesome 6 Free";
    font-weight: bold;
    margin-right: 3px;
}

.modal .inner input[type="file"] {
    text-align: left;
    display: block;
    margin-top: 10px;
}

.modal .inner img {
    max-width: 100px;
}

.modal .btn_area {
    margin-top: 20px;
}

.modal.vacation_delete dl dd {
    color: gray;
}

.modal.vacation_delete dl dt {
    font-weight: bold;
}

.modal.vacation_delete dl {
    width: 80%;
}

/*=== //modal ===*/
.btn_area a {
    display: inline-block;
}

/*--- 240321 update ---*/
#individual,
#bulk,
#staff_confirmation {
    padding-bottom: 150px;
}

#individual .btn_area,
#bulk .btn_area,
#staff_confirmation .btn_area {
    position: fixed;
    bottom: 0;
    width: 100%;
    width: calc(100% - 217px);
    bottom: 0;
    background: #fff;
    box-shadow: 0 0 8px rgb(0 0 0 / 10%);
    right: 0;
    box-sizing: border-box;
    padding: 20px;
}

#bulk .list_table.import_list {
    width: 90%;
    margin: 0 auto;
    word-break: break-all;
}

#bulk .list_table.import_list tr:nth-child(odd),
.list_table.shift_list tr:nth-child(odd) {
    background: #fff;
}

#bulk p.attention {
    background: #f4f4f4;
    padding: 10px 20px;
    border-radius: 5px;
}

#bulk .upload-area {
    margin: auto;
    width: 100%;
    height: 150px;
    position: relative;
    border: 1px dotted rgba(0, 0, 0, .4);
    border-radius: 8px;
}

#bulk .upload-area p {
    width: auto;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    background: #dbe9ec;
    padding: 0 10px;
    color: #4d92a0;
    left: 50%;
}

#bulk #input-files {
    top: 0;
    left: 0;
    opacity: 0;
    position: absolute;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
}

#bulk dd {
    margin-bottom: 10px;
}

#staff_confirmation dd {
    font-size: 16px;
}

#staff_confirmation dt {
    font-weight: bold;
}

#staff_confirmation .profile_preview {
    width: 100px;
    height: 100px;
    background: #606060;
    border-radius: 8px;
}

.sort_menu {
    position: relative;
}

.sort_menu a.flat-button.red {
    position: absolute;
    right: 0;
    top: 0;
}

.verified_list .table_box tr:nth-child(odd) {
    background: #fff;
}

.verified_list .table_box th {
    background: #c2dce1;
}

#profile_edit {
    width: max-content;
}

#profile_edit dt {
    font-weight: bold;
    margin-bottom: 5px;
}

#profile_edit dd ,
.account_setting dd.d_flex {
    display: flex;
    gap: 15px;
    margin-bottom: 25px;
}

#profile_edit dl {
    border: 1px #ccc solid;
    border-radius: 5px;
    padding: 20px;
    padding-bottom: 0;
}
.upload-area-type2 {
    margin: auto;
    width: 150px;
    height: 150px;
    position: relative;
    border: 2px dotted #ccc;
    border-radius: 10px;
    text-align: center;
    font-weight: bold;
    color: #999;
    font-size: 12px;
}
.upload-area-type2 p {
    width: 100%;
    position: absolute;
    top: 50%;
    opacity: .8;
    transform: translateY(-50%);
}
.upload-area-type2 i {
    font-size: 40px;
    display: block;
    margin-bottom: 10px;
}
.icon_upload {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    width: max-content;
}
.icon_upload .attention {
    background: #f4f4f4;
    padding: 10px;
    border-radius: 5px;
    color: #999;
}
#input-files-type2 {
    top: 0;
    left: 0;
    opacity: 0;
    position: absolute;
    width: 150px;
    height: 150px;
    box-sizing: border-box;
    min-width: auto;
}
#input-files-type2:hover {
    cursor: pointer;
}
.account_setting .form_box {
    width: max-content;
}
.account_setting table {
    border-collapse: separate;
    border-spacing: 0px;
}
.account_setting table tr >* {
    border: 1px #ccc solid;
    padding: 10px 20px;
}
.account_setting table th {
    border-radius: 10px 10px 0 0;
    border-bottom: none;
    background: #f7f7f7;
    font-weight: bold;
}

.account_setting table td {
    border-radius: 0 0 10px;
    display: grid;
    gap: 20px;
}
.account_setting .d_flex {
    display: flex;
    gap: 10px;
    align-items: center;
}
.account_setting input.time {
    width: 100px;
    min-width: auto;
    text-align: right;
}
.account_setting dt {
    font-weight: bold;
    margin-bottom: 5px;
}
.account_setting dd {
    margin-bottom: 20px;
}

/*
 タイムライン表示
 */
.timeline {
    display: flex;
    border: 1px solid #ccc;
    overflow-x: auto;
    border-radius: 5px;
}
.timeline-header {
    width: 270px; /* 幅を300pxに固定 */
    flex-shrink: 0; /* 幅の縮小を防ぐ */
    min-width: 150px;
    border-right: 1px solid #ccc;
    background-color: #ffffff;
    display: flex;
    flex-direction: column;
}
.header-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 10px;
    border-bottom: 1px solid #ddd;
    height: 50px; /* 通常の項目の高さ */
}
.header-item.title {
    height: 40px; /* 「日程：日直」の高さを40pxに */
    justify-content: left; /* 中央揃え */
}
.header-item:last-child {
    border-bottom: none;
}
.header-title {
    font-weight: bold;
    display: flex;
    align-items: center; /* アイコンと文字を縦方向に中央揃え */
}
.header-icon {
    width: 24px; /* アイコンのサイズを調整 */
    height: 24px;
    margin-right: 8px; /* アイコンと文字の間隔 */
}
.header-time {
    color: #777;
}
.timeline-content {
    display: grid;
    grid-template-columns: repeat(36, 30px); /* 5:00から23:00まで、30分ごと */
    grid-template-rows: 40px 160px; /* 時間表示40px、予定表示220px */
    width: 1080px; /* 36 * 30px */
    position: relative;
}
.time-slot {
    grid-row: 1;
    text-align: center;
    font-size: 12px;
    border-right: none;
    position: relative;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.time-label {
    position: absolute;
    left: -15px; /* 半分左にずらす */
    top: 14px
}
.event-area {
    grid-row: 2;
    grid-column: 1 / -1;
    position: relative;
    z-index: 2; /* イベントを罫線の上に表示 */
    height: 150px;
    background-color: #fafafa90;
}
.event {
    position: absolute;
    height: 40px;
    border-radius: 4px;
    font-size: 14px;
    display: flex;
    align-items: center;
    padding-left: 5px;
    box-sizing: border-box;
    color: white;
}
.event.blue {
    background-color: #768BEA;
}
.event.light-blue {
    background-color: #62CDDA;
}
.event.banana {
    background-color: #E3C651;
}
.event.navel {
    background-color: #F6A623;
}
.event.orange {
    background-color: #F5A623;
}
.event.lilac {
    background-color: #B39DDB;
}
.event.turquoise {
    background-color: #1ABC9C;
}
.event.green {
    background-color: #2ECC71;
}
.event.purple {
    background-color: #9B59B6;
}
.event.navy {
    background-color: #34495E;
}
.event.gray {
    background-color: #95A5A6;
}
.event.magenta {
    background-color: #E91E63;
}
.event.brown {
    background-color: #795548;
}
.event.line_blue {
    background-color: #3498DB;
}
.event.line_red {
    background-color: #E74C3C;
}
.event.default {
    background-color: #ccc;
}
.current-time {
    position: absolute;
    top: 40px;
    bottom: 0;
    width: 1px;
    background-color: red;
    z-index: 3; /* 現在時刻の線を最前面に */
}
.current-time-dot {
    position: absolute;
    top: -3px;
    width: 6px;
    height: 6px;
    background-color: red;
    border-radius: 50%;
    transform: translateX(-2.5px);
}
.hourly-line {
    position: absolute;
    top: 40px;
    bottom: 0;
    width: 1px;
    background-color: #e0e0e0;
    z-index: 1; /* 罫線を最背面に */
}
.horizontal-separator {
    position: absolute;
    top: 40px;
    left: 0;
    right: 0;
    height: 1px;
    background-color: #e0e0e0;
    z-index: 1; /* 縦の罫線と同じレベル */
}

.timeline-header2 {
    width: 150px; /* 幅を300pxに固定 */
    flex-shrink: 0; /* 幅の縮小を防ぐ */
    min-width: 150px;
    border-right: 1px solid #ccc;
    background-color: #ffffff;
    display: flex;
    flex-direction: column;
}
.header-item2 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 10px;
    border-bottom: 1px solid #ddd;
    height: 150px; /* 通常の項目の高さ */
}
.header-item2.title {
    height: 40px; /* 「日程：日直」の高さを40pxに */
    justify-content: left; /* 中央揃え */
}
.header-item2.midashi {
    position: relative;
    border-bottom: none;
    text-align: center;
    width: 100%;
}
.header-item2.midashi .user {
    position: absolute;
    top: 20px;
    left: 0;
    right: 0;
    margin-right: 20px;
}
.header-item2 .user {
    text-align: center;
}

.header-item2 .user p span {
    display: block;
    color: gray;
}

.header-item2 .user p {
    background: transparent;
    color: #444;
    margin-bottom: 0;
}

.header-item2 p {
    background: #ccc;
    border-radius: 8px;
    margin-bottom: 8px;
    padding: 8px 10px;
    font-weight: bold;
    color: #fff;
    position: relative;
}