@charset "UTF-8";

/* ----------
基本設定（経費管理）
---------- */
:root {
	--color-canvas: #f4f6f8;
	--color-surface-card: #ffffff;
	--color-surface-subtle: #f8fafb;
	--color-surface-muted: #eef2f5;
	--color-ink: #18232f;
	--color-body: #364453;
	--color-muted: #5f6d7a;
	--color-disabled: #84919d;
	--color-border: #dce3e8;
	--color-border-strong: #84939f;
	--color-primary: #0f766e;
	--color-primary-hover: #115e59;
	--color-primary-soft: #e7f4f1;
	--color-on-primary: #ffffff;
	--color-success: #166534;
	--color-success-bg: #edf7ed;
	--color-success-border: #bfddc1;
	--color-warning: #92400e;
	--color-warning-bg: #fff7e6;
	--color-warning-border: #efd5a3;
	--color-info: #1e40af;
	--color-info-bg: #eff4ff;
	--color-info-border: #c7d7f5;
	--color-error: #b42318;
	--color-error-bg: #fff0ee;
	--color-error-border: #f4c7c2;
	--color-neutral: #52606d;
	--color-neutral-bg: #eff2f5;
	--color-neutral-border: #dce3e8;
	--color-sidebar-bg: #ffffff;
	--color-sidebar-surface: #f8fafb;
	--color-sidebar-surface-hover: #eef2f5;
	--color-sidebar-border: #dce3e8;
	--color-sidebar-text: #364453;
	--color-sidebar-text-strong: #18232f;
	--color-sidebar-muted: #5f6d7a;
	--color-sidebar-active: #e7f4f1;
	--color-sidebar-icon: #5f6d7a;
	--color-sidebar-active-hover: #d5ebe6;
	--font-sans: "Noto Sans JP", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	min-height: 100%;
}

body {
	min-height: 100%;
	margin: 0;
	background: var(--color-canvas);
	color: var(--color-body);
	font-family: var(--font-sans);
	font-size: 14px;
	line-height: 1.6;
}

button,
input,
select,
textarea {
	font: inherit;
}

button {
	cursor: pointer;
}

button:disabled {
cursor: not-allowed;
	opacity: 1;
	background: var(--color-surface-muted);
	border-color: var(--color-border);
	color: var(--color-disabled);
}

:where(button, a, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

:where(input, textarea)::placeholder {
	color: var(--color-muted);
	opacity: 1;
}

.uiIcon {
	flex: 0 0 auto;
	height: 18px;
	width: 18px;
}

img {
	display: block;
	max-width: 100%;
}

@media screen and (min-width: 768px) {
	.pcOFF {
		display: none !important;
	}
}

@media screen and (max-width: 767px) {
	.spOFF {
		display: none !important;
	}
}

@media screen and (max-width: 1100px) {
}

@media screen and (max-width: 767px) {
	body {
		font-size: 14px;
	}
}

/* ----------
表示状態
---------- */
[hidden] {
	display: none !important;
}

/* ----------
認証状態確認中
---------- */
.authLoading {
	align-items: center;
	color: var(--color-muted);
	display: grid;
	font-size: 14px;
	justify-items: center;
	min-height: 100vh;
	padding: 24px;
}

/* ----------
ログイン画面
---------- */
.loginPage {
	align-items: center;
	display: grid;
	min-height: 100vh;
	padding: 24px;
}
.loginCard {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	margin: 0 auto;
	max-width: 440px;
	padding: 28px;
	width: 100%;
}
.loginCard__head {
	margin-bottom: 24px;
}
.loginCard__eyebrow {
	color: var(--color-primary);
	font-size: 13px;
	font-weight: 600;
	margin: 0 0 4px;
}
.loginCard__tit {
	color: var(--color-ink);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.4;
	margin: 0;
}
.loginCard__txt {
	color: var(--color-muted);
	margin: 8px 0 0;
}
.loginForm {
	display: grid;
	gap: 16px;
}
.loginForm__field {
	display: grid;
	gap: 6px;
}
.loginForm__field > span {
	color: var(--color-body);
	font-weight: 600;
}
.loginForm__field input {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border-strong);
	border-radius: 6px;
	min-height: 44px;
	padding: 9px 12px;
	width: 100%;
}
.loginForm__status {
	background: var(--color-error-bg);
	border: 1px solid var(--color-error-border);
	border-radius: 6px;
	color: var(--color-error);
	margin: 0;
	padding: 10px 12px;
}
.loginForm__status--success {
	background: var(--color-success-bg);
	border-color: var(--color-success-border);
	color: var(--color-success);
}
.loginForm__submit {
	justify-self: stretch;
	width: 100%;
}
.loginForm__reset {
	background: transparent;
	border: 0;
	color: var(--color-primary);
	justify-self: center;
	padding: 0;
	text-decoration: underline;
}
.loginForm__reset:hover {
	color: var(--color-primary-hover);
}
@media screen and (max-width: 1100px) {
}
@media screen and (max-width: 767px) {
	.loginPage {
		padding: 16px;
	}
	.loginCard {
		padding: 20px 16px;
	}
	.loginCard__tit {
		font-size: 20px;
	}
}

/* ----------
パスワード再設定ダイアログ
---------- */
.passwordResetDialog {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	color: var(--color-body);
	max-height: calc(100dvh - 48px);
	max-width: 480px;
	padding: 0;
	width: calc(100% - 48px);
}
.passwordResetDialog::backdrop {
	background: rgb(24 35 47 / 40%);
}
.passwordResetDialog__form {
	display: grid;
	gap: 16px;
	margin: 0;
	padding: 24px;
}
.passwordResetDialog__view {
	display: grid;
	gap: 16px;
}
.passwordResetDialog__head {
	align-items: flex-start;
	display: flex;
	gap: 16px;
	justify-content: space-between;
}
.passwordResetDialog__eyebrow {
	color: var(--color-primary);
	font-size: 13px;
	font-weight: 600;
	margin: 0 0 4px;
}
.passwordResetDialog__title {
	color: var(--color-ink);
	font-size: 20px;
	line-height: 1.4;
	margin: 0;
}
.passwordResetDialog__text {
	margin: 0;
}
.passwordResetDialog__field {
	display: grid;
	gap: 6px;
}
.passwordResetDialog__field > span {
	color: var(--color-body);
	font-weight: 600;
}
.passwordResetDialog__field input {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border-strong);
	border-radius: 6px;
	min-height: 44px;
	padding: 9px 12px;
	width: 100%;
}
.passwordResetDialog__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
}
@media screen and (max-width: 1100px) {
}
@media screen and (max-width: 767px) {
	.passwordResetDialog {
		max-height: calc(100dvh - 24px);
		width: calc(100% - 24px);
	}
	.passwordResetDialog__form {
		padding: 20px 16px;
	}
	.passwordResetDialog__actions {
		justify-content: stretch;
	}
	.passwordResetDialog__actions .btn {
		flex: 1 1 100%;
	}
}

/* ----------
共通部品
---------- */
.inner {
	width: 100%;
}

.card {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	padding: 20px;
}

.btn,
.iconBtn,
.segBtn {
	align-items: center;
	border-radius: 6px;
	display: inline-flex;
	font-weight: 600;
	justify-content: center;
	line-height: 1.4;
	min-height: 40px;
	white-space: normal;
	text-decoration: none;
}

.btn {
	border: 1px solid var(--color-border-strong);
	gap: 8px;
	padding: 0 16px;
}

.btn--primary {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-on-primary);
}

.btn--primary:hover:not(:disabled) {
	background: var(--color-primary-hover);
	border-color: var(--color-primary-hover);
}

.btn--secondary:hover:not(:disabled),
.iconBtn:hover:not(:disabled) {
	background: var(--color-surface-muted);
}

.btn--secondary {
	background: var(--color-surface-card);
	color: var(--color-ink);
}

.btn--danger {
	background: var(--color-error);
	border-color: var(--color-error);
	color: #fff;
}

.btn--danger:hover:not(:disabled) {
	background: #8f1d15;
	border-color: #8f1d15;
}

.btn.is-loading::before {
	animation: spin 0.8s linear infinite;
	border: 2px solid currentColor;
	border-right-color: transparent;
	border-radius: 50%;
	content: "";
	height: 14px;
	width: 14px;
}

.iconBtn {
	aspect-ratio: 1;
	background: var(--color-surface-card);
	border: 1px solid var(--color-border-strong);
	color: var(--color-ink);
	font-size: 16px;
	height: 40px;
	padding: 0;
	width: 40px;
}

.iconBtn--danger {
	color: var(--color-error);
}

.statusBadge {
align-items: center;
	border-radius: 4px;
	display: inline-flex;
	font-size: 13px;
	font-weight: 500;
	min-height: 28px;
	overflow-wrap: anywhere;
	padding: 4px 10px;
}

.statusBadge--success {
	background: var(--color-success-bg);
	border: 1px solid var(--color-success-border);
	color: var(--color-success);
}

.statusBadge--warning {
	background: var(--color-warning-bg);
	border: 1px solid var(--color-warning-border);
	color: var(--color-warning);
}

.statusBadge--info {
	background: var(--color-info-bg);
	border: 1px solid var(--color-info-border);
	color: var(--color-info);
}

.statusBadge--error {
	background: var(--color-error-bg);
	border: 1px solid var(--color-error-border);
	color: var(--color-error);
}

.statusBadge--neutral {
	background: var(--color-neutral-bg);
	border: 1px solid var(--color-neutral-border);
	color: var(--color-neutral);
}

@media (prefers-reduced-motion: reduce) {
	.btn.is-loading::before {
		animation: none;
	}
}

/* ----------
申請削除ダイアログ
---------- */
.deleteReportDialog {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	color: var(--color-body);
	margin: auto;
	max-width: 520px;
	padding: 0;
	width: calc(100% - 48px);
}
.deleteReportDialog::backdrop {
	background: rgb(24 35 47 / 40%);
}
.deleteReportDialog__form {
	display: grid;
	gap: 16px;
	padding: 20px;
}
.deleteReportDialog h2,
.deleteReportDialog p {
	margin: 0;
}
.deleteReportDialog h2 {
	color: var(--color-ink);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.5;
}
.deleteReportDialog__target,
.deleteReportDialog__notice {
	background: var(--color-error-bg);
	border-left: 3px solid var(--color-error);
	border-radius: 4px;
	color: var(--color-error);
	font-size: 13px;
	padding: 12px 16px;
}
.deleteReportDialog__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
}
@media screen and (max-width: 1100px) {
}
@media screen and (max-width: 767px) {
	.deleteReportDialog {
		width: calc(100% - 24px);
	}
	.deleteReportDialog__form {
		padding: 16px;
	}
	.deleteReportDialog__actions .btn {
		flex: 1 1 100%;
		min-height: 44px;
	}
}

@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}

.cardHead,
.panelHead {
	align-items: flex-start;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	margin-bottom: 16px;
}

.cardHead__tit,
.panelHead__tit {
	color: var(--color-ink);
	font-size: 18px;
	font-weight: 600;
	line-height: 1.4;
	margin: 0;
}

.cardHead__txt {
	color: var(--color-muted);
	font-size: 13px;
	margin: 4px 0 0;
}

.cardHead__actions,
.panelHead__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	justify-content: flex-end;
}

input,
select,
textarea {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border-strong);
	border-radius: 6px;
	color: var(--color-ink);
	min-height: 40px;
	padding: 8px 12px;
	width: 100%;
}

textarea {
	min-height: 88px;
	resize: vertical;
}

label span {
color: var(--color-body);
	display: block;
	font-size: 14px;
	font-weight: 500;
	margin-bottom: 4px;
}

@media screen and (max-width: 1100px) {
}

@media screen and (max-width: 767px) {
	.card {
		padding: 16px;
	}

	.btn,
	.iconBtn,
	.segBtn,
	input,
	select,
	textarea {
		min-height: 44px;
	}

	input,
	select,
	textarea {
		font-size: 16px;
	}

	.iconBtn {
		height: 44px;
		width: 44px;
	}

	.cardHead,
	.panelHead {
		display: block;
	}

	.cardHead__actions,
	.panelHead__actions {
		justify-content: flex-start;
		margin-top: 12px;
	}
}

/* ----------
サイドバー
---------- */
.appShell {
	display: grid;
	grid-template-columns: 224px minmax(0, 1fr);
	min-height: 100vh;
}
.appShell.is-collapsed {
	grid-template-columns: 64px minmax(0, 1fr);
}
.sideNav {
	align-self: start;
	background: var(--color-sidebar-bg);
	border-right: 1px solid var(--color-sidebar-border);
	color: var(--color-sidebar-text);
	display: flex;
	flex-direction: column;
	gap: 24px;
	min-height: 100vh;
	padding: 24px 12px;
	position: sticky;
	top: 0;
	z-index: 5;
}
.sideNav__head {
	align-items: center;
	display: flex;
	gap: 8px;
	justify-content: space-between;
	padding-left: 8px;
}
.sideNav__tit {
	color: var(--color-ink);
	font-size: 20px;
	font-weight: 600;
	margin: 0;
	white-space: nowrap;
}
.sideNav__toggle {
	background: transparent;
	border: 0;
	color: var(--color-sidebar-text);
	flex-shrink: 0;
}
.mobileNavHead,
.sideNav__backdrop {
	display: none;
}
.sideNav__menu {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.sideNav__cat {
	color: var(--color-sidebar-muted);
	font-size: 12px;
	font-weight: 500;
	margin: 0 12px 4px;
}
.sideNav__lnk {
	align-items: center;
	background: transparent;
	border: 0;
	border-radius: 6px;
	color: var(--color-sidebar-text);
	display: flex;
	font-weight: 500;
	gap: 12px;
	min-height: 44px;
	padding: 10px 12px;
	position: relative;
	text-align: left;
	text-decoration: none;
	width: 100%;
}
.sideNav__cat[hidden],
.sideNav__lnk[hidden] {
	display: none;
}
.sideNav__lnk:hover {
	background: var(--color-sidebar-surface-hover);
}
.sideNav__lnk.is-active {
	background: var(--color-sidebar-active);
	color: var(--color-primary);
	font-weight: 600;
}
.sideNav__lnk.is-active::before {
	background: currentColor;
	border-radius: 2px;
	content: "";
	height: 18px;
	left: 0;
	position: absolute;
	width: 3px;
}
.sideNav__lnk.is-active:hover {
	background: var(--color-sidebar-active-hover);
	color: var(--color-primary-hover);
}
.sideNav__ico {
	display: inline-flex;
	flex: 0 0 18px;
}
.sideNav__user {
	border-top: 1px solid var(--color-sidebar-border);
	display: grid;
	gap: 4px;
	margin-top: auto;
	padding: 16px 8px 0;
}
.sideNav__userName,
.sideNav__userEmail {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.sideNav__userName {
	color: var(--color-sidebar-text-strong);
	font-weight: 600;
	margin: 0;
}
.sideNav__userEmail {
	color: var(--color-sidebar-muted);
	font-size: 12px;
	margin: 0 0 8px;
}
.sideNav__logout {
	background: transparent;
	border: 1px solid var(--color-sidebar-border);
	border-radius: 6px;
	color: var(--color-sidebar-text);
	min-height: 36px;
	padding: 6px 10px;
	text-align: center;
	width: 100%;
}
.sideNav__logout:hover {
	background: var(--color-sidebar-surface-hover);
}
.appShell.is-collapsed .sideNav {
	padding: 24px 8px;
}
.appShell.is-collapsed .sideNav__head {
	justify-content: center;
	padding-left: 0;
}
.appShell.is-collapsed .sideNav__tit,
.appShell.is-collapsed .sideNav__cat,
.appShell.is-collapsed .sideNav__txt,
.appShell.is-collapsed .sideNav__userName,
.appShell.is-collapsed .sideNav__userEmail {
	display: none;
}
.appShell.is-collapsed .sideNav__lnk {
	justify-content: center;
	padding: 10px;
}
.appShell.is-collapsed .sideNav__lnk:is(:hover, :focus-visible)::after {
	background: var(--color-ink);
	border-radius: 4px;
	color: #ffffff;
	content: attr(data-label);
	left: calc(100% + 8px);
	padding: 6px 10px;
	position: absolute;
	white-space: nowrap;
	z-index: 1;
}
.appShell.is-collapsed .sideNav__user {
	padding: 12px 0 0;
}
.appShell.is-collapsed .sideNav__logout {
	font-size: 0;
	min-height: 40px;
	padding: 8px;
	position: relative;
}
.appShell.is-collapsed .sideNav__logout::after {
	content: "↪";
	font-size: 18px;
}
@media screen and (max-width: 1100px) {
	.appShell {
		grid-template-columns: 184px minmax(0, 1fr);
	}
	.sideNav__head {
		padding-left: 0;
	}
}
@media screen and (max-width: 767px) {
	.appShell,
	.appShell.is-collapsed {
		grid-template-columns: minmax(0, 1fr);
		grid-template-rows: auto 1fr;
	}
	.mobileNavHead {
		align-items: center;
		background: var(--color-sidebar-bg);
		border-bottom: 1px solid var(--color-sidebar-border);
		display: flex;
		justify-content: space-between;
		padding: 8px 12px;
		position: sticky;
		top: 0;
		z-index: 5;
	}
	.mobileNavHead .iconBtn {
		min-width: 44px;
		min-height: 44px;
	}
	.sideNav,
	.appShell.is-collapsed .sideNav {
		border-bottom: 0;
		border-left: 1px solid var(--color-sidebar-border);
		border-right: 0;
		gap: 12px;
		height: 100dvh;
		min-height: 100dvh;
		padding: 12px;
		position: fixed;
		right: 0;
		top: 0;
		transform: translateX(100%);
		transition: transform 180ms ease;
		visibility: hidden;
		width: min(84vw, 320px);
		z-index: 20;
	}
	.appShell.is-menu-open .sideNav {
		transform: translateX(0);
		visibility: visible;
	}
	.sideNav__backdrop {
		background: rgb(24 35 47 / 30%);
		border: 0;
		display: block;
		inset: 0;
		opacity: 0;
		padding: 0;
		pointer-events: none;
		position: fixed;
		transition: opacity 180ms ease;
		visibility: hidden;
		z-index: 19;
	}
	.appShell.is-menu-open .sideNav__backdrop {
		opacity: 1;
		pointer-events: auto;
		visibility: visible;
	}
	.sideNav__head,
	.appShell.is-collapsed .sideNav__head {
		justify-content: space-between;
		padding-left: 4px;
	}
	.appShell.is-collapsed .sideNav__tit,
	.appShell.is-collapsed .sideNav__cat,
	.appShell.is-collapsed .sideNav__txt,
	.appShell.is-collapsed .sideNav__userName,
	.appShell.is-collapsed .sideNav__userEmail {
		display: block;
	}
	.appShell.is-collapsed .sideNav__lnk {
		justify-content: flex-start;
	}
	.appShell.is-collapsed .sideNav__logout {
		font-size: 14px;
	}
	.appShell.is-collapsed .sideNav__logout::after {
		content: none;
	}
	.sideNav__menu {
		display: flex;
		gap: 4px;
		overflow-y: auto;
	}
	.sideNav__lnk {
		gap: 6px;
		justify-content: flex-start;
		padding: 10px 8px;
	}
	.sideNav__user {
		border-top: 1px solid var(--color-sidebar-border);
		margin-top: auto;
		padding: 0 4px;
	}
	.sideNav__userName,
	.sideNav__userEmail {
		display: block;
	}
	.sideNav__logout {
		max-width: none;
	}
	body.is-drawer-open {
		overflow: hidden;
	}
}

@media screen and (max-width: 767px) and (prefers-reduced-motion: reduce) {
	.appShell .sideNav,
	.sideNav__backdrop {
		transition: none;
	}
}

/* ----------
メインエリア
---------- */
.mainArea {
	display: flex;
	flex-direction: column;
	gap: 20px;
	margin: 0 auto;
	max-width: 1328px;
	min-width: 0;
	padding: 24px;
	width: 100%;
}
.pageHead {
	align-items: flex-start;
	display: flex;
	flex-wrap: wrap;
	gap: 12px 20px;
	justify-content: space-between;
	margin-bottom: 4px;
}
.pageHead__tit {
	color: var(--color-ink);
	font-size: 24px;
	font-weight: 600;
	line-height: 1.4;
	margin: 0;
}
.pageHead__txt {
	color: var(--color-muted);
	font-size: 13px;
	margin: 8px 0 0;
}
.pageHead__tools {
	max-width: 100%;
}
.mainArea > section {
	scroll-margin-top: 20px;
}
@media screen and (max-width: 1100px) {
	.mainArea {
		padding: 20px;
	}
}
@media screen and (max-width: 767px) {
	.mainArea {
		padding: 20px 12px;
	}
	.pageHead__tit {
		font-size: 20px;
	}
}

/* ----------
アクション
---------- */
.actionSec__inner {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.actionCard {
	align-items: center;
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	display: flex;
	gap: 12px;
	min-height: 86px;
	padding: 16px;
	text-align: left;
}

.actionCard:hover {
	border-color: var(--color-border-strong);
}

.actionCard__ico {
	align-items: center;
	background: var(--color-primary-soft);
	border-radius: 8px;
	color: var(--color-primary);
	display: inline-flex;
	font-size: 18px;
	height: 40px;
	justify-content: center;
	width: 40px;
}

.actionCard__tit {
	color: var(--color-ink);
	display: block;
	font-weight: 700;
}

.actionCard__txt {
	color: var(--color-muted);
	display: block;
	font-size: 12px;
	margin-top: 2px;
}

@media screen and (max-width: 1100px) {
	.actionSec__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 767px) {
	.actionSec__inner {
		grid-template-columns: 1fr;
	}
}

/* ----------
領収書
---------- */
.receiptBox {
	display: grid;
	gap: 16px;
	grid-template-columns: minmax(0, 1fr);
}

.receiptPickList {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	min-width: 0;
}

.filePick {
	align-items: center;
	background: var(--color-surface-subtle);
	border: 1px dashed var(--color-border-strong);
	border-radius: 8px;
	cursor: pointer;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 128px;
	min-width: 0;
	padding: 16px;
	position: relative;
	text-align: center;
}

.filePick--camera {
	align-items: stretch;
	padding: 12px;
}

.filePick--camera.is-camera-active {
	grid-column: 1 / -1;
	padding: 0;
}

.filePick--camera.is-camera-active .filePick__btn {
	border-bottom: 1px solid var(--color-border);
	min-height: 54px;
	padding: 12px;
}

.filePick input {
	height: 1px;
	min-height: 0;
	opacity: 0;
	padding: 0;
	position: absolute;
	width: 1px;
}

.filePick:focus-within {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

.filePick:hover {
	background: var(--color-primary-soft);
}

.filePick > .uiIcon,
.filePick__btn > .uiIcon {
	color: var(--color-primary);
	margin-bottom: 8px;
}

.filePick__btn {
	align-items: center;
	background: transparent;
	border: 0;
	color: inherit;
	cursor: pointer;
	display: flex;
	flex: 1;
	flex-direction: column;
	justify-content: center;
	min-height: 94px;
	padding: 0;
	text-align: center;
	width: 100%;
}

.filePick__btn:disabled {
	color: var(--color-disabled);
	cursor: not-allowed;
}

.filePick__tit {
	color: var(--color-ink);
	font-size: 16px;
	font-weight: 600;
}

.filePick__txt {
	color: var(--color-muted);
	font-size: 13px;
	font-weight: 400;
	margin: 4px 0 0;
}

.receiptCamera {
	display: grid;
	gap: 12px;
	padding: 12px;
}

.receiptCamera[hidden] {
	display: none;
}

.receiptCamera__video {
	aspect-ratio: 3 / 4;
	background: #000000;
	border-radius: 6px;
	display: block;
	height: min(70vh, 760px);
	max-height: min(70vh, 760px);
	object-fit: contain;
	width: 100%;
}

.receiptCamera__actions {
	display: grid;
	gap: 10px;
	grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
}

.receiptCamera__actions .btn {
	flex: 1;
	min-height: 48px;
}

.receiptCamera__feedback {
	border: 1px solid var(--color-border);
	border-radius: 6px;
	font-size: 13px;
	line-height: 1.6;
	margin: 0;
	overflow-wrap: anywhere;
	padding: 8px 10px;
}

.receiptCamera__feedback--info {
	background: var(--color-primary-soft);
	border-color: var(--color-primary);
	color: var(--color-primary);
}

.receiptCamera__feedback--success {
	background: var(--color-success-bg);
	border-color: var(--color-success-border);
	color: var(--color-success);
}

.receiptCamera__feedback--error {
	background: var(--color-error-bg);
	border-color: var(--color-error-border);
	color: var(--color-error);
}

.receiptCamera__feedback--neutral {
	background: var(--color-surface-subtle);
	color: var(--color-muted);
}

.receiptPreview {
	background: var(--color-surface-subtle);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	display: flex;
	padding: 12px;
}

.receiptPreview[hidden] {
	display: none;
}

.receiptPreview__list {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	width: 100%;
}

.receiptPreview__item {
	margin: 0;
	min-width: 0;
	position: relative;
}

.receiptPreview__item.is-processed .receiptPreview__img {
	opacity: 0.62;
}

.receiptPreview__check {
	align-items: center;
	background: var(--color-surface-card);
	border: 1px solid var(--color-border-strong);
	border-radius: 4px;
	cursor: pointer;
	display: inline-flex;
	height: 36px;
	justify-content: center;
	left: 6px;
	position: absolute;
	top: 6px;
	width: 36px;
	z-index: 2;
}

.receiptPreview__check input {
	accent-color: var(--color-primary);
	appearance: auto;
	cursor: pointer;
	display: block;
	height: 18px;
	margin: 0;
	min-height: 0;
	padding: 0;
	width: 18px;
}

.receiptPreview__check input:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

.receiptPreview__button {
	background: var(--color-surface-card);
	border: 0;
	cursor: zoom-in;
	display: block;
	padding: 0;
	width: 100%;
}

.receiptPreview__button:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: 2px;
}

.receiptPreview__img {
	aspect-ratio: 4 / 3;
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: 4px;
	display: block;
	object-fit: contain;
	width: 100%;
}

.receiptPreview__name {
	color: var(--color-muted);
	display: block;
	font-size: 12px;
	margin-top: 4px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.receiptPreview__badge {
	background: var(--color-success-bg);
	border: 1px solid var(--color-success-border);
	border-radius: 4px;
	color: var(--color-success);
	display: inline-flex;
	font-size: 12px;
	line-height: 1.4;
	margin-top: 4px;
	padding: 2px 8px;
}

.receiptActions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	grid-column: 1 / -1;
}

.receiptNotice {
	overflow-wrap: anywhere;
	border: 1px solid var(--color-border);
	border-radius: 6px;
	flex-basis: 100%;
	font-size: 13px;
	line-height: 1.6;
	margin: 4px 0 0;
	padding: 8px 10px;
}

.receiptNotice--error {
	background: var(--color-error-bg);
	border-color: var(--color-error-border);
	color: var(--color-error);
}

.receiptNotice--warning {
	background: var(--color-warning-bg);
	border-color: var(--color-warning-border);
	color: var(--color-warning);
}

.receiptNotice--neutral {
	background: var(--color-surface-subtle);
	color: var(--color-muted);
}

.receiptLightbox {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border-strong);
	border-radius: 8px;
	display: none;
	flex-direction: column;
	height: min(calc(100vh - 32px), 900px);
	height: min(calc(100dvh - 32px), 900px);
	max-height: calc(100vh - 32px);
	max-height: calc(100dvh - 32px);
	max-width: min(96vw, 1200px);
	overflow: hidden;
	padding: 0;
	width: min(96vw, 1200px);
}

.receiptLightbox[open] {
	display: flex;
}

.receiptLightbox::backdrop {
	background: rgba(17, 24, 39, 0.55);
}

.receiptLightbox__head {
	align-items: center;
	border-bottom: 1px solid var(--color-border);
	display: flex;
	flex: 0 0 auto;
	gap: 12px;
	justify-content: space-between;
	padding: 12px 16px;
}

.receiptLightbox__headInfo {
	min-width: 0;
}

.receiptLightbox__title {
	color: var(--color-ink);
	font-weight: 600;
	margin: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.receiptLightbox__counter {
	color: var(--color-muted);
	font-size: 12px;
	margin: 2px 0 0;
}

.receiptLightbox__body {
	align-items: center;
	display: grid;
	flex: 1;
	gap: 12px;
	grid-template-columns: 40px minmax(0, 1fr) 40px;
	grid-template-rows: minmax(0, 1fr);
	min-height: 0;
	justify-content: center;
	overflow: hidden;
	padding: 16px;
}

.receiptLightbox__nav--prev {
	grid-column: 1;
}

.receiptLightbox__nav--next {
	grid-column: 3;
}

.receiptLightbox__body img {
	align-self: center;
	grid-column: 2;
	height: auto;
	justify-self: center;
	max-height: 100%;
	max-height: min(100%, calc(100vh - 180px));
	max-height: min(100%, calc(100dvh - 180px));
	max-width: 100%;
	min-height: 0;
	min-width: 0;
	object-fit: contain;
	width: auto;
}

.receiptLightbox__foot {
	border-top: 1px solid var(--color-border);
	display: flex;
	flex: 0 0 auto;
	justify-content: flex-end;
	padding: 12px 16px;
}

@media screen and (max-width: 1100px) {
	.receiptCamera__video {
		height: min(68vh, 680px);
		height: min(68dvh, 680px);
		max-height: min(68vh, 680px);
		max-height: min(68dvh, 680px);
	}
}

@media screen and (max-width: 767px) {
	.receiptPickList {
		grid-template-columns: minmax(0, 1fr);
	}
	.filePick--camera.is-camera-active .filePick__btn {
		min-height: 48px;
	}
	.receiptCamera {
		padding: 10px;
	}
	.receiptCamera__video {
		aspect-ratio: auto;
		height: min(68vh, 620px);
		height: min(68dvh, 620px);
		max-height: calc(100vh - 220px);
		max-height: calc(100dvh - 220px);
	}
	.receiptCamera__actions {
		grid-template-columns: minmax(0, 1fr);
	}
	.receiptCamera__actions .btn {
		font-size: 16px;
		min-height: 52px;
	}
	.receiptPreview__check {
		height: 44px;
		width: 44px;
	}
	.receiptLightbox__body {
		gap: 4px;
		grid-template-columns: 44px minmax(0, 1fr) 44px;
	}
	.receiptBox {
		grid-template-columns: 1fr;
	}

	.receiptPreview__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.receiptLightbox {
		height: calc(100vh - 24px);
		height: calc(100dvh - 24px);
		max-height: calc(100vh - 24px);
		max-height: calc(100dvh - 24px);
		width: calc(100vw - 24px);
	}

	.receiptLightbox__body {
		padding: 12px;
	}

	.receiptLightbox__foot {
		padding: 10px 12px;
	}
}

/* ----------
経費一覧
---------- */
.expenseSec .cardHead {
	margin-bottom: 16px;
}

.expenseSec .cardHead > div {
	align-items: baseline;
	display: flex;
	gap: 12px;
}

.expenseSec .cardHead__txt {
	font-variant-numeric: tabular-nums;
	margin: 0;
}

.expenseTools {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 20px;
}

.expenseEditHint {
	color: var(--color-muted);
	font-size: 13px;
	margin: 0 0 12px;
}

/* [明細カード] */
.expenseCards {
	display: grid;
	gap: 12px;
	min-width: 0;
}

.expenseSec__inner > .expenseAddBtn {
	border-color: var(--color-primary);
	color: var(--color-primary);
	display: flex;
	margin: 16px auto 0;
	max-width: 840px;
	width: 100%;
}

.expenseFoot #saveDraftBtn {
	background: var(--color-primary);
	border-color: var(--color-primary);
	color: var(--color-on-primary);
	margin-left: auto;
	min-width: 160px;
	order: 4;
}

.expenseCard {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: 6px;
	min-width: 0;
	padding: 16px;
}

.expenseCard__head {
	align-items: center;
	display: flex;
	gap: 16px;
	min-width: 0;
}

.expenseCard__toggle,
.expenseCard__edit {
	background: transparent;
	border: 0;
	color: var(--color-primary);
	cursor: pointer;
	font: inherit;
	font-weight: 600;
	min-height: 44px;
	padding: 4px;
}

.expenseCard__toggle {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	gap: 12px;
}

.expenseCard__toggle::before {
	border-bottom: 2px solid currentColor;
	border-right: 2px solid currentColor;
	content: '';
	height: 8px;
	transform: rotate(45deg);
	width: 8px;
}

.expenseCard__toggle[aria-expanded="true"]::before {
	transform: rotate(225deg);
}

.expenseCard__preview {
	align-items: center;
	display: flex;
	flex: 1;
	flex-wrap: wrap;
	gap: 12px 24px;
	min-width: 0;
}

.expenseCard__previewValue {
	overflow-wrap: anywhere;
}

.expenseCard__previewValue--2 {
	background: var(--color-surface-muted);
	border-radius: 4px;
	font-size: 12px;
	padding: 3px 10px;
}

.expenseCard__previewValue--3 {
	font-size: 20px;
	margin-left: auto;
}

.expenseCard__menu {
	flex-shrink: 0;
	margin-left: auto;
	position: relative;
}

.expenseCard__menu > summary {
	cursor: pointer;
	font-size: 24px;
	list-style: none;
	min-height: 44px;
	text-align: center;
	width: 44px;
}

.expenseCard__menu > summary::-webkit-details-marker {
	display: none;
}

.expenseCard__menu .rowActions {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: 6px;
	padding: 8px;
	position: absolute;
	right: 0;
	top: 100%;
	z-index: 2;
}

.expenseCard__fields {
	display: grid;
	gap: 16px;
	grid-template-columns: minmax(0, 1.2fr) minmax(0, 1.7fr) minmax(0, 1.1fr) minmax(0, .9fr) minmax(0, 1.9fr);
	margin-top: 12px;
}

.expenseCard__field {
	display: grid;
	gap: 6px;
	min-width: 0;
}

.expenseCard__field input {
	min-height: 44px;
	min-width: 0;
	width: 100%;
}

.expenseCard__field--amount input {
	text-align: right;
}

.expenseCard > .expenseReceiptDetails {
	margin-top: 14px;
}

.expenseCard__fields[hidden],
.expenseCard__preview[hidden],
.expenseCard__edit[hidden] {
	display: none;
}

@media screen and (max-width: 1100px) {
	.expenseCard__fields {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.expenseCard__field--note {
		grid-column: 1 / -1;
	}
}

@media screen and (max-width: 767px) {
	.expenseCard {
		padding: 12px;
	}

	.expenseCard__head {
		flex-wrap: wrap;
		gap: 0 8px;
	}

	.expenseCard__preview {
		display: grid;
		flex-basis: 100%;
		gap: 4px 12px;
		grid-template-columns: minmax(0, 1fr) auto;
		order: 4;
	}

	.expenseCard__previewValue--0,
	.expenseCard__previewValue--1,
	.expenseCard__previewValue--2 {
		grid-column: 1;
		justify-self: start;
	}

	.expenseCard__previewValue--3 {
		grid-column: 2;
		grid-row: 1 / 4;
	}

	.expenseCard__edit {
		margin-left: auto;
	}

	.expenseCard__menu {
		margin-left: 0;
	}

	.expenseCard.is-expanded .expenseCard__menu {
		margin-left: auto;
	}

	.expenseCard__fields {
		gap: 12px;
		margin-top: 4px;
	}

	.expenseCard__field--date,
	.expenseCard__field--description {
		grid-column: 1 / -1;
	}

	.expenseCard__field input {
		font-size: 16px;
	}
}

.expenseTableWrap {
	border: 1px solid var(--color-border);
	border-radius: 6px;
	overflow-x: auto;
}

.expenseTable {
	border-collapse: collapse;
	min-width: 1120px;
	table-layout: fixed;
	width: 100%;
}

.expenseTable th,
.expenseTable td {
	border-bottom: 1px solid var(--color-border);
	padding: 8px;
	text-align: left;
	vertical-align: middle;
}

.expenseTable th {
	background: var(--color-surface-subtle);
	color: var(--color-body);
	font-size: 13px;
	font-weight: 500;
	padding: 12px 8px;
}

.expenseTable tr:last-child td {
	border-bottom: 0;
}

.expenseTable tbody tr:hover,
.expenseTable tbody tr:focus-within {
	background: var(--color-surface-subtle);
}

.expenseTable input,
.expenseTable select {
	padding: 8px;
}

.expenseTable .cellYear {
	width: 82px;
}

.expenseTable .cellMonth,
.expenseTable .cellDay {
	width: 64px;
}

.expenseTable .cellYear input {
	padding: 8px 4px;
	text-align: center;
	-moz-appearance: textfield;
}

.expenseTable .cellYear input::-webkit-outer-spin-button,
.expenseTable .cellYear input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.expenseTable .cellMonth select,
.expenseTable .cellDay select {
	padding: 8px 2px;
}

.expenseTable .cellAmount {
	text-align: right;
	width: 112px;
}

.expenseTable .cellAmount input {
	font-variant-numeric: tabular-nums;
	text-align: right;
}

.expenseTable .cellCategory {
	width: 144px;
}

.expenseTable .cellReceipt {
	text-align: center;
	width: 112px;
}

.expenseTable .cellActions {
	width: 136px;
}

.expenseReceiptToggle {
	font-size: 12px;
	min-height: 36px;
	padding: 6px 8px;
	white-space: nowrap;
}

.expenseTable tbody tr.expenseRow:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: -2px;
}

.rowActions {
	display: flex;
	gap: 4px;
	justify-content: center;
}

.expenseTable .rowActions .iconBtn {
	background: transparent;
	border-color: transparent;
	height: 36px;
	min-height: 36px;
	width: 36px;
}

.expenseTable .rowActions .iconBtn:hover:not(:disabled) {
	background: var(--color-surface-muted);
	border-color: var(--color-border-strong);
}

.expenseFoot {
	align-items: center;
	background: var(--color-surface-subtle);
	border-top: 1px solid var(--color-border);
	border-radius: 0 0 8px 8px;
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	margin: 20px -20px -20px;
	padding: 16px 20px;
}

.expenseExport {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.expenseTotal {
	align-items: baseline;
	display: flex;
	gap: 12px;
	margin: 0 0 0 auto;
}

.expenseTotal strong {
	color: var(--color-ink);
	font-size: 24px;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	line-height: 1.3;
	overflow-wrap: anywhere;
}

.expensePrintActions {
	display: flex;
}

.emptyTxt {
	color: var(--color-body);
	margin: 0;
	padding: 32px 12px;
	text-align: center;
}

.emptyTxt span {
	color: var(--color-muted);
	display: block;
	font-size: 13px;
	margin-top: 8px;
}

.expenseEditDialog {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border-strong);
	border-radius: 8px;
	box-shadow: 0 8px 24px rgb(24 35 47 / 12%);
	color: var(--color-body);
	max-height: calc(100vh - 48px);
	max-height: calc(100dvh - 48px);
	max-width: 560px;
	overflow: hidden;
	padding: 0;
	width: calc(100% - 48px);
}

.expenseEditDialog::backdrop {
	background: rgb(24 35 47 / 48%);
}

.expenseEditDialog__form {
	display: flex;
	flex-direction: column;
	margin: 0;
	max-height: calc(100vh - 50px);
	max-height: calc(100dvh - 50px);
}

.expenseEditDialog__head,
.expenseEditDialog__foot {
	align-items: center;
	display: flex;
	flex-shrink: 0;
	gap: 12px;
	justify-content: space-between;
	padding: 16px;
}

.expenseEditDialog__head {
	border-bottom: 1px solid var(--color-border);
}

.expenseEditDialog__tit {
	color: var(--color-ink);
	font-size: 18px;
	font-weight: 600;
	margin: 0;
}

.expenseEditDialog__body {
	display: grid;
	gap: 16px 12px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	min-height: 0;
	overflow-y: auto;
	padding: 16px;
}

.expenseEditDialog__foot {
	border-top: 1px solid var(--color-border);
	justify-content: flex-end;
}

.editField {
	display: grid;
	gap: 4px;
	min-width: 0;
}

.editField--wide {
	grid-column: 1 / -1;
}

@media screen and (max-width: 1100px) {
}

@media screen and (max-width: 767px) {
	.expenseTools .btn {
		flex: 1 1 100%;
	}

	.expenseTable .cellActions {
		width: 156px;
	}

	.expenseTable .cellReceipt {
		width: 120px;
	}

	.expenseTable tbody tr {
		cursor: pointer;
	}

	.expenseTable .expenseRow input,
	.expenseTable .expenseRow select {
		pointer-events: none;
	}

	.expenseTable .rowActions .iconBtn {
		height: 44px;
		min-height: 44px;
		width: 44px;
	}

	.expenseFoot {
		gap: 12px;
		margin: 16px -16px -16px;
		padding: 16px;
	}

	.expenseExport {
		width: 100%;
	}

	.expenseTotal {
		margin-left: 0;
	}

	.expenseTotal strong {
		font-size: 22px;
	}

	.expensePrintActions {
		margin-left: auto;
	}

	.expenseEditDialog {
		max-height: calc(100vh - 24px);
		max-height: calc(100dvh - 24px);
		max-width: calc(100% - 24px);
		width: calc(100% - 24px);
	}

	.expenseEditDialog__form {
		max-height: calc(100vh - 26px);
		max-height: calc(100dvh - 26px);
	}

	.expenseEditDialog__foot {
		padding-bottom: max(16px, env(safe-area-inset-bottom));
	}

}

/* ----------
交通費ダイアログ
---------- */
.transportDialog {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border-strong);
	border-radius: 8px;
	box-shadow: 0 8px 24px rgb(24 35 47 / 12%);
	color: var(--color-body);
	height: min(900px, calc(100vh - 48px));
	height: min(900px, calc(100dvh - 48px));
	max-height: calc(100vh - 48px);
	max-height: calc(100dvh - 48px);
	max-width: 1120px;
	overflow: hidden;
	padding: 0;
	width: calc(100% - 48px);
}

.transportDialog::backdrop {
	background: rgb(24 35 47 / 48%);
}

.transportDialog__form {
	display: grid;
	grid-template-rows: auto minmax(0, 1fr) auto;
	height: 100%;
	margin: 0;
}

.transportDialog__head,
.transportDialog__foot {
	align-items: center;
	display: flex;
	gap: 16px;
	justify-content: space-between;
	padding: 16px 20px;
}

.transportDialog__head {
	border-bottom: 1px solid var(--color-border);
}

.transportDialog__head .iconBtn {
	flex-shrink: 0;
}

.transportDialog__tit {
	color: var(--color-ink);
	font-size: 20px;
	font-weight: 600;
	line-height: 1.4;
	margin: 0;
}

.transportDialog__txt,
.transportState,
.fareHelp {
	color: var(--color-muted);
	font-size: 13px;
	margin: 4px 0 0;
	overflow-wrap: anywhere;
}

.fareHelp {
	margin-bottom: 16px;
}

.transportDialog__body {
	background: var(--color-canvas);
	display: flex;
	flex-direction: column;
	gap: 20px;
	min-height: 0;
	overflow: auto;
	padding: 20px;
}

.transportPanel {
	min-width: 0;
}

.transportPanel--free {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: 8px;
}

.transportDialog__foot {
	background: var(--color-surface-card);
	border-top: 1px solid var(--color-border);
	flex-wrap: wrap;
}

.transportDialog__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.transportTotal {
	color: var(--color-ink);
	margin: 0;
}

.transportTotal strong {
	font-size: 22px;
	font-variant-numeric: tabular-nums;
	font-weight: 600;
	margin-left: 8px;
}

@media screen and (max-width: 1100px) {
	.transportDialog__body {
		padding: 16px;
	}

}

@media screen and (max-width: 767px) {
	.transportDialog {
		border: 0;
		border-radius: 0;
		height: 100vh;
		height: 100dvh;
		max-height: 100vh;
		max-height: 100dvh;
		max-width: 100%;
		width: 100%;
	}

	.transportDialog__head,
	.transportDialog__foot {
		gap: 12px;
		padding: 12px;
	}

	.transportDialog__head {
		align-items: flex-start;
		padding-top: max(12px, env(safe-area-inset-top));
	}

	.transportDialog__tit {
		font-size: 18px;
	}

	.transportDialog__body {
		padding: 12px;
	}

	.transportDialog__foot {
		padding-bottom: max(12px, env(safe-area-inset-bottom));
	}

	.transportDialog__actions {
		width: 100%;
	}

	.transportDialog__actions .btn {
		flex: 1 1 auto;
	}

}

/* ----------
交通費行
---------- */
.routeList,
.freeList {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.transportPanel--free {
	padding: 0;
}

.freeAccordion__summary {
	align-items: center;
	color: var(--color-ink);
	cursor: pointer;
	display: flex;
	font-size: 16px;
	font-weight: 700;
	justify-content: space-between;
	list-style: none;
	min-height: 54px;
	padding: 0 16px;
	user-select: none;
}

.freeAccordion__summary::-webkit-details-marker {
	display: none;
}

.freeAccordion__summary::after {
	align-items: center;
	border: 1px solid var(--color-border-strong);
	border-radius: 6px;
	color: var(--color-primary);
	content: '＋';
	display: inline-flex;
	font-size: 20px;
	height: 30px;
	justify-content: center;
	line-height: 1;
	width: 30px;
}

.freeAccordion__summary:focus-visible {
	outline: 2px solid var(--color-primary);
	outline-offset: -2px;
}

.freeAccordion[open] .freeAccordion__summary {
	border-bottom: 1px solid var(--color-border);
}

.freeAccordion[open] .freeAccordion__summary::after {
	content: '−';
}

.freeAccordion__body {
	padding: 16px;
}

.freeAccordion__actions {
	display: flex;
	justify-content: flex-end;
	margin-bottom: 12px;
}

.routeRow,
.freeRow {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	padding: 16px;
}

.routeRow.is-dragging {
	opacity: 0.45;
}

.routeRow__bar {
	align-items: center;
	display: flex;
	gap: 8px;
	margin-bottom: 12px;
}

.dragHandle {
	color: var(--color-muted);
	cursor: grab;
}

.routeRow__tit {
	color: var(--color-ink);
	margin-right: auto;
}

.routeGrid,
.freeGrid {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

.freeGrid {
	grid-template-columns: 1.2fr 1.5fr 1.5fr 1fr 1.5fr;
}

.routeGrid label,
.freeGrid label {
	min-width: 0;
}

.routeSuggest {
	position: relative;
}

.suggestBox {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border-strong);
	border-radius: 6px;
	box-shadow: 0 8px 24px rgb(24 35 47 / 12%);
	left: 0;
	max-height: 260px;
	overflow-y: auto;
	position: absolute;
	right: 0;
	top: calc(100% + 5px);
	z-index: 3;
}

.suggestBox button {
	background: transparent;
	border: 0;
	display: block;
	text-align: left;
	width: 100%;
}

.suggestItem {
	color: var(--color-ink);
	min-height: 52px;
	padding: 10px 12px;
}

.suggestBox .suggestItem {
	border-bottom: 1px solid var(--color-border);
}

.suggestBox .suggestItem:last-of-type {
	border-bottom: 0;
}

.suggestBox .suggestItem:hover,
.suggestBox .suggestItem.is-active {
	background: var(--color-primary-soft);
}

.suggestName {
	color: var(--color-ink);
	display: block;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.5;
}

.suggestMeta {
	color: var(--color-muted);
	display: block;
	font-size: 12px;
	font-weight: 400;
	line-height: 1.5;
	margin-top: 3px;
}

.suggestEmpty {
	color: var(--color-muted);
	font-size: 13px;
	line-height: 1.6;
	padding: 12px;
}

.suggestLoad {
	border-radius: 6px;
	color: var(--color-primary);
	font-size: 13px;
	line-height: 1.4;
	margin: 0 12px 12px;
	min-height: 44px;
	padding: 8px;
}

.suggestBox .suggestLoad {
	background: var(--color-surface-subtle);
	border: 1px solid var(--color-border-strong);
	text-align: center;
	width: calc(100% - 24px);
}

.suggestBox .suggestLoad:hover {
	background: var(--color-primary-soft);
}

.routeOptions,
.routeRow__actions,
.freeRow__actions {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-top: 12px;
}

.segGroup {
	display: inline-flex;
	gap: 4px;
}

.segBtn {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border-strong);
	color: var(--color-ink);
	min-width: 44px;
	padding: 0 10px;
}

.segBtn.is-active {
	background: var(--color-primary-soft);
	border-color: var(--color-primary);
	color: var(--color-primary);
}

.routeAmount {
	font-variant-numeric: tabular-nums;
	color: var(--color-ink);
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 0 auto;
}

.routeRow__links {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 8px;
}

.routeYahoo {
	color: var(--color-primary);
}

.routeError {
	color: var(--color-error);
	font-size: 13px;
	margin: 0;
}

@media screen and (max-width: 1100px) {
	.freeGrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.freeGrid label:last-child {
		grid-column: 1 / -1;
	}
}

@media screen and (max-width: 767px) {
	.routeRow,
	.freeRow {
		padding: 12px;
	}
	.routeGrid,
	.freeGrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.routeRow__bar {
		flex-wrap: wrap;
	}
	.routeRow__actions .routeImport {
		order: 1;
		width: 100%;
	}
	.routeRow__actions .routeDelete {
		margin-left: auto;
	}
	.freeRow__actions .freeImport {
		flex: 1;
	}

	.routeGrid label:first-child,
	.routeGrid .routeSuggest,
	.routeGrid label:last-child,
	.freeGrid label:last-child {
		grid-column: 1 / -1;
	}

	.routeAmount {
		margin-left: 0;
		width: 100%;
	}
}

/* ----------
承認待ち
---------- */
.approvalSec {
	margin-bottom: 18px;
}

.approvalSec__inner {
	padding-bottom: 20px;
}

.approvalList {
	display: grid;
	gap: 10px;
}

.approvalQueueTotal {
	color: var(--color-ink);
	font-size: 16px;
	font-weight: 700;
	margin: 4px 0 0;
}

/* ----------
経理処理一覧
---------- */
.approvalList--table {
	display: block;
	overflow-x: auto;
}

.approvalTableWrap {
	min-width: 0;
}

.approvalTable {
	border-collapse: collapse;
	min-width: 780px;
	width: 100%;
}

.approvalTable th,
.approvalTable td {
	border-bottom: 1px solid var(--color-border);
	padding: 12px 10px;
	text-align: left;
	vertical-align: middle;
	white-space: nowrap;
}

.approvalTable thead th {
	background: var(--color-surface-subtle);
	color: var(--color-ink-muted);
	font-size: 12px;
	font-weight: 700;
}

.approvalTable tbody th {
	font-weight: 700;
}

.approvalTable tbody tr:last-child th,
.approvalTable tbody tr:last-child td {
	border-bottom: 0;
}

.approvalTable__amount {
	font-weight: 700;
	text-align: right !important;
}

.approvalTable td:last-child {
	text-align: right;
}

@media screen and (max-width: 1100px) {
	.approvalTable {
		min-width: 720px;
	}
}

@media screen and (max-width: 767px) {
	.approvalTable {
		min-width: 680px;
	}

	.approvalTable th,
	.approvalTable td {
		padding: 10px 8px;
	}
}

.approvalCard {
	background: var(--color-surface-subtle);
	border: 1px solid var(--color-border);
	border-radius: 8px;
	padding: 14px 16px;
}

.approvalCard__head,
.approvalCard__foot {
	align-items: center;
	display: flex;
	gap: 12px;
	justify-content: space-between;
}

.approvalCard__title,
.approvalCard__meta,
.approvalCard__amount {
	margin: 0;
}

.approvalCard__title {
	font-weight: 700;
}

.approvalCard__meta {
	color: var(--color-ink-muted);
	font-size: 13px;
	margin-top: 4px;
}

.approvalCard__amount {
	font-size: 17px;
	font-weight: 700;
	margin-top: 12px;
}

.approvalCard__foot {
	margin-top: 12px;
}

.approvalNotice {
	background: var(--color-surface-subtle);
	border: 1px solid var(--color-border);
	border-radius: 6px;
	color: var(--color-ink-muted);
	font-size: 13px;
	margin: 12px 0 0;
	padding: 10px 12px;
}

.approvalNotice.is-error {
	background: var(--color-error-bg);
	border-color: var(--color-error-border);
	color: var(--color-error);
}

.approvalDialog {
	border: 0;
	border-left: 1px solid var(--color-border);
	border-radius: 0;
	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.18);
	height: 100dvh;
	margin: 0;
	max-height: none;
	max-width: 760px;
	min-height: 100dvh;
	inset: 0 0 0 auto;
	overflow: visible;
	padding: 0;
	position: fixed;
	width: min(760px, 100vw);
}

.approvalDialog::backdrop {
	background: rgba(12, 28, 42, 0.42);
}

.approvalDialog__form {
	background: var(--color-surface-card);
	display: flex;
	flex-direction: column;
	height: 100%;
	min-height: 0;
	overflow: hidden;
	padding: 0;
}

.approvalImageViewer {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	box-shadow: -10px 0 28px rgba(0, 0, 0, 0.12);
	display: flex;
	flex-direction: column;
	height: 100%;
	inset: 0 calc(100% + 12px) 0 auto;
	position: absolute;
	width: min(680px, max(320px, calc(100vw - 800px)));
	z-index: 2;
}

.approvalImageViewer[hidden] {
	display: none;
}

.approvalImageViewer__head {
	align-items: center;
	border-bottom: 1px solid var(--color-border);
	display: flex;
	flex: 0 0 auto;
	gap: 12px;
	justify-content: space-between;
	padding: 16px 20px;
}

.approvalImageViewer__eyebrow,
.approvalImageViewer__title {
	margin: 0;
}

.approvalImageViewer__eyebrow {
	color: var(--color-ink-muted);
	font-size: 12px;
}

.approvalImageViewer__title {
	font-size: 16px;
	font-weight: 700;
	margin-top: 3px;
	overflow-wrap: anywhere;
}

.approvalImageViewer__body {
	align-items: center;
	background: var(--color-surface-subtle);
	display: flex;
	flex: 1 1 auto;
	justify-content: center;
	min-height: 0;
	overflow: auto;
	padding: 24px;
}

.approvalImageViewer__body img {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
	display: block;
	height: auto;
	max-height: 100%;
	max-width: 100%;
	object-fit: contain;
	width: auto;
}

.approvalImageViewer__body img[hidden] {
	display: none;
}

.approvalImageViewer__empty {
	align-items: center;
	border: 1px dashed var(--color-border-strong);
	color: var(--color-ink-muted);
	display: flex;
	justify-content: center;
	min-height: 180px;
	padding: 24px;
	text-align: center;
	width: 100%;
}

.approvalDialog__head,
.approvalDialog__actions {
	align-items: center;
	display: flex;
	gap: 10px;
	justify-content: space-between;
}

.approvalDialog__head {
	border-bottom: 1px solid var(--color-border);
	flex: 0 0 auto;
	padding: 20px 24px 14px;
}

.approvalDialog__head h2 {
	font-size: 20px;
	margin: 0;
}

.approvalDialog__summary {
	align-items: center;
	background: var(--color-surface-subtle);
	border-bottom: 1px solid var(--color-border);
	display: flex;
	gap: 16px;
	justify-content: space-between;
	padding: 12px 24px;
}

.approvalDialog__meta,
.approvalDialog__total {
	margin: 0;
}

.approvalDialog__meta {
	color: var(--color-ink-muted);
	font-size: 13px;
}

.approvalDialog__meta span {
	display: inline-block;
	margin-right: 12px;
}

.approvalDialog__total {
	align-items: baseline;
	display: flex;
	gap: 8px;
	white-space: nowrap;
}

.approvalDialog__total span {
	color: var(--color-ink-muted);
	font-size: 12px;
}

.approvalDialog__total strong {
	color: var(--color-ink);
	font-size: 20px;
	font-variant-numeric: tabular-nums;
}

.approvalDialog__items {
	background: var(--color-surface-subtle);
	border: 1px solid var(--color-border);
	border-radius: 6px;
	flex: 1 1 auto;
	margin: 16px 24px;
	max-height: none;
	min-height: 160px;
	overflow: auto;
}

.approvalDialog__itemsTable {
	border-collapse: collapse;
	min-width: 660px;
	table-layout: fixed;
	width: 100%;
}

.approvalDialog__itemsTable th,
.approvalDialog__itemsTable td {
	border-bottom: 1px solid var(--color-border);
	padding: 11px 10px;
	text-align: left;
	vertical-align: middle;
}

.approvalDialog__itemsTable thead th {
	background: var(--color-surface-muted);
	color: var(--color-ink-muted);
	font-size: 12px;
	font-weight: 700;
}

.approvalDialog__itemsTable th:nth-child(1) {
	width: 100px;
}

.approvalDialog__itemsTable th:nth-child(2) {
	width: 27%;
}

.approvalDialog__itemsTable th:nth-child(3) {
	width: 25%;
}

.approvalDialog__itemsTable th:nth-child(4) {
	width: 100px;
}

.approvalDialog__itemsTable th:nth-child(5) {
	width: 90px;
}

.approvalDialog__itemRow {
	background: var(--color-surface-card);
}

.approvalDialog__itemDate {
	color: var(--color-ink-muted);
	font-size: 13px;
	white-space: nowrap;
}

.approvalDialog__itemDescription {
	font-weight: 700;
	overflow-wrap: anywhere;
}

.approvalDialog__itemNote {
	color: var(--color-ink-muted);
	font-size: 12px;
}

.approvalDialog__itemCategory,
.approvalDialog__itemMemo {
	display: block;
}

.approvalDialog__itemMemo {
	margin-top: 3px;
}

.approvalDialog__itemAmount {
	font-variant-numeric: tabular-nums;
	font-weight: 700;
	text-align: right !important;
	white-space: nowrap;
}

.approvalDialog__itemReceipt {
	color: var(--color-primary);
	font-size: 12px;
	white-space: nowrap;
}

.approvalDialog__receiptToggle {
	background: transparent;
	border: 0;
	color: var(--color-primary);
	cursor: pointer;
	font: inherit;
	font-size: 12px;
	padding: 0;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.approvalDialog__receiptRow > td {
	background: var(--color-surface-muted);
	padding: 14px 16px 18px;
}

.approvalDialog__receiptRow[hidden] {
	display: none;
}

.approvalDialog__receipt {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: 6px;
	margin: 0;
	overflow: hidden;
	padding-bottom: 2px;
}

.approvalDialog__receipt > summary {
	background: var(--color-surface-subtle);
	cursor: pointer;
	font-size: 13px;
	font-weight: 700;
	padding: 12px 14px;
}

.approvalDialog__receiptFacts {
	border: 1px solid var(--color-border);
	border-radius: 5px;
	display: grid;
	gap: 0;
	margin: 14px;
}

.approvalDialog__receiptFacts div {
	border-bottom: 1px solid var(--color-border);
	display: grid;
	gap: 12px;
	grid-template-columns: 110px minmax(0, 1fr);
	min-width: 0;
	padding: 9px 10px;
}

.approvalDialog__receiptFacts div:last-child {
	border-bottom: 0;
}

.approvalDialog__receiptFacts dt,
.approvalDialog__receiptFacts dd {
	margin: 0;
}

.approvalDialog__receiptFacts dt,
.approvalDialog__receiptNote {
	color: var(--color-ink-muted);
	font-size: 12px;
}

.approvalDialog__receiptFacts dd {
	overflow-wrap: anywhere;
}

.approvalDialog__receiptImageAction {
	margin: 0 14px 14px;
}

.approvalDialog__receiptImageBtn {
	min-height: 38px;
}

.approvalDialog__receiptImageEmpty {
	color: var(--color-ink-muted);
	display: inline-block;
	font-size: 13px;
	padding: 8px 0;
}

.approvalDialog__receiptNote {
	margin: 0 14px 14px;
}

.approvalDialog__receiptOcr {
	border-top: 1px solid var(--color-border);
	margin: 0 14px 14px;
	padding-top: 10px;
}

.approvalDialog__receiptOcr > summary {
	color: var(--color-primary);
	cursor: pointer;
	font-size: 13px;
}

.approvalDialog__receiptOcr pre {
	background: var(--color-surface-subtle);
	border: 1px solid var(--color-border);
	border-radius: 5px;
	font: 12px/1.6 ui-monospace, SFMono-Regular, Consolas, monospace;
	margin: 8px 0 0;
	max-height: 220px;
	overflow: auto;
	padding: 12px;
	white-space: pre-wrap;
	word-break: break-word;
}

.approvalDialog__receiptItems {
	background: var(--color-surface-subtle);
	border: 1px solid var(--color-border);
	border-radius: 5px;
	margin: 14px;
	padding: 10px 12px;
}

.approvalDialog__receiptItemsTitle {
	font-size: 13px;
	font-weight: 700;
	margin: 0 0 6px;
}

.approvalDialog__receiptItemsTable {
	border-collapse: collapse;
	font-size: 12px;
	table-layout: fixed;
	width: 100%;
}

.approvalDialog__receiptItemsTable th,
.approvalDialog__receiptItemsTable td {
	border-top: 1px solid var(--color-border);
	padding: 6px 8px;
	text-align: left;
	vertical-align: top;
	word-break: break-word;
}

.approvalDialog__receiptItemsTable th {
	background: var(--color-surface-muted);
	color: var(--color-ink-muted);
	font-weight: 700;
}

.approvalDialog__receiptItemsAmount {
	text-align: right;
	white-space: nowrap;
}

.approvalDialog__reason {
	display: block;
	font-size: 13px;
	font-weight: 700;
	margin: 0 24px 6px;
}

.approvalDialog__form textarea {
	border: 1px solid var(--color-border-strong);
	border-radius: 6px;
	box-sizing: border-box;
	font: inherit;
	min-height: 90px;
	margin: 0 24px;
	padding: 10px;
	resize: vertical;
	width: calc(100% - 48px);
}

.approvalDialog__actions {
	background: var(--color-surface-card);
	border-top: 1px solid var(--color-border);
	flex: 0 0 auto;
	justify-content: flex-end;
	margin-top: 16px;
	padding: 16px 24px 20px;
}

@keyframes approvalDrawerIn {
	from {
		opacity: 0;
		transform: translateX(24px);
	}
	to {
		opacity: 1;
		transform: translateX(0);
	}
}

.approvalDialog[open] {
	animation: approvalDrawerIn 180ms ease-out;
}

@media (prefers-reduced-motion: reduce) {
	.approvalDialog[open] {
		animation: none;
	}
}

/* ----------
レシート詳細アコーディオン
---------- */
.expenseReceiptDetailRow[hidden] {
	display: none;
}

.expenseReceiptDetailRow > td {
	background: var(--color-surface-subtle);
	border-bottom: 1px solid var(--color-border);
	padding: 8px 12px 12px;
}

.expenseReceiptDetails {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border);
	border-radius: 6px;
	margin: 0;
	padding: 0;
}

.expenseReceiptDetails > summary {
	background: var(--color-surface-subtle);
	color: var(--color-primary);
	cursor: pointer;
	font-size: 13px;
	font-weight: 600;
	padding: 11px 12px;
}

.expenseReceiptDetails__body {
	display: grid;
	gap: 16px;
	min-width: 0;
	padding: 12px;
}

.expenseReceiptDetails__item + .expenseReceiptDetails__item {
	border-top: 1px solid var(--color-border);
	padding-top: 16px;
}

.expenseReceiptDetails__title {
	color: var(--color-ink);
	font-size: 13px;
	font-weight: 700;
	margin: 0 0 10px;
}

.expenseReceiptDetails__grid {
	display: grid;
	gap: 10px 16px;
	grid-template-columns: repeat(5, minmax(0, 1fr));
}

.expenseReceiptDetails__field {
	display: grid;
	gap: 5px;
	min-width: 0;
}

.expenseReceiptDetails__field > span {
	color: var(--color-ink-muted);
	font-size: 12px;
}

.expenseReceiptDetails__hint {
	color: var(--color-warning, #9a6700);
	font-size: 11px;
	line-height: 1.4;
}

.expenseReceiptDetails__field input {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border-strong);
	border-radius: 5px;
	box-sizing: border-box;
	font: inherit;
	min-height: 38px;
	min-width: 0;
	padding: 7px 9px;
	width: 100%;
}

.expenseReceiptDetails__field input:disabled {
	background: var(--color-surface-subtle);
	color: var(--color-ink);
	opacity: 1;
}

.expenseReceiptDetails__purchaseItems {
	background: var(--color-surface-subtle);
	border: 1px solid var(--color-border);
	border-radius: 6px;
	margin-top: 12px;
	padding: 10px 12px;
}

.expenseReceiptDetails__purchaseItems p {
	margin: 0;
}

.expenseReceiptDetails__purchaseItems > p:first-child {
	color: var(--color-ink);
	font-size: 13px;
	font-weight: 700;
}

.expenseReceiptDetails__tableWrap {
	margin: 8px 0 0;
	overflow-x: auto;
}

.expenseReceiptDetails__table {
	border-collapse: collapse;
	background: var(--color-surface-card);
	font-size: 12px;
	table-layout: fixed;
	width: 100%;
}

.expenseReceiptDetails__table th,
.expenseReceiptDetails__table td {
	overflow-wrap: anywhere;
	border-bottom: 1px solid var(--color-border);
	padding: 7px 8px;
	text-align: left;
	vertical-align: top;
}

.expenseReceiptDetails__table th {
	background: var(--color-surface-muted);
	color: var(--color-body);
	font-weight: 600;
}

.expenseReceiptDetails__table th:first-child {
	width: 50%;
}

.expenseReceiptDetails__table th:nth-child(2),
.expenseReceiptDetails__table td:nth-child(2) {
	text-align: center;
	width: 18%;
}

.expenseReceiptDetails__table th:nth-child(3),
.expenseReceiptDetails__table td:nth-child(3) {
	text-align: right;
}

.expenseReceiptDetails__table--editable th:first-child {
	width: 43%;
}

.expenseReceiptDetails__table--editable th:nth-child(3) {
	width: 23%;
}

.expenseReceiptDetails__table--editable th:last-child {
	text-align: center;
	width: 16%;
}

.expenseReceiptDetails__table input {
	background: var(--color-surface-card);
	border: 1px solid var(--color-border-strong);
	border-radius: 5px;
	box-sizing: border-box;
	font: inherit;
	min-height: 38px;
	min-width: 0;
	padding: 6px 7px;
	width: 100%;
}

.expenseReceiptDetails__table input[type="number"] {
	text-align: right;
}

.expenseReceiptDetails__itemAction {
	text-align: center !important;
}

.expenseReceiptDetails__itemDelete {
	min-height: 36px;
	padding: 6px 8px;
}

.expenseReceiptDetails__table tr:last-child td {
	border-bottom: 0;
}

.expenseReceiptDetails__table .expenseReceiptDetails__amountCell {
	font-variant-numeric: tabular-nums;
	text-align: right;
	white-space: normal;
}

.expenseReceiptDetails__purchaseItems .expenseReceiptDetails__note {
	color: var(--color-muted);
	font-size: 12px;
	line-height: 1.5;
	margin-top: 8px;
}

.expenseReceiptDetails__itemAdd {
	margin-top: 8px;
}

.expenseReceiptDetails__links {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	margin-top: 12px;
}

.expenseReceiptDetails__links a,
.expenseReceiptDetails__linkBtn,
.expenseReceiptDetails__ocr > summary {
	background: transparent;
	border: 0;
	color: var(--color-primary);
	cursor: pointer;
	font: inherit;
	font-size: 13px;
	padding: 0;
	text-underline-offset: 3px;
}

.expenseReceiptDetails__linkBtn {
	text-decoration: underline;
}

.receiptReviewDrawer {
	background: var(--color-surface-card);
	border: 0;
	border-left: 1px solid var(--color-border-strong);
	box-shadow: -12px 0 32px rgb(24 35 47 / 16%);
	display: none;
	flex-direction: column;
	height: 100vh;
	height: 100dvh;
	inset: 0 0 0 auto;
	margin: 0;
	max-height: 100vh;
	max-height: 100dvh;
	max-width: min(96vw, 1180px);
	overflow: hidden;
	padding: 0;
	position: fixed;
	width: min(96vw, 1180px);
}

.receiptReviewDrawer[open] {
	display: flex;
}

.receiptReviewDrawer::backdrop {
	background: rgb(24 35 47 / 32%);
}

.receiptReviewDrawer__head {
	align-items: center;
	border-bottom: 1px solid var(--color-border);
	display: flex;
	flex: 0 0 auto;
	gap: 12px;
	justify-content: space-between;
	padding: 14px 16px;
}

.receiptReviewDrawer__title {
	color: var(--color-ink);
	font-weight: 700;
	margin: 0;
}

.receiptReviewDrawer__text {
	color: var(--color-muted);
	font-size: 12px;
	margin: 2px 0 0;
}

.receiptReviewDrawer__body {
	display: grid;
	flex: 1;
	grid-template-columns: minmax(320px, 1.1fr) minmax(320px, 0.9fr);
	min-height: 0;
}

.receiptReviewDrawer__imagePane {
	align-items: center;
	background: var(--color-surface-subtle);
	border-right: 1px solid var(--color-border);
	display: flex;
	justify-content: center;
	min-height: 0;
	overflow: auto;
	padding: 16px;
}

.receiptReviewDrawer__imagePane img {
	height: auto;
	max-height: 100%;
	max-width: 100%;
	object-fit: contain;
	width: auto;
}

.receiptReviewDrawer__detailPane {
	display: grid;
	gap: 14px;
	min-height: 0;
	overflow-y: auto;
	padding: 16px;
}

.receiptReviewDrawer__section {
	display: grid;
	gap: 10px;
}

.receiptReviewDrawer__section h3 {
	color: var(--color-ink);
	font-size: 14px;
	margin: 0;
}

.receiptReviewDrawer__detailPane .expenseReceiptDetails__grid {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.receiptReviewDrawer__facts {
	background: var(--color-surface-subtle);
	border: 1px solid var(--color-border);
	border-radius: 6px;
	display: grid;
	gap: 0;
	margin: 0;
}

.receiptReviewDrawer__facts div {
	border-bottom: 1px solid var(--color-border);
	display: grid;
	gap: 8px;
	grid-template-columns: 96px minmax(0, 1fr);
	padding: 8px 10px;
}

.receiptReviewDrawer__facts div:last-child {
	border-bottom: 0;
}

.receiptReviewDrawer__facts dt,
.receiptReviewDrawer__facts dd {
	margin: 0;
	min-width: 0;
	overflow-wrap: anywhere;
}

.receiptReviewDrawer__facts dt {
	color: var(--color-muted);
	font-size: 12px;
}

.receiptReviewDrawer__facts dd {
	color: var(--color-body);
	font-size: 13px;
}

.expenseReceiptDetails__ocr {
	margin-top: 10px;
}

.expenseReceiptDetails__ocr pre {
	background: var(--color-surface-subtle);
	border: 1px solid var(--color-border);
	border-radius: 5px;
	font: 12px/1.6 ui-monospace, SFMono-Regular, Consolas, monospace;
	margin: 8px 0 0;
	max-height: 220px;
	overflow: auto;
	padding: 10px;
	white-space: pre-wrap;
	word-break: break-word;
}

.expenseEditReceiptDetails {
	grid-column: 1 / -1;
}

.expenseEditReceiptDetails[hidden] {
	display: none;
}

@media screen and (max-width: 1100px) {
	.expenseReceiptDetails__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.receiptReviewDrawer__body {
		grid-template-columns: minmax(300px, 1fr) minmax(300px, 1fr);
	}
}

@media screen and (max-width: 767px) {
	.expenseReceiptDetailRow > td {
		padding: 8px 8px 10px;
	}

	.expenseReceiptDetails {
		padding: 0;
	}

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

	.expenseReceiptDetails__field input {
		font-size: 16px;
		min-height: 44px;
	}

	.expenseReceiptDetails__table input {
		font-size: 16px;
		min-height: 44px;
	}

	.expenseReceiptDetails__table--editable th:first-child {
		width: 40%;
	}

	.expenseReceiptDetails__table--editable th:nth-child(2) {
		width: 20%;
	}

	.expenseReceiptDetails__table--editable th:nth-child(3) {
		width: 24%;
	}

	.expenseReceiptDetails__table--editable th:last-child {
		width: 16%;
	}

	.receiptReviewDrawer {
		border-left: 0;
		max-width: 100vw;
		width: 100vw;
	}

	.receiptReviewDrawer__body {
		display: flex;
		flex-direction: column;
	}

	.receiptReviewDrawer__imagePane {
		border-bottom: 1px solid var(--color-border);
		border-right: 0;
		flex: 0 0 min(42vh, 360px);
		padding: 12px;
	}

	.receiptReviewDrawer__detailPane {
		flex: 1;
		padding: 12px;
	}

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

	.receiptReviewDrawer__facts div {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 1100px) {
	.approvalDialog {
		max-width: 640px;
	}

	.approvalImageViewer {
		width: min(520px, max(280px, calc(100vw - 680px)));
	}
}

@media screen and (max-width: 767px) {
	.approvalCard__head,
	.approvalCard__foot,
	.approvalDialog__actions {
		align-items: stretch;
		flex-direction: column;
	}

	.approvalCard__foot .btn,
	.approvalDialog__actions .btn {
		width: 100%;
	}

	.approvalDialog__form {
		padding: 0;
	}

	.approvalDialog {
		max-width: none;
		width: 100vw;
	}

	.approvalImageViewer {
		border: 0;
		box-shadow: none;
		height: 100dvh;
		inset: 0;
		position: fixed;
		width: 100vw;
	}

	.approvalImageViewer__head {
		padding: 12px 16px;
	}

	.approvalImageViewer__body {
		padding: 16px;
	}

	.approvalDialog__head,
	.approvalDialog__summary,
	.approvalDialog__reason {
		padding-left: 16px;
		padding-right: 16px;
	}

	.approvalDialog__head {
		padding-top: 16px;
	}

	.approvalDialog__items {
		margin-left: 16px;
		margin-right: 16px;
	}

	.approvalDialog__reason {
		margin-left: 0;
		margin-right: 0;
	}

	.approvalDialog__form textarea {
		margin-left: 16px;
		margin-right: 16px;
		width: calc(100% - 32px);
	}

	.approvalDialog__actions {
		padding-left: 16px;
		padding-right: 16px;
	}

	.approvalDialog__summary {
		align-items: flex-start;
		flex-direction: column;
		gap: 4px;
	}

	.approvalDialog__itemsTable {
		min-width: 620px;
	}

	.approvalDialog__receiptFacts div {
		grid-template-columns: 1fr;
		gap: 4px;
	}

	.approvalDialog__receiptRow > td {
		padding: 10px 12px 14px;
	}

}

/* ----------
印刷
---------- */
@media print {
	body {
		background: #ffffff;
	}

	.sideNav,
	.actionSec,
	.receiptSec,
	.pageHead__tools,
	.cardHead__actions,
	.expenseEditDialog,
	.noPrint,
	.transportDialog,
	.receiptLightbox {
		display: none !important;
	}

	.approvalSec,
	.approvalDialog {
		display: none !important;
	}

	.appShell {
		display: block;
	}

	.mainArea {
		margin: 0;
		max-width: none;
		padding: 0;
	}

	.card {
		border: 0;
		padding: 0;
	}

	.expenseTableWrap {
		border: 0;
		overflow: visible;
	}

	.expenseTable {
		min-width: 0;
	}
}

@media screen and (max-width: 1100px) {
}

@media screen and (max-width: 767px) {
}
