/* 契約画面（利用履歴・条件表示）のレイアウトと、ピンアサイン選択/編集UIの見た目を定義する。content.user_contract.jsp と content-user-contract/*.js から利用される。 */
.table-bordered td,
.table-bordered th {
	border: initial;
}

.contract-toolbar-row {
	margin-bottom: .35rem;
}

.contract-subscription-row {
	margin-bottom: .5rem;
}

.contract-subscription-select {
	min-width: 140px;
	max-width: 180px;
	cursor: pointer;
	padding-right: .5rem;
	border: 1px solid #666;
	background-color: #fff;
}

.contract-subscription-label {
	font-weight: 600;
}

table.contract-info-table,
table.contract-condition-table,
table.user-info-table {
	width: auto;
	border-spacing: 0;
	border-collapse: separate;
	border-radius: 0;
}

table.contract-info-table tr td,
table.contract-condition-table tr td,
table.user-info-table tr td {
	border-left: 1px solid #999;
	border-top: 1px solid #999;
}

table.user-info-table tr th {
	border-left: 1px solid #999;
	border-top: 1px solid #999;
	border-bottom: 1px solid #999;
}

table.contract-info-table tr td:first-child,
table.contract-condition-table tr td:first-child,
table.user-info-table tr td:first-child,
table.user-info-table tr th:first-child {
	border-left: none;
}

table.contract-info-table tr:first-child td,
table.contract-condition-table tr:first-child td,
table.user-info-table tr:first-child td,
table.user-info-table tr:first-child th {
	border-top: none;
}

.history-table.table-bordered td,
.history-table.table-bordered th {
	border: 1px solid #999;
	white-space: normal;
	word-break: break-word;
}

.history-table,
.contract-info-table,
.contract-condition-table,
.user-info-table {
	border-radius: 0 !important;
}

.history-table-th {
	border-top-width: 0 !important;
}

/* DataTables 初期化前も、初期化後の columnDefs と同じ内部ID列を非表示にする。 */
.history-table th.datatable-internal-id-column,
.download-table th.datatable-internal-id-column {
	display: none;
}

/* (caution) DataTables の既定 sort 記号が環境フォント差で崩れるため、履歴テーブルのみ Unicode 矢印へ固定する。 */
.history-table.dataTable thead .sorting:before,
.history-table.dataTable thead .sorting_asc:before,
.history-table.dataTable thead .sorting_desc:before,
.history-table.dataTable thead .sorting_asc_disabled:before,
.history-table.dataTable thead .sorting_desc_disabled:before {
	top: auto;
	bottom: 0.9em;
	right: 1em;
	font-family: sans-serif;
	line-height: 1;
	content: "\2191";
	opacity: 0.3;
}

.history-table.dataTable thead .sorting:after,
.history-table.dataTable thead .sorting_asc:after,
.history-table.dataTable thead .sorting_desc:after,
.history-table.dataTable thead .sorting_asc_disabled:after,
.history-table.dataTable thead .sorting_desc_disabled:after {
	top: auto;
	bottom: 0.9em;
	right: 0.5em;
	font-family: sans-serif;
	line-height: 1;
	content: "\2193";
	opacity: 0.3;
}

.history-table.dataTable thead .sorting_asc:before,
.history-table.dataTable thead .sorting_desc:after {
	opacity: 1;
}

.history-table.dataTable thead .sorting_asc_disabled:before,
.history-table.dataTable thead .sorting_desc_disabled:after {
	opacity: 0;
}

.contract-info-table-area,
.contract-condition-table-area,
.user-info-table-area,
.history-table-area {
	overflow-x: auto;
}

.contract-condition-simulator-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	gap: .45rem;
	align-items: start;
}

.contract-condition-overview-grid {
	display: grid;
	grid-template-columns: minmax(280px, .62fr) minmax(560px, 1.38fr);
	gap: .65rem;
	align-items: start;
}

.contract-condition-usage-groups {
	display: grid;
	grid-template-columns: repeat(2, minmax(270px, 1fr));
	gap: .6rem;
	align-items: start;
}

.contract-condition-section {
	min-width: 0;
}

.contract-condition-section-title {
	margin-bottom: .3rem;
	font-weight: 700;
}

#contractConditionArea,
#myPageContractConditionArea {
	padding: .75rem !important;
}

#contractConditionArea > h5,
#myPageContractConditionArea > h5 {
	margin-bottom: .4rem;
}

.contract-condition-table td {
	padding: .28rem .4rem;
}

.contract-usage-line {
	white-space: nowrap;
}

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

.profile-summary-table.table-bordered th,
.profile-summary-table.table-bordered td {
	border: 1px solid #999 !important;
	vertical-align: top;
}

.profile-summary-table tbody th {
	width: 38%;
	background: #f3f3f3;
}

.pin-assign-applied-mapping {
	margin-top: .15rem;
	font-size: .76rem;
	line-height: 1.25;
	color: #5c6670;
}

.report-file-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.5rem;
	min-height: 1.5rem;
	font-size: 1rem;
}

.contract-condition-simulator-table {
	width: 100% !important;
	margin-bottom: 0;
}

@media (max-width: 767.98px) {
	.contract-condition-overview-grid,
	.contract-condition-usage-groups,
	.contract-condition-simulator-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 991.98px) {
	.contract-condition-overview-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.page-back-link-column {
	margin-left: auto;
}

.history-filter-bar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .35rem .5rem;
	margin-bottom: .45rem;
}

.history-filter-bar .btn,
.history-filter-bar .custom-select {
	margin-top: 0;
	margin-bottom: 0;
	white-space: nowrap;
}

.history-filter-bar .simulator-selector {
	min-width: 160px;
	max-width: 190px;
}

.history-table-operation .btn-pin-assign-change {
	margin-right: .35rem;
}

.history-table-operation .btn-pin-assign-change.pin-assign-change-active:not(:disabled) {
	background-color: #0057b8;
	border-color: #004a9f;
	color: #fff;
	font-weight: 700;
}

.contract-split-card {
	width: 100%;
}

.user-info-toggle {
	font-size: 0.8em;
	text-decoration: none;
}

.background-cell {
	background-color: rgba(0, 0, 0, .05);
}

.pin-assign-cell {
	display: flex;
	align-items: center;
	gap: .35rem;
	min-width: 165px;
}

.pin-assign-cell .pin-assign-selector {
	width: 118px;
	min-width: 118px;
	max-width: 118px;
}

.pin-assign-cell .pin-assign-edit-button {
	min-width: 3.6rem;
	padding-left: .45rem;
	padding-right: .45rem;
	font-weight: 600;
}

.pin-assign-cell .pin-assign-edit-button:disabled {
	opacity: .55;
}

.history-table tr.pin-assign-row-busy td {
	background-color: #eef5ff;
}

.pin-assign-dialog-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, .26);
	z-index: 1050;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1rem;
}

.pin-assign-dialog-body {
	width: min(520px, 95vw);
	background: #f2f2f2;
	border: 1px solid #777;
	box-shadow: 0 8px 24px rgba(0, 0, 0, .2);
	padding: 1rem 1.2rem;
	border-radius: .85rem;
	max-height: min(84vh, 720px);
	display: flex;
	flex-direction: column;
}

.pin-assign-dialog-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	margin-bottom: .65rem;
}

.pin-assign-dialog-title {
	font-weight: 700;
	margin-bottom: .65rem;
}

.pin-assign-dialog-header .pin-assign-dialog-title {
	margin-bottom: 0;
}

.pin-assign-dialog-datasheet-link {
	flex: 0 0 auto;
	font-size: .82rem;
	font-weight: 600;
	white-space: nowrap;
}

.pin-assign-change-confirm-body {
	width: min(460px, 92vw);
	max-height: none;
}

.pin-assign-change-confirm-message {
	font-size: .92rem;
	line-height: 1.55;
	padding: .25rem 0 .15rem;
}

.pin-assign-change-notice-body {
	width: min(420px, 92vw);
	max-height: none;
}

.pin-assign-change-notice-message {
	font-size: .94rem;
	line-height: 1.55;
	padding: .25rem 0 .15rem;
	color: #2f4655;
	white-space: pre-line;
	word-break: break-word;
}

.pin-assign-dialog-table-wrap {
	max-height: min(56vh, 420px);
	overflow: auto;
	flex: 1 1 auto;
}

.pin-assign-dialog-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
}

.pin-assign-dialog-table th,
.pin-assign-dialog-table td {
	border: 1px solid #777;
	padding: .32rem .4rem;
	text-align: center;
}

.pin-assign-custom-input {
	width: 100%;
	max-width: 110px;
}

.pin-assign-dialog-actions {
	margin-top: .75rem;
	display: flex;
	justify-content: flex-end;
	gap: .45rem;
}

.pin-assign-dialog-message {
	margin-top: .5rem;
	margin-bottom: .15rem;
	font-size: .82rem;
}

.pin-assign-dialog-short-guard {
	display: flex;
	align-items: flex-start;
	gap: .35rem;
	margin-top: .35rem;
}

.pin-assign-dialog-short-check {
	margin-top: .25rem;
}

.pin-assign-dialog-short-label {
	margin: 0;
	font-size: .8rem;
	line-height: 1.35;
}

@media (min-width: 1200px) {
	.contract-condition-history-row .col-xl-6 {
		display: flex;
	}
}
.page-top-link {
	position: fixed;
	right: 1rem;
	bottom: 1rem;
	z-index: 1020;
	box-shadow: 0 .2rem .5rem rgba(0, 0, 0, .2);
}

.download-search-area input[type="search"] {
	width: min(24rem, 100%);
}

.download-search-area {
	margin-left: auto;
}

.shared-contract-condition {
	overflow-x: auto;
}

.request-overview-grid {
	display: grid;
	grid-template-columns: minmax(360px, max-content) minmax(0, 1fr);
	gap: .65rem;
	align-items: start;
	margin-bottom: .4rem;
}

.request-overview-grid > .shared-contract-condition {
	width: fit-content;
	max-width: 100%;
}

.request-overview-grid .create-status-table-area {
	min-width: 0;
}

.download-floating-actions {
	position: fixed;
	right: 1rem;
	bottom: 6.25rem;
	z-index: 1035;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}

.viewport-square-action {
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	width: 88px;
	height: 72px;
	padding: .35rem;
	border-radius: .35rem;
	box-shadow: 0 4px 14px rgba(0, 0, 0, .2);
	font-size: .7rem;
	line-height: 1.2;
	white-space: normal;
}

.viewport-square-action .oi {
	margin-bottom: .25rem;
}

@media (max-width: 1199.98px) {
	.request-overview-grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

.download-available-guide {
	padding-left: 1.25rem;
}

.download-overview-grid {
	display: grid;
	grid-template-columns: minmax(340px, .8fr) minmax(460px, 1.2fr);
	gap: .75rem;
	align-items: start;
}

.download-contract-condition {
	min-width: 0;
}

.download-contract-condition .contract-condition-section-title {
	text-align: left;
}

.download-contract-condition .contract-condition-simulator-grid {
	grid-template-columns: repeat(2, minmax(220px, 1fr));
}

.download-table.table-bordered td,
.download-table.table-bordered th {
	padding-left: .42rem;
	padding-right: .42rem;
	white-space: normal;
	word-break: break-word;
}

@media (max-width: 575.98px) {
	.download-search-area {
		align-items: stretch;
		display: flex;
		flex-direction: column;
	}

	.download-overview-grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.download-contract-condition {
		width: 100%;
	}

	.download-search-area label {
		margin-bottom: .25rem;
	}

	.page-top-link {
		right: .5rem;
		bottom: .5rem;
	}
}
