/* 全站界面规范：外层12px、内部15px、紧凑控件；报告原稿由文档自身排版。 */
.platform-page, .platform-shell {
    --ui-text: #1f2937;
    --ui-muted: #5f6b7a;
    --ui-border: #e2e8f0;
    --ui-action: #009688;
    --ui-focus: #0f766e;
    font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;
    font-variant-numeric: tabular-nums;
}
body.platform-page { color: var(--ui-text); background: #f2f2f2; font-size: 14px; }
.platform-page > .layui-fluid,
.platform-page > .layui-container,
.platform-page > .user-management,
.platform-page .ui-workspace { padding: 12px; }
.platform-page .layui-card, .platform-page .ui-surface {
    margin-top: 0; background: #fff; border: 0; border-radius: 2px; box-shadow: none;
}
.platform-page .layui-card > .layui-card-body,
.platform-page .ui-content { padding-left: 15px !important; padding-right: 15px !important; min-width: 0; }
.platform-model .layui-card > .layui-card-body,
.platform-page .ui-content { padding-top: 8px; padding-bottom: 16px; }
.platform-page .ui-intro {
    margin: 0 !important; padding: 10px !important; background: #f8f9fa;
    border-radius: 4px; font-size: 14px; color: #555;
}
.platform-page .ui-intro a, .platform-page .ui-intro .layui-icon-about { color: var(--ui-action); }

/* 原有 Layui 表单和已验收的组件使用同一组规则。 */
.platform-page .ui-filters,
.platform-page .ui-filters > .layui-form-item {
    display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px;
}
.platform-page .ui-filters {
    height: auto; padding: 12px 15px; border-bottom: 1px solid #f6f6f6; line-height: normal;
}
.platform-page .ui-filters > .layui-form-item { width: 100%; margin: 0; }
.platform-page .ui-filters > .layui-form-item::before,
.platform-page .ui-filters > .layui-form-item::after,
.platform-page .ui-filters .layui-inline::before,
.platform-page .ui-filters .layui-inline::after { display: none; }
.platform-page .ui-filters .layui-inline,
.platform-page .ui-field, .platform-page .ui-native-dates {
    display: flex; gap: 8px; align-items: center; min-width: 0; max-width: 100%;
}
.platform-page .ui-filters .layui-inline { margin: 0 !important; }
.platform-page .ui-filters .layui-form-label,
.platform-page .ui-field > label, .platform-page .ui-range-label {
    flex: none; width: auto; margin: 0; padding: 0; float: none;
    line-height: 20px; text-align: left; white-space: nowrap; color: var(--ui-muted);
}
/* 下拉宽度默认 190px，长选项由 platform-ui.js 量文本后经 --ui-select-w 撑开（上限 260px） */
.platform-page .ui-filters .layui-input-block { margin: 0; min-height: 0; width: var(--ui-select-w, 190px); min-width: 0; }
.platform-page .ui-field > .layui-form-select { width: var(--ui-select-w, 190px); min-width: 0; }
.platform-page .ui-window-field > .layui-input-block,
.platform-page .ui-window-field .layui-form-select { width: 86px; }
.platform-page .ui-filters .layui-input-inline { margin: 0; float: none; width: 156px; min-width: 0; }
.platform-page .ui-filters .layui-form-mid { margin: 0 !important; padding: 0 !important; position: static !important; line-height: 34px; color: var(--ui-muted); }
.platform-page .ui-date-actions {
    display: grid; grid-template-columns: minmax(0, 1fr) 80px; gap: 12px;
    align-items: center; width: 500px; max-width: 100%;
}
.platform-page .ui-dates { display: grid; grid-template-columns: auto minmax(0, 1fr) 16px minmax(0, 1fr); gap: 8px; align-items: center; }
.platform-page .ui-date-separator { line-height: 34px; text-align: center; color: var(--ui-muted); }
.platform-page .ui-query { margin: 0; padding: 0 16px; min-width: 80px; }
.platform-page .ui-query-field { flex: none; }
.platform-page form .layui-input,
.platform-page .toolbar .layui-input,
.platform-page .hu-filter .layui-input { height: 34px; line-height: 34px; border-color: #eee; border-radius: 4px; color: var(--ui-text); }
.platform-page .ui-query,
.platform-page .layui-btn:not(.layui-btn-sm):not(.layui-btn-xs):not(.layui-btn-lg) { height: 34px; line-height: 34px; border-radius: 4px; }
.platform-page .ui-filters .layui-card-header .layui-icon,
.platform-page .ui-filters .layui-btn .layui-icon { position: static; margin-top: 0; line-height: inherit; }
.platform-page .layui-form-select dl { max-width: 100%; }
.platform-page .layui-form-select dl dd { white-space: normal; line-height: 22px; padding-top: 6px; padding-bottom: 6px; }
.platform-page a:focus-visible, .platform-page button:focus-visible { outline: 1px solid var(--ui-focus); outline-offset: 1px; }
.platform-page .layui-input:focus,
.platform-page .layui-form-selected .layui-input { border-color: var(--ui-focus) !important; outline: none; box-shadow: none; }

.platform-page .ui-chart { max-width: 100%; }
/* 模型页主图高度：容器自身不带高度时由公共样式兜底，缺失则画布 0 高不可见 */
.platform-model #main.ui-chart { height: 420px; margin-top: 0 !important; }
.platform-page .ui-details { margin-top: 16px; min-width: 0; }
.platform-page .ui-details-spacer { height: 16px !important; }
.platform-page .layui-table-view { border-color: var(--ui-border); }
.platform-model .layui-table-view { margin: 0; }
.platform-page .layui-table-header th { background: #f7f9fb; color: var(--ui-muted); }
.platform-page td:is([data-field="close_level"], [data-field="model_val"], [data-field="pctile"],
    [data-field$="_amount"], [data-field$="_value"], [data-field$="_count"]) .layui-table-cell { text-align: right; }
.platform-page .ui-table-scroll { max-width: 100%; overflow-x: auto; }

/* 说明正文使用相同边界和留白，保留章节、语义提示及公式内容。 */
.platform-help .layui-card-body { padding: 15px; line-height: 1.8; overflow-wrap: anywhere; }
.platform-help .layui-card-body h1 { margin: 0 0 16px; padding-bottom: 10px; font-size: 22px; line-height: 1.5; border-color: #f6f6f6; }
.platform-help .layui-card-body h2 { margin-top: 22px; margin-bottom: 12px; font-size: 18px; }
.platform-help .layui-card-body h3 { font-size: 16px; }
.platform-help .formula, .platform-help pre { max-width: 100%; overflow-x: auto; box-shadow: none; border-radius: 2px; }
.platform-help .table-container { max-width: 100%; overflow-x: auto; box-shadow: none; border-radius: 2px; }
.platform-help .tip, .platform-help .warning, .platform-help .example { border-radius: 2px; box-shadow: none; padding: 12px 15px; }

/* 首页、监控、管理与上传使用同一套容器规范，保留状态颜色。 */
.platform-page :is(.home-table-wrap, .home-risk-banner, .home-ai-card, .home-chart-wrap,
    .stat-card, .table-wrap, .overview-card, .panel, .hu-sum-card, .layadmin-construction) {
    border-radius: 2px; box-shadow: none; padding-left: 15px; padding-right: 15px;
}
.platform-page .ui-plain-card { border-radius: 2px !important; box-shadow: none !important; }
.platform-page .overview-health, .platform-page .overview-services .kpi { border-radius: 2px; }
.platform-page .layadmin-construction { box-sizing: border-box; min-width: 0; max-width: calc(100% - 24px); }
.platform-page .ui-responsive-grid > * { min-width: 0; }
.platform-page .login-container {
    box-sizing: border-box; width: 430px; max-width: calc(100% - 24px);
    margin: clamp(24px, 12vh, 120px) auto; padding: 24px 15px; border-radius: 2px; box-shadow: none;
}
.platform-page #create-user-form > .layui-form-item { flex-wrap: wrap; }
.platform-page .ui-upload-form { max-width: 100%; }

@media (max-width: 560px) {
    .platform-page .ui-filters { gap: 12px; }
    .platform-page .ui-filters > .layui-form-item { column-gap: 12px; }
    .platform-page .ui-filters > .ui-field,
    .platform-page .ui-filters > .layui-form-item > .ui-field { flex: 1 1 calc(50% - 6px); flex-direction: column; align-items: stretch; gap: 6px; }
    .platform-page .ui-filters .ui-field > .layui-input-block,
    .platform-page .ui-filters .ui-field .layui-form-select { width: 100%; }
    .platform-page .ui-date-actions { width: 100%; grid-template-columns: minmax(0, 1fr); }
    .platform-page .ui-range-field { width: 100%; flex: 1 1 100%; }
    .platform-page .ui-native-dates { width: 100%; flex-wrap: nowrap; }
    .platform-page .ui-native-dates .layui-input-inline { flex: 1; width: auto; }
    .platform-page .ui-filters .ui-query-field { width: 100%; flex: 1 1 100%; }
    .platform-page .ui-query-field .ui-query { width: 100%; }
    .platform-page form .layui-input,
    .platform-page .toolbar .layui-input,
    .platform-page .hu-filter .layui-input,
    .platform-page .ui-query,
    .platform-page .layui-btn:not(.layui-btn-sm):not(.layui-btn-xs):not(.layui-btn-lg) { height: 44px; line-height: 44px; }
    .platform-page .ui-date-separator, .platform-page .ui-filters .layui-form-mid { line-height: 44px; }
    .platform-page .layui-table-page { height: auto; min-height: 41px; white-space: normal; }
    .platform-page .layui-laydate-range {
        position: fixed !important; left: 12px !important; right: 12px; top: 12px !important;
        width: auto; max-height: calc(100vh - 24px); overflow-y: auto;
    }
    .platform-page .layui-laydate-range .layui-laydate-main { display: block; width: 100%; }
    .platform-page .layui-laydate-content table { width: 100%; }
    .platform-page .layui-laydate-footer { display: flex; flex-wrap: wrap; gap: 8px; height: auto; }
    .platform-page .layui-laydate-preview { width: 100%; }
    .platform-page .laydate-footer-btns { position: static; margin-left: auto; }
    .platform-page .overview-card, .platform-page .overview-services,
    .platform-page .stat-cards, .platform-page .gauge-row { flex-wrap: wrap; }
    .platform-page .overview-health { width: 100%; box-sizing: border-box; }
    .platform-page .overview-services .kpi { flex: 1 1 150px; }
    .platform-page .overview-services .svc-card { flex: 1 1 140px; }
    .platform-page .stat-cards .stat-card { flex: 1 1 140px; }
    .platform-page .gauge-row .gauge-box { flex: 1 1 130px; }
    .platform-page .toolbar { flex-wrap: wrap; gap: 12px; }
    .platform-page .ui-upload-form .layui-form-label { float: none; width: auto; padding: 0 0 6px; text-align: left; }
    .platform-page .ui-upload-form .layui-input-block { margin-left: 0; }
}

@media (max-width: 760px) {
    .platform-page .ui-responsive-grid { grid-template-columns: minmax(0, 1fr) !important; }
}

@media (prefers-reduced-motion: reduce) {
    .platform-page :is(.layui-laydate, .layui-form-select dl, .home-status-error, .status-fail, .svc-dot) { animation: none; transition: none; }
}
