@charset "utf-8";

/* 全体的な設定 */
body {
    font-size: 14px;
    font-family: "Noto Sans JP", "Helvetica Neue", Helvetica, Arial, "游ゴシック体", "Yu Gothic", YuGothic, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
}

/* main */
main {
    margin: 0px;
}

/* フォーム */
form {
    margin: 0px;
}

/* アンカー */
a {
    text-decoration: none;
}
a:hover {
    text-decoration: none;
}

/* ラベル */
label {
    font-size: 14px;
    font-weight: bold;
    margin: 0px;
}

/* ホバー時にカーソルを変える */
.hover_cursor_pointer:hover {
    cursor: pointer;
}

/* インプットボックス */
input[type="text"] {
    height: 25px;
    font-size: 14px;
    padding: 0px 10px;
    margin: 0px;
}
input[type="password"] {
    height: 30px;
    font-size: 14px;
    padding: 0px 10px;
    margin: 0px;
}
input[type="date"] {
    color: black;  /* これをあえて指定しないと safari のテキスト色が青くなる */
    height: 25px;
    /* width: 150px; */
    font-size: 14px;
    padding: 0px 5px;
    margin: 0px;
    position: relative;  /* アイコンを非表示にするのに必要 */
}
/* 下記、アイコンを非表示にする */
input[type=date]::-webkit-calendar-picker-indicator {
  position: absolute;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}
input[type="file"] {
    font-size: 14px;
    padding: 0px 10px;
    margin: 0px;
}
input[type="file"] + img {
    /* file の隣の img の垂直配置 */
    vertical-align: middle;
}
input[type="checkbox"] {
    margin: 0px;
    transform: scale(1.5);
    margin-right: 10px;
}
input[type="checkbox"] + label {
    /* checkbox の隣の label は横に並べて配置する */
    display: inline-block;
}
input[type="checkbox"]:hover {
    cursor: pointer;
}
input.right {
    text-align: right;
}

/* テキストエリア */
textarea {
    font-size: 14px;
    padding: 10px;
    margin: 0px;
    height: 100px;
}

/* セレクトボックス */
select {
    color: black;  /* これをあえて指定しないと safari のテキスト色が青くなる */
    font-size: 14px;
    margin: 0px;
    height: 25px;
    width: 100%;
    padding: 0px 0px 0px 5px;
}
select.w100 {
    width: 100%;
}
select:hover {
    cursor: pointer;
}

/* ボタン */
button {
    /* マテリアルデザインで勝手に大文字になるのを防止する */
    text-transform: none;
    /* 基本のフォント設定 */
    height: auto;
    font-weight: normal;
    font-size: 14px;
    border: none;
    box-shadow: 2px 2px 5px gray;
    margin: 0px;
}
.button_blue {
    color: white;
    background-color: #418AB3;
}
.button_green {
    color: white;
    background-color: #A6B727;
}
.button_white {
    color: gray;
    background-color: white;
}

/* テキストの色 */
.text_red {
    color: red;
}
.text_orange {
    color: orange;
}

/* テキスト強調 */
.text_red_bold {
    color: red;
    font-weight: bold;
}
.text_orange_bold {
    color: orange;
    font-weight: bold;
}

/* テキストのアンダーライン */
.text_underline_yellow {
    text-decoration: none; /* 既存のアンダーラインを消す */
    position: relative; /* 親要素として相対位置を設定 */
}  
.text_underline_yellow::after {
    content: ''; /* 擬似要素 */
    position: absolute;
    bottom: -2px; /* 文字の下に少し被せる */
    left: 0;
    width: 100%;
    height: 10px; /* アンダーラインの太さ */
    background-color: rgba(255, 255, 0, 0.2); /* アンダーラインの色 */
}

/* 必須マーク */
.required_mark {
    color: red;
    padding: 0px 10px;
}

/* 説明書き */
.explanation {
    font-size: 12px;
}

/* フラッシュメッセージ */
.flash_area {
    margin: 20px 0px;
}
.flash-danger {
    color: red;
}
.flash-success {
    color: #A6B727;
}

/* 日付時刻 */
/* 多言語対応でちらつくので、初期は非表示にしておく */
.convert_datetime_format {
    display: none;
}

/* ----------------------------------------- */

/* ログイン */

/* ロゴエリア */
#login_logo_area {
    text-align: center;
    padding: 50px 0px;
    border-bottom: 5px solid #418AB3;
}

/* 入力エリア */
#login_input_area {
    display: flex;
    justify-content: center;
    align-items: center;
    padding: 50px 0px;
}

/* フォームエリア */
#login_form_area {
    width: 400px;
}
.login_form_item {
    margin-bottom: 20px;
}
.login_form_button {
    margin-bottom: 40px;
}
.login_form_forgot_password {
    text-align: center;
    margin-bottom: 20px;
}
.login_form_forgot_password img {
    margin-right: 10px;
    vertical-align: middle;
}

/* Submit ボタン */
#login_submit_button {
    width: 100%;
    font-size: 20px;
    margin-top: 50px;
    padding: 10px 0px;
}

/* ----------------------------------------- */

/* フッター */

/* ログイン画面用 */
#footer_copyright_login {
    color: #AACBDD;
    font-size: 12px;
    text-align: center;
    margin-top: 40px;
}

/* ログイン画面以外 */
footer {
    font-size: 12px;
    text-align: center;
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 10px 0px;
    background-color: #418AB3;
    color: white;
    z-index: 999;
}

/* ----------------------------------------- */

/* loading */

#loader-bg {
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    background: #000000;
    z-index: 99998;
    opacity: 0.6;
}

#loader {
    display: none;
    position: fixed;
    top: 50%;
    left: 50%;
    width: 200px;
    height: 200px;
    margin-top: -100px;
    margin-left: -100px;
    text-align: center;
    color: #ffffff;
    z-index: 99999;
}

/* ----------------------------------------- */

/* 検索エリア */
.search_area {
    background-color: white;
    margin-top: 120px;
    padding: 10px 10px;
    width: 100%;
    position: relative;  /* 開閉ボタンを絶対位置で配置するために必要 */
}

/* 開閉ボタン */
#open-close-toggle-button {
    /* 円を描く */
    width: 30px;
    height: 30px;
    background-color: lightgray;
    border-radius: 50%;
    /* 位置調整 */
    position: absolute;
    bottom: -15px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 998;
    cursor: pointer;
    text-align: center;
}
#open-close-toggle-button:hover {
    background-color: #606c76;
}
#open-close-toggle-button img {
    margin-top: 3px;
    max-width: 80%;
}

/* ステータス選択 */
.select_status {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    /* margin: 10px 20px 30px 20px; */
    margin: 0px;
}
.select_status_item {
    display: flex;
    align-items: center;
    border: 1px solid #418AB3;
    padding: 5px 20px;
    margin: 5px 0px;
    font-size: 16px;
    color: #418AB3;
    height: 30px;
    cursor: pointer;
}
.select_status_item.active {
    background-color: #418AB3;
    color: white;
}
.select_status_item.green {
    border: 1px solid #40B3A3;
    color: #40B3A3;
}
.select_status_item.green.active {
    background-color: #40B3A3;
    color: white;
}

/* バッジ */
.select_status_badge {
    color: white;
    font-size: 9px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-color: red;
    margin-left: 10px;
    display: flex;            /* 文字を中央に寄せるため */
    justify-content: center;  /* 文字を中央に寄せるため */
    align-items: center;      /* 文字を中央に寄せるため */
    line-height: 0px;
    letter-spacing: 1px;
}
.select_status_badge.gray {
    background-color: silver;
}

/* 条件入力 */
.condition_grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    min-width: 0;
    gap: 5px;
    margin: 10px 10px 5px 10px;
}
.condition_grid > div {
    display: grid;
    grid-template-columns: 1fr 2fr;
    min-width: 0;
    gap: 5px;
    align-items: center;
}
.condition_grid > div > .label {
    text-align: right;
}
.condition_grid > div > .input > input {
    width: 100%;
}
.condition_grid > div > .input > span {
    text-align: center;
}
.condition_grid > div.date_between > .input {
    display: grid;
    grid-template-columns: 45% 10% 45%;
    min-width: 0;
    align-items: center;
}

/* ----------------------------------------- */

/* 一覧エリア */
.list_area {
    padding: 10px;
}

/* テーブル */
.list_table {
    width: 100%;
    overflow: scroll;
}
.list_table_error {
    margin: 10px 0px;
}
.list_table table {
    border-collapse: collapse;
    border-top: 1px solid lightgray;
    border-bottom: 1px solid lightgray;
}
.list_table table.white tbody tr {
    background-color: white;
}
.list_table thead {
    position: sticky;
    top: 0;
    color: white;
    background: #418AB3;
    z-index: 100;
    padding: 5px 5px;
}
.list_table table.green thead {
    background: #40B3A3;
}
.list_table th {
    text-align: center;
    border: 1px solid lightgray;
    padding: 5px 5px;
    /* 折り返しを有効にする */
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-all;
    white-space: normal;
}
.list_table td {
    border: 1px solid lightgray;
    padding: 5px 5px;
    /* 折り返しを有効にする */
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-all;
    white-space: normal;
}
.list_table th.sort,
.list_table td .sp-header.sort {
    cursor: pointer;
}
.list_table td.center {
    text-align: center;
}
.list_table td.right {
    text-align: right;
}
.list_table th a {
    color: white;
}
.list_table td a {
    text-decoration: underline;
}
.list_table img {
    vertical-align: middle;
}
.list_table .attached_file {
    display: flex;
    align-items: center;
    justify-content: center;
}
.list_table .attached_file img {
    margin: 0px 2px;
}
.list_table input[type="checkbox"] {
    margin: 0px;
}
.list_table td span.sp-header {
    display: none;
}

/* 一覧テーブル内の添付ファイル */
.list_table_receipt_files {
    display: block;
}

/* 一覧テーブル内の添付ファイルアップロード */
.list_table .attached_file div {
    margin: 0px 5px;
}

/* 発注一覧の発送連絡未回答時の数量入力 */
.shipping_date_not_answered_quantity_input {
    display: flex;
    align-items: center;
}
.shipping_date_not_answered_quantity_input > div:first-of-type {
    flex-basis: 70%
}
.shipping_date_not_answered_quantity_input > div:last-of-type {
    flex-basis: 30%;
    margin: 0px 0px 0px 5px;
}

/* ページング */
.list_count_paging {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin: 5px 0px;
}
.list_count_paging_button {
    display: flex;
    align-items: center;
}
.list_count_paging_button img {
    vertical-align: middle;
    margin-right: 5px;
}

.list_table tr.selected {
    background-color: #FFD9D9 !important;
}

/* 一覧上部のメッセージ表示エリア */
.list_up_message_area {
    padding: 10px 10px 5px 10px;
}
.list_up_message_area img {
    vertical-align: middle;
    margin-right: 5px;
}

/* 一覧上部のボタン表示エリア */
.list_up_button_area {
    display: flex;
    /* padding: 10px 0px; */
}
.list_up_button_area > .left {
    flex-basis: 50%;
    display: flex;
}
.list_up_button_area > .right {
    flex-basis: 50%;
    text-align: right;
}
.list_up_button_area img {
    vertical-align: middle;
    margin-right: 5px;
}

/* ----------------------------------------- */

/* 詳細画面のヘッダエリア */
.detail_header_area {
    margin-top: 120px;
    padding: 5px 10px;
    background-color: white;
    position: relative;  /* 開閉ボタンを絶対位置で配置するために必要 */
}

/* 詳細画面のヘッダエリアのテーブル */
.detail_header_area table {
    border: none;
    margin: 0px;
}
.detail_header_area th {
    border: none;
    text-align: right;
    padding: 5px 10px 5px 0px;
    width: 150px;
    vertical-align: top;
}
.detail_header_area td {
    border: none;
    padding: 5px;
    vertical-align: top;
}

/* 詳細画面のヘッダエリアのグリッド */
.detail_header_contents_grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    /* grid-template-columns: repeat(5, auto); */
    border-top: 1px solid lightgray;
    border-left: 1px solid lightgray;
    margin: 10px 10px 5px 10px;
}
.detail_header_contents_grid > div {
    border-right: 1px solid lightgray;
    border-bottom: 1px solid lightgray;
    padding: 2px 5px;
    display: flex;
}
.detail_header_contents_grid > div.v_center {
    align-items: center;
}
.detail_header_contents_grid .show_pc_only {
    display: block;
}
.detail_header_contents_grid .show_responsive_only {
    display: none;
}
.detail_header_contents_grid .label {
    margin-right: 5px;
}
.detail_header_contents_grid .label.fit_contents {
    min-width: fit-content;
}
.detail_header_contents_grid .suppliers_header_remarks {
    resize: none;
    height: 100%;
    min-height: 56px;
    /* width: 300px; */
    width: 100%;
    padding: 2px 10px;
}
.detail_header_contents_grid .suppliers_header_remarks_parent_div {
    width: 100%;
}
.detail_header_contents_grid .input_error_list {
    line-height: 1.2em;
}
.detail_header_contents_grid .block {
    display: block;
}
.detail_header_contents_grid .file_delete_header_attached_file img {
    vertical-align: middle;
    margin-right: 5px;
}
.detail_header_contents_grid .btn_rounded_button.compact {
    font-size: 12px;
    height: 20px;
    line-height: 1em;
    padding: 0px 8px;
    margin: 0px 5px 0px 0px;
    border-radius: 8px;
}
.detail_header_contents_grid .btn_rounded_button.compact img {
    width: 10px;
}
.detail_header_contents_grid .file_download_header_attached_file_list {
	width: 100%;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	-webkit-text-overflow: ellipsis;
	-o-text-overflow: ellipsis;
}
.detail_header_contents_grid .colspan_2 {
    grid-column: span 2;
}
.detail_header_contents_grid .rowspan_2 {
    grid-row: span 2;
}
.detail_header_contents_grid .btn_width_max_button {
    width: 100%;
}

/* 見積詳細の納期一括セレクトボックス */
#due_date_batch_settings {
    width: 100%;
}
/* > を付けないと、全体のグリッドの div にも width: 100% が効いてしまう */
div:has(> #due_date_batch_settings) {
    width: 100%;
}

/* 詳細画面の i マークの行 */
.detail_header_inform {
    display: flex;
    margin: 5px 10px;
    align-items: flex-start;
}
.detail_header_inform div {
    padding: 0px 5px 0px 0px;
}
.detail_header_inform img {
    vertical-align: middle;
    margin-right: 10px;
}

/* 詳細画面の辞退時の回答内容 */
.detail_header_decline {
    background-color: whitesmoke;
    padding: 5px 10px;
    margin-bottom: 5px;
}
.detail_header_decline_bottom {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    margin-bottom: 20px;
}
.detail_header_decline_bottom > div:first-of-type {
    flex-basis: auto;
}
.detail_header_decline_bottom > div:last-of-type {
    flex-basis: 350px;
    text-align: right;
}
.detail_header_decline_bottom img {
    vertical-align: middle;
    margin-right: 5px;
}
.detail_header_decline th {
    padding: 2px 5px 2px 2px;
}
.detail_header_decline td {
    padding: 2px 2px 2px 5px;
}

/* 詳細画面のリストエリア */
.detail_list_area {
    padding: 10px;
}

/* 詳細画面のボタンエリア */
.detail_button_area {
    padding: 5px 10px;
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
}
.detail_button_area_right {
    display: flex;    
}

/* 詳細画面のテーブル */
.detail_table {
    width: 100%;
    overflow: scroll;
}
.detail_table table {
    border-collapse: collapse;
    border-top: 1px solid lightgray;
    border-bottom: 1px solid lightgray;
}
.detail_table table.white tbody tr {
    background-color: white;
    line-height: 1.2em;
}
.detail_table thead {
    position: sticky;
    top: 0;
    color: white;
    background: #418AB3;
    z-index: 100;
    padding: 5px 5px;
}
.detail_table table.green thead {
    background: #40B3A3;
}
.detail_table th {
    text-align: center;
    border: 1px solid lightgray;
    padding: 2px 5px;
    /* 折り返しを有効にする */
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-all;
    white-space: normal;
}
.detail_table td {
    border: 1px solid lightgray;
    padding: 2px 5px;
    /* 折り返しを有効にする */
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-all;
    white-space: normal;
}
.detail_table td.center {
    text-align: center;
}
.detail_table td.right {
    text-align: right;
}
.detail_table tr.decline {
    background-color: gainsboro !important;
}
.detail_table img {
    vertical-align: middle;
}
.detail_table input[type="checkbox"] {
    margin: 0px;
}
.detail_table td span.sp-header {
    display: none;
}

/* 数値系項目の幅調整 */
/* 表示のみ */
.detail_table td.td_number {
    min-width: 80px;   /* 最小幅を指定 */
    max-width: 100%;   /* 親要素に収まるように可変 */
    box-sizing: border-box; /* paddingやborderを幅に含める */
}
/* input部分 */
.custom-width {
    min-width: 70px;  /* 必要に応じて調整 */
    max-width: 150px; /* 任意 */
    width: auto;      /* 他のスタイルを壊さない */
}
/* td部分 */
.number-td {
    min-width: 80px;   /* tdの最小幅 */
    width: 120px;       /* 標準幅 */
}
.number-purchase-td {
    min-width: 190px;   /* tdの最小幅 */
    width: 190px;       /* 標準幅 */
}

/* 日付枠の調整
td.adjust-width-date {
    min-width: 120px;
    width: 120px;
}
td.adjust-width-date input[type="date"] {
    width: 100%;
    box-sizing: border-box;
} */

/* 詳細画面のテーブル内の受領ファイル */
.detail_list_receipt_files a {
    text-decoration: underline;
}

/* 詳細画面のテーブル内の備考　初期状態：PC用を表示、SP用を非表示 */
.remarks_text.pc {
    display: inline;
}
.remarks_text.sp {
    display: none;
}
/* カスタムツールチップ */
.remarks_text[data-tooltip],
.comment_text[data-tooltip] {
    position: relative;
    cursor: pointer;
}

.remarks_text[data-tooltip]:hover::after,
.comment_text[data-tooltip]:hover::after {
    content: attr(data-tooltip);
    position: absolute;

    /* デフォルトの位置（親要素基準） */
    left: 50%;
    bottom: calc(100% + 4px); /* 少し上に離す */
    transform: translateX(-50%);

    /* 吹き出しの見た目 */
    background: #333;
    color: #fff;
    padding: 6px 10px;
    font-size: 14px;
    border-radius: 4px;
    z-index: 999999;
    pointer-events: none; /* 操作の邪魔をしない */

    /* 横幅対策（これが重要） */
    width: max-content;
    max-width: min(500px, 90vw); 
    white-space: normal;
    word-break: break-word;
}
/* data-tooltip が空の場合はツールチップを表示しない */
.remarks_text[data-tooltip=""]:hover::after,
.comment_text[data-tooltip=""]:hover::after,
.comment_edit_icon[data-tooltip=""]:hover::after {
    content: none;
}
/* ツールチップを強制的に表示 */
.global-tooltip {
    position: fixed;
    background: #333;
    color: #fff;
    padding: 6px 10px;
    border-radius: 4px;
    font-size: 14px;
    z-index: 999999999;
    max-width: min(500px, 90vw);
    pointer-events: none;
}

/* 詳細画面のテーブル内のコメント　初期状態：PC用を表示、SP用を非表示 */
.comment_text.pc {
    display: inline;
}
.comment_text.sp {
    display: none;
}

/* 見積依頼詳細のヘッダー入力可能部分 */
.detail_header_input {
    background-color: #ffe4c4 !important;
}

/* ----------------------------------------- */

/* ダイアログ */

/* ダイアログ全体の設定 */
.ui-dialog {
    font-family: inherit !important;  /* Body の設定を使用 */
    background-color: #f0f8ff;
    box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.3); /* 影を追加 */
    padding: 0px;
    border: none !important;
}

/* 以下、JQuery UI のレスポンシヴ対応 */
.ui-dialog {
  width: 90% !important;         /* 基本的な幅 */
  max-width: 850px !important;   /* デスクトップでの最大幅 */
  min-width: 300px !important;   /* 最小幅を確保 */
  left: 50% !important;
  transform: translateX(-50%) !important;
}
.ui-dialog .ui-dialog-content {
  box-sizing: border-box;
}

/* ダイアログ内の入力部品の設定 */
.ui-widget input,
.ui-widget select,
.ui-widget textarea,
.ui-widget button {
    font-family: inherit !important;  /* Body の設定を使用 */
}

/* ダイアログ内のコンテンツの余白 */
.ui-dialog-content {
    padding: 0px !important;
}

/* ダイアログのタイトル部分を消す */
.ui-dialog-titlebar {
    display: none;
}

/* オーバーレイの設定 */
.ui-widget-overlay {
    z-index: 9999 !important;  /* 他の要素よりも上に */
    background: rgba(0, 0, 0, 0.9) !important;  /* 色を濃く */
}

/* ---------- */

/* 発注情報ダイアログ */

/* タイトル */
.dialog_title {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 5px 10px;
    background-color: gray;
    color: white;
    line-height: normal;
}
.dialog_title img {
    vertical-align: middle;
}

/* ボディ */
.dialog_body {
    padding: 10px;
}
.dialog_body table {
    border: none;
    margin: 0px;
}
.dialog_body th {
    border: none;
    text-align: right;
    padding: 5px 10px 5px 0px;
    width: 100px;
    vertical-align: top;
}
.dialog_body td {
    border: none;
    padding: 5px;
    vertical-align: top;
}
.dialog_body a {
    color: var(--color-links);
    transition: color 0.2s linear;
    text-decoration: underline;
}
.dialog_body img {
    vertical-align: middle;
    margin-right: 5px;
}

/* 行 */
.dialog_row {
    margin: 10px 0px;
}
.dialog_row.center {
    margin: 20px 0px;
    text-align: center;
}
.dialog_row.center button {
    margin: 0px 10px;
}

/* サブタイトル */
.dialog_sub_title {
    font-weight: bold;
    padding-left: 10px;
    margin-bottom: 10px;
    border-left: 5px solid #418AB3;
}
.dialog_sub_title.green {
    border-left: 5px solid #40B3A3;
}

/* 発送連絡情報テーブル */
.dialog_shipping_table {
    border-collapse: collapse;
    border-top: 1px solid lightgray;
    border-bottom: 1px solid lightgray;
    margin: 0px;
    /* 以下を入れないと、英語のときにダイアログをはみ出してしまう */
    table-layout: fixed;
    width: 100%;
}
.dialog_shipping_table th {
    border: 1px solid lightgray;
    background-color: #418AB3;
    text-align: center;
    color: white;
    padding: 5px 5px;
    /* 折り返しを有効にする */
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-all;
    white-space: normal;
}
.dialog_shipping_table.green th {
    background-color: #40B3A3;
}
.dialog_shipping_table td {
    border: 1px solid lightgray;
    padding: 5px 5px;
    /* 折り返しを有効にする */
    word-wrap: break-word;
    overflow-wrap: break-word;
    word-break: break-all;
    white-space: normal;
}
.dialog_shipping_table td.center {
    text-align: center;
}
.dialog_shipping_table td.right {
    text-align: right;
}
.dialog_shipping_table img {
    vertical-align: middle;
}

/* 送り状 */
.dialog_attached_file {
    display: flex;
    flex-wrap: wrap;
}
.dialog_attached_file .item {
    flex-basis: 50%;
    text-align: center;
    border: 1px lightgray dashed;
    padding: 10px;
}
.dialog_attached_file .pic {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 300px;
    margin-bottom: 10px;
}
.dialog_attached_file .pic img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    display: block;
    object-fit: contain; 
}
.dialog_attached_file .file {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 300px;
    margin-bottom: 10px;
}

/* ----------------------------------------- */

/* twbsPagination */

.pagination {
    margin: 5px !important;
}
.pagination a {
    color: #418AB3;
    font-size: 14px;
    text-decoration: none;
}
.pagination li.active a,
.pagination a:hover {
    text-decoration: none;
}
.pagination li {
    border: 1px solid lightgray;
    border-radius: 4px;
    background-color: white;
    margin: 1px;
}
.pagination li:hover {
    background-color: whitesmoke;
}
.pagination li.active {
    background-color: #418AB3;
    border-color: #418AB3;
}
.pagination li.active a {
    color: white;
}
.pagination .disabled {
    background-color: transparent;
}
.pagination .disabled a {
    color: lightgray;
}
/* 以下、発注系の色指定 */
/* #list_pagination に class="green" を指定する */
.green .pagination li.active {
    background-color: #40B3A3;
    border-color: #40B3A3;
}
.green .pagination a {
    color: #40B3A3
}
.green .pagination .disabled a {
    color: lightgray;
}

/* ----------------------------------------- */

/* マイアカウント */
.my_account_input_area {
    background-color: white;
    padding: 20px 10px;
    margin-top: 50px;
}
.my_account_input_container {
    width: 600px;
    margin: 0px auto;
}
.my_account_input_item {
    margin: 10px 0px;
}
.my_account_input_item_table {
    display: flex;
    align-items: center;
    margin: 5px 0px;
}
.my_account_input_item_table.top {
    align-items: flex-start;
}
.my_account_input_item_table .th {
    flex-basis: 30%;
    padding: 2px 5px;
    display: block;
}
.my_account_input_item_table .th div {
    width: 100%;
    text-align: right;
}
.my_account_input_item_table .td {
    flex-basis: 70%;
    padding: 2px 5px;
    display: block;
}
.my_account_input_item_table .td div {
    width: 100%;
}
.my_account_input_item_button {
    margin: 40px 0px 20px 0px;
    display: flex;
    justify-content: center;
}

/* ----------------------------------------- */

/* ボタンのデザイン */

/* 丸みのあるボタン */
.btn_rounded_button {
    background-color: #418AB3;
    border-radius: 20px;
    margin: 0px 10px;
    padding-left: 20px;
    padding-right: 20px;
}
.btn_rounded_button.gray,
.btn_rounded_button.no_click {
    background-color: gray;
}
.btn_rounded_button.green {
    background-color: #40B3A3;
}
.btn_rounded_button.red {
    background-color: red;
}
.btn_rounded_button.black {
    background-color: #373737;
}
.btn_rounded_button img {
    margin-right: 5px;
    vertical-align: middle;
}
.btn_rounded_button:hover {
    background-color: #606c76;
}
.btn_rounded_button.no_click:hover {
    /* クリックできないボタン用 */
    background-color: gray;
    cursor: default;
}

/* 丸みの少ないボタン */
.btn_less_rounded_button {
    background-color: #418AB3;
    border-radius: 5px;
}
.btn_less_rounded_button.gray {
    background-color: gray;
}
.btn_less_rounded_button.green {
    background-color: #40B3A3;
}
.btn_less_rounded_button.red {
    background-color: red;
}
.btn_less_rounded_button:hover {
    background-color: #606c76;
}
.btn_less_rounded_button img {
    margin-left: 10px;
    vertical-align: middle;
}

/* ----------------------------------------- */

/* トースト */
#toast {
    position: absolute;
    color: white;
    background-color: darkorange;
    border-radius: 10px;
    padding: 10px 20px;
    margin: 10px;
    top: 0px;
    left: 0px;
    z-index: 8888;
}

/* ----------------------------------------- */

/* レスポンシヴ */
/* タブレット縦向き */
@media screen and (max-width: 1024px) {

    /* 日付入力 */
    /* 幅を指定しないと、未入力時に幅が狭くなる */
    /* 端末によっては、アイコンが非表示で右側が欠けるので、強制的に非表示にして padding を調整 */
    /* Safari の場合、中央寄せになり右側が欠けるので、左寄せに変更 */
    input[type="date"] {
        width: 120px;
    }

    /* 開閉ボタン */
    #open-close-toggle-button {
        /* 位置調整 */
        /* bottom: -20px; */
        z-index: 997;
    }

    /* 条件入力 */
    .condition_grid {
        grid-template-columns: 1fr 1fr;
    }

    /* 開閉ボタン */
    #open-close-toggle-button {
        /* display: none; */
    }

    /* セレクトボックス */
    /* 個別で設定 */
    select {
        color: black;  /* これをあえて指定しないと safari のテキスト色が青くなる */
        font-size: 14px;
        margin: 0px;
        height: 25px;
        width: 170px;
        padding: 0px 0px 0px 5px;
    }

    /* 一覧エリア */
    .list_area {
        padding: 30px 0px 60px 0px;
    }

    /* テーブルのレスポンシヴ対応（一覧系） */
    .list_table {
        overflow: visible;
        padding: 0px 10px;
    }
    .list_table table thead {
        display: none;
    }
    .list_table table tr {
        width: 100%;
    }
    .list_table table td {
        width: 100%;
        display: flex;
        justify-content: flex-start;
        align-items: center;
    }
    .list_table table td:first-child {
        background: #418AB3;
        color: #fff;
        font-weight: bold;
    }
    .list_table table.green td:first-child {
        background: #40B3A3;
    }
    .list_table td span.sp-header {
        display: inline-block;
        width: 220px;
        font-weight: bold;
        text-align: left;
        margin-right: 20px;
    }
    .purchase_order_info,
    .purchase_order_info:hover,
    .purchase_order_info:link, 
    .purchase_order_info:visited, 
    .purchase_order_info:active {
        color: white;
    }

    /* 一覧テーブル内の添付ファイル */
    .list_table_receipt_files div {
        margin: 5px 0px;
    }

    /* 一覧上部のボタン表示エリア */
    .list_up_button_area {
        display: block;
    }
    .list_up_button_area > .right {
        margin: 20px 0px 0px 0px;
    }

    /* 詳細画面のヘッダエリア */
    .detail_header_area {
        padding: 10px;
    }

    /* 詳細画面のヘッダエリアのグリッド */
    .detail_header_contents_grid {
        display: block;
        border: none;
        margin: 0px;
    }
    .detail_header_contents_grid > div {
        border: none;
    }
    .detail_header_contents_grid > div > div:first-child {
        flex-basis: 200px;
        text-align: right;
    }
    .detail_header_contents_grid > div > div:nth-child(2) {
        /* 下記「100%」は効かない */
        /* calc() を使って、「画面の幅 - 300px」を計算して、右側の横幅を設定する */
        flex-basis: calc(100vw - 300px);
    }
    .detail_header_contents_grid .show_pc_only {
        display: none !important;
    }
    .detail_header_contents_grid .show_responsive_only {
        display: block;
    }
    .detail_header_contents_grid .show_responsive_only.flex {
        display: flex;
    }
    .detail_header_contents_grid .label {
        margin-right: 20px;
    }
    .detail_header_contents_grid .label.fit_contents {
        min-width: auto;
    }
    .detail_header_contents_grid .suppliers_header_remarks {
        height: 90px;
        min-height: 90px;
        /* 下記「100%」は効かない */
        /* calc() を使って、「画面の幅 - 300px」を計算して textarea の横幅を設定する */
        width: calc(100vw - 300px);
    }
    .detail_header_contents_grid .suppliers_header_remarks_parent_div {
        width: auto;
    }
    .detail_header_contents_grid .btn_rounded_button.compact {
        font-size: 14px;
        height: 30px;
        line-height: 1em;
        margin: 5px 5px 5px 0px;
    }
    .detail_header_contents_grid .btn_rounded_button.compact img {
        width: 16px;
    }
    .detail_header_contents_grid .btn_width_max_button {
        width: auto;
    }

    /* 見積詳細の納期一括セレクトボックス */
    #due_date_batch_settings {
        width: auto;
    }
    /* > を付けないと、全体のグリッドの div にも width: 100% が効いてしまう */
    div:has(> #due_date_batch_settings) {
        width: auto;
    }

    /* 詳細画面の辞退時の回答内容 */
    .detail_header_decline th {
        display: block;
        width: 100%;
        text-align: left;
        padding: 0px;
    }
    .detail_header_decline td {
        display: block;
        width: 100%;
        padding: 0px 0px 10px 0px;
    }
    .detail_header_decline td:nth-of-type(2) {
        padding: 0px;
    }

    /* 詳細画面のテーブルのレスポンシヴ対応（見積依頼詳細） */
    .detail_table {
        overflow: visible;
    }
    .detail_table table thead {
        display: none;
    }
    .detail_table table tr {
        width: 100%;
    }
    .detail_table table td {
        width: 100%;
        display: flex;
        justify-content: flex-start;
        align-items: center;
    }
    .detail_table table td:first-child {
        background: #418AB3;
        color: #fff;
        font-weight: bold;
    }
    .detail_table td span.sp-header {
        display: inline-block;
        width: 150px;
        font-weight: bold;
        text-align: left;
        margin-right: 20px;
    }
    /* 個別設定 */
    .detail_table table.white tbody tr {
        line-height: 1.8em;   /* 縦幅を大きくする */
        padding: 5px 5px;    /* 上下余白を増やす */
    }

    /* 詳細画面のテーブル内の受領ファイル */
    .detail_list_receipt_files div {
        margin: 5px 0px;
    }

    /* 詳細画面のテーブル内の備考　SP用を表示、PC用を非表示 */
    .remarks_text.pc {
        display: none;
    }
    .remarks_text.sp {
        display: inline;
    }

    /* 詳細画面のテーブル内のコメント　SP用を表示、PC用を非表示 */
    .comment_text.pc {
        display: none;
    }
    .comment_text.sp {
        display: inline;
    }

    /* 詳細画面のボタンエリア */
    .detail_button_area {
        padding: 10px 10px 60px 10px;
    }

    /* ページング */
    .list_count_paging {
        display: block;
    }
    .list_count_paging div {
        text-align: center;
        margin: 20px 0px;
    }
    .list_count_paging_button {
        display: block;
    }

    /* ---------- */

    /* 発注情報ダイアログ */

    /* テーブルのレスポンシヴ対応 */
    .dialog_shipping_table thead {
        display: none;
    }
    .dialog_shipping_table tr {
        width: 100%;
    }
    .dialog_shipping_table td {
        width: 100%;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        padding: 2px 0px;
    }
    .dialog_shipping_table td:first-child {
        background: #40B3A3;
        color: #fff;
        font-weight: bold;
    }
    .dialog_shipping_table td:before {
        content: attr(data-label);
        /* float: left; */
        /* flex: 0 0 auto; */
        display: inline-block;
        width: 150px;
        font-weight: bold;
        text-align: left;
        margin: 0px 20px 0px 10px;
    }
    .dialog_shipping_table td.center {
        text-align: initial;  /* PCの設定を無効化 */
    }
    .dialog_shipping_table td.right {
        text-align: initial;  /* PCの設定を無効化 */
    }

}

/* スマホ（中〜大）縦向き */
@media screen and (max-width: 768px) {

    /* main */
    main {
        margin: 0px 20px;
    }

    /* 日付入力 */
    /* 幅を指定しないと、未入力時に幅が狭くなる */
    /* 端末によっては、アイコンが非表示で右側が欠けるので、強制的に非表示にして padding を調整 */
    /* Safari の場合、中央寄せになり右側が欠けるので、左寄せに変更 */
    input[type="date"] {
        width: 120px;
        padding: 0px 0px 0px 10px;
    }
    input[type="date"]::-webkit-date-and-time-value {
        text-align: left;
    }

    /* セレクトボックス */
    /* 個別で設定 */
    select {
        color: black;  /* これをあえて指定しないと safari のテキスト色が青くなる */
        font-size: 14px;
        margin: 0px;
        height: 25px;
        width: 170px;
        padding: 0px 0px 0px 5px;
    }

    /* チェックボックス */
    input[type="checkbox"] {
        margin: 0px;
        transform: scale(1.2);
        margin-right: 10px;
    }

    /* 丸みの少ないボタン */
    .btn_less_rounded_button {
        width: 100%;
        /* 折り返しを有効にする */
        word-wrap: break-word;
        overflow-wrap: break-word;
        word-break: break-all;
        white-space: normal;
    }

    /* 丸みのあるボタン */
    .btn_rounded_button {
        width: 100%;
        border-radius: 10px;
        line-height: 1.5em;
        padding: 10px;
        margin: 0px;
        /* 折り返しを有効にする */
        word-wrap: break-word;
        overflow-wrap: break-word;
        word-break: break-all;
        white-space: normal;
    }

    /* ステータス選択 */
    .select_status {
        display: block;
    }
    .select_status_item {
        height: auto;
    }

    /* 条件入力 */
    .condition_grid {
        display: block;
        margin: 20px 0px 0px 0px;
    }
    .condition_grid > div {
        display: block;
        margin: 5px 0px;
    }
    .condition_grid > div > .label {
        text-align: left;
    }
    .condition_grid > div button {
        margin-top: 10px;
    }

    /* 一覧上部のメッセージ表示エリア */
    .list_up_message_area {
        padding-left: 0px;
        padding-right: 0px;
    }

    /* 一覧上部のボタン表示エリア */
    .list_up_button_area {
        display: block;
        padding-left: 0px;
        padding-right: 0px;
    }
    .list_up_button_area > .left {
        display: block;
    }
    .list_up_button_area > .left div { 
        margin: 20px 0px;
    }
    .list_up_button_area > .right {
        margin: 50px 0px 0px 0px;
    }
    .list_up_button_area button {
        margin: 0px;
    }
    .list_up_button_area .upload_csv_button {
        margin-bottom: 20px;
    }

    /* テーブル */
    .list_table {
        padding: 0px;
    }

    /* テーブルのレスポンシヴ対応（一覧系） */
    .list_table td span.sp-header {
        width: 150px;
        text-align: left;
        margin-right: 10px;
    }

    /* 日付コピーアイコン */
    .date_copy {
        margin: 0px 0px 0px 5px;
    }

    /* 発注一覧の発送連絡未回答時の数量入力 */
    .shipping_date_not_answered_quantity_input {
        display: block;
    }
    .shipping_date_not_answered_quantity_input > div:last-of-type {
        margin: 0px;
    }

    /* 詳細画面の辞退時の回答内容 */
    .detail_header_decline_bottom {
        display: block;
        margin: 0px 0px 50px 0px;
    }
    .detail_header_decline_bottom > div:last-of-type {
        margin: 20px 0px 0px 0px;
    }

    /* 詳細画面のヘッダエリアのグリッド */
    .detail_header_contents_grid > div {
        display: block;
    }
    .detail_header_contents_grid > div > div:first-child {
        text-align: left;
    }
    .detail_header_contents_grid .show_pc_only {
        display: none !important;
    }
    .detail_header_contents_grid .show_responsive_only {
        display: block;
    }
    .detail_header_contents_grid .show_responsive_only.flex {
        display: block;
    }
    .detail_header_contents_grid .label {
        margin: 0px;
    }
    .detail_header_contents_grid .suppliers_header_remarks {
        width: 100%;
    }
    .detail_header_contents_grid .btn_width_max_button {
        width: 100%;
    }

    /* 詳細画面のテーブル内の備考　SP用を表示、PC用を非表示 */
    .remarks_text.pc {
        display: none;
    }
    .remarks_text.sp {
        display: inline;
    }

    /* 詳細画面のテーブル内のコメント　SP用を表示、PC用を非表示 */
    .comment_text.pc {
        display: none;
    }
    .comment_text.sp {
        display: inline;
    }

    /* 詳細画面のリストエリア */
    .detail_list_area {
        padding: 10px 0px 50px 0px;
    }

    /* 詳細画面のテーブルのレスポンシヴ対応（見積依頼詳細） */
    .detail_table td span.sp-header {
        width: 150px;
        text-align: left;
        margin-right: 10px;
    }
    /* 個別設定 */
    .detail_table table.white tbody tr {
        line-height: 1.8em;   /* 縦幅を大きくする */
        padding: 5px 5px;    /* 上下余白を増やす */
    }

    /* 詳細画面のボタンエリア */
    .detail_button_area {
        display: block;
        text-align: center;
    }
    .detail_button_area div {
        margin: 0px 0px 20px 0px;
    }
    .detail_button_area_right {
        display: block;
    }

    /* ---------- */

    /* 発注情報ダイアログ */

    /* ボディのレスポンシヴ対応 */
    .dialog_body th {
        display: block;
        width: 100%;
        text-align: left;
        padding: 0px;
    }
    .dialog_body td {
        display: block;
        width: 100%;
        text-align: left;
        padding: 0px 0px 5px 0px;
    }
    .dialog_body div {
        margin: 5px 0px;
    }
    .dialog_body button {
        width: 80%;
    }
    .dialog_body #yes_no_dialog_yes_button {
        margin-bottom: 20px;
    }

    /* サブタイトル */
    .dialog_sub_title {
        margin: 20px 0px 10px 0px !important;
    }

    /* テーブルのレスポンシヴ対応 */
    .dialog_shipping_table td:before {
        width: 150px;
        text-align: left;
        margin: 0px 10px;
    }

    /* ---------- */

    /* 送り状 */
    .dialog_attached_file {
        display: block;
    }

    /* ---------- */

    /* マイアカウント */
    .my_account_input_area {
        padding: 10px 10px;
    }
    .my_account_input_container {
        width: auto;
        margin: 0px;
    }
    .my_account_input_item_table {
        display: block;
    }
    .my_account_input_item_table .th div {
        text-align: left;
    }
    .my_account_input_item_button {
        margin: 40px 0px 60px 0px;
    }

}

