/**
 * MEP Enterprise Manager — Public Portal Styles
 * --------------------------------------------------------------------
 * 命名空间：`.mep-portal-shell` 包裹整个门户内容；body 上有 .mep-portal 类。
 * 设计目标：国际一线 SaaS 业务门户，克制、有秩序、可信赖。
 * 与 admin CSS 完全独立。
 *
 * v0.3.1 新增：
 *   - .mep-portal-brand-logo-wrap / .mep-portal-brand-logo（顶栏 LOGO + 分隔线 + 副标题）
 *   - .mep-portal-login-logo-card / .mep-portal-login-logo（登录页白色圆角容器 + LOGO）
 *
 * @version 0.3.1
 */

/* ========================================================================
 * 1. Reset & Tokens
 * ====================================================================== */

body.mep-portal {
	margin: 0;
	padding: 0;
	background: #f7f8fa;
	color: #1a1d21;
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI",
		"PingFang SC", "Hiragino Sans GB", "Microsoft YaHei",
		"Helvetica Neue", Arial, sans-serif;
	font-size: 15px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	min-height: 100vh;
}

body.mep-portal *,
body.mep-portal *::before,
body.mep-portal *::after {
	box-sizing: border-box;
}

.mep-portal-shell {
	--mep-color-bg: #f7f8fa;
	--mep-color-card: #ffffff;
	--mep-color-border: #e6e8eb;
	--mep-color-border-strong: #d1d5db;
	--mep-color-text: #1a1d21;
	--mep-color-text-muted: #5e6470;
	--mep-color-text-subtle: #8b919a;

	--mep-color-primary: #2d5cf5;
	--mep-color-primary-hover: #1f4be0;
	--mep-color-primary-soft: rgba(45, 92, 245, 0.08);

	--mep-color-success-bg: #ecfdf5;
	--mep-color-success-text: #047857;
	--mep-color-success-border: #a7f3d0;
	--mep-color-warning-bg: #fffbeb;
	--mep-color-warning-text: #b45309;
	--mep-color-danger-bg: #fef2f2;
	--mep-color-danger-text: #b91c1c;
	--mep-color-info-bg: #eff6ff;
	--mep-color-info-text: #1d4ed8;
	--mep-color-neutral-bg: #f3f4f6;
	--mep-color-neutral-text: #4b5563;

	--mep-radius-sm: 6px;
	--mep-radius-md: 10px;
	--mep-radius-lg: 16px;
	--mep-radius-xl: 20px;
	--mep-shadow-card: 0 1px 2px rgba(15, 23, 42, .04),
		0 1px 3px rgba(15, 23, 42, .02);
	--mep-shadow-elevated: 0 4px 12px rgba(15, 23, 42, .06),
		0 1px 2px rgba(15, 23, 42, .03);
	--mep-focus-ring: 0 0 0 3px rgba(45, 92, 245, .2);

	display: flex;
	flex-direction: column;
	min-height: 100vh;
}

body.mep-portal a {
	color: var(--mep-color-primary);
	text-decoration: none;
}
body.mep-portal a:hover {
	color: var(--mep-color-primary-hover);
}

/* ========================================================================
 * 2. Topbar (dashboards only)
 * ====================================================================== */

.mep-portal-topbar {
	background: var(--mep-color-card);
	border-bottom: 1px solid var(--mep-color-border);
	position: sticky;
	top: 0;
	z-index: 50;
}

.mep-portal-topbar-inner {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 32px;
	height: 64px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.mep-portal-brand {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
}

/* v0.3.1 LOGO 包装：LOGO 高 32px，保证字形清晰，不强制裁切，等比缩放 */
.mep-portal-brand-logo-wrap {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
	height: 32px;
}

.mep-portal-brand-logo {
	height: 32px;
	width: auto;
	display: block;
	user-select: none;
	-webkit-user-drag: none;
}

/* LOGO 与小字之间的轻分隔线，秩序感由它建立 */
.mep-portal-brand-divider {
	width: 1px;
	height: 22px;
	background: var(--mep-color-border);
	flex-shrink: 0;
}

.mep-portal-brand-text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}

/* v0.3.1 顶栏小字定位（替代旧 brand-zh），D4：LOGO + "企业管理系统" */
.mep-portal-brand-sub {
	font-size: 13px;
	font-weight: 500;
	color: var(--mep-color-text-muted);
	letter-spacing: 0.01em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	line-height: 1.2;
}

/* 兼容旧 class（已不再渲染，但保留以防自定义模板引用） */
.mep-portal-brand-mark {
	display: inline-flex;
	flex-shrink: 0;
}
.mep-portal-brand-zh {
	font-size: 14px;
	font-weight: 600;
	color: var(--mep-color-text);
	letter-spacing: -0.01em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.mep-portal-brand-tag {
	font-size: 11px;
	color: var(--mep-color-text-subtle);
	letter-spacing: 0.04em;
	line-height: 1.2;
}

.mep-portal-user-menu {
	position: relative;
	flex-shrink: 0;
}

.mep-portal-user-trigger {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 10px 6px 6px;
	background: transparent;
	border: 1px solid transparent;
	border-radius: 999px;
	cursor: pointer;
	color: var(--mep-color-text);
	font-family: inherit;
	font-size: 13px;
	transition: background-color 0.12s ease, border-color 0.12s ease;
}
.mep-portal-user-trigger:hover {
	background: var(--mep-color-neutral-bg);
	border-color: var(--mep-color-border);
}
.mep-portal-user-trigger[aria-expanded="true"] {
	background: var(--mep-color-neutral-bg);
	border-color: var(--mep-color-border);
}

.mep-portal-user-avatar {
	width: 28px;
	height: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--mep-color-primary);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
	text-transform: uppercase;
}

.mep-portal-user-name {
	font-weight: 500;
	max-width: 140px;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.mep-portal-user-caret {
	color: var(--mep-color-text-muted);
	transition: transform 0.15s ease;
}
.mep-portal-user-trigger[aria-expanded="true"] .mep-portal-user-caret {
	transform: rotate(180deg);
}

.mep-portal-user-dropdown[hidden] {
	display: none !important;
}
.mep-portal-user-dropdown {
	position: absolute;
	right: 0;
	top: calc(100% + 6px);
	min-width: 140px;
	background: var(--mep-color-card);
	border: 1px solid var(--mep-color-border);
	border-radius: var(--mep-radius-md);
	box-shadow: var(--mep-shadow-elevated);
	padding: 4px;
	z-index: 60;
}
.mep-portal-user-dropdown-item {
	display: block;
	padding: 8px 12px;
	font-size: 13px;
	color: var(--mep-color-text);
	border-radius: 6px;
	transition: background-color 0.1s ease;
}
.mep-portal-user-dropdown-item:hover {
	background: var(--mep-color-neutral-bg);
	color: var(--mep-color-text);
}

/* ========================================================================
 * 3. Main / Container
 * ====================================================================== */

.mep-portal-main {
	flex: 1;
	width: 100%;
}

.mep-portal-container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 32px;
	display: flex;
	flex-direction: column;
	gap: 24px;
}

/* ========================================================================
 * 4. Hero / Section Titles
 * ====================================================================== */

.mep-portal-hero {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 24px;
	padding: 4px 4px 0;
}

.mep-portal-hero-text {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.mep-portal-hero-title {
	font-size: 28px;
	font-weight: 600;
	color: var(--mep-color-text);
	margin: 0;
	letter-spacing: -0.02em;
	line-height: 1.2;
}

.mep-portal-hero-company {
	color: var(--mep-color-primary);
}

.mep-portal-hero-subtitle {
	font-size: 14px;
	color: var(--mep-color-text-muted);
	margin: 0;
	line-height: 1.5;
}

/* ========================================================================
 * 5. Stat cards
 * ====================================================================== */

.mep-portal-stat-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 16px;
}

.mep-portal-stat-card {
	background: var(--mep-color-card);
	border: 1px solid var(--mep-color-border);
	border-radius: var(--mep-radius-lg);
	padding: 20px 22px;
	box-shadow: var(--mep-shadow-card);
	display: flex;
	flex-direction: column;
	gap: 8px;
	min-width: 0;
}

.mep-portal-stat-card--muted {
	background: linear-gradient(180deg, #fafbfc 0%, var(--mep-color-card) 100%);
}

.mep-portal-stat-label {
	font-size: 13px;
	color: var(--mep-color-text-muted);
	line-height: 1.4;
}

.mep-portal-stat-value {
	font-size: 17px;
	font-weight: 600;
	color: var(--mep-color-text);
	line-height: 1.2;
	display: flex;
	align-items: baseline;
	gap: 6px;
}
.mep-portal-stat-value--big {
	font-size: 28px;
	letter-spacing: -0.02em;
}
.mep-portal-stat-value--success {
	color: var(--mep-color-success-text);
}
.mep-portal-stat-value--warning {
	color: var(--mep-color-warning-text);
}

.mep-portal-stat-foot {
	font-size: 12px;
	color: var(--mep-color-text-subtle);
	line-height: 1.45;
}

.mep-portal-progress {
	margin-top: 4px;
	height: 6px;
	background: var(--mep-color-neutral-bg);
	border-radius: 999px;
	overflow: hidden;
}
.mep-portal-progress-fill {
	display: block;
	height: 100%;
	background: var(--mep-color-primary);
	border-radius: 999px;
	transition: width 0.2s ease;
}

/* ========================================================================
 * 6. Action card (大主行动卡)
 * ====================================================================== */

.mep-portal-action-card {
	background: var(--mep-color-card);
	border: 1px solid var(--mep-color-border);
	border-radius: var(--mep-radius-lg);
	padding: 28px 32px;
	box-shadow: var(--mep-shadow-card);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}
.mep-portal-action-card--disabled {
	background: linear-gradient(180deg, #fafbfc 0%, var(--mep-color-card) 100%);
}

.mep-portal-action-card-content {
	flex: 1;
	min-width: 0;
}

.mep-portal-action-card-title {
	font-size: 18px;
	font-weight: 600;
	margin: 0 0 4px;
	color: var(--mep-color-text);
}

.mep-portal-action-card-desc {
	font-size: 13px;
	color: var(--mep-color-text-muted);
	margin: 0;
	max-width: 700px;
	line-height: 1.55;
}

.mep-portal-action-card-cta {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: 6px;
	flex-shrink: 0;
}

.mep-portal-action-card-hint {
	font-size: 12px;
	color: var(--mep-color-text-subtle);
}

/* ========================================================================
 * 7. Tiles (2×2 网格)
 * ====================================================================== */

.mep-portal-tiles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 16px;
}

.mep-portal-tile {
	display: block;
	background: var(--mep-color-card);
	border: 1px solid var(--mep-color-border);
	border-radius: var(--mep-radius-lg);
	padding: 22px 24px;
	box-shadow: var(--mep-shadow-card);
	color: var(--mep-color-text);
	transition: transform 0.12s ease, box-shadow 0.12s ease,
		border-color 0.12s ease;
	min-height: 120px;
}

.mep-portal-tile--enabled:hover {
	transform: translateY(-1px);
	box-shadow: var(--mep-shadow-elevated);
	border-color: #c8cdd4;
	color: var(--mep-color-text);
}

.mep-portal-tile--disabled {
	cursor: not-allowed;
	background: #fafbfc;
	opacity: 0.78;
}

.mep-portal-tile-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	margin-bottom: 6px;
}

.mep-portal-tile-title {
	font-size: 15px;
	font-weight: 600;
	margin: 0;
	color: var(--mep-color-text);
}

.mep-portal-tile-icon {
	display: inline-flex;
	color: var(--mep-color-text-subtle);
}

.mep-portal-tile-desc {
	font-size: 13px;
	color: var(--mep-color-text-muted);
	margin: 0 0 12px;
	line-height: 1.5;
}

.mep-portal-tile-note {
	font-size: 12px;
	color: var(--mep-color-primary);
	font-weight: 500;
}
.mep-portal-tile--disabled .mep-portal-tile-note {
	color: var(--mep-color-text-subtle);
}

/* ========================================================================
 * 8. Info card
 * ====================================================================== */

.mep-portal-info-card {
	background: var(--mep-color-card);
	border: 1px solid var(--mep-color-border);
	border-radius: var(--mep-radius-lg);
	padding: 22px 26px;
	box-shadow: var(--mep-shadow-card);
}

.mep-portal-info-card-title {
	font-size: 15px;
	font-weight: 600;
	margin: 0 0 14px;
	color: var(--mep-color-text);
}

.mep-portal-info-grid {
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px 20px;
}

.mep-portal-info-row {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.mep-portal-info-row dt {
	font-size: 12px;
	color: var(--mep-color-text-subtle);
	font-weight: 500;
	margin: 0;
}

.mep-portal-info-row dd {
	font-size: 14px;
	color: var(--mep-color-text);
	margin: 0;
	font-weight: 500;
	word-break: break-all;
}

.mep-portal-code {
	display: inline-block;
	font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
	font-size: 13px;
	background: var(--mep-color-neutral-bg);
	padding: 2px 8px;
	border-radius: 4px;
}

/* ========================================================================
 * 9. Badges (semantic)
 * ====================================================================== */

.mep-portal-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 10px;
	font-size: 12px;
	font-weight: 500;
	border-radius: var(--mep-radius-sm);
	line-height: 1.5;
}
.mep-portal-badge::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
}
.mep-portal-badge--neutral { background: var(--mep-color-neutral-bg); color: var(--mep-color-text-subtle); }
.mep-portal-badge--info    { background: var(--mep-color-info-bg);    color: var(--mep-color-info-text); }
.mep-portal-badge--success { background: var(--mep-color-success-bg); color: var(--mep-color-success-text); }
.mep-portal-badge--warning { background: var(--mep-color-warning-bg); color: var(--mep-color-warning-text); }
.mep-portal-badge--danger  { background: var(--mep-color-danger-bg);  color: var(--mep-color-danger-text); }

/* ========================================================================
 * 10. Buttons
 * ====================================================================== */

.mep-portal-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	height: 40px;
	padding: 0 20px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 500;
	line-height: 1;
	border-radius: 8px;
	border: 1px solid transparent;
	cursor: pointer;
	text-decoration: none;
	transition: background-color 0.12s ease, border-color 0.12s ease,
		color 0.12s ease, box-shadow 0.12s ease, transform 0.06s ease;
}
.mep-portal-btn:focus-visible {
	outline: none;
	box-shadow: var(--mep-focus-ring);
}
.mep-portal-btn:active:not(:disabled) {
	transform: translateY(0.5px);
}

.mep-portal-btn-primary {
	background: var(--mep-color-primary);
	color: #fff;
	border-color: var(--mep-color-primary);
	box-shadow: 0 1px 2px rgba(45, 92, 245, 0.2);
}
.mep-portal-btn-primary:hover {
	background: var(--mep-color-primary-hover);
	border-color: var(--mep-color-primary-hover);
	color: #fff;
}

.mep-portal-btn-block {
	width: 100%;
	height: 44px;
	font-size: 15px;
}

.mep-portal-btn:disabled,
.mep-portal-btn-disabled {
	background: var(--mep-color-border-strong);
	border-color: var(--mep-color-border-strong);
	color: #fff;
	cursor: not-allowed;
	box-shadow: none;
}
.mep-portal-btn:disabled:hover,
.mep-portal-btn-disabled:hover {
	background: var(--mep-color-border-strong);
	border-color: var(--mep-color-border-strong);
}

/* ========================================================================
 * 11. Empty state
 * ====================================================================== */

.mep-portal-empty {
	background: var(--mep-color-card);
	border: 1px solid var(--mep-color-border);
	border-radius: var(--mep-radius-lg);
	padding: 64px 32px;
	text-align: center;
	box-shadow: var(--mep-shadow-card);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
}

.mep-portal-empty-title {
	font-size: 20px;
	font-weight: 600;
	margin: 0;
	color: var(--mep-color-text);
}

.mep-portal-empty-subtitle {
	font-size: 14px;
	color: var(--mep-color-text-muted);
	max-width: 560px;
	margin: 0 0 8px;
	line-height: 1.6;
}

/* ========================================================================
 * 12. Footer
 * ====================================================================== */

.mep-portal-footer {
	max-width: 1280px;
	margin: 0 auto;
	width: 100%;
	padding: 24px 32px 32px;
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	font-size: 12px;
	color: var(--mep-color-text-subtle);
}
.mep-portal-footer-sep {
	opacity: 0.5;
}

/* ========================================================================
 * 13. Login page (左品牌 / 右登录卡)
 * ====================================================================== */

body.mep-portal--login {
	background: #f7f8fa;
}

.mep-portal-shell--login {
	min-height: 100vh;
}

.mep-portal-shell--login .mep-portal-main {
	display: flex;
}

.mep-portal-login-shell {
	width: 100%;
	display: grid;
	grid-template-columns: minmax(420px, 1.1fr) minmax(420px, 0.9fr);
	min-height: 100vh;
}

.mep-portal-login-brand {
	background: linear-gradient(135deg, #1e3a8a 0%, #2d5cf5 60%, #5c7cfa 100%);
	color: #fff;
	padding: 64px 80px;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	position: relative;
	overflow: hidden;
}
.mep-portal-login-brand::after {
	content: "";
	position: absolute;
	width: 600px;
	height: 600px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.05);
	bottom: -200px;
	right: -250px;
}

.mep-portal-login-brand-content {
	position: relative;
	z-index: 2;
}

/* v0.3.1：白色圆角容器承载黑字 LOGO（D3）。
   背景纯白，圆角 14px，padding 18px 22px。
   既保证 LOGO 在蓝渐变上视觉清晰，又形成"品牌标识被妥善承载"的层次。 */
.mep-portal-login-logo-card {
	display: inline-flex;
	align-items: center;
	justify-content: flex-start;
	background: #ffffff;
	border-radius: 14px;
	padding: 18px 22px;
	max-width: 260px;
	margin-bottom: 32px;
	box-shadow:
		0 1px 2px rgba(15, 23, 42, 0.06),
		0 8px 24px rgba(15, 23, 42, 0.08);
}

.mep-portal-login-logo {
	display: block;
	width: 100%;
	max-width: 210px;
	height: auto;
	user-select: none;
	-webkit-user-drag: none;
}

/* 兼容旧 class（不再渲染，避免外部主题误覆盖） */
.mep-portal-login-mark {
	margin-bottom: 32px;
}

.mep-portal-login-title {
	font-size: 32px;
	font-weight: 600;
	margin: 0 0 6px;
	letter-spacing: -0.02em;
	color: #fff;
	line-height: 1.25;
}

.mep-portal-login-subtitle {
	font-size: 14px;
	margin: 0 0 28px;
	color: rgba(255, 255, 255, 0.78);
	letter-spacing: 0.02em;
}

.mep-portal-login-tagline {
	font-size: 16px;
	color: rgba(255, 255, 255, 0.88);
	max-width: 460px;
	line-height: 1.6;
	margin: 0;
}

.mep-portal-login-brand-footer {
	position: relative;
	z-index: 2;
	font-size: 12px;
	color: rgba(255, 255, 255, 0.65);
	letter-spacing: 0.04em;
}

.mep-portal-login-panel {
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 48px 32px;
}

.mep-portal-login-card {
	width: 100%;
	max-width: 420px;
	display: flex;
	flex-direction: column;
	gap: 22px;
}

.mep-portal-login-card-header {
	display: flex;
	flex-direction: column;
	gap: 4px;
}

.mep-portal-login-card-title {
	font-size: 24px;
	font-weight: 600;
	margin: 0;
	color: var(--mep-color-text);
	letter-spacing: -0.01em;
}

.mep-portal-login-card-subtitle {
	font-size: 14px;
	color: var(--mep-color-text-muted);
	margin: 0;
}

.mep-portal-login-hint {
	font-size: 12px;
	color: var(--mep-color-text-subtle);
	margin: 4px 0 0;
	text-align: center;
}

/* Form */
.mep-portal-form {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.mep-portal-form-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.mep-portal-form-label {
	font-size: 13px;
	font-weight: 500;
	color: var(--mep-color-text);
}

.mep-portal-input {
	width: 100%;
	height: 44px;
	padding: 0 14px;
	font-family: inherit;
	font-size: 15px;
	color: var(--mep-color-text);
	background: #fff;
	border: 1px solid var(--mep-color-border-strong);
	border-radius: 8px;
	transition: border-color 0.12s ease, box-shadow 0.12s ease;
	outline: none;
	box-shadow: none;
}
.mep-portal-input::placeholder {
	color: var(--mep-color-text-subtle);
}
.mep-portal-input:hover {
	border-color: #b9bec6;
}
.mep-portal-input:focus,
.mep-portal-input:focus-visible {
	border-color: var(--mep-color-primary);
	box-shadow: var(--mep-focus-ring);
}

/* Checkbox */
.mep-portal-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	user-select: none;
	font-size: 13px;
	color: var(--mep-color-text-muted);
}
.mep-portal-checkbox input[type="checkbox"] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.mep-portal-checkbox-mark {
	width: 16px;
	height: 16px;
	border: 1.5px solid var(--mep-color-border-strong);
	border-radius: 4px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	transition: background-color 0.12s ease, border-color 0.12s ease;
	position: relative;
}
.mep-portal-checkbox input[type="checkbox"]:checked + .mep-portal-checkbox-mark {
	background: var(--mep-color-primary);
	border-color: var(--mep-color-primary);
}
.mep-portal-checkbox input[type="checkbox"]:checked + .mep-portal-checkbox-mark::after {
	content: "";
	position: absolute;
	left: 4.5px;
	top: 1.5px;
	width: 4px;
	height: 8px;
	border: solid #fff;
	border-width: 0 1.5px 1.5px 0;
	transform: rotate(45deg);
}
.mep-portal-checkbox input[type="checkbox"]:focus-visible + .mep-portal-checkbox-mark {
	box-shadow: var(--mep-focus-ring);
}

/* Notice (flash) */
.mep-portal-notice {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 12px 14px;
	border-radius: var(--mep-radius-md);
	font-size: 13px;
	line-height: 1.5;
	border: 1px solid transparent;
}
.mep-portal-notice--neutral {
	background: var(--mep-color-info-bg);
	color: var(--mep-color-info-text);
	border-color: rgba(29, 78, 216, 0.18);
}
.mep-portal-notice--error {
	background: var(--mep-color-danger-bg);
	color: var(--mep-color-danger-text);
	border-color: rgba(185, 28, 28, 0.2);
}
.mep-portal-notice-icon {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: currentColor;
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 700;
}
.mep-portal-notice--error .mep-portal-notice-icon {
	color: #fff;
}

/* ========================================================================
 * 14. Responsive
 * ====================================================================== */

@media (max-width: 1024px) {
	.mep-portal-stat-cards {
		grid-template-columns: repeat(2, 1fr);
	}
	.mep-portal-tiles {
		grid-template-columns: 1fr;
	}
}

@media (max-width: 900px) {
	.mep-portal-login-shell {
		grid-template-columns: 1fr;
	}
	.mep-portal-login-brand {
		padding: 36px 32px;
	}
	.mep-portal-login-logo-card {
		padding: 14px 18px;
		margin-bottom: 22px;
		max-width: 220px;
	}
	.mep-portal-login-logo {
		max-width: 180px;
	}
	.mep-portal-login-title {
		font-size: 22px;
	}
	.mep-portal-login-tagline {
		font-size: 14px;
	}
	.mep-portal-login-brand-footer {
		display: none;
	}
	.mep-portal-action-card {
		flex-direction: column;
		align-items: flex-start;
		gap: 16px;
	}
	.mep-portal-action-card-cta {
		align-items: flex-start;
	}
}

@media (max-width: 640px) {
	.mep-portal-topbar-inner {
		padding: 0 16px;
		height: 56px;
	}
	.mep-portal-brand {
		gap: 10px;
	}
	.mep-portal-brand-logo-wrap,
	.mep-portal-brand-logo {
		height: 28px;
	}
	/* 小屏隐藏分隔线 + 副标题，保留 tag */
	.mep-portal-brand-divider {
		display: none;
	}
	.mep-portal-brand-sub {
		display: none;
	}
	.mep-portal-brand-zh {
		font-size: 13px;
	}
	.mep-portal-user-name {
		display: none;
	}
	.mep-portal-container {
		padding: 20px 16px;
		gap: 16px;
	}
	.mep-portal-hero-title {
		font-size: 22px;
	}
	.mep-portal-stat-cards {
		grid-template-columns: 1fr;
	}
	.mep-portal-login-panel {
		padding: 32px 20px;
	}
	.mep-portal-login-brand {
		padding: 28px 24px;
	}
	.mep-portal-login-logo-card {
		padding: 12px 16px;
		max-width: 200px;
	}
	.mep-portal-login-logo {
		max-width: 160px;
	}
	.mep-portal-footer {
		padding: 16px;
		font-size: 11px;
	}
}

/* ========================================================================
 * 11. Profile (v0.4.0 / A5) — 企业资料四步填报
 * ====================================================================== */

/* 容器 */
.mep-portal-profile {
	max-width: 880px;
	margin: 0 auto;
	padding: 24px 24px 80px;
}

/* ---- Stepper (顶部 4 步进度) ---- */
.mep-portal-profile-stepper-wrap {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 18px 22px;
	background: var(--mep-color-card);
	border: 1px solid var(--mep-color-border);
	border-radius: var(--mep-radius-md);
	margin-bottom: 22px;
	box-shadow: var(--mep-shadow-card);
}

.mep-portal-profile-stepper {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	align-items: center;
	gap: 0;
	flex: 1;
	min-width: 0;
	flex-wrap: wrap;
}

.mep-portal-profile-step {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	position: relative;
	flex-shrink: 0;
}

.mep-portal-profile-step:not(:last-child)::after {
	content: "";
	width: 32px;
	height: 1px;
	background: var(--mep-color-border);
	margin: 0 12px;
	display: inline-block;
}

.mep-portal-step--done:not(:last-child)::after {
	background: var(--mep-color-primary);
}

.mep-portal-profile-step-num {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 600;
	background: #f3f4f6;
	color: var(--mep-color-text-subtle);
	border: 1px solid var(--mep-color-border);
	transition: background 0.15s, color 0.15s;
}

.mep-portal-step--current .mep-portal-profile-step-num {
	background: var(--mep-color-primary);
	color: #fff;
	border-color: var(--mep-color-primary);
}

.mep-portal-step--done .mep-portal-profile-step-num {
	background: var(--mep-color-primary);
	color: #fff;
	border-color: var(--mep-color-primary);
}

.mep-portal-profile-step-label {
	font-size: 13px;
	font-weight: 500;
	color: var(--mep-color-text-muted);
	white-space: nowrap;
}

.mep-portal-step--current .mep-portal-profile-step-label {
	color: var(--mep-color-text);
	font-weight: 600;
}

.mep-portal-step--done .mep-portal-profile-step-label {
	color: var(--mep-color-text);
}

.mep-portal-profile-stepper-side {
	flex-shrink: 0;
}

.mep-portal-profile-completeness {
	font-size: 12px;
	color: var(--mep-color-text-muted);
	display: inline-flex;
	align-items: center;
	gap: 6px;
}

.mep-portal-profile-completeness strong {
	font-size: 18px;
	font-weight: 600;
	color: var(--mep-color-primary);
}

/* ---- Card 通用（表单页 + review 页共享） ---- */
.mep-portal-profile-card {
	background: var(--mep-color-card);
	border: 1px solid var(--mep-color-border);
	border-radius: var(--mep-radius-lg);
	margin-bottom: 22px;
	box-shadow: var(--mep-shadow-card);
	overflow: hidden;
}

.mep-portal-profile-card-header {
	padding: 22px 26px 14px;
	border-bottom: 1px solid var(--mep-color-border);
	background: #fafbfc;
}

.mep-portal-profile-card-title {
	margin: 0 0 6px;
	font-size: 17px;
	font-weight: 600;
	color: var(--mep-color-text);
	letter-spacing: -0.01em;
}

.mep-portal-profile-card-subtitle {
	margin: 0;
	font-size: 13px;
	color: var(--mep-color-text-muted);
	line-height: 1.55;
}

.mep-portal-profile-card-body {
	padding: 26px;
	display: flex;
	flex-direction: column;
	gap: 18px;
}

/* ---- Form rows & fields ---- */
.mep-portal-profile-form {
	margin: 0;
}

.mep-portal-form-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}

.mep-portal-form-row--three {
	grid-template-columns: 1fr 1fr 1fr;
}

.mep-portal-form-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.mep-portal-form-label {
	font-size: 13px;
	font-weight: 600;
	color: var(--mep-color-text);
	letter-spacing: 0;
}

.mep-portal-form-required {
	color: #dc2626;
	margin-left: 2px;
}

.mep-portal-form-hint {
	margin: 2px 0 0;
	font-size: 12px;
	color: var(--mep-color-text-subtle);
	line-height: 1.5;
}

.mep-portal-form-hint--block {
	margin-top: -8px;
	margin-bottom: 4px;
}

/* Input / Select / Textarea 统一外观（已与 login form 风格保持） */
.mep-portal-input {
	width: 100%;
	height: 42px;
	padding: 0 12px;
	border: 1px solid var(--mep-color-border-strong);
	border-radius: var(--mep-radius-sm);
	font-size: 14px;
	color: var(--mep-color-text);
	background: #fff;
	font-family: inherit;
	transition: border-color 0.15s, box-shadow 0.15s;
	box-sizing: border-box;
}

.mep-portal-input:focus {
	outline: none;
	border-color: var(--mep-color-primary);
	box-shadow: var(--mep-focus-ring);
}

.mep-portal-input:disabled {
	background: #f3f4f6;
	color: var(--mep-color-text-subtle);
	cursor: not-allowed;
}

.mep-portal-input--textarea {
	height: auto;
	padding: 10px 12px;
	line-height: 1.55;
	resize: vertical;
	min-height: 80px;
}

select.mep-portal-input {
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2212%22%20height%3D%2212%22%20viewBox%3D%220%200%2012%2012%22%3E%3Cpath%20fill%3D%22%235e6470%22%20d%3D%22M3%204.5L6%207.5L9%204.5L9.7%205.2L6%208.9L2.3%205.2Z%22%2F%3E%3C%2Fsvg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
	padding-right: 32px;
}

/* ---- Checkbox pill groups (多选字典) ---- */
.mep-portal-checkbox-group {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.mep-portal-checkbox-pill {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 7px 14px;
	border: 1px solid var(--mep-color-border-strong);
	border-radius: 999px;
	background: #fff;
	font-size: 13px;
	color: var(--mep-color-text);
	cursor: pointer;
	transition: border-color 0.12s, background 0.12s, color 0.12s;
	user-select: none;
}

.mep-portal-checkbox-pill:hover {
	border-color: var(--mep-color-primary);
	background: var(--mep-color-primary-soft);
}

.mep-portal-checkbox-pill input[type="checkbox"] {
	margin: 0;
	width: 14px;
	height: 14px;
	accent-color: var(--mep-color-primary);
	cursor: pointer;
}

.mep-portal-checkbox-pill input[type="checkbox"]:checked + .mep-portal-checkbox-pill-text {
	color: var(--mep-color-primary);
	font-weight: 500;
}

.mep-portal-checkbox-pill:has( input[type="checkbox"]:checked ) {
	border-color: var(--mep-color-primary);
	background: var(--mep-color-primary-soft);
}

/* Tree group (应用行业多选树) */
.mep-portal-tree-group {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.mep-portal-tree-branch {
	padding: 10px 14px;
	background: #fafbfc;
	border: 1px solid var(--mep-color-border);
	border-radius: var(--mep-radius-sm);
}

.mep-portal-checkbox-pill--parent {
	font-weight: 500;
	background: transparent;
	border: none;
	padding: 4px 0;
}
.mep-portal-checkbox-pill--parent:hover {
	background: transparent;
}
.mep-portal-checkbox-pill--parent:has( input[type="checkbox"]:checked ) {
	background: transparent;
}

.mep-portal-tree-children {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 8px;
	padding-left: 22px;
}

.mep-portal-checkbox-pill--child {
	font-size: 12.5px;
	padding: 5px 11px;
}

/* ---- Bottom action bar ---- */
.mep-portal-profile-actionbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 14px;
	padding: 18px 0 6px;
	flex-wrap: wrap;
}

.mep-portal-profile-actionbar-left,
.mep-portal-profile-actionbar-right {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.mep-portal-profile-link {
	font-size: 13px;
	color: var(--mep-color-text-muted);
	text-decoration: none;
}
.mep-portal-profile-link:hover {
	color: var(--mep-color-primary);
}

.mep-portal-profile-locked-hint {
	font-size: 13px;
	color: var(--mep-color-text-subtle);
	padding: 0 8px;
}

/* Btn 扩展 */
.mep-portal-btn-lg {
	padding: 12px 26px;
	font-size: 15px;
	font-weight: 600;
}

/* ---- Review page (第四步) ---- */
.mep-portal-profile-completeness-card {
	background: var(--mep-color-card);
	border: 1px solid var(--mep-color-border);
	border-radius: var(--mep-radius-lg);
	padding: 22px 28px;
	display: flex;
	align-items: center;
	gap: 28px;
	margin-bottom: 22px;
	box-shadow: var(--mep-shadow-card);
}

.mep-portal-profile-completeness-ring {
	flex-shrink: 0;
}

.mep-portal-profile-completeness-text {
	flex: 1;
	min-width: 0;
}

.mep-portal-profile-completeness-title {
	margin: 0 0 6px;
	font-size: 16px;
	font-weight: 600;
	color: var(--mep-color-text);
}

.mep-portal-profile-completeness-desc {
	margin: 0;
	font-size: 13px;
	color: var(--mep-color-text-muted);
	line-height: 1.55;
}

/* Review summary card header (含编辑按钮) */
.mep-portal-profile-review-card-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.mep-portal-profile-edit-link {
	font-size: 13px;
	color: var(--mep-color-primary);
	text-decoration: none;
	padding: 4px 10px;
	border-radius: var(--mep-radius-sm);
	border: 1px solid var(--mep-color-border);
	background: #fff;
	transition: border-color 0.12s, background 0.12s;
}
.mep-portal-profile-edit-link:hover {
	border-color: var(--mep-color-primary);
	background: var(--mep-color-primary-soft);
}

/* Review grid (信息字段汇总) */
.mep-portal-profile-review-grid {
	margin: 0;
	padding: 22px 26px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px 28px;
}

.mep-portal-profile-review-grid--full {
	grid-template-columns: 1fr;
}

.mep-portal-profile-review-row {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}

.mep-portal-profile-review-row--full {
	grid-column: 1 / -1;
}

.mep-portal-profile-review-row dt {
	font-size: 12px;
	font-weight: 500;
	color: var(--mep-color-text-subtle);
	letter-spacing: 0.02em;
}

.mep-portal-profile-review-row dd {
	margin: 0;
	font-size: 14px;
	color: var(--mep-color-text);
	line-height: 1.55;
	word-break: break-word;
}

.mep-portal-profile-review-card--muted .mep-portal-profile-card-header {
	background: #f9fafb;
}

.mep-portal-profile-attachment-placeholder {
	padding: 32px 24px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 12px;
	text-align: center;
	color: var(--mep-color-text-muted);
}

.mep-portal-profile-attachment-placeholder p {
	margin: 0;
	font-size: 13px;
	line-height: 1.55;
	max-width: 480px;
}

/* Submit form 容器 */
.mep-portal-profile-submit-form {
	margin: 0;
}

/* Secondary btn (review 页 / dashboard 已提交态使用) */
.mep-portal-btn-secondary {
	background: #fff;
	color: var(--mep-color-text);
	border: 1px solid var(--mep-color-border-strong);
	padding: 10px 18px;
	font-size: 14px;
	font-weight: 500;
	border-radius: var(--mep-radius-sm);
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: border-color 0.12s, background 0.12s;
	text-decoration: none;
	font-family: inherit;
}
.mep-portal-btn-secondary:hover {
	border-color: var(--mep-color-primary);
	color: var(--mep-color-primary);
	background: var(--mep-color-primary-soft);
}

/* ---- Responsive ---- */
@media (max-width: 760px) {
	.mep-portal-profile {
		padding: 16px 14px 80px;
	}
	.mep-portal-profile-stepper-wrap {
		flex-direction: column;
		align-items: flex-start;
		gap: 12px;
	}
	.mep-portal-profile-step-label {
		display: none; /* 小屏只看数字圈 */
	}
	.mep-portal-profile-step:not(:last-child)::after {
		width: 18px;
		margin: 0 6px;
	}
	.mep-portal-form-row,
	.mep-portal-form-row--three {
		grid-template-columns: 1fr;
	}
	.mep-portal-profile-review-grid {
		grid-template-columns: 1fr;
		padding: 18px 20px;
	}
	.mep-portal-profile-card-body {
		padding: 20px 18px;
	}
	.mep-portal-profile-card-header {
		padding: 18px 20px 12px;
	}
	.mep-portal-profile-completeness-card {
		flex-direction: column;
		align-items: flex-start;
		padding: 20px;
		gap: 14px;
	}
	.mep-portal-profile-actionbar {
		flex-direction: column-reverse;
		align-items: stretch;
		gap: 12px;
	}
	.mep-portal-profile-actionbar-left,
	.mep-portal-profile-actionbar-right {
		justify-content: flex-end;
		flex-wrap: wrap;
	}
}

/* ========================================================================
 * 12. 按钮文字色兜底（v0.4.0 Bug 2 修复 — 真正命中版）
 *
 * 问题根因（上一轮误判后重新定位）：
 *   - 实际外层容器 class 是 .mep-portal-shell，不是上一轮假设的 .mep-portal
 *     （上一轮写的 `.mep-portal .mep-portal-btn-primary` 根本不匹配任何元素）
 *   - WordPress 主题常用 `.entry-content a:link {...}` 这类高优先级选择器（0,0,2,1）
 *     覆盖按钮文字色，即使加了 !important 也可能被主题更高优先级 !important 反向覆盖
 *
 * 修复策略（两层叠加，确保白字必然胜出）：
 *   1) 用 .mep-portal-shell 作为命名空间根，把整体特异性顶到 (0,0,2,1)+
 *      压住主题的 .entry-content / .site-content 等
 *   2) 用 [class*="mep-portal-btn-primary"] 属性选择器再加一层 (0,0,1,1)
 *      作为兜底，即使 .mep-portal-shell 不在某些极端布局下也能命中
 *   3) 用 * 通配子节点，防主题给按钮内部包 <span> 时再次被覆盖
 *   4) 全部 !important，且覆盖 :link / :visited / :hover / :active / :focus 五态
 * ====================================================================== */

/* ---- 主按钮（蓝底白字）：双层选择器叠加 ---- */
.mep-portal-shell .mep-portal-btn-primary,
.mep-portal-shell a.mep-portal-btn-primary,
.mep-portal-shell a.mep-portal-btn-primary:link,
.mep-portal-shell a.mep-portal-btn-primary:visited,
.mep-portal-shell a.mep-portal-btn-primary:hover,
.mep-portal-shell a.mep-portal-btn-primary:active,
.mep-portal-shell a.mep-portal-btn-primary:focus,
.mep-portal-shell .mep-portal-btn-primary *,
.mep-portal-shell .mep-portal-btn-primary *:link,
.mep-portal-shell .mep-portal-btn-primary *:visited,
a[class*="mep-portal-btn-primary"],
a[class*="mep-portal-btn-primary"]:link,
a[class*="mep-portal-btn-primary"]:visited,
a[class*="mep-portal-btn-primary"]:hover,
a[class*="mep-portal-btn-primary"]:active,
a[class*="mep-portal-btn-primary"]:focus,
a[class*="mep-portal-btn-primary"] * {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	text-decoration: none !important;
}

/* ---- 次按钮（白底深色字） ---- */
.mep-portal-shell .mep-portal-btn-secondary,
.mep-portal-shell a.mep-portal-btn-secondary,
.mep-portal-shell a.mep-portal-btn-secondary:link,
.mep-portal-shell a.mep-portal-btn-secondary:visited,
.mep-portal-shell a.mep-portal-btn-secondary:active,
.mep-portal-shell a.mep-portal-btn-secondary:focus,
.mep-portal-shell .mep-portal-btn-secondary *,
a[class*="mep-portal-btn-secondary"],
a[class*="mep-portal-btn-secondary"]:link,
a[class*="mep-portal-btn-secondary"]:visited,
a[class*="mep-portal-btn-secondary"]:active,
a[class*="mep-portal-btn-secondary"]:focus {
	color: #1a1d21 !important;
	-webkit-text-fill-color: #1a1d21 !important;
	text-decoration: none !important;
}
.mep-portal-shell a.mep-portal-btn-secondary:hover,
a[class*="mep-portal-btn-secondary"]:hover {
	color: #2d5cf5 !important;
	-webkit-text-fill-color: #2d5cf5 !important;
}

/* ---- 禁用态按钮（灰底白字） ---- */
.mep-portal-shell .mep-portal-btn:disabled,
.mep-portal-shell .mep-portal-btn-disabled,
.mep-portal-shell a.mep-portal-btn-disabled,
.mep-portal-shell a.mep-portal-btn-disabled:link,
.mep-portal-shell a.mep-portal-btn-disabled:visited,
.mep-portal-shell a.mep-portal-btn-disabled:hover,
.mep-portal-shell .mep-portal-btn-disabled *,
a[class*="mep-portal-btn-disabled"],
a[class*="mep-portal-btn-disabled"]:link,
a[class*="mep-portal-btn-disabled"]:visited,
a[class*="mep-portal-btn-disabled"]:hover {
	color: #ffffff !important;
	-webkit-text-fill-color: #ffffff !important;
	text-decoration: none !important;
}

/* ---- Profile edit / link 类辅助链接（review 页"编辑"、"上一步"、"返回工作台"） ---- */
.mep-portal-shell a.mep-portal-profile-edit-link,
.mep-portal-shell a.mep-portal-profile-edit-link:link,
.mep-portal-shell a.mep-portal-profile-edit-link:visited {
	color: #2d5cf5 !important;
	text-decoration: none !important;
}

.mep-portal-shell a.mep-portal-profile-link,
.mep-portal-shell a.mep-portal-profile-link:link,
.mep-portal-shell a.mep-portal-profile-link:visited {
	color: #5e6470 !important;
	text-decoration: none !important;
}
.mep-portal-shell a.mep-portal-profile-link:hover {
	color: #2d5cf5 !important;
}

/* ---- 所有 mep-portal-btn 通用：永远无下划线 ---- */
.mep-portal-shell a.mep-portal-btn,
a[class*="mep-portal-btn"] {
	text-decoration: none !important;
}

/* ========================================================================
 * 13. Attachments (v0.5.0 / A6) — 企业附件上传与列表
 * ====================================================================== */

.mep-portal-profile-attachments-card {
	margin-bottom: 22px;
}

.mep-portal-attachments-count {
	display: inline-block;
	margin-left: 8px;
	padding: 2px 10px;
	font-size: 12px;
	font-weight: 500;
	background: #eef1f8;
	color: #2d5cf5;
	border-radius: 999px;
	vertical-align: middle;
}

/* ---- 上传表单区 ---- */
.mep-portal-attachments-upload-form {
	margin: 0 0 24px;
	padding: 18px;
	background: #fafbfc;
	border: 1px dashed #d3d7de;
	border-radius: 10px;
}

.mep-portal-attachments-upload-grid {
	display: grid;
	grid-template-columns: 200px 1fr;
	gap: 16px;
	align-items: start;
}

.mep-portal-attachments-upload-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	min-width: 0;
}

.mep-portal-attachments-upload-file input[type="file"] {
	width: 100%;
	padding: 9px 12px;
	font-size: 13px;
	color: var(--mep-color-text, #1a1d21);
	background: #fff;
	border: 1px solid #d3d7de;
	border-radius: 8px;
	cursor: pointer;
	font-family: inherit;
	box-sizing: border-box;
}

.mep-portal-attachments-upload-file input[type="file"]::-webkit-file-upload-button {
	border: none;
	padding: 6px 14px;
	margin-right: 12px;
	background: #2d5cf5;
	color: #fff;
	-webkit-text-fill-color: #fff;
	border-radius: 6px;
	font-size: 13px;
	cursor: pointer;
	font-family: inherit;
}

.mep-portal-attachments-upload-actionbar {
	margin-top: 14px;
	display: flex;
	justify-content: flex-end;
}

/* 锁定态提示 */
.mep-portal-attachments-locked-notice {
	padding: 14px 18px;
	background: #fafbfc;
	border: 1px solid #e6e8eb;
	border-radius: 8px;
	color: #5e6470;
	font-size: 13px;
	margin-bottom: 20px;
}

/* ---- 空状态 ---- */
.mep-portal-attachments-empty {
	padding: 40px 20px;
	text-align: center;
	color: #8b919a;
}
.mep-portal-attachments-empty p {
	margin: 12px 0 0;
	font-size: 13px;
}

/* ---- 卡片网格 ---- */
.mep-portal-attachments-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 16px;
}

.mep-portal-attachment-card {
	position: relative;
	background: #fff;
	border: 1px solid #e6e8eb;
	border-radius: 10px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: border-color 0.12s, box-shadow 0.12s;
}

.mep-portal-attachment-card:hover {
	border-color: #c8cdd4;
	box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.mep-portal-attachment-thumb {
	display: block;
	aspect-ratio: 1 / 1;
	background: #f3f4f6;
	overflow: hidden;
	cursor: zoom-in;
	text-decoration: none !important;
}

.mep-portal-attachment-thumb img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.2s;
}
.mep-portal-attachment-thumb:hover img {
	transform: scale(1.04);
}

.mep-portal-attachment-icon {
	aspect-ratio: 1 / 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
}

.mep-portal-attachment-ext {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.04em;
}

.mep-portal-attachment-meta {
	padding: 10px 12px 6px;
	flex: 1;
	min-width: 0;
}

.mep-portal-attachment-name {
	font-size: 13px;
	font-weight: 500;
	color: #1a1d21;
	line-height: 1.35;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.mep-portal-attachment-info {
	margin-top: 4px;
	font-size: 11.5px;
	color: #8b919a;
	display: flex;
	align-items: center;
	gap: 4px;
	flex-wrap: wrap;
}

.mep-portal-attachment-cat {
	color: #5e6470;
}

.mep-portal-attachment-sep {
	color: #cbd0d6;
}

.mep-portal-attachment-actions {
	padding: 4px 8px 8px;
	display: flex;
	justify-content: flex-end;
	gap: 4px;
	border-top: 1px solid #f0f1f3;
	margin-top: 4px;
}

.mep-portal-attachment-hide-form {
	margin: 0;
	display: inline-block;
}

.mep-portal-attachment-action-btn {
	background: transparent;
	border: 1px solid transparent;
	padding: 6px;
	border-radius: 6px;
	cursor: pointer;
	color: #5e6470;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: background 0.12s, color 0.12s, border-color 0.12s;
	text-decoration: none !important;
}
.mep-portal-attachment-action-btn:hover {
	background: #f3f4f6;
	color: #2d5cf5;
	border-color: #e6e8eb;
}
.mep-portal-attachment-action-btn--danger:hover {
	background: #fef2f2;
	color: #dc2626;
	border-color: #fecaca;
}

/* ---- 响应式 ---- */
@media (max-width: 760px) {
	.mep-portal-attachments-upload-grid {
		grid-template-columns: 1fr;
	}
	.mep-portal-attachments-grid {
		grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
		gap: 12px;
	}
}

/* ========================================================================
 * 14. Admin Review Center (v0.6.0 / A7)
 * ====================================================================== */

/* ---- 通用 4 列 stat grid ---- */
.mep-portal-stat-grid--cols-4 {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
	margin-bottom: 24px;
}
@media (max-width: 960px) {
	.mep-portal-stat-grid--cols-4 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
	.mep-portal-stat-grid--cols-4 { grid-template-columns: 1fr; }
}

/* ============ 列表页 ============ */
.mep-portal-admin-review {
	max-width: 1280px;
	margin: 0 auto;
}

.mep-portal-admin-review-header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 16px;
	margin-bottom: 24px;
}

.mep-portal-admin-review-title {
	margin: 0 0 6px;
	font-size: 24px;
	font-weight: 600;
	color: #1a1d21;
	letter-spacing: -0.01em;
}

.mep-portal-admin-review-subtitle {
	margin: 0;
	font-size: 13px;
	color: #5e6470;
}

/* 筛选条 */
.mep-portal-admin-review-filter {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 14px 18px;
	background: #fafbfc;
	border: 1px solid #e6e8eb;
	border-radius: 10px;
	margin-bottom: 18px;
	flex-wrap: wrap;
}
.mep-portal-admin-review-filter-fields {
	display: flex;
	gap: 12px;
	flex: 1;
	min-width: 0;
}
.mep-portal-admin-review-filter-search {
	flex: 1 1 320px;
	min-width: 220px;
}
.mep-portal-admin-review-filter-status {
	flex: 0 0 180px;
}
.mep-portal-admin-review-filter-actions {
	display: flex;
	gap: 8px;
}

/* 表格 */
.mep-portal-admin-review-table-wrap {
	background: #fff;
	border: 1px solid #e6e8eb;
	border-radius: 10px;
	overflow: hidden;
}

.mep-portal-admin-review-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13.5px;
}

.mep-portal-admin-review-table thead th {
	text-align: left;
	padding: 12px 16px;
	font-size: 12px;
	font-weight: 600;
	color: #5e6470;
	letter-spacing: 0.02em;
	background: #fafbfc;
	border-bottom: 1px solid #e6e8eb;
	text-transform: uppercase;
}

.mep-portal-admin-review-table tbody td {
	padding: 14px 16px;
	border-bottom: 1px solid #f0f1f3;
	color: #1a1d21;
	vertical-align: middle;
}

.mep-portal-admin-review-table tbody tr:last-child td {
	border-bottom: none;
}

.mep-portal-admin-review-table tbody tr:hover {
	background: #fafbfc;
}

.mep-portal-admin-review-company-name {
	color: #2d5cf5 !important;
	-webkit-text-fill-color: #2d5cf5 !important;
	text-decoration: none !important;
	font-weight: 500;
}

.mep-portal-admin-review-completeness {
	display: inline-block;
	padding: 2px 10px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 500;
}
.mep-portal-admin-review-completeness--ok {
	background: #ecfdf5;
	color: #047857;
}
.mep-portal-admin-review-completeness--warn {
	background: #fffbeb;
	color: #b45309;
}

.mep-portal-btn-sm {
	padding: 5px 12px !important;
	font-size: 12.5px !important;
}

.mep-portal-admin-review-empty {
	padding: 60px 20px;
	text-align: center;
	color: #8b919a;
}
.mep-portal-admin-review-empty p {
	margin: 12px 0 0;
	font-size: 13.5px;
}

.mep-portal-admin-review-pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 12px;
	padding: 16px;
	border-top: 1px solid #e6e8eb;
	background: #fafbfc;
}
.mep-portal-admin-review-page-info {
	font-size: 13px;
	color: #5e6470;
}

/* ============ 详情页 ============ */
.mep-portal-review-detail {
	max-width: 1280px;
	margin: 0 auto;
}

.mep-portal-review-detail-header {
	margin-bottom: 24px;
}

.mep-portal-review-detail-title {
	margin: 8px 0 6px;
	font-size: 22px;
	font-weight: 600;
	color: #1a1d21;
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	letter-spacing: -0.01em;
}

.mep-portal-review-detail-meta {
	display: flex;
	gap: 8px;
	font-size: 13px;
	color: #5e6470;
	align-items: center;
	flex-wrap: wrap;
}
.mep-portal-review-detail-meta-sep {
	color: #cbd0d6;
}

/* 主布局：左 70% + 右 30% sticky */
.mep-portal-review-detail-layout {
	display: grid;
	grid-template-columns: minmax(0, 70%) minmax(280px, 30%);
	gap: 24px;
	align-items: start;
}
@media (max-width: 1024px) {
	.mep-portal-review-detail-layout {
		grid-template-columns: 1fr;
	}
}

.mep-portal-review-detail-main {
	min-width: 0;
}

/* 左主内容卡片骨架 */
.mep-portal-review-section {
	margin-bottom: 28px;
}

.mep-portal-review-section-title {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 6px;
	font-size: 15px;
	font-weight: 600;
	color: #1a1d21;
	letter-spacing: -0.01em;
}

.mep-portal-review-section-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 20px;
	padding: 0 7px;
	background: #eef1f8;
	color: #2d5cf5;
	font-size: 11.5px;
	font-weight: 500;
	border-radius: 999px;
}

.mep-portal-review-section-subtitle {
	margin: 0 0 12px;
	font-size: 12.5px;
	color: #8b919a;
}

.mep-portal-review-card {
	background: #fff;
	border: 1px solid #e6e8eb;
	border-radius: 10px;
	padding: 18px 20px;
}
.mep-portal-review-card + .mep-portal-review-card {
	margin-top: 14px;
}

.mep-portal-review-card-title {
	margin: 0 0 14px;
	font-size: 13.5px;
	font-weight: 600;
	color: #1a1d21;
	letter-spacing: 0.01em;
}

/* 资料 grid（2 列 dt/dd） */
.mep-portal-review-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px 24px;
	margin: 0;
}
@media (max-width: 760px) {
	.mep-portal-review-grid { grid-template-columns: 1fr; }
}

.mep-portal-review-grid-row {
	display: grid;
	grid-template-columns: 130px 1fr;
	gap: 12px;
	padding: 6px 0;
	min-width: 0;
}
.mep-portal-review-grid-row--wide {
	grid-column: 1 / -1;
}
.mep-portal-review-grid-row dt {
	font-size: 13px;
	color: #5e6470;
	white-space: nowrap;
}
.mep-portal-review-grid-row dd {
	margin: 0;
	font-size: 13.5px;
	color: #1a1d21;
	word-break: break-word;
}

.mep-portal-review-empty {
	padding: 32px 20px;
	text-align: center;
	color: #8b919a;
	font-size: 13px;
}

/* 附件 grid（复用 A6 卡片） */
.mep-portal-review-files-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 14px;
}
.mep-portal-attachment-card--hidden {
	opacity: 0.78;
	background: #fafbfc;
}

/* 历史表格 */
.mep-portal-review-history-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 13px;
}
.mep-portal-review-history-table thead th {
	text-align: left;
	padding: 8px 10px;
	font-size: 11.5px;
	font-weight: 600;
	color: #8b919a;
	border-bottom: 1px solid #e6e8eb;
	text-transform: uppercase;
	letter-spacing: 0.02em;
}
.mep-portal-review-history-table tbody td {
	padding: 9px 10px;
	border-bottom: 1px solid #f3f4f6;
	color: #1a1d21;
	vertical-align: top;
}
.mep-portal-review-history-table tbody tr:last-child td {
	border-bottom: none;
}
.mep-portal-review-history-prev {
	color: #8b919a;
	max-width: 220px;
	word-break: break-word;
}
.mep-portal-review-history-new {
	color: #1a1d21;
	max-width: 220px;
	word-break: break-word;
}
.mep-portal-review-history-step {
	font-size: 11.5px;
	color: #8b919a;
}
.mep-portal-review-history-sub {
	display: block;
	margin-top: 2px;
	font-size: 11.5px;
	color: #8b919a;
}
.mep-portal-review-history-arrow {
	color: #cbd0d6;
	margin: 0 2px;
	font-weight: 500;
}

/* badge 小尺寸 */
.mep-portal-badge--sm {
	font-size: 11px !important;
	padding: 1px 8px !important;
}

/* 审核时间线 */
.mep-portal-review-timeline {
	list-style: none;
	padding: 0;
	margin: 0;
	position: relative;
}
.mep-portal-review-timeline-item {
	position: relative;
	padding: 12px 0 16px 22px;
	border-left: 2px solid #eef1f8;
}
.mep-portal-review-timeline-item:last-child {
	border-left-color: transparent;
}
.mep-portal-review-timeline-item::before {
	content: '';
	position: absolute;
	left: -7px;
	top: 16px;
	width: 12px;
	height: 12px;
	background: #fff;
	border: 2px solid #2d5cf5;
	border-radius: 50%;
}
.mep-portal-review-timeline-head {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 6px;
}
.mep-portal-review-timeline-time {
	font-size: 12px;
	color: #5e6470;
	font-weight: 500;
}
.mep-portal-review-timeline-status {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.mep-portal-review-timeline-reviewer {
	font-size: 11.5px;
	color: #8b919a;
	margin-left: auto;
}
.mep-portal-review-timeline-body {
	font-size: 13px;
	color: #1a1d21;
	background: #fafbfc;
	padding: 10px 12px;
	border-radius: 6px;
	white-space: pre-wrap;
}

/* ============ 右侧 sticky 审核栏 ============ */
.mep-portal-review-detail-side {
	position: sticky;
	top: 16px;
	align-self: start;
}
@media (max-width: 1024px) {
	.mep-portal-review-detail-side {
		position: static;
	}
}

.mep-portal-review-side-card {
	background: #fff;
	border: 1px solid #e6e8eb;
	border-radius: 10px;
	overflow: hidden;
}

.mep-portal-review-side-head {
	padding: 18px 20px;
	background: #fafbfc;
	border-bottom: 1px solid #e6e8eb;
}

.mep-portal-review-side-status {
	margin-bottom: 14px;
}

.mep-portal-review-side-meta {
	margin: 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 8px;
}
.mep-portal-review-side-meta > div {
	display: flex;
	justify-content: space-between;
	gap: 8px;
}
.mep-portal-review-side-meta dt {
	font-size: 12px;
	color: #5e6470;
	margin: 0;
}
.mep-portal-review-side-meta dd {
	margin: 0;
	font-size: 13px;
	color: #1a1d21;
	font-weight: 500;
}

.mep-portal-review-side-actions {
	padding: 18px 20px;
}

.mep-portal-review-side-form + .mep-portal-review-side-secondary {
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid #f0f1f3;
}

.mep-portal-review-side-secondary {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.mep-portal-review-side-btn-block {
	width: 100%;
	display: block;
	text-align: center;
}

.mep-portal-review-side-btn-danger {
	color: #dc2626 !important;
	-webkit-text-fill-color: #dc2626 !important;
	border-color: #fecaca !important;
}
.mep-portal-review-side-btn-danger:hover {
	background: #fef2f2 !important;
	color: #b91c1c !important;
	-webkit-text-fill-color: #b91c1c !important;
}

.mep-portal-review-side-hint {
	margin: 0 0 12px;
	padding: 12px 14px;
	font-size: 12.5px;
	background: #fafbfc;
	color: #5e6470;
	border-radius: 8px;
	border: 1px solid #e6e8eb;
}
.mep-portal-review-side-hint--ok {
	background: #ecfdf5;
	border-color: #a7f3d0;
	color: #047857;
}
.mep-portal-review-side-hint--warn {
	background: #fffbeb;
	border-color: #fde68a;
	color: #b45309;
}
.mep-portal-review-side-hint--danger {
	background: #fef2f2;
	border-color: #fecaca;
	color: #b91c1c;
}

.mep-portal-form-label--small {
	font-size: 12px !important;
	color: #5e6470 !important;
	margin-bottom: 6px !important;
}

.mep-portal-textarea {
	width: 100%;
	font-family: inherit;
	font-size: 13px;
	padding: 10px 12px;
	resize: vertical;
	box-sizing: border-box;
	margin-bottom: 10px;
}

/* ============ Modals ============ */
.mep-portal-modal {
	position: fixed;
	inset: 0;
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
}
.mep-portal-modal[hidden] {
	display: none;
}
.mep-portal-modal-mask {
	position: absolute;
	inset: 0;
	background: rgba(20, 23, 28, 0.45);
	backdrop-filter: blur(2px);
}
.mep-portal-modal-dialog {
	position: relative;
	background: #fff;
	border-radius: 12px;
	box-shadow: 0 24px 64px rgba(0,0,0,0.18);
	width: min(520px, 92vw);
	max-height: 90vh;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}
.mep-portal-modal-form {
	display: flex;
	flex-direction: column;
	min-height: 0;
}
.mep-portal-modal-head {
	padding: 16px 20px;
	border-bottom: 1px solid #e6e8eb;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.mep-portal-modal-title {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: #1a1d21;
}
.mep-portal-modal-close {
	background: transparent;
	border: none;
	font-size: 22px;
	line-height: 1;
	color: #8b919a;
	cursor: pointer;
	padding: 4px 8px;
	border-radius: 6px;
}
.mep-portal-modal-close:hover {
	background: #f3f4f6;
	color: #1a1d21;
}
.mep-portal-modal-body {
	padding: 18px 20px;
	overflow-y: auto;
}
.mep-portal-modal-desc {
	margin: 0 0 12px;
	font-size: 13px;
	color: #5e6470;
}
.mep-portal-modal-body .mep-portal-textarea {
	margin-bottom: 0;
}
.mep-portal-modal-foot {
	padding: 14px 20px;
	border-top: 1px solid #e6e8eb;
	display: flex;
	justify-content: flex-end;
	gap: 10px;
	background: #fafbfc;
}

/* ============ 企业 dashboard 审核反馈卡 ============ */
.mep-portal-review-feedback {
	border-radius: 10px;
	padding: 16px 20px;
	margin: 0 0 18px;
	border: 1px solid;
}
.mep-portal-review-feedback--revision {
	background: #fffbeb;
	border-color: #fde68a;
}
.mep-portal-review-feedback--reject {
	background: #fef2f2;
	border-color: #fecaca;
}
.mep-portal-review-feedback-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 8px;
}
.mep-portal-review-feedback-title {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
}
.mep-portal-review-feedback--revision .mep-portal-review-feedback-title {
	color: #b45309;
}
.mep-portal-review-feedback--reject .mep-portal-review-feedback-title {
	color: #b91c1c;
}
.mep-portal-review-feedback-time {
	font-size: 11.5px;
	color: #8b919a;
}
.mep-portal-review-feedback-body {
	font-size: 13px;
	color: #1a1d21;
	line-height: 1.55;
	white-space: pre-wrap;
}

/* ========================================================================
 * 15. Admin Publication Center (v0.7.0 / A8)
 *
 * 复用 A7 大量已有样式：mep-portal-admin-review / mep-portal-review-section /
 * mep-portal-review-card / mep-portal-attachment-card / mep-portal-modal 等。
 * 本节仅补 A8 独有的细节样式。
 * ====================================================================== */

/* 发布表单字段标签 */
.mep-portal-form-required {
	color: #dc2626;
	margin-left: 2px;
	font-weight: 700;
}

.mep-portal-form-hint {
	margin: 4px 0 0;
	font-size: 12px;
	color: #8b919a;
}

.mep-portal-publication-form .mep-portal-input {
	width: 100%;
	box-sizing: border-box;
}

/* SEO 折叠区 */
.mep-portal-publication-seo {
	background: #fafbfc;
	border: 1px solid #e6e8eb;
	border-radius: 8px;
	padding: 12px 16px;
	grid-column: 1 / -1;
}

.mep-portal-publication-seo > summary {
	cursor: pointer;
	font-weight: 500;
	font-size: 13px;
	color: #1a1d21;
	padding: 4px 0;
	user-select: none;
}

.mep-portal-publication-seo > summary:hover {
	color: #2d5cf5;
}

.mep-portal-publication-seo[open] > summary {
	margin-bottom: 8px;
}

/* 不可变快照顶部 banner */
.mep-portal-snapshot-banner {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 12px 16px;
	background: #eef1f8;
	border: 1px solid #c7d2fe;
	border-radius: 8px;
	color: #4338ca;
	font-size: 13px;
	margin-bottom: 20px;
}

.mep-portal-snapshot-banner svg {
	flex-shrink: 0;
	color: #4338ca;
}

/* 快照摘要 */
.mep-portal-snapshot-summary {
	margin: 0;
	font-size: 14.5px;
	line-height: 1.65;
	color: #1a1d21;
	background: #fafbfc;
	padding: 14px 18px;
	border-radius: 8px;
	border-left: 3px solid #2d5cf5;
}

.mep-portal-snapshot-seo-details {
	margin-top: 14px;
	padding: 10px 12px;
	background: #fafbfc;
	border: 1px solid #e6e8eb;
	border-radius: 8px;
	font-size: 12.5px;
}

.mep-portal-snapshot-seo-details > summary {
	cursor: pointer;
	font-weight: 500;
	color: #5e6470;
}

.mep-portal-snapshot-seo-details dl {
	margin: 8px 0 0;
}

.mep-portal-snapshot-seo-details dt {
	margin-top: 6px;
	font-size: 11.5px;
	color: #8b919a;
}

.mep-portal-snapshot-seo-details dd {
	margin: 2px 0 0;
	color: #1a1d21;
	word-break: break-word;
}

/* 列表 URL 标识 code 样式 */
.mep-portal-admin-review-table code,
.mep-portal-review-history-table code {
	background: #f3f4f6;
	color: #4338ca;
	padding: 1px 6px;
	border-radius: 4px;
	font-size: 12px;
	font-family: SFMono-Regular, Menlo, Consolas, monospace;
}

/* "回滚到此版本" 表单 inline 修饰 */
.mep-portal-review-history-table form {
	margin-left: 6px;
}

/* v2.0.0 内部企业官网式详情页 */
.mep-company-site {
	max-width: 1200px;
	margin: 0 auto;
	padding: 24px;
	color: #1a1d21;
}

.mep-company-site-hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 320px;
	gap: 24px;
	padding: 30px;
	background: #ffffff;
	border: 1px solid #e6e8eb;
	border-radius: 10px;
	box-shadow: 0 16px 42px rgba(15, 23, 42, 0.06);
	margin-bottom: 16px;
}

.mep-company-site-eyebrow {
	margin: 16px 0 8px;
	color: #5e6470;
	font-size: 13px;
	letter-spacing: .04em;
}

.mep-company-site-hero h1 {
	margin: 0;
	font-size: 34px;
	line-height: 1.18;
	letter-spacing: 0;
}

.mep-company-site-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin: 16px 0;
}

.mep-company-site-badges span,
.mep-company-site-section-head span {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
	padding: 2px 9px;
	border-radius: 999px;
	background: #eef2ff;
	color: #3730a3;
	font-size: 12px;
}

.mep-company-site-lead,
.mep-company-site-summary {
	margin: 0;
	color: #3f4652;
	font-size: 15px;
	line-height: 1.75;
}

.mep-company-site-hero-panel,
.mep-company-site-side-card {
	background: #f8fafc;
	border: 1px solid #e6e8eb;
	border-radius: 8px;
	padding: 18px;
}

.mep-company-site-hero-panel {
	display: grid;
	gap: 14px;
}

.mep-company-site-hero-panel div,
.mep-company-site-side-card dl div {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	border-bottom: 1px solid #e6e8eb;
	padding-bottom: 10px;
}

.mep-company-site-hero-panel div:last-child,
.mep-company-site-side-card dl div:last-child {
	border-bottom: 0;
	padding-bottom: 0;
}

.mep-company-site-hero-panel span,
.mep-company-site-side-card dt {
	color: #6b7280;
	font-size: 12px;
}

.mep-company-site-hero-panel strong,
.mep-company-site-side-card dd {
	color: #111827;
	font-size: 13px;
	text-align: right;
	margin: 0;
}

.mep-company-site-layout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 300px;
	gap: 24px;
	align-items: start;
}

.mep-company-site-section {
	background: #fff;
	border: 1px solid #e6e8eb;
	border-radius: 8px;
	padding: 22px;
	margin-bottom: 18px;
}

.mep-company-site-section-head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 16px;
}

.mep-company-site-section h2,
.mep-company-site-side-card h2 {
	margin: 0;
	font-size: 18px;
	letter-spacing: 0;
}

.mep-company-site-facts {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
	margin: 0;
}

.mep-company-site-fact,
.mep-company-site-facts > div {
	background: #fafbfc;
	border: 1px solid #edf0f3;
	border-radius: 6px;
	padding: 12px;
}

.mep-company-site-fact dt,
.mep-company-site-facts dt {
	margin: 0 0 6px;
	color: #6b7280;
	font-size: 12px;
}

.mep-company-site-fact dd,
.mep-company-site-facts dd {
	margin: 0;
	color: #1f2937;
	font-size: 14px;
	line-height: 1.55;
	word-break: break-word;
}

.mep-company-site-copy {
	margin-bottom: 14px;
	color: #374151;
	line-height: 1.75;
}

.mep-company-site-attachments,
.mep-special-card-grid,
.mep-special-image-gallery,
.mep-special-image-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 14px;
}

.mep-company-site-attachment,
.mep-special-card {
	display: grid;
	grid-template-columns: 82px minmax(0, 1fr);
	gap: 12px;
	padding: 12px;
	border: 1px solid #e6e8eb;
	border-radius: 8px;
	background: #fff;
	text-decoration: none;
	color: inherit;
}

.mep-company-site-attachment img,
.mep-special-image-gallery img,
.mep-special-image-grid img {
	width: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 6px;
	background: #f3f4f6;
}

.mep-company-site-doc {
	display: grid;
	place-items: center;
	width: 82px;
	height: 68px;
	border-radius: 6px;
	background: #f3f4f6;
	color: #4b5563;
	font-weight: 700;
	font-size: 12px;
}

.mep-company-site-attachment strong {
	display: block;
	font-size: 13px;
	line-height: 1.35;
}

.mep-company-site-attachment span,
.mep-company-site-attachment p {
	display: block;
	margin: 5px 0 0;
	color: #6b7280;
	font-size: 12px;
}

.mep-special-card {
	grid-template-columns: 1fr;
}

.mep-special-card strong {
	font-size: 15px;
}

.mep-special-card span {
	color: #6b7280;
	font-size: 13px;
	line-height: 1.45;
}

.mep-company-site-side {
	position: sticky;
	top: 24px;
}

.mep-company-site-side-card dl {
	margin: 14px 0;
}

.mep-company-site-actions {
	display: grid;
	gap: 8px;
}

.mep-company-site-actions a,
.mep-company-site-action {
	display: block;
	padding: 9px 12px;
	background: #fff;
	border: 1px solid #d8dde6;
	border-radius: 6px;
	text-align: center;
	text-decoration: none;
	color: #1f2937;
	font-size: 13px;
}

.mep-company-site-delete-form {
	margin-top: 14px;
	border-top: 1px solid #e5e7eb;
	padding-top: 14px;
}

.mep-company-site-delete-form textarea {
	width: 100%;
	margin-bottom: 8px;
	border: 1px solid #d1d5db;
	border-radius: 6px;
}

.mep-company-site-delete-form button {
	width: 100%;
	padding: 9px 12px;
	border: 1px solid #dc2626;
	border-radius: 6px;
	color: #b91c1c;
	background: #fff;
	cursor: pointer;
}

.mep-special-admin-layout {
	display: grid;
	grid-template-columns: 280px minmax(0, 1fr);
	gap: 20px;
}

.mep-special-admin-side,
.mep-special-block-admin {
	background: #fff;
	border: 1px solid #e6e8eb;
	border-radius: 8px;
	padding: 16px;
}

.mep-special-page-list {
	display: grid;
	gap: 8px;
	margin-top: 12px;
}

.mep-special-page-list-item {
	display: grid;
	gap: 4px;
	padding: 10px;
	border: 1px solid #e6e8eb;
	border-radius: 6px;
	text-decoration: none;
	color: inherit;
}

.mep-special-page-list-item.is-active {
	border-color: #2563eb;
	background: #eff6ff;
}

.mep-special-page-list-item span,
.mep-special-block-admin-head span {
	color: #6b7280;
	font-size: 12px;
}

.mep-special-page-form,
.mep-special-block-form {
	display: grid;
	gap: 12px;
}

.mep-special-page-form label,
.mep-special-block-form label {
	display: grid;
	gap: 5px;
	color: #374151;
	font-size: 13px;
}

.mep-special-page-form input,
.mep-special-page-form textarea,
.mep-special-page-form select,
.mep-special-block-form input,
.mep-special-block-form textarea,
.mep-special-block-form select {
	width: 100%;
	border: 1px solid #d1d5db;
	border-radius: 6px;
	padding: 8px 10px;
}

.mep-special-inline {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 12px;
}

.mep-special-block-admin {
	margin-bottom: 12px;
}

.mep-special-block-admin-head {
	display: flex;
	justify-content: space-between;
	margin-bottom: 10px;
}

.mep-special-kv {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 8px;
}

.mep-special-image-gallery figure {
	margin: 0;
}

.mep-special-image-gallery figcaption {
	margin-top: 6px;
	color: #6b7280;
	font-size: 12px;
}

.mep-portal-profile-step-meta,
.mep-portal-save-status,
.mep-portal-profile-section-progress {
	color: #6b7280;
	font-size: 12px;
}

.mep-portal-profile-step {
	gap: 6px;
}

@media (max-width: 860px) {
	.mep-company-site,
	.mep-special-admin {
		padding: 14px;
	}
	.mep-company-site-hero,
	.mep-company-site-layout,
	.mep-special-admin-layout {
		grid-template-columns: 1fr;
	}
	.mep-company-site-facts,
	.mep-special-kv,
	.mep-special-inline {
		grid-template-columns: 1fr;
	}
	.mep-company-site-side {
		position: static;
	}
}
