* {
	box-sizing: border-box;
}
:root {
	font-family:
		Inter, "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif;
	color: #152642;
	background: #faf9f7;
	font-synthesis: none;
}
body {
	margin: 0;
	min-height: 100vh;
}
.masthead {
	background: #fff;
	border-bottom: 1px solid #dedfdc;
}
.mast-inner {
	min-height: 78px;
	max-width: 1540px;
	margin: auto;
	padding: 14px clamp(20px, 4vw, 72px);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
}
.brand {
	display: flex;
	align-items: center;
	gap: 13px;
	white-space: nowrap;
}
.brand strong {
	font-weight: 800;
	font-size: 23px;
	letter-spacing: 0.012em;
	color: #102750;
}
.sg {
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	border-radius: 10px;
	background: #1247bd;
	color: white;
	font:
		750 23px / 1 Inter,
		Arial,
		sans-serif;
	letter-spacing: -1.5px;
}
.wordmark {
	font-size: 18px;
	border-left: 1px solid #bec5cf;
	padding-left: 18px;
	margin-left: 3px;
}
.brand, .brand .sg, .brand strong {
	font-family: "Microsoft YaHei", "微软雅黑", "Microsoft YaHei UI", sans-serif;
}
.brand .sg, .brand strong {
	font-weight: 700;
}
.identity {
	font-size: 14px;
	color: #49596e;
	text-align: right;
	overflow-wrap: anywhere;
}
.account,
.profile-head {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px 14px;
}
.account {
	min-width: 0;
}
#open-profile[hidden] {
	display: none;
}
#profile,
#access, #files, #ai-directory, #dashboard {
	width: min(440px, calc(100% - 32px));
	max-height: calc(100dvh - 48px);
	padding: clamp(18px, 4vw, 28px);
	border: 1px solid #d4dce5;
	border-radius: 14px;
	color: #152642;
	box-shadow: 0 12px 56px #15264226;
}
#profile::backdrop,
#access::backdrop, #files::backdrop, #ai-directory::backdrop, #dashboard::backdrop {
	background: #14274062;
}
.directory-tools { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
#directory-open { border: 0; padding: 0; border-radius: 2px; background: transparent; color: #08685f; font-size: 14px; text-decoration: underline; text-underline-offset: 3px; }
#ai-directory { width: min(520px, calc(100% - 32px)); }
.directory-source, .directory-note { color: #53657c; font-size: 14px; line-height: 1.55; }
.directory-source { margin: 6px 0 18px; }
.directory-route { display: flex; justify-content: space-between; gap: 12px; border-block: 1px solid #dce4e4; padding: 12px 0; margin: 0; }
.directory-route dd { margin: 0; font-weight: 650; }
#directory-body h3 { font-size: 16px; margin: 18px 0 8px; }
#directory-count { color: #426564; font-variant-numeric: tabular-nums; }
#directory-list { list-style: inside; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px 12px; padding: 0; margin: 0 0 16px; overflow-wrap: anywhere; }
#directory-list li::marker { color: #248479; }
#directory-refresh { margin-top: 18px; }
#dashboard { width:min(680px,calc(100% - 32px)); }
#dashboard-open { border:0; padding:0; background:transparent; color:#214d96; text-decoration:underline; text-underline-offset:3px; font-size:14px; }
#dashboard [hidden] { display:none; }
.dashboard-filters { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px; }
#dashboard-period { font-size:14px; color:#475975; overflow-wrap:anywhere; }
#dashboard-currency { font:inherit; border:1px solid #aab8c7; padding:4px; background:white; border-radius:4px; }
#dashboard-cards { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,155px),1fr)); gap:10px; margin:16px 0; }
#dashboard-cards section { padding:12px 16px; border-radius:8px; background:#edf4fc; }
#dashboard-cards section[data-side="purchases"] { background:#eaf5f0; }
#dashboard-cards strong, #dashboard-cards small { display:block; }
#dashboard-cards strong { font-size:clamp(21px,3vw,30px); font-variant-numeric:tabular-nums; overflow-wrap:anywhere; }
#dashboard h3 { font-size:17px; margin:16px 0 8px; }
#dashboard table { width:100%; border-collapse:collapse; font-size:14px; font-variant-numeric:tabular-nums; }
#dashboard th, #dashboard td { padding:6px 4px; border-bottom:1px solid #dce4eb; text-align:right; overflow-wrap:anywhere; }
#dashboard th:first-child { text-align:left; white-space:nowrap; }
#dashboard td small { display:block; color:#53657c; }
#dashboard .directory-note { margin-top:10px; }
#dashboard-refresh { margin-top:14px; }
#dashboard-tabs { margin: 14px 0 8px; }
#dashboard-tabs button[aria-pressed="true"] { background:#e6effc; color:#164382; border-color:#6792c7; }
#balances-org { margin:12px 0; color:#475975; overflow-wrap:anywhere; }
.party-link { display:inline; background:transparent; border:0; padding:0; color:#174d92; text-decoration:underline; text-underline-offset:3px; font:inherit; }
#party-search { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
#party-search input { padding:7px; border:1px solid #aab7c7; border-radius:5px; max-width:100%; font:inherit; }
#party-view { overflow-wrap:anywhere; }
#party-status,#party-paging { margin:12px 0; }
#party-table tbody th:first-child { white-space:normal; overflow-wrap:anywhere; }
#party-table th small { display:block; font-weight:400; color:#53657c; }
.party-table-wrap { overflow-x:auto; }
#party-table td { white-space:nowrap; font-variant-numeric:tabular-nums; }
#gap-table th small { display:block; font-weight:400; color:#53657c; }
#gap-table tbody th:first-child { white-space:normal; overflow-wrap:anywhere; }
#gap-table td { white-space:nowrap; font-variant-numeric:tabular-nums; }
#gap-body .page-actions { margin-top:10px; }
#files { width: min(720px, calc(100% - 32px)); overflow-wrap: anywhere; }
.page-actions { display: flex; flex-wrap: wrap; gap: 8px; }
#files [hidden] { display: none; }
.file-source, #file-status { margin: 8px 0 14px; color: #53657c; font-size: 14px; }
#file-filter { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; }
#file-filter label { display: grid; gap: 4px; font-size: 14px; }
#file-filter label:first-child { flex: 1 1 180px; }
#file-filter input, #file-filter select { min-width: 0; width: 100%; border: 1px solid #aab7c7; border-radius: 6px; padding: 9px; font: inherit; }
#file-list { list-style: none; padding: 0; margin: 0; }
#file-list li { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 4px 12px; border-top: 1px solid #dce3eb; padding: 12px 0; }
#file-list small { grid-column: 1; color: #526278; }
#file-list .file-time time { display: inline-block; white-space: nowrap; }
#file-list .file-actions { grid-column:2; grid-row:1 / 3; display:flex; flex-direction:column; gap:10px; align-items:flex-start; }
#file-list a { color:#184ca1; }
#access {
	width: min(560px, calc(100% - 32px));
	overflow-wrap: anywhere;
}
#access [hidden] { display:none; }
#access-refresh { margin:12px 0; }
#access-filter label { display:block; font-size:14px; margin-bottom:6px; }
.access-search { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
#access-query { min-width:0; flex:1 1 200px; width:100%; padding:9px; font:inherit; border:1px solid #aab7c7; border-radius:6px; }
#access-filter #access-search-note, #access-count { font-size:13px; line-height:1.6; margin-top:8px; }
#access button:disabled { cursor:default; color:#647184; background:#eef1f5; }
.access-section {
	border-top: 1px solid #dde4ed;
	padding-top: 14px;
	margin-top: 16px;
}
.access-section h3 {
	margin: 0 0 6px;
	font-size: 17px;
}
.access-section p {
	margin: 4px 0;
	line-height: 1.5;
	color: #43556f;
}
#access-groups details {
	padding: 6px 0;
}
#access-groups summary {
	cursor: pointer;
	color: #1648a8;
	width: fit-content;
}
#access-groups ul {
	padding-inline-start: 22px;
	margin: 6px 0;
}
#access-groups li {
	padding: 3px 0;
}
#access-groups code {
	margin-inline-start: 8px;
	color: #53657c;
	font-size: 0.82em;
}
.profile-head {
	justify-content: space-between;
}
.profile-head h2 {
	font-size: 24px;
}
.profile-rows {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr);
	gap: 14px 24px;
	margin: 23px 0;
}
.profile-rows dt {
	color: #56667a;
}
.profile-rows dd {
	margin: 0;
	overflow-wrap: anywhere;
}
#profile-keys {
	border-top: 1px solid #dde4ed;
	padding-top: 16px;
}
#profile-keys summary {
	cursor: pointer;
	width: fit-content;
	color: #1648a8;
}
.profile-rows.keys {
	font-size: 14px;
	margin-bottom: 0;
}
main {
	width: min(1160px, calc(100% - clamp(40px, 12vw, 196px)));
	margin: clamp(36px, 7.5vh, 84px) auto 40px;
}
.page-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
	margin-bottom: 34px;
}
h1,
h2,
p {
	margin: 0;
}
h1 {
	font-size: clamp(36px, 4vw, 52px);
	line-height: 1.15;
	letter-spacing: -0.055em;
	color: #111d31;
}
button,
.launch {
	font: inherit;
	font-weight: 650;
	letter-spacing: 0.01em;
}
button {
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 15px;
	border-radius: 7px;
	border: 1px solid #acb7c5;
	background: #fff;
	color: #24334a;
	font-size: 14px;
}
button span {
	line-height: 1;
	font-size: 21px;
}
button:hover {
	background: #f2f6fc;
}
.apps {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 22px;
}
article {
	border: 1px solid #c5cdd5;
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
	display: flex;
	flex-direction: column;
}
.cover {
	aspect-ratio: 1.72;
	background-image: url("/workbenches.webp");
	background-size: 200% auto;
	background-repeat: no-repeat;
	border-bottom: 1px solid #e5eaed;
}
.erp-cover {
	background-position: left center;
	background-color: #e7f3ff;
}
.ai-cover {
	background-position: right center;
	background-color: #e1f8ed;
}
.content {
	padding: clamp(18px, 2.4vw, 31px);
	display: flex;
	flex: 1;
	flex-direction: column;
}
h2 {
	font-size: clamp(23px, 2.4vw, 33px);
	line-height: 1.25;
	font-weight: 730;
	letter-spacing: -0.035em;
}
.state {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 12px 0 16px;
	color: #536074;
	font-size: 14px;
}
.state:before {
	content: "";
	height: 8px;
	width: 8px;
	border-radius: 50%;
	background: #919ba9;
}
.state[data-state="online"]:before {
	background: #198343;
}
.state[data-state="offline"]:before {
	background: #ae6818;
}
.description {
	font-size: 15px;
	color: #516074;
	line-height: 1.7;
	margin-bottom: 24px;
}
.launch {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 8px;
	min-height: 46px;
	margin-top: auto;
	padding: 10px 12px;
	border-radius: 6px;
	background: #164bc6;
	color: #fff;
	text-decoration: none;
}
#ai .launch {
	background: #04756c;
}
.launch[href]:hover {
	filter: brightness(0.92);
}
.launch[aria-disabled="true"],
#ai .launch[aria-disabled="true"] {
	color: #596779;
	background: #e8edf0;
}
.launch i {
	font:
		normal 18px / 1 Arial,
		sans-serif;
}
.hint {
	text-align: center;
	color: #647184;
	font-size: 14px;
	line-height: 1.6;
	margin-top: 27px;
}
:focus-visible {
	outline: 3px solid #2455d9;
	outline-offset: 4px;
}
.sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
	white-space: nowrap;
}
@media (max-width: 680px) {
	.mast-inner {
		min-height: 66px;
		flex-wrap: wrap;
		gap: 8px 16px;
	}
	.brand {
		gap: 8px;
	}
	.sg {
		width: 34px;
		height: 34px;
		font-size: 18px;
	}
	.brand strong {
		font-size: 16px;
	}
	.wordmark {
		font-size: 15px;
		padding-left: 9px;
	}
	.identity {
		font-size: 12px;
	}
	.apps {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	main {
		width: calc(100% - 32px);
		margin-top: 30px;
	}
	.page-heading {
		margin-bottom: 19px;
	}
	h1 {
		font-size: 34px;
	}
	.cover {
		aspect-ratio: 1.72;
	}
	.content {
		padding: 18px;
	}
	.state {
		margin: 8px 0;
	}
	.description {
		margin-bottom: 17px;
	}
	.hint {
		margin-top: 18px;
	}
}

#overview { margin-bottom:28px; padding:22px; background:#fff; border:1px solid #d4dce5; border-radius:12px; }
#overview [hidden] { display:none; }
.overview-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
#overview h2 { font-size:24px; }
#overview-source, #overview-status { color:#53657c; font-size:13px; line-height:1.6; margin-top:6px; overflow-wrap:anywhere; }
#overview-panels { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:16px; }
#overview-panels section { min-width:0; margin-top:16px; padding:16px; background:#f3f6fa; border-radius:8px; display:flex; flex-direction:column; gap:12px; }
#overview-panels h3 { margin:0; font-size:17px; }
#overview-panels p, #overview-panels small { color:#53657c; font-size:12px; line-height:1.6; }
#overview-panels button { margin-top:auto; align-self:flex-start; }
.overview-metric { display:grid; gap:3px; border-bottom:1px solid #dce4eb; padding:8px 0; overflow-wrap:anywhere; }
.overview-metric span { font-size:13px; }
.overview-metric strong { font-size:24px; font-variant-numeric:tabular-nums; }
@media(max-width:680px) { #overview { padding:16px; } }
