/* ==============================
    各一覧画面で使われるtableのレイアウト定義専用cssファイル
   ============================== */
/* ------------------------------------------------------------
 *デフォルトの表の高さを指定（各列の高さを29pxに設定）
 * ------------------------------------------------------------ */
.has-default-table .el-table__cell {
    border: none !important;
    /* セルの内側に線を引くため */
    box-shadow: inset 0 -1px 0 0 #989898,inset -1px 0 0 0 #989898 !important;
    /* 行数が増えるため可変式 */
    /* min-height: 29px !important; */
    height: auto !important;
}
.has-default-table .el-table__cell .cell {
    /* 1行の高さを29px */
    line-height: 29px !important;
    padding: 0 2px !important;
}
.has-default-table .el-table__cell .cell .btn-xs,
.has-default-table .el-table__cell .cell .btn-s,
.has-default-table .el-table__cell .cell .btn-m,
.has-default-table .el-table__cell .cell .btn-l,
.has-default-table .el-table__cell .cell .btn-xl {
    margin-top: 2px !important;
    margin-bottom: 2px !important;
    vertical-align: top !important;
    align-self: flex-start !important;
}
/* ------------------------------------------------------------
 * 表の中に入力欄が存在している場合(各列の高さを35pxに設定)
 * ------------------------------------------------------------ */
.has-calendar-table .el-table__cell {
    box-sizing: border-box !important;
    border: none !important;
    /* セルの内側に線を引くため */
    box-shadow: inset 0 -1px 0 0 #989898, inset -1px 0 0 0 #989898 !important;
    /* min-height: 35px !important; */
    height: auto !important;
}

.has-calendar-table .el-table__cell .cell {
    line-height: 35px !important;
    /* 横方向だけ2px、縦方向は入れない */
    padding: 0 2px !important;
    height: auto !important;
}

/* select・input・カレンダー入力欄など、実際のコンポーネントが入る場合 */
.has-calendar-table .select_box_input,
.has-calendar-table .data_input,
.has-calendar-table .text_input,
.has-calendar-table .toggle_input,
.has-calendar-table .calendar_input .el-input__wrapper,
.has-calendar-table .el-date-editor.el-input,
.has-calendar-table .el-date-editor.el-input__wrapper {
    line-height: normal !important;
    padding-left: 3px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    vertical-align: top !important;
    align-self: flex-start !important;
}
/* marginだけは、外側の el-date-editor.el-input を除いた、内側の要素にだけ指定する */
.has-calendar-table .select_box_input,
.has-calendar-table .data_input,
.has-calendar-table .text_input,
.has-calendar-table .toggle_input,
.has-calendar-table .calendar_input .el-input__wrapper,
.has-calendar-table .el-date-editor.el-input__wrapper {
    margin-top: 2px !important;
    margin-bottom: 2px !important;
}
/* 幅を100%にしたい要素(date_input/time_input/select_box_input/calendar_input以外) */
.has-calendar-table select:not(.date_input,.time_input,.select_box_input),
.has-calendar-table .el-date-editor.el-input:not(.date_input,.time_input,.calendar_input),
.has-calendar-table .el-date-editor.el-input__wrapper:not(.date_input,.time_input,.calendar_input) {
    width: 100% !important;
}
/* テーブル内の重複線削除 */
.has-calendar-table table {
    border-bottom: none !important;
}
/* ------------------------------------------------------------
 *以下elementPlusが使われていないtableの場合
 * ------------------------------------------------------------ */
/* ------------------------------------------------------------
 *デフォルトの表の高さを指定（各列の高さを25pxに設定
 * ------------------------------------------------------------ */
/*高さ29pxとセルの枠線の設定 */
.table-basic-style th,
.table-basic-style td {
    border: none !important;
    box-shadow: inset 0 -1px 0 0 #989898,
                inset -1px 0 0 0 #989898 !important;
    min-height: 29px !important;
    height: auto !important;
    line-height: 29px !important;
    padding: 0 2px !important;
}
/* 一番上の線 */
.table-basic-style tr:first-child th,
.table-basic-style tr:first-child td {
    box-shadow: inset 0 -1px 0 0 #989898,
                inset -1px 0 0 0 #989898,
                inset 0 1px 0 0 #989898 !important;
}
/* 一番左の線 */
.table-basic-style th:first-child,
.table-basic-style td:first-child {
    box-shadow: inset 0 -1px 0 0 #989898,
                inset -1px 0 0 0 #989898,
                inset 1px 0 0 0 #989898 !important;
}
/*一番上かつ一番左のセル*/
.table-basic-style tr:first-child th:first-child,
.table-basic-style tr:first-child td:first-child {
    box-shadow: inset 0 -1px 0 0 #989898,   /* 下線 */
                inset -1px 0 0 0 #989898,  /* 右線 */
                inset 0 1px 0 0 #989898,   /* 上線 */
                inset 1px 0 0 0 #989898 !important; /* 左線 */
}
.table-basic-style .btn-xs,
.table-basic-style .btn-s,
.table-basic-style .btn-m,
.has-default-table .btn-l,
.has-default-table .btn-xl {
    margin-top: 2px !important;
    margin-bottom: 2px !important;
    vertical-align: top !important;
    align-self: flex-start !important; /* vertical-align: topに相当 */
}
/* ------------------------------------------------------------
 *表の中にカレンダー（入力欄）が存在している場合(各列の高さを35pxに設定)
 * ------------------------------------------------------------ */
/*高さ34pxとセルの枠線の設定 */
.table-calendar-style th,
.table-calendar-style td {
    box-sizing: border-box !important;
    border: none !important;
    box-shadow: inset 0 -1px 0 0 #989898,
                inset -1px 0 0 0 #989898 !important;
    min-height: 35px !important;
    height: auto !important;
    line-height: 35px !important;
    padding: 0 2px !important;
}
/* 一番上の線 */
.table-calendar-style:not(.no_shadow) tr:first-child th,
.table-calendar-style:not(.no_shadow) tr:first-child td {
    box-shadow: inset 0 -1px 0 0 #989898,
                inset -1px 0 0 0 #989898,
                inset 0 1px 0 0 #989898 !important;
}
/* 一番左の線 */
.table-calendar-style th:first-child,
.table-calendar-style td:first-child {
    box-shadow: inset 0 -1px 0 0 #989898,
                inset -1px 0 0 0 #989898,
                inset 1px 0 0 0 #989898 !important;
}
/*一番上かつ一番左のセル*/
.table-calendar-style:not(.no_shadow) tr:first-child th:first-child,
.table-calendar-style:not(.no_shadow) tr:first-child td:first-child {
    box-shadow: inset 0 -1px 0 0 #989898,   /* 下線 */
                inset -1px 0 0 0 #989898,  /* 右線 */
                inset 0 1px 0 0 #989898,   /* 上線 */
                inset 1px 0 0 0 #989898 !important; /* 左線 */
}
.table-calendar-style .select_box_input,
.table-calendar-style .data_input,
.table-calendar-style .text_input,
.auth-table-clean .toggle_input {
    box-sizing: border-box !important;
    line-height: normal !important;
    margin-top: 2px !important;
    margin-bottom: 2px !important;
    padding-left: 3px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
    vertical-align: top !important;
}
/* ------------------------------------------------------------
 *以下特殊なテーブル専用レイアウト
 * ------------------------------------------------------------ */
/* 権限追加専用テーブル */
.auth-table-clean th,
.auth-table-clean td {
    border: none !important;
    box-shadow: inset 0 -1px 0 0 #989898,
                inset -1px 0 0 0 #989898 !important;
    height: 35px !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
    line-height: 35px !important;
    padding: 0 2px !important;
    vertical-align: middle;
}
/* menu-title行：上下に線を引く */
.auth-table-clean th.menu-title {
    box-shadow: inset 0 -1px 0 0 #989898,
                inset -1px 0 0 0 #989898,
                inset 0 1px 0 0 #989898 !important;   /* 下線+右線+上線 */
}
/* rowspanを持つセル（機能名列）：下線を描かない。境界線は最終行の他列側に任せる */
.auth-table-clean td[rowspan] {
    box-shadow: inset -1px 0 0 0 #989898 !important;
}
/* blank-row：5pxの隙間、線なし */
.auth-table-clean tr.blank-row td {
    box-shadow: none !important;
    height: 5px !important;
    line-height: 5px !important;
    padding: 0 !important;
}
/* トグルボタンの余白調整 */
.auth-table-clean .el-switch {
    height: auto !important;
}
/* テーブル自体 */
.auth-table-clean {
    border-collapse: separate;
    border-spacing: 0;
    border-left: 1px solid #989898;
}
.auth-table-clean td[rowspan] {
    box-shadow: inset -1px 0 0 0 #989898,
                inset 0 -1px 0 0 #989898 !important;   /* 右線+下線 */
}
/* blank-rowの位置だけ、左端の線を隠す */
.auth-table-clean tr.blank-row td:first-child {
    box-shadow: none !important;
    height: 5px !important;
    line-height: 5px !important;
    padding: 0 !important;
    position: relative;
}
.auth-table-clean tr.blank-row td:first-child::before {
    content: '';
    position: absolute;
    left: -2px;
    top: 0;
    width: 3px;
    height: 100%;
    background-color: #ffffff;  /* テーブルの背景色に合わせる */
}

/* セッション専用 */
.table-session-style th,
.table-session-style td {
    border: none !important;
    box-shadow:
        inset 0 -1px 0 0 #989898,   /* 下線 */
        inset -1px 0 0 0 #989898 !important; /* 右線 */
    min-height: 29px !important;
    height: auto !important;
    line-height: 29px !important;
    padding: 0 2px !important;
}
/* 一番上の行*/
.table-session-style thead tr:first-child th {
    box-shadow:
        inset 0 -1px 0 0 #989898,   /* 下線 */
        inset -1px 0 0 0 #989898,   /* 右線 */
        inset 0 1px 0 0 #989898 !important; /* 上線 */
}
/* 一番左の列 */
.table-session-style th:first-child,
.table-session-style td:first-child {
    box-shadow:
        inset 0 -1px 0 0 #989898,   /* 下線 */
        inset -1px 0 0 0 #989898,   /* 右線 */
        inset 1px 0 0 0 #989898 !important; /* 左線 */
}
/*左上セルだけ “左線を維持しつつ” 上線も付ける */
.table-session-style thead tr:first-child th:first-child {
    box-shadow:
        inset 0 -1px 0 0 #989898,   /* 下線 */
        inset -1px 0 0 0 #989898,   /* 右線 */
        inset 0 1px 0 0 #989898,    /* 上線 */
        inset 1px 0 0 0 #989898 !important; /* 左線 */
}
/* 変更履歴テーブル専用スタイル（rowspan対応版） */
.table-history-style {
    border-collapse: collapse;
    border-left: 1px solid #989898;
}
.table-history-style th,
.table-history-style td {
    border: none !important;
    box-shadow: inset 0 -1px 0 0 #989898,
                inset -1px 0 0 0 #989898 !important;
    min-height: 29px !important;
    height: auto !important;
    line-height: 29px !important;
    padding: 0 2px !important;
}
/* テーブル全体で本当に一番最初のtbodyの、その中の最初のtrにだけ上線を追加 */
.table-history-style > tbody:first-of-type tr:first-child th,
.table-history-style > tbody:first-of-type tr:first-child td {
    box-shadow: inset 0 -1px 0 0 #989898,
                inset -1px 0 0 0 #989898,
                inset 0 1px 0 0 #989898 !important;
}
/* ------------------------------------------------------------
 *全テーブルに適用させる処理
 * ------------------------------------------------------------ */
/* 検索結果が空の時ボーダーが重複してしまうのを防ぐため */
.el-table__empty-block {
    border-top: none !important;
}
.highlight-cell {
    background-color: rgb(255, 255, 128);
}
/* チェックボックスの中央寄せ(エレメントプラスが使われている場合) */
.has-default-table .el-table__cell.column-button-center .cell,
.has-default-table .el-table__cell.column-checkbox-center .cell,
.has-calendar-table  .el-table__cell.column-checkbox-center .cell{
    display: flex !important;
    justify-content: center; /* 左右中央 */
    align-items: center;     /* 上下中央 */
}
/* チェックボックスの中央寄せ(エレメントプラスが使われていない場合) */
.table-basic-style input.column-checkbox-center {
    display: block;
    margin: auto;
}
/* ボタンの中央寄せ(エレメントプラスが使われていない場合) */
.table-basic-style .column-button-center a {
    display: block;
    margin: 0 auto;
    width: fit-content;
}
/* thの見出しボタンを中央寄せ */
.table-basic-style th.column-button-center {
    text-align: center;
}
/* トグル(el-switch)の中央寄せ */
.switch-center {
    text-align: center;
}
.el-table_border {
    border: 1px solid #989898;
}
.el-table_shadow {
    outline: 1px solid #989898;
    box-sizing: border-box;
}
.el-table_shadow .gutter {
    width: 0 !important;
}
.el-table_shadow th.gutter {
    display: none !important;
}
.has-default-table .el-table__cell .cell .btn-m.user-select-btn {
    margin-right: 0 !important;
}
/* 承認ダイアログのテーブルサイズ（最大にするとズレが発生したため） */
.table-form-item .table-wrapper {
  width: 280px; /* 具体的な数値で固定 */
  max-height: 250px;
  border: 1px solid #dcdfe6;
  border-radius: 4px;
}
.column-checkbox-center input[type="checkbox"] {
    margin: 0 !important;
    display: block; /* inline-blockだとベースラインの影響を受けるため */
}
/* 背景色つきのdivが線を隠さないように調整 */
.has-default-table .el-table__cell .cell div[id^="group_row_"] {
    background-color: transparent !important; /* div自体の背景は透明に */
    width: 100%;
    height: 100%;
}
/* カレンダーテーブル内の p タグの前後の空白をゼロにする */
.has-default-table p {
    margin: 0 !important;
    padding: 0 !important;
}
/* ボタンの設定 */
.has-default-table .el-table__cell .cell .btn-xs,
.has-default-table .el-table__cell .cell .btn-s,
.has-default-table .el-table__cell .cell .btn-m,
.has-default-table .el-table__cell .cell .btn-l {
    /* ボタンをセルの上端に配置（下だと高さにズレが発生したため） */
    vertical-align: top !important;
    /* display: block !important; */
    margin-left: auto !important;
    margin-right: auto !important;
}
/* 利用者設定列のボタンだけ中央揃えにする */
.has-default-table .user-setting-column .cell {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}
.has-default-table .user-setting-column .cell .btn-m {
    vertical-align: middle !important;
    display: inline-block !important; /* block を打ち消す */
}
.line-row {
    height: 29px;
    line-height: 29x;
    display: flex;
    overflow: hidden; /* はみ出し防止 */
    align-items: center;      /* 縦方向中央 */
    justify-content: flex-start;  /* 横方向は左揃えに変更 */
    margin: 0;
    padding: 0 2px;            /* 左から2px開始 */
    box-sizing: border-box;
}

/* 1. 親要素(cell)を整列させる */
.has-default-table .el-table__header .header-flex-column .cell {
    display: flex !important;
    align-items: center;
    height: 29px !important;
    overflow: visible !important;
    padding: 0 2px !important;
    position: relative; /* アイコンを微調整するための基準 */
}
/* 2. line-rowの挙動を「ブロック」から「中身に合わせた幅」に変更 */
.header-flex-column .cell .line-row {
    display: flex !important;
    align-items: center;
    width: auto !important; /* 横幅100%を解除 */
    height: 29px !important;
    overflow: visible !important;
}





