
@charset "UTF-8";

:root {
	--area-border-color: #d5d5d5;
	--header-height: 42px; /* ロゴの高さが3remだとこのくらいがちょうど良い */
	--title-height: 3em;
	--head-sticky-items-z-index: 10;
	--view-content-padding: 1rem;
	--required-backgroud-color: #fff2f2;
	--required-border-color: solid 1px #ff9d9d;

	/* Color Palette */
	--table-header-background-color: #e8efff;
	--table-header-color: #495057;
	--table-header-hover: #cfe0ff;
	--table-header-active: #b7d0ff;

	--pager-background-color-active: #e3f2fd;
	--pager-background-color-hover: #bfd6ff;
	--pager-background-color-normal: #cfe0ff;

	--button-outlined-hover: rgba(33, 150, 243, 0.04);

	/* Saga's original color */
	--theme-color-primary: var(--primary-color);
	--theme-color-secondary: #607d8b;
	--theme-color-success: #689f38;
	--theme-color-info: #0288d1;
	--theme-color-warning: #fbc02d;
	--theme-color-help: #9c27b0;
	--theme-color-danger: #d32f2f;

	/* Override */
	--theme-color-primary: #06c;
	--theme-color-secondary: #66a3e0;
	--theme-color-disabled: #b8b8b8;

	--theme-color-primary-hover: #06f;
	--theme-color-primary-icon: #2e83ff;
}

/* 初期化完了までスクロールをブロックする */
body.initial-scroll-block {
	overflow: hidden;
}

/* 初期化完了まで操作をブロックする */
div#initial-block {
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
	z-index: 10000;
	background-color: var(--gray-400);
	opacity: 0.8;
	display: flex;
	justify-content: center;
	align-items: center;
	font-size: 24px;
}

.content-body {
	margin: 0;
}

.main-layout-center {
	padding-top: var(--header-height);
	flex-grow: 1;
	width: 100%;
}

.header-wrapper {
	border-bottom: 1px solid var(--area-border-color);
	position: fixed;
	top: 0;
	width: 100%;
	height: var(--header-height);
	background-color: #fff;
	z-index: calc(var(--head-sticky-items-z-index) + 2);
}

.content-wrapper {
	display: flex;
	width: 100%;
	margin-top: var(--header-height);
	padding: 3px 3px 3px 3px;
}

.menu-wrapper {
	flex-shrink: 0;
	white-space: nowrap;
	border-right: 1px solid var(--area-border-color);
}

#left-side-menu {
	overflow-y: scroll;
	margin-top: var(--header-height);
	height: calc(100% - var(--header-height));
}

/* 入力項目と、対応するlabelのスタイル */
div.ui-row {
	white-space: nowrap;
	margin: 0.5em 0;
	display: flex;
	align-items: center;
}

div.ui-row.no-margin {
	margin: 0;
}

div.ui-row > label:nth-child(1),
.ui-outputlabel.label-adjust {
	/* 幅の調整も必要だが、レンダリングされないと幅が決まらないのでJSでやる */
	text-align: right;
	display: inline-block;
}

.ui-outputlabel {
	font-weight: bold;
	margin-right: 0.5rem;
	margin-left: 2.5rem;
	padding-right: 0.5rem;
}

/* グリッド内のリンクの左余白発生を抑止 */
td > a > label.ui-outputlabel {
	margin-left: 0;
}

body .ui-fieldset {
	color: #000;

	/* 開閉可能なfieldSetの上下余白の調整 */
	margin-bottom: 0.3rem;
	padding-top: 0.3rem;
	padding-bottom: 0.3rem;
}

/* 参照時のテキスト表示 */
.text-refer,
.text-right,
.first-text-width,
.sum-value {
	border-bottom: 1px dotted #777;
	font-size: 1.05rem;
}

/* グリッド内等の参照時のテキスト表示の下線の無効化とフォントサイズ初期化 */
.text-border-none,
.error-text,
td > .text-refer,
td > a > .text-refer,
td > div > .text-refer,
.ui-panel-title > .text-refer,
.ui-outputpanel > .text-refer,
.ui-treenode-label > .text-refer,
.vis-inner > .text-refer,
th > .ui-column-title > .text-refer,
td > .align-right > .text-refer,
.input-field > div > .text-refer,
.search-conditions > div > .text-refer,
.separator,
td.ui-editable-column > div > div > .text-refer {
	border-bottom: none;
	font-size: 1rem;
}

/* 罫線無しのグリッドにおける参照時のテキスト表示 */
tr > td.ui-panelgrid-cell > div > .text-refer,
tr.ui-expanded-row-content > td > div > .text-refer,
.ui-fieldset-content > table > tbody > tr > td > .text-refer,
.ui-fieldset-content > table > tbody > tr > td > a > .text-refer,
table.ui-noborder > tbody > tr > td > .ui-row > .text-refer {
	border-bottom: 1px dotted #777;
	font-size: 1.05rem;
}

div.ui-row > div {
	display: inline-flex;
	align-items: center;
}

div.ui-row > div.ui-datatable {
	/* ヘッダーとデータが別のdivで構成されるため、inline-flexだと横に並んでしまう */
	display: inline-block;
}

div.ui-row > div.ui-confirm-dialog.ui-hidden-container {
	/* ConfirmDialogが表示されてしまうのを防ぐ */
	display: none;
}

div.ui-row > *,
.label-adjust {
	margin-right: 0.15rem;
}

/* div.ui-rowの中で項目とボタンのマージンを確保 */
div.ui-row > .right-button-margin {
	margin-right: 0.5rem;
}

.ui-outputlabel-rfi {
	color: var(--theme-color-danger);
	display: inline-block;
	font-weight: normal;
}

.ui-outputlabel.ui-state-error {
	/* 入力エラー項目のラベルが赤くなると目立ちすぎるので元の色にする */
	background: inherit;
	color: inherit;
}

/* 複合部品内の一般的なラベル XXX 使ってる? */
.ma-label {
	display: inline-block; /* これを指定しないとwidthが反映されない */
	width: 120px;
	vertical-align: middle;
}

/* コード入力用の部品(検索条件など) */
.ma-code-input {
	ime-mode: disabled;
}

td.inputable-cell {
	background-color: #b4efff;
}

/** Dialog Frameworkを呼ぶための不可視のボタン用スタイル */
.hidden-button {
	background: none;
	border: none;
	display: none;
	font-size: 0;
}

/** BlockUI */
.ui-blockui-content.ui-shadow {
	background-color: white;
}

body .ui-widget-overlay.transparent-mask {
	background: none;
	border: none;
	display: none;
}

#global-block-mask-target {
	display: none;
	position: fixed;
	top: 0;
	left: 0;
	overflow: hidden;
	width: 100vw;
	height: 100vh;
}

/* タイトル領域 */
.title-wrapper {
	position: fixed;
	top: var(--header-height);
	z-index: calc(var(--head-sticky-items-z-index) + 3);
	width: 100%;
}

.title-panel {
	display: flex;
	justify-content: flex-end;
	align-items: center;
	border-bottom: 1px solid var(--area-border-color);
	background-color: #ffffe0;
}

.title-panel > h1,
.title-panel > h2,
.title-panel > h3,
.title-panel > h4,
.title-panel > h5 {
	margin-right: 1em;
}

.title-panel > h3 {
	font-size: 150%;
	margin-left: 28px;
}

.title-panel > .title-separator {
	margin-right: auto;
	flex: 1; /* IE11はこれを指定しないと横に伸びすぎる */
}

html {
	font-size: 11.2px;
}

html, .ui-widget, .ui-widget .ui-widget {
	/* stylelint-disable max-line-length */
	font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ Ｐゴシック", Osaka, Verdana, Helvetica, sans-serif;
	/* stylelint-enable */
}

/* 編集時の編集不可項目：枠線（下線以外は透明）や背景色 */
.ui-state-disabled,
.ui-widget-content .ui-state-disabled,
.ui-widget-header .ui-state-disabled {
	opacity: 1;
	border-bottom: 1px dotted #777;
	border-top: 1px solid transparent;
	border-left: 1px solid transparent;
	border-right: 1px solid transparent;
	background: none; /* 背景色白にするのを防ぐ */
}

/* 参照時の追加項目のテキストエリア:枠線（全体に線あり） */
.ui-fieldset-content .ui-inputtextarea.ui-state-disabled {
	border: 1px solid #ced4da;
}

/* 編集時の編集不可項目：ボタンの背景色は薄く */
.ui-button.ui-state-disabled {
	opacity: 0.6;
	filter: alpha(Opacity=60);
}

/* 編集時の編集不可項目：ラジオ／チェックボックスの選択肢は編集不可の時でも下線無し／色薄く */
.ui-selectoneradio label.ui-state-disabled,
.ui-chkbox .ui-state-disabled,
.ui-selectchkbox .ui-state-disabled {
	opacity: 0.6;
	filter: alpha(Opacity=60);
	border-bottom: 1px solid transparent;
}

/* 必須項目のスタイル設定 */
.keepRequiredColor .ui-inputfield:not(.ui-state-disabled) {
	background: var(--required-backgroud-color);
	border: var(--required-border-color);
}

/* 選択されているチェックボックスの項目は不透明に */
.ui-chkbox-box.ui-state-active + .ui-chkbox-label.ui-state-disabled {
	opacity: 1;
}

/* 編集時の編集不可項目：チェックボックスの背景色をグレーにする */
.ui-chkbox > .ui-chkbox-box.ui-state-disabled {
	background: var(--theme-color-disabled);
}

/* 編集時の編集不可項目：フィールドに点線以外の実線が入るのを抑止 */
body .ui-selectonemenu.ui-state-disabled,
body .ui-autocomplete-input.ui-autocomplete-dd-input.ui-state-disabled,
body .ui-inputfield.ui-state-disabled {
	border-radius: unset;
}

.ui-state-disabled.ui-link {
	/* 無効化されたリンクの見た目を普通のテキストと同じにする */
	opacity: 1;

	/* リンク非活性時の色 */
	color: var(--text-color);
}

.ui-datatable .ui-datatable-header,
.ui-treetable .ui-treetable-header {
	text-align: left;
}

/* スクロールパネルの中に置くとテーブルヘッダの.ui-datatable thのbold指定が適用されない問題への対応 */
span.ui-column-title {
	font-weight: bold;
}

/* for DataTable footer (column group) */
.ui-datatable tfoot .ui-state-default {
	font-weight: bold;
}

/*
 * アクションパネルとその他の領域の分離
 * "~の分離"に関するスタイル指定を明確にするため、.title-panelセレクタを重複 */
/* stylelint-disable no-duplicate-selectors */
.title-panel {
	height: var(--title-height);
	padding-right: 10px;
}
/* stylelint-enable */

.view-form {
	width: 100%;
}

.view-content {
	width: 100%;
	padding: var(--view-content-padding);
	border-bottom: none;
	border-left: none;
	border-right: none;
	position: relative;
	top: var(--title-height);
}

/* メッセージ領域をスクロールしても隠れないように */
.messages-area {
	position: sticky;
	top: calc(var(--header-height) + var(--title-height) - var(--view-content-padding));
	z-index: var(--head-sticky-items-z-index);
	max-height: 275px;
	overflow: auto;
}

/* テキスト出力部品で改行させるためのスタイル */
.pre-formated-text {
	white-space: pre-wrap;
}

.input-component {
	display: inline-flex;
	align-items: center;
}

/* テーブルのページネーターを構成する部品 */
.ui-paginator-top-right-content .ui-button-text,
.ui-paginator-top-left-content .ui-button-text {
	padding-bottom: 0;
}

body .ui-datatable .ui-paginator,
body .ui-treetable .ui-paginator {
	align-items: center;
}

body .ui-paginator .ui-paginator-pages,
.ui-paginator.ui-paginator-top.ui-paginator-top-right-content,
.ui-paginator.ui-paginator-top.ui-paginator-top-left-content {
	height: 100%;
}

/* MAのCalendarコンポーネント入力欄の幅を調整する */
.ma-calendar input {
	width: 10em;
}

/* MAのMonthPickerコンポーネント入力欄の幅を調整する */
.ma-monthPicker input {
	width: 7.5em;
}

/* cellEditorの入力コンポーネントをフィットさせる */
.ui-cell-editor-input input,
.ui-cell-editor-input > .input-component,
.ui-cell-editor-input > .input-component > .ma-input,
.ui-cell-editor-input > .input-component > .ui-inputnumber > input,
.ui-cell-editor-input > .input-component > .ui-inputtext,
.ui-cell-editor-input .ui-selectonemenu {
	width: 100%;
}

.ui-datatable .ui-outputpanel,
.ui-treetable .ui-outputpanel {
	display: block;
}

/* cellEditorのAutoCompleteの入力項目とボタンが被らないよう調整 */
.ui-cell-editor-input .ui-autocomplete-input {
	/* 100% - button */
	width: calc(100% - 2.357rem);
}

/* cellEditorに必須項目のコンボボックスがある時、エラーアイコンが見切れないように調整 */
.ui-cell-editor-input > .required-combobox {
	width: calc(100% - 2.357rem);
}

.holiday {
	background-color: red;
}

/* スクロール可能なdataTableのスクロール可能な領域の外枠 borderだと要素の外側に膨らむためbox-shadowを使う */
.ui-datatable-scrollable-body {
	box-shadow: 0 0 0 1px #ccc inset;
}

.ui-monthpicker .ui-monthpicker-month {
	box-sizing: border-box;
}

/* menuButtonの右マージンをcommandButton等と同じにする */
.ui-menubutton {
	margin-right: 0.1em;
}

/* menuButtonのメニュー: 項目名が長いときに広がるように */
.ui-menu.ui-menu-dynamic {
	width: unset;
	min-width: 12.5em;
}

.unexpected-dialog-actions {
	display: flex;
	justify-content: flex-end;
	margin-top: 1em;
}

/* テーブル幅の調整 */
.ui-datatable .ui-datatable-header, .ui-datatable .ui-datatable-footer {
	-moz-box-sizing: border-box;
	-webkit-box-sizing: border-box;
	box-sizing: border-box;
}

/* padding調整: message */
body .ui-message {
	padding: 0;
}

/* padding調整: message */
body .ui-message > div, body .ui-message > span {
	padding: 0.4rem;
}

/* padding調整: dataTable, treeTable, picklist */
body .ui-datatable thead th,
body .ui-datatable .ui-datatable-data tr td,
body .ui-treetable thead th,
body .ui-treetable .ui-treetable-data > tr > td,
body .ui-picklist .ui-picklist-caption {
	padding: 0.5rem 1rem;
}

/* padding調整: paginator, table header */
body .ui-datatable .ui-paginator,
body .ui-treetable .ui-paginator,
body .ui-datatable .ui-datatable-header {
	padding: 0.5rem 1rem;
}

body .ui-treetable .ui-treetable-header {
	padding: 0.5rem 1rem;
	border-top-left-radius: 4px;
	border-top-right-radius: 4px;
}

/* ボタン全体 */
.ui-button,
button.ui-button.ui-state-default,
.ui-button.ui-state-default {
	color: #fff;
	background: var(--theme-color-primary);
	border: none;
}

/* ボタン全体のマウスオーバー・フォーカス時 */
button.ui-button.ui-state-hover,
.ui-button.ui-state-hover,
button.ui-button.ui-state-focus,
.ui-button.ui-state-focus {
	background: var(--theme-color-primary-hover);
}

/* ボタン全体の非活性時 */
.ui-widget-content .ui-button.ui-state-disabled,
.ui-widget-header .ui-button.ui-state-disabled {
	background: var(--theme-color-disabled);
}

/* ボタン(outlined)全体 */
.ui-button.ui-button-outlined,
button.ui-button.ui-state-default.ui-button-outlined,
.ui-button.ui-state-default.ui-button-outlined {
	color: var(--theme-color-primary);
	background: transparent;
	border: 1px var(--theme-color-primary) solid;
}

/* ボタン(outlined)全体のマウスオーバー時 */
button.ui-button.ui-state-hover.ui-button-outlined,
.ui-button.ui-state-hover.ui-button-outlined {
	color: var(--theme-color-primary-hover);
	background: var(--button-outlined-hover);
}

/* ボタン(outlined)全体のフォーカス時 */
button.ui-button.ui-state-focus.ui-button.outlined,
.ui-button.ui-state-focus.ui-button-outlined {
	color: var(--theme-color-primary-hover);
	background: transparent;
}

/* ボタン(outlined)全体の非活性時 */
.ui-widget-content .ui-button.ui-state-disabled.ui-button-outlined,
.ui-widget-header .ui-button.ui-state-disabled.ui-button-outlined {
	background: var(--theme-color-disabled);
}

/* テーブルページャー件数指定プルダウン */
.ui-paginator .ui-paginator-rpp-options {
	background: #fff;
}

/* テーブルヘッダーボタンテキスト */
.ui-datatable .ui-button > .ui-button-text,
.ui-treetable .ui-button > .ui-button-text {
	color: #42454d;
}

/* padding調整: ボタン類 */
body .ui-button.ui-button-text-only .ui-button-text {
	padding: 0.3em 1em;
}

/* padding調整: ボタン類 */
body .ui-button.ui-button-text-icon-right .ui-button-text {
	padding: 0.3rem 2rem 0.3rem 1rem;
}

/* padding調整: panel actions */
.ui-panel-actions button.ui-button-icon-only .ui-button-text {
	padding: 0.25rem;
}

/* アップロードボタンの幅調整 */
body .ui-fileupload-buttonbar .ui-fileupload-icon-only .ui-button-text {
	padding-right: 0;
}

/* padding調整: ボタン類 */
body .ui-button.ui-button-text-icon-left .ui-button-text,
body .ui-button.ui-button-icon-only:not(.ui-autocomplete-dropdown) .ui-button-text {
	padding: 0.3em 1em 0.3em 2.1em;
}

/* margin調整: ボタン類 */
body .ui-button {
	margin-right: 0.25rem;
}

/* padding調整: panel actions */
body .ui-panel .ui-panel-titlebar {
	padding-top: 0.25rem;
	padding-bottom: 0.23rem;
	border-bottom: 1px solid #dee2e6;
}

/* padding調整: panel actions */
body .ui-paginator .ui-paginator-current, body .ui-paginator .ui-paginator-rpp-options {
	margin-top: 0;
	margin-bottom: 0;
}

/* padding調整: dialog */
body .ui-dialog .ui-dialog-content,
body .ui-dialog.ui-confirm-dialog .ui-dialog-content {
	padding-top: 2rem;
}

/* PF11: PrimeIconsのアイコンを指定してもテーマに上書きされる */
body .ui-fileupload .ui-fileupload-buttonbar .ui-button.ui-fileupload-choose .pi-paperclip::before {
	content: "\e97b";
}

body .ui-fileupload .ui-fileupload-buttonbar .ui-button.ui-fileupload-choose .pi-upload::before {
	content: "\e934";
}

/* PF11: icon onlyならテキスト幅は0 */
body .ui-button.ui-button-text-icon-left.ui-fileupload-icon-only .ui-button-text {
	padding-right: 0;
}

/* Organigram: expand/collapse icon */
body .ui-organigram .ui-organigram-icon-container .ui-icon-minusthick,
body .ui-organigram .ui-organigram-icon-container .ui-icon-plusthick {
	/* stylelint-disable-next-line font-family-no-missing-generic-family-keyword */
	font-family: "primeicons";
	font-style: normal;
	font-weight: normal;
	display: inline-block;
	background: none;
}

body .ui-organigram .ui-organigram-icon-container .ui-icon-minusthick::before {
	content: "\e90f";
}

body .ui-organigram .ui-organigram-icon-container .ui-icon-plusthick::before {
	content: "\e90d";
}

/* 各画面で利用できるユーティリティ系スタイル */

/* columnTogglerのトリガーボタン */
.toggler-trigger {
	float: right;
}

/* ブール値チェックボックスのアイテムラベルの後余白を無くすための実装 */
.select-boolean-with-input > .ui-chkbox-label {
	margin: 0 0 0 8px;
}

/* 左寄せ */
.align-left {
	text-align: left;
}

/* 右寄せ */
.align-right {
	text-align: right;
}

/* 中央寄せ */
.align-center {
	text-align: center;
}

/* 上寄せ */
.align-self-first-baseline {
	align-self: first baseline;
}

.align-center .ui-chkbox {
	justify-content: center;
}

/* ラベルなしチェックボックスの場合、ラベルのマージンをクリアしないと若干左にずれる */
.align-center .ui-chkbox.no-itemlabel .ui-chkbox-label {
	margin: 0;
}

/* レンダリング対象だが非表示 */
.hidden {
	display: none;
}

/* ブロック要素をインラインブロック要素にする */
.inline-block {
	display: inline-block;
}

/*
 * 部品間の縦の幅調整
 * 縦並びになっている複数のコンポーネントに対して、共通のラベルを付けたい場合に使用する */
.flex-column > .col {
	margin-top: 0.5em;
	display: flex;
	align-items: center;
}

.flex-column > div.col > * {
	margin-right: 0.25rem;
}

/* ファイルアップロードコンポーネントの枠線を非表示にする */
body .ui-fileupload .ui-fileupload-buttonbar {
	background: transparent none;
	border: none;

	/* 余白調整 */
	padding: 0;
}

/* ファイルアップロードのプログレスバーの非表示 */
.ui-fileupload-content {
	display: none;
}

/* datatableの中にselectOneRadioを置くと、selectOneRadioの見た目を形成しているtableに、dataTableの見た目が反映されてしまう事を防止 */
table.ui-selectoneradio {
	width: auto;
}

.ui-filter-column .ui-column-customfilter .custom-filter {
	width: 100%;
	box-sizing: border-box;
}

/* PFのデフォルトだと300pxの固定値なので自動的に横幅が指定されるように変更 */
.ui-tree {
	width: auto;
}

/* flexboxレイアウトを解除する */
div.ui-row > div.no-flex {
	display: initial;
}

/* フッターはデフォルトでセンターだがスタイルクラスを指定するだけで右寄りになるように */
.ui-datatable tfoot td.align-right {
	text-align: right;
}

/* 全幅 */
.full-width {
	width: 100%;
}

/* 全幅AutoComplete */
.ui-autocomplete.full-width > .ui-autocomplete-input {
	/* 100% - button - margin */
	width: calc(100% - 2.357rem - 0.25rem);
}

.widget-separator {
	margin: 0 0.25em;
}

.ui-recentlyData {
	width: 40em;
}

.supplementaryToolSideBarTitle {
	font-weight: normal;
}

/* クライアントサーバのエラーの場合、アイコンが複数表示されるが、最初の１つのみを表示するようにする。 */
body .ui-message-icon-only .ui-message-error-icon:not(:first-of-type) {
	display: none;
}

.ui-inputtextarea {
	/* Firefoxの場合、スクロールバー分に1行予約されているため隠す（ChromeとFirefox間で行数が異なる問題の修正）。 */
	overflow-x: hidden;

	/* 編集不可時でもリサイズとスクロール移動は有効 */
	pointer-events: auto;

	/* Firefoxの場合、textareaが広がってしまう問題に対応するため */
	width: 100%;
}

.pi-flip-vertical {
	transform: scale(1, -1);
}

.pi-flip-horizontal {
	transform: scale(-1, 1);
}

.ui-messages ul {
	margin: 0 25px;
	padding-left: 2.65em;
	list-style-type: none;
}

.ui-datepicker td span, .ui-datepicker td a {
	text-align: center;
	width: 2.5rem;
	height: 2.5rem;
	line-height: 2.5rem;
}

body .ui-datepicker .ui-datepicker-calendar td a {
	padding: 0.2em;
}

/* 画面を拡大した時に検索コンボのレイアウトが崩れないようにする。 */
.ui-autocomplete {
	width: max-content;
}

/* テーブルタブ選択時、枠の左線が欠けてしまうためタブ左側にマージンを挿入 */
body .ui-tabs.ui-tabs-top > .ui-tabs-nav {
	margin-left: 0.2rem;
}

div.input-code-range > input.ui-inputtext,
div.input-code-range > div.input-component > input.ui-inputtext {
	width: 15rem;
}

/* Firefoxの場合、スクロールバーによって文字列が見切れることがあるのでスクロールバーを細くする */
.ui-selectonemenu-panel .ui-selectonemenu-items-wrapper {
	scrollbar-width: thin;
}

/* テーブルのrowExpansion,rowEditorのアイコン */
.ui-row-editor.ui-helper-clearfix .ui-icon,
.ui-datatable-data .ui-row-toggler {
	color: var(--theme-color-primary);
}

/* load indicatorを無効にする */
html .ui-state-loading.ui-button-text-only .ui-icon-loading + .ui-button-text {
	opacity: inherit;
}

html .ui-state-loading .ui-icon-loading {
	display: none;
}

html .ui-state-loading .ui-icon:not(.ui-icon-loading) {
	display: inherit;
}

/* 名称等の全角30文字想定の項目に設定する styleClass属性 */
.nameWidth {
	width: 32rem;
}

/* 件名等の全角40文字想定の項目に設定する styleClass属性 */
.subjectWidth {
	width: 480px;
}

/* URL等の20文字想定の項目に設定する styleClass属性 */
.urlWidth {
	width: 22rem;
}

/* 住所等の50文字想定の項目に設定する styleClass属性 */
.addressWidth {
	width: 52rem;
}

/* 半角30文字 + 余白3文字分表示するコードの項目に設定する styleClass属性 */
.specialCodeWidth {
	width: 24rem;
}

/* HH:MM入力の項目に設定する styleClass属性 */
.timeWidth {
	width: 6rem;
}

/* 項目名が短いコンボ用 */
.shortComboWidth {
	width: 12rem;
}

/* 選択されているラジオボタンの枠線の色と背景色の設定 */
body .ui-radiobutton .ui-radiobutton-box.ui-state-active {
	background-color: var(--primary-500);
	border-color: var(--primary-400);
}

/* 選択されているかつ編集不可のラジオボタンの枠線の色と背景色の設定 */
body .ui-radiobutton .ui-radiobutton-box.ui-state-active.ui-state-disabled {
	background-color: #adb5bd;
	border-color: #ced4da;
}

/* 開閉式グループのヘッダの上下のpaddingを狭く */
body .ui-accordion .ui-accordion-header {
	padding-top: 0.5rem;
	padding-bottom: 0.5rem;
}

.keepRequiredColorForSelectoneMenu .ui-selectonemenu:not(.ui-state-disabled) {
	background: var(--required-backgroud-color);
	border: var(--required-border-color);
}

/* 編集中の項目：必須and編集可能項目の背景色／枠線 */
:has(> input[aria-required="true"]):not(:disabled) .ui-inputfield:not(.ui-state-disabled),
.input-component:has(> textarea[aria-required="true"]) .ui-inputfield:not(.ui-state-disabled),
.ui-cell-editor-input:has(> div > input[aria-required="true"]:not(.ui-state-disabled)) .ui-inputfield:not(.ui-message),
body .ui-selectonemenu:has(input[aria-required="true"]):not(label):not(:has(input[disabled="disabled"])):not(:disabled),
.input-component:has(input[aria-required="true"]) :not(:disabled) .ui-inputfield:not(.ui-state-disabled):not(label) {
	background: var(--required-backgroud-color);
	border: var(--required-border-color);
}

/* 編集中の明細：必須項目の後ろに必須マーク表示 */
.ui-cell-editor-input > .ui-panelgrid-cell > div:has(input[aria-required="true"])::after,
.ui-cell-editor-input > .input-component:has(input[aria-required="true"])::after,
.ui-cell-editor-input .ui-panelgrid-cell > .field-container:has(input[aria-required="true"])::after,
.ui-cell-editor-input:has(input[aria-required="true"]):not(:has(.input-component)):not(:has(.ui-panelgrid))::after,
.ui-cell-editor-input .ui-panelgrid-cell:has(input[aria-required="true"]):not(:has(.field-container))::after {
	color: var(--theme-color-danger);
	content: "*";
}

/* コマンドリンクの画像位置の調整 */
.ui-commandlink > img {
	vertical-align: middle;
}

/* 開閉可能なfieldSetのアイコン */
body .ui-fieldset-legend .ui-fieldset-toggler.ui-icon,
body .ui-fieldset-legend.ui-state-hover .ui-fieldset-toggler.ui-icon {
	color: var(--theme-color-primary-icon);
}

/* 開閉可能なfieldSetの左上タイトル部分の高さ */
body .ui-fieldset .ui-fieldset-legend {
	padding: 0.5rem;
}

/* Icons */
.ui-datatable .pi-file-excel,
.ui-treetable .pi-file-excel {
	color: var(--theme-color-success);
}

.ui-datatable .pi-plus,
.ui-treetable .pi-plus {
	color: var(--theme-color-info);
}

.ui-datatable .pi-times,
.ui-treetable .pi-times {
	color: var(--theme-color-danger);
}

/* ボタンが非活性時のアイコン */
.ui-datatable .ui-state-disabled .pi-file-excel,
.ui-treetable .ui-state-disabled .pi-file-excel,
.ui-datatable .ui-state-disabled .pi-plus,
.ui-treetable .ui-state-disabled .pi-plus,
.ui-datatable .ui-state-disabled .pi-times,
.ui-treetable .ui-state-disabled .pi-times {
	color: #828282;
}

/* テーブルヘッダー */
.ui-datatable th.ui-state-default,
.ui-datatable tfoot td.ui-state-default,
.ui-treetable th.ui-state-default,
.ui-treetable tfoot td.ui-state-default,
body .ui-datatable .ui-datatable-header,
body .ui-treetable .ui-treetable-header,
body .ui-datatable .ui-paginator,
body .ui-treetable .ui-paginator,
body .ui-treetable.ui-treetable-gridlines thead > tr > th {
	background: var(--table-header-background-color);
	background-clip: padding-box;
	color: var(--table-header-color);
	border: 1px solid #d9d9d9;
}

/* ファイル添付ボタン */
.ui-widget-header.ui-fileupload-buttonbar {
	background: #fff;
}

/* テーブルヘッダーソート可能カラムのソート時 */
body .ui-datatable thead th.ui-state-active,
body .ui-datatable thead th.ui-state-active.ui-state-hover {
	background: var(--table-header-active);
	color: unset;
}

/* ツリーテーブルヘッダーソート可能カラムのソート時 */
body .ui-treetable thead th.ui-state-active,
body .ui-treetable thead th.ui-state-hover,
body .ui-treetable thead th.ui-state-active.ui-state-hover {
	background: var(--table-header-active);
	color: unset;
}

/* テーブルヘッダーソート可能カラムのマウスオーバー時 */
body .ui-datatable thead th.ui-state-hover {
	background: var(--table-header-hover);
}

/* tree: 文字が薄くならないように */
body .ui-tree,
body .ui-tree .ui-tree-container .ui-treenode .ui-treenode-content .ui-treenode-label.ui-state-hover,
body .ui-tree .ui-tree-container .ui-treenode .ui-treenode-content .ui-treenode-label.ui-state-highlight {
	color: #000;
}

/* テーブルヘッダーのボタンマウスオーバー時 */
.ui-datatable .ui-paginator-top-right-content .ui-button.ui-state-hover,
.ui-datatable .ui-paginator-top-left-content .ui-button.ui-state-hover,
.ui-datatable > .ui-datatable-header > .ui-button.ui-state-hover,
.ui-treetable .ui-treetable-header > .ui-button.ui-state-hover,
.ui-treetable .ui-paginator-top-right-content > .ui-button.ui-state-hover,
.ui-treetable .ui-paginator-top-left-content > .ui-button.ui-state-hover,
.ui-datatable > .ui-datatable-header > div > span > .ui-button.ui-state-hover,
.ui-treetable .ui-treetable-header > div > span > .ui-button.ui-state-hover {
	background: #bfd6ff;
}

/* テーブルヘッダーのボタン */
.ui-datatable > .ui-datatable-header > .ui-button,
.ui-treetable .ui-treetable-header > .ui-button,
.ui-datatable .ui-paginator-top-right-content > .ui-button,
.ui-treetable .ui-paginator-top-right-content > .ui-button,
.ui-datatable .ui-paginator-top-left-content > .ui-button,
.ui-treetable .ui-paginator-top-left-content > .ui-button,
.ui-datatable > .ui-datatable-header > div > span > .ui-button,
.ui-treetable .ui-treetable-header > div > span > .ui-button {
	background: #fdfdff;
	border: solid 1px #aaa;
	color: #42454d;
}

/* ツリーテーブルのレコード内のアイコン */
body .ui-treetable .ui-treetable-data > tr > td .ui-treetable-toggler {
	color: var(--theme-color-primary);
}

/* テーブルページャー */
.ui-datatable .ui-widget-header.ui-paginator a,
.ui-treetable .ui-widget-header.ui-paginator a {
	background: #fff;
	color: #42454d;
	border: solid 1px #aaa;
}

/* テーブルページャーマウスオーバー時 */
.ui-datatable .ui-widget-header.ui-paginator a:hover,
.ui-treetable .ui-widget-header.ui-paginator a:hover {
	background: var(--pager-background-color-hover);
}

/* テーブルページャー: アクティブなページ */
.ui-datatable .ui-widget-header.ui-paginator a.ui-state-active,
.ui-treetable .ui-widget-header.ui-paginator a.ui-state-active {
	background: var(--pager-background-color-active);
	font-weight: bold;
}

/* テーブルベージャー現在ページテキスト */
body .ui-datatable .ui-paginator-current,
body .ui-treetable .ui-paginator-current {
	color: var(--table-header-color);
}

/* 編集時の編集不可項目：検索コンボの右側のボタンは色無し */
.input-component .ui-button.ui-state-disabled {
	background: none;
}

/* 編集時の編集不可項目：コンボの右側の矢印は表示無し */
body .ui-selectonemenu.ui-state-disabled .ui-selectonemenu-trigger .ui-icon {
	opacity: 0;
}

/* ツリーテーブルのレコード内のボタン */
body .ui-treetable .ui-treetable-data > tr.ui-row-editing .ui-button .ui-icon {
	color: #fff;
}

/* ダイアログタイトルバー */
body .ui-dialog > .ui-dialog-titlebar {
	background-color: #06c;
	padding: 0.5rem;
	padding-left: 1rem;
	color: white;
}

/* ダイアログのタイトル文字サイズ */
.ui-dialog > .ui-dialog-titlebar > .ui-dialog-title {
	font-size: 120%;
}

/* ダイアログのクローズ、最大化ボタン */
body .ui-dialog > .ui-dialog-titlebar .ui-dialog-titlebar-icon {
	color: white;
}

/* ダイアログのキャンセルボタン */
form > .dialog-buttons > button:last-child > span {
	background-color: var(--theme-color-secondary);
	border-radius: inherit;
}

form > .dialog-buttons > button:last-child {
	border-color: var(--theme-color-secondary);
}

/* ダイアログのキャンセルボタンのマウスオーバー時 */
form > .dialog-buttons > .ui-button:last-child.ui-state-hover > span {
	background-color: #06c;
}

/* プルダウンリストの選択項目 */
.ui-selectonemenu-items > .ui-state-highlight {
	background: #1e90ff;
}

/* メニューのカテゴリ */
#menuView > .ui-menu .ui-menu-list .ui-widget-header {
	background: #e8efff;
	color: #828282;
}

/* メニューマウスオーバー時のハイライト */
#menuView > .ui-menu > .ui-menu-list > .ui-menuitem > .ui-state-hover {
	background: #cfe0ff;
}

/* データテーブルヘッダーのチェックボックス */
body .ui-datatable .ui-selection-column .ui-chkbox-all {
	text-align: center;
}

/* ツリーテーブルのカラムのボーダーライン */
body .ui-treetable.ui-treetable-gridlines thead > tr > th {
	border-width: 1px;
}

/* ツリーテーブルのヘッダーのボーダーライン */
body .ui-treetable.ui-treetable-gridlines .ui-treetable-header {
	border-width: 1px;
}

/* 文字数が多いと見切れてしまうため改行させる */
body .ui-row {
	word-break: break-all;
	white-space: normal;
}

.ui-tooltip .ui-tooltip-text {
	background-color: white !important;
	color: #464646 !important;
	border-color: #464646;
	border-width: 1px;
	border-style: solid;
}

/* 合計金額表示のラベル */
.sum-label {
	color: #000;
	text-align: right;
	width: 120px;
}

/* 合計金額表示の値 */
.sum-value {
	text-align: right;
	width: 100px;
}

body .ui-panelgrid .ui-panelgrid-cell {
	padding: 0.1rem;
}

.align-right-row {
	display: flex;
	justify-content: flex-end;
}

.dummyFieldset {
	border: 0 !important;
	padding: 0 !important;
}

.no-margin-left {
	margin-left: 0;
}

.display-block {
	display: block;
}

body .ui-datatable .ui-button.white > .ui-button-text {
	color: white;
}
