/* 先锋科创统一样式。色值与尺寸取自 页面效果图/页面设计说明.md；
   顶部/左侧导航状态样式参考 14.先锋汇智综合门户/app/globals.css 的 .business-shell-* 规则后按本项目重写。 */
:root {
  --brand: #123b70; --primary: #2166d1; --primary-dark: #174ea6; --bg: #f3f6fb; --surface: #fff;
  --text: #172b4d; --muted: #66758b; --border: #e4ebf4; --soft: #eef4fd;
  --green: #1f8a4c; --green-bg: #e8f6ee; --amber: #b8660b; --amber-bg: #fff4e5; --red: #c0362c; --red-bg: #fdecea; --gray-bg: #eef1f5;
  --radius: 8px; --shadow: 0 1px 2px rgba(18, 59, 112, .06);
  font-family: "PingFang SC", "Microsoft YaHei", "Noto Sans CJK SC", "Source Han Sans SC", system-ui, sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; }
body { background: var(--bg); color: var(--text); font-size: 14px; line-height: 1.6; }
a { color: var(--primary); text-decoration: none; }
a:hover { text-decoration: underline; }
h1, h2, h3, p { margin: 0; }
.muted { color: var(--muted); }
.mono { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 13px; }

/* ---------- 顶部 ---------- */
.app-header { position: sticky; top: 0; z-index: 10; display: flex; align-items: center; gap: 24px; height: 64px; padding: 0 24px; background: var(--surface); border-bottom: 1px solid var(--border); }
.brand { display: flex; align-items: baseline; gap: 10px; width: 200px; flex: none; color: var(--brand); }
.brand:hover { text-decoration: none; }
.brand-org { font-size: 14px; font-weight: 700; color: var(--brand); }
.brand-name { font-size: 22px; font-weight: 800; letter-spacing: 1px; }
.top-nav { display: flex; gap: 4px; flex: 1; min-width: 0; overflow-x: auto; height: 100%; }
.top-nav-item { display: inline-flex; align-items: center; height: 100%; padding: 0 14px; border: 0; border-bottom: 3px solid transparent; background: none; color: var(--text); font-size: 15px; white-space: nowrap; }
.top-nav-item:hover { color: var(--primary); text-decoration: none; }
.top-nav-item.is-active { color: var(--brand); font-weight: 700; border-bottom-color: var(--primary); }
.header-tools { display: flex; align-items: center; gap: 14px; flex: none; }
.env-pill { padding: 3px 10px; border-radius: 999px; background: var(--amber-bg); color: var(--amber); font-size: 12px; white-space: nowrap; }
.user-chip { display: grid; line-height: 1.3; text-align: right; }
.user-chip small { color: var(--muted); font-size: 12px; }
.inline-form { margin: 0; }

/* ---------- 主体 ---------- */
.app-body { display: grid; grid-template-columns: 216px minmax(0, 1fr); min-height: calc(100vh - 64px); }
.side-nav { padding: 16px 12px; background: var(--surface); border-right: 1px solid var(--border); }
.side-nav ul { display: grid; gap: 4px; margin: 0; padding: 0; list-style: none; }
.side-item { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 40px; padding: 0 12px; border: 0; border-radius: var(--radius); background: none; color: var(--text); font: inherit; text-align: left; }
.side-item:hover { background: var(--soft); text-decoration: none; }
.side-item.is-active { background: #e7f0fd; color: var(--primary-dark); font-weight: 700; }
.side-item:disabled { color: #9aa8ba; cursor: not-allowed; background: none; }
.side-item small { color: #8fa0b5; font-size: 11px; font-weight: 400; }
.side-divider { height: 1px; margin: 14px 4px; background: var(--border); }
.workarea { padding: 24px 28px 40px; min-width: 0; display: grid; gap: 18px; align-content: start; }

/* ---------- 组件 ---------- */
.page-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }
.page-header h1 { font-size: 24px; color: var(--brand); }
.page-header p { color: var(--muted); }
.page-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.breadcrumb { color: var(--muted); font-size: 12px; margin-bottom: 4px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 36px; padding: 0 16px; border: 1px solid transparent; border-radius: 6px; font: inherit; font-weight: 600; cursor: pointer; white-space: nowrap; }
.btn:hover { text-decoration: none; }
.btn-primary { background: var(--primary); color: #fff; }
.btn-primary:hover { background: var(--primary-dark); }
.btn-secondary { background: #fff; border-color: #bcd0ec; color: var(--primary); }
.btn-text { background: none; border: 0; color: var(--muted); padding: 0 6px; }
.btn-small { min-height: 28px; padding: 0 10px; font-size: 13px; background: #fff; border-color: #bcd0ec; color: var(--primary); }
.btn:disabled { background: var(--gray-bg); border-color: var(--border); color: #8d99a8; cursor: not-allowed; }
.btn-block { width: 100%; min-height: 44px; font-size: 16px; }
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 18px 20px; box-shadow: var(--shadow); }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.panel-head h2 { font-size: 16px; }
.notice { padding: 10px 14px; border-radius: var(--radius); border: 1px solid #cfe0f7; background: #f2f7fe; color: #23436f; }
.notice-warn { border-color: #f3d4a6; background: var(--amber-bg); color: #7a4a0c; }
.notice-error { border-color: #f1b8b2; background: var(--red-bg); color: var(--red); }
.tag { display: inline-flex; align-items: center; padding: 1px 8px; border-radius: 999px; font-size: 12px; white-space: nowrap; }
.tag-blue { background: #e7f0fd; color: var(--primary-dark); }
.tag-green { background: var(--green-bg); color: var(--green); }
.tag-amber { background: var(--amber-bg); color: var(--amber); }
.tag-red { background: var(--red-bg); color: var(--red); }
.tag-gray { background: var(--gray-bg); color: #4d5b6e; }
.stat-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.stat-card { display: grid; gap: 2px; padding: 16px 18px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); }
.stat-card span { color: var(--muted); }
.stat-card strong { font-size: 28px; color: var(--brand); line-height: 1.2; }
.stat-card small { color: #8a97a8; font-size: 12px; }
.grid-2 { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 18px; }
.grid-form { display: grid; grid-template-columns: minmax(0, 2fr) minmax(240px, 1fr); gap: 18px; align-items: start; }
.entry-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.entry-card { display: grid; gap: 4px; padding: 16px; border: 1px solid var(--border); border-radius: var(--radius); text-align: center; color: var(--text); }
.entry-card:hover { border-color: #bcd0ec; text-decoration: none; background: var(--soft); }
.entry-card small { color: var(--muted); }
.empty-state { display: grid; justify-items: center; gap: 6px; padding: 28px 12px; color: var(--muted); text-align: center; }
.empty-state strong { color: var(--text); }
.empty-mark { width: 44px; height: 36px; border: 2px dashed #c4d3e6; border-radius: 6px; }
.table { width: 100%; border-collapse: collapse; }
.table th, .table td { padding: 10px 10px; border-bottom: 1px solid var(--border); text-align: left; vertical-align: middle; }
.table th { background: #f6f9fd; color: #4b5b70; font-weight: 600; font-size: 13px; }
.timeline { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.timeline li { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding-left: 12px; border-left: 2px solid #d5e2f3; }
.flow { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; counter-reset: s; }
.flow li { counter-increment: s; padding: 6px 12px; border-radius: 6px; background: var(--gray-bg); color: var(--muted); }
.flow li::before { content: counter(s) ". "; }
.flow li.is-current { background: #e7f0fd; color: var(--primary-dark); font-weight: 700; }
.kv { display: grid; grid-template-columns: 140px minmax(0, 1fr); gap: 10px 16px; margin: 0; }
.kv dt { color: var(--muted); }
.kv dd { margin: 0; }
.plain-list { margin: 0; padding-left: 18px; display: grid; gap: 6px; }
.side-info h2 { font-size: 16px; margin-bottom: 8px; }
.form { display: grid; gap: 16px; }
.field { display: grid; gap: 6px; }
.field > span { font-weight: 600; }
.field em { color: var(--red); font-style: normal; }
.field input, .field select { width: 100%; height: 40px; padding: 0 12px; border: 1px solid #cdd8e6; border-radius: 6px; background: #fff; font: inherit; color: var(--text); }
.field input:focus, .field select:focus { outline: 2px solid #bcd4f6; border-color: var(--primary); }
.field input:disabled { background: #f4f6f9; color: #56657a; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.field-error { color: var(--red); font-size: 13px; }
.hint { color: var(--muted); font-size: 12px; }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; }
.error-state { display: grid; justify-items: center; gap: 10px; padding: 48px 16px; text-align: center; }
.error-code { font-size: 44px; font-weight: 800; color: #c5d3e6; }

/* ---------- 工法办理 ---------- */
.stack { display: grid; gap: 18px; align-content: start; min-width: 0; }
.grid-2.equal { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.steps { display: flex; margin: 0; padding: 0; list-style: none; }
.steps li { flex: 1; display: grid; justify-items: center; gap: 6px; position: relative; color: var(--muted); font-size: 13px; }
.steps li::before { content: ""; position: absolute; top: 9px; left: -50%; width: 100%; height: 2px; background: var(--border); z-index: 0; }
.steps li:first-child::before { display: none; }
.step-dot { width: 20px; height: 20px; border-radius: 50%; border: 2px solid #c4d3e6; background: #fff; z-index: 1; }
.steps li.is-done { color: var(--text); }
.steps li.is-done .step-dot { background: var(--primary); border-color: var(--primary); }
.steps li.is-done::before, .steps li.is-current::before { background: #9fbde3; }
.steps li.is-current { color: var(--primary-dark); font-weight: 700; }
.steps li.is-current .step-dot { border-color: var(--primary); box-shadow: 0 0 0 4px #dbe8fb; }
.material-list { display: grid; }
.material-row { display: grid; grid-template-columns: 180px minmax(0, 1fr) 140px; gap: 16px; padding: 14px 0; border-top: 1px solid var(--border); align-items: start; }
.material-cat { display: grid; gap: 2px; }
.material-cat small { font-size: 12px; }
.material-body { display: grid; gap: 8px; min-width: 0; }
.material-state { text-align: right; }
.file-line { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--border); border-radius: 6px; background: #fafcff; }
.file-type { flex: none; padding: 2px 6px; border-radius: 4px; background: #e7f0fd; color: var(--primary-dark); font-size: 12px; }
.file-meta { display: grid; min-width: 0; }
.file-meta a { overflow-wrap: anywhere; }
.file-meta small { font-size: 12px; }
.file-line > small { flex: none; margin-left: auto; white-space: nowrap; }
.old-files summary { cursor: pointer; color: var(--muted); font-size: 13px; }
.old-files .file-line { margin-top: 6px; background: #f6f7f9; }
.upload-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.upload-form input[type=file] { font: inherit; font-size: 13px; max-width: 100%; }
.version-list, .opinion-list { display: grid; gap: 14px; margin: 0; padding: 0; list-style: none; }
.version-list > li, .opinion-list > li { display: grid; gap: 8px; padding-bottom: 12px; border-bottom: 1px dashed var(--border); }
.version-head { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.correction-list { margin: 0; padding-left: 20px; display: grid; gap: 4px; }
.form h3 { font-size: 15px; }
.field textarea { width: 100%; padding: 8px 12px; border: 1px solid #cdd8e6; border-radius: 6px; font: inherit; color: var(--text); resize: vertical; }
.field textarea:focus { outline: 2px solid #bcd4f6; border-color: var(--primary); }
fieldset.field { border: 0; margin: 0; padding: 0; }
fieldset.field legend { font-weight: 600; margin-bottom: 6px; padding: 0; }
.check { display: inline-flex; align-items: center; gap: 6px; margin-right: 16px; font-weight: 400; }
.field .check input, .check input { width: auto; height: auto; margin: 0; }
.inline-actions { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; margin-top: 12px; }
.field.inline { grid-auto-flow: column; align-items: center; gap: 8px; }
.field.inline select { width: auto; }
.filter-form { display: flex; align-items: center; gap: 8px; margin: 0 0 0 auto; }
.filter-form select { height: 30px; border: 1px solid #cdd8e6; border-radius: 6px; font: inherit; }
.temp-pw { display: inline-block; padding: 6px 12px; border-radius: 6px; background: #fff7e6; border: 1px solid #f3d4a6; font-size: 18px; letter-spacing: 1px; user-select: all; }
.scope-grid td, .scope-grid th { text-align: center; }
.scope-grid td:first-child, .scope-grid th:first-child { text-align: left; }
.form.narrow { max-width: 520px; }
.stat-grid.five { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.stage-board { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; }
.stage-cell { display: grid; gap: 2px; padding: 12px 14px; border: 1px solid var(--border); border-radius: var(--radius); color: var(--text); }
.stage-cell:hover { text-decoration: none; background: var(--soft); }
.stage-cell.is-current { border-color: var(--primary); background: #f2f7fe; }
.stage-cell span { color: var(--muted); font-size: 13px; }
.stage-cell strong { font-size: 24px; color: var(--brand); }
.action-list { display: grid; gap: 14px; }
.action-form { padding-bottom: 12px; border-bottom: 1px dashed var(--border); }
.action-form:last-child { border-bottom: 0; padding-bottom: 0; }
.filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 12px; }
.filter-bar input, .filter-bar select { height: 32px; padding: 0 8px; border: 1px solid #cdd8e6; border-radius: 6px; font: inherit; }
.filter-bar input { min-width: 220px; }
.correction-row { grid-template-columns: 2fr 1fr; }
.wrap { white-space: pre-wrap; overflow-wrap: anywhere; }

/* ---------- AI 辅助审查 ---------- */
.ai-grid { display: grid; grid-template-columns: minmax(260px, 1fr) minmax(0, 2fr); gap: 18px; align-items: start; }
.finding-list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.finding-list a { display: flex; gap: 10px; padding: 10px; border: 1px solid var(--border); border-radius: 6px; color: var(--text); }
.finding-list a:hover { text-decoration: none; background: var(--soft); }
.finding-list li.is-current a { border-color: var(--primary); background: #f2f7fe; }
.finding-list span:last-child { display: grid; gap: 4px; justify-items: start; min-width: 0; }
.finding-seq { flex: none; display: grid; place-items: center; width: 24px; height: 24px; border-radius: 50%; background: #e7f0fd; color: var(--primary-dark); font-weight: 700; font-size: 12px; }
.tag-row { display: flex; flex-wrap: wrap; gap: 6px; }
.kv + .form { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border); }
.evidence { display: grid; gap: 6px; padding: 10px 0; border-bottom: 1px dashed var(--border); }
.evidence blockquote { margin: 0; padding: 8px 12px; border-left: 3px solid #f0c36d; background: #fffaf0; white-space: pre-wrap; overflow-wrap: anywhere; }

/* ---------- 登录 ---------- */
.login-page { display: grid; grid-template-columns: 55% 45%; min-height: 100vh; }
.login-brand { position: relative; display: flex; flex-direction: column; justify-content: space-between; padding: 56px 64px; background: linear-gradient(160deg, #eaf2fd 0%, #d9e8fb 55%, #c9ddf7 100%); overflow: hidden; }
.login-brand-text h1 { font-size: 52px; color: var(--brand); letter-spacing: 2px; line-height: 1.2; }
.login-brand-text p { margin-top: 6px; color: #3c5579; font-size: 20px; font-weight: 600; }
.login-brand .brand-org { font-size: 20px; }
.login-art { width: 100%; max-width: 640px; margin: 24px 0; }
.login-tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 0; padding: 0; list-style: none; }
.login-tags li { padding: 6px 16px; border-radius: 999px; background: rgba(255,255,255,.85); border: 1px solid #c8daf3; color: var(--brand); }
.login-panel { position: relative; display: grid; place-items: center; padding: 32px; background: #fff; }
.login-panel > .env-pill { position: absolute; top: 24px; right: 24px; }
.login-card { display: grid; gap: 16px; width: min(420px, 100%); padding: 36px 36px 28px; border: 1px solid var(--border); border-radius: 12px; box-shadow: 0 8px 28px rgba(18, 59, 112, .08); }
.login-card h2 { font-size: 30px; color: var(--brand); }
.password-wrap { position: relative; display: block; }
.password-wrap input { padding-right: 60px; }
.pw-toggle { position: absolute; right: 6px; top: 6px; height: 28px; padding: 0 10px; border: 0; border-radius: 4px; background: var(--soft); color: var(--primary); font: inherit; font-size: 12px; cursor: pointer; }
.login-foot { display: grid; justify-items: center; gap: 4px; font-size: 13px; }
.simple-page { display: grid; place-items: center; min-height: 100vh; padding: 24px; }
.simple-card { display: grid; gap: 16px; width: min(560px, 100%); padding: 32px; background: #fff; border: 1px solid var(--border); border-radius: 12px; }

@media (max-width: 900px) {
  .login-page { grid-template-columns: 1fr; }
  .login-brand { padding: 32px 24px; }
  .app-body { grid-template-columns: 1fr; }
  .side-nav { border-right: 0; border-bottom: 1px solid var(--border); }
  .stat-grid, .stat-grid.five, .entry-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid-2, .grid-2.equal, .grid-form { grid-template-columns: 1fr; }
  .material-row, .ai-grid { grid-template-columns: 1fr; }
  .material-state { text-align: left; }
  .app-header { flex-wrap: wrap; height: auto; padding: 10px 16px; }
}

@media print {
  @page { size: A4; margin: 16mm; }
  .app-header, .side-nav, .topbar, .sidebar, .user-menu, .page-header .btn, .breadcrumbs, .footer, .top-business-nav, .side-function-nav { display:none !important; }
  body, .app-body, .workarea, .shell, .app-shell, main, .content, .main-content { display:block !important; margin:0 !important; padding:0 !important; background:white !important; }
  .panel { box-shadow:none; border:1px solid #ddd; }
  .print-finding { break-inside:avoid; }
}

@media (max-width: 900px) {
  .app-header { gap: 10px; position: relative; }
  .top-nav { order: 3; flex: none; width: 100%; height: 44px; }
  .header-tools { width: 100%; flex-wrap: wrap; gap: 8px; }
  .user-chip { text-align: left; min-width: 0; }
  .side-nav { display: flex; gap: 12px; overflow-x: auto; }
  .side-nav ul { display: flex; flex: none; }
  .side-item { white-space: nowrap; }
  .side-divider { display: none; }
  .workarea { padding: 18px 16px; }
  .page-header { flex-wrap: wrap; gap: 12px; }
  .panel { min-width: 0; overflow-x: auto; }
  .field-row, .stage-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 480px) {
  .field-row { grid-template-columns: 1fr; }
  .page-actions, .form-actions, .inline-actions { flex-wrap: wrap; }
  .user-chip small { overflow-wrap: anywhere; }
}
@media print {
  .btn, .app-header, .side-nav { display: none !important; }
  .panel { overflow: visible; }
  .print-report { width: 100%; }
}

/* 2026-10-13：按16张最终设计逐页还原；只改变呈现，不改变业务状态。 */
:root { --primary:#0866ef; --primary-dark:#0755cb; --brand:#0f3569; --bg:#f2f7fc; --text:#11294d; --muted:#7283a0; --border:#e2eaf5; --shadow:0 2px 12px rgba(42,83,132,.035); }
body { font-size:16px; line-height:1.55; }
[hidden] { display:none !important; }
.icon { width:24px; height:24px; flex:none; vertical-align:middle; }
a,button,input,select,textarea { -webkit-tap-highlight-color:transparent; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #9bc3ff; outline-offset:3px; }
.app-header { height:74px; padding:0 28px; gap:20px; box-shadow:0 2px 10px #123b7005; }
.brand { width:320px; gap:16px; }
.brand-org { font-size:19px; letter-spacing:.4px; }
.brand-name { font-size:34px; letter-spacing:0; white-space:nowrap; }
.top-nav { gap:16px; scrollbar-width:thin; }
.top-nav-item { font-size:17px; padding:0 12px; position:relative; border-bottom:0; }
.top-nav-item.is-active { color:var(--primary); }
.top-nav-item.is-active:after { content:""; position:absolute; height:3px; bottom:9px; left:12px; right:12px; background:var(--primary); border-radius:3px; }
.header-tools { gap:18px; }
.env-pill { color:var(--primary); background:#e7f1ff; font-size:13px; padding:5px 12px; }
.user-menu { position:relative; font-size:14px; }
.user-menu summary { display:flex; align-items:center; gap:8px; cursor:pointer; list-style:none; }
.user-menu summary::-webkit-details-marker { display:none; }
.user-menu summary .icon { width:32px; height:32px; padding:6px; border-radius:50%; color:var(--primary); background:#e4efff; }
.user-popover { display:grid; gap:10px; position:absolute; top:44px; right:0; min-width:240px; padding:18px; border:1px solid var(--border); background:white; border-radius:8px; box-shadow:0 12px 32px #123b7020; }
.user-popover small { color:var(--muted); }
.app-body { grid-template-columns:232px minmax(0,1fr); min-height:calc(100vh - 74px); }
.side-nav { padding:28px 12px; }
.side-nav ul { gap:8px; }
.side-item { min-height:52px; padding:0 20px; gap:16px; justify-content:flex-start; font-size:17px; }
.side-item span { flex:1; }
.side-item .icon { color:#7b8cac; }
.side-item.is-active { color:var(--primary); background:linear-gradient(90deg,#e8f2ff,#e2eeff); }
.side-item.is-active .icon { color:var(--primary); }
.side-item small { font-size:10px; }
.side-divider { margin:24px 8px; }
.workarea { padding:28px 28px 32px 32px; gap:18px; }
.page-header { align-items:center; min-height:72px; }
.page-header h1 { font-size:32px; line-height:1.3; color:#09254f; font-weight:700; }
.page-header p { font-size:17px; margin-top:7px; }
.breadcrumb { font-size:12px; margin-bottom:4px; }
.page-header:has(.breadcrumb) { min-height:85px; }
.page-actions .btn-primary:before { content:"＋"; font-size:24px; font-weight:300; line-height:1; }
.page-actions { align-items:center; }
.btn { min-height:42px; padding:0 18px; font-size:15px; border-radius:6px; }
.btn-primary { box-shadow:0 3px 6px #0866ef12; }
.btn-small { min-height:34px; padding:0 12px; font-size:14px; border-color:#86adf8; }
.btn-text { min-height:32px; }
.panel { padding:18px 20px; box-shadow:var(--shadow); border-color:#e7eef8; overflow-wrap:anywhere; min-width:0; }
.panel-head { margin-bottom:16px; flex-wrap:wrap; }
.panel-head h2,.side-info h2,.panel>h2 { font-size:20px; color:#122c53; }
.panel-head>a { font-size:14px; }
.tag { padding:3px 10px; border-radius:6px; font-size:13px; font-weight:400; line-height:1.5; }
.tag-blue { background:#e8f2ff; color:#0866ef; }
.notice { font-size:14px; padding:11px 16px; line-height:1.7; }
.stat-grid { gap:14px; }
.stat-card { padding:20px; display:flex; gap:22px; align-items:center; min-height:112px; box-shadow:var(--shadow); min-width:0; }
.stat-icon { width:64px; height:64px; border-radius:10px; background:linear-gradient(135deg,#ecf5ff,#dfecff); display:grid; place-items:center; color:var(--primary); flex:none; }
.stat-icon .icon { width:36px; height:36px; }
.stat-card:nth-child(2) .stat-icon { color:#d98b13; background:#fff3e4; }
.stat-card:nth-child(3) .stat-icon { color:#15996d; background:#e6f5ef; }
.stat-card:nth-child(4) .stat-icon { color:#7351e3; background:#f0ebff; }
.stat-copy { display:grid; min-width:0; gap:3px; }
.stat-card span { color:var(--text); font-size:16px; }
.stat-card strong { font-size:34px; color:#102b55; line-height:1.2; }
.stat-card small { font-size:11px; color:var(--muted); line-height:1.4; }
.stat-grid.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.stat-grid.six { grid-template-columns:repeat(6,minmax(0,1fr)); }
.stat-grid.six .stat-card { padding:14px; gap:10px; }
.stat-grid.six .stat-icon { width:36px;height:44px;background:none; }
.stat-grid.six .stat-icon .icon { width:30px;height:30px; }
.stat-grid.six .stat-card span { font-size:13px; }
.stat-grid.six .stat-card strong { font-size:30px; }
.flow-summary { display:grid; gap:8px; background:linear-gradient(125deg,#fff,#f1f7ff); }
.flow-summary strong { font-size:16px; }
.grid-2,.grid-form { gap:16px; }
.dashboard-grid { grid-template-columns:minmax(0,1.7fr) minmax(0,1fr); }
.dashboard-grid>.todo-panel { min-height:450px; }
.business-overview { list-style:none; display:grid; gap:18px; padding:4px 0; margin:0; }
.business-overview li { display:flex; align-items:center; gap:10px; }
.business-overview li>span:first-child,.business-overview li>a:first-child { flex:1; }
.business-overview li span .icon { width:19px;height:19px;color:var(--primary); margin-right:10px; }
.business-overview strong { color:var(--primary); font-size:20px; }
.business-overview small { font-size:12px; color:var(--muted); }
.entry-card { padding:14px; gap:6px; min-height:118px; justify-items:center; background:linear-gradient(140deg,#fff,#fafcff); }
.entry-card .icon { color:var(--primary); width:36px; height:36px; }
.entry-card strong { font-size:17px; }
.entry-card small { font-size:13px; }
.compact-ai { display:flex; flex-wrap:wrap; align-items:center; gap:18px; padding:12px 20px; }
.compact-ai .panel-head { margin:0; }
.compact-ai .panel-head h2 { font-size:16px; }
.compact-ai p { font-size:13px; }
.table-scroll { overflow-x:auto; min-width:0; }
.table { font-size:15px; }
.table th { padding:12px 10px; font-size:14px; background:linear-gradient(180deg,#f5f8fd,#eff4fa); font-weight:500; color:#425776; white-space:nowrap; }
.table td { padding:17px 10px; line-height:1.65; }
.table td:first-child { font-weight:500; }
.table td small { font-size:12px; font-weight:400; }
.table tbody tr:last-child td { border-bottom:0; }
.table tbody tr:hover { background:#f8fbff; }
.todo-table td:first-child { width:48%; }
.todo-table td:first-child small { display:block; margin-top:4px; }
.table .btn { white-space:nowrap; }
.filter-form,.filter-bar { flex-wrap:wrap; }
.filter-form { font-size:14px; }
.filter-form input,.filter-form select,.filter-bar input,.filter-bar select { height:40px; padding:0 12px; border:1px solid #d7e2f0; border-radius:6px; color:var(--text); background:white; font:inherit; max-width:100%; }
.filter-form input { width:190px; }
.filter-bar { padding:0 0 12px; font-size:14px; }
.filter-bar input { min-width:180px; flex:1; }
.page-tabs { display:flex; flex-wrap:wrap; align-items:center; gap:28px; border-bottom:1px solid var(--border); min-height:48px; }
.page-tabs>a,.page-tabs>button { border:0; border-bottom:3px solid transparent; background:none; padding:11px 2px; font:inherit; color:var(--muted); cursor:pointer; white-space:nowrap; }
.page-tabs .is-active { color:var(--primary); border-bottom-color:var(--primary); font-weight:600; }
.page-tabs a:hover { text-decoration:none; color:var(--primary); }
.process-flow { display:flex; justify-content:space-around; gap:20px; list-style:none; margin:0; padding:8px 4px; }
.process-flow li { flex:1; display:grid; justify-items:center; position:relative; gap:5px; }
.process-flow li:not(:last-child):after { content:"›"; position:absolute; right:-14px; top:18px; color:#bccbdf; font-size:24px; }
.process-flow .icon { width:46px; height:46px; padding:9px; color:var(--primary); background:#edf5ff; border-radius:10px; }
.process-flow li:nth-child(2n) .icon { background:#eaf7f1;color:#21a479; }
.process-flow span { font-size:14px; }
.process-flow small { color:var(--muted); font-size:12px; }
.business-list-grid { grid-template-columns:minmax(0,2.4fr) minmax(0,1fr); align-items:start; }
.business-list-grid>.panel { min-height:420px; }
.kanban { display:grid; grid-template-columns:repeat(5,minmax(190px,1fr)); gap:14px; overflow-x:auto; padding-bottom:10px; }
.kanban-column { border:1px solid #e1eafa; border-radius:8px; background:#f7faff; min-width:0; }
.kanban-column header { display:flex; align-items:center; justify-content:space-between; padding:14px; background:#e8f2ff; color:#1466d4; border-radius:8px 8px 0 0; }
.kanban-column h3 { font-size:16px; }
.kanban-column header span { font-size:13px; background:#fff9; padding:0 8px; border-radius:10px; }
.kanban-column.tone-1 header { background:#fff1dc;color:#b67c1e; }
.kanban-column.tone-2 header { background:#e6f5ed;color:#20956b; }
.kanban-column.tone-3 header { background:#eee9fc;color:#7a58ca; }
.kanban-cards { padding:10px; display:grid; gap:12px; align-content:start; min-height:350px; }
.kanban-card { display:grid; gap:10px; padding:14px; background:white; border:1px solid var(--border); border-radius:8px; box-shadow:0 2px 5px #123b7006; }
.kanban-card strong { font-size:16px; color:var(--text); }
.kanban-card p { font-size:13px; color:var(--muted); }
.kanban-card small { color:var(--muted); font-size:12px; }
.kanban-card .btn { justify-self:start; }
.kanban-empty { padding:16px 4px; font-size:13px; }
.knowledge-grid { display:grid; grid-template-columns:170px minmax(0,1fr) 300px; gap:16px; align-items:start; }
.classification { padding:16px 12px; }
.classification .panel-head { padding:0 8px; }
.classification h2 { font-size:18px; }
.category-link { display:block; padding:12px; font-size:14px; color:var(--text); border-radius:6px; }
.category-link.is-active { background:#e7f1ff; color:var(--primary); }
.classification h3 { font-size:14px; padding:8px 12px; }
hr { border:0; height:1px; background:var(--border); }
.inspector-grid { grid-template-columns:minmax(0,2.2fr) minmax(0,1fr); align-items:start; }
.inspector-panel { min-height:420px; }
.inspector-panel h3 { font-size:19px; margin:2px 0 12px; }
.inspector-panel .kv { grid-template-columns:88px minmax(0,1fr); font-size:14px; gap:16px 10px; margin:20px 0; }
.inspector-panel .hint { margin:16px 0; }
[data-inspect].is-selected { background:#e7f1ff; }
.policy-list .empty-state { min-height:340px; }
.kv { grid-template-columns:120px minmax(0,1fr); gap:14px 16px; font-size:14px; }
.timeline { gap:14px; }
.timeline li { font-size:14px; line-height:1.6; padding:2px 0 2px 12px; }
.timeline .icon { width:18px;height:18px;color:var(--primary); }
.hint { font-size:12px; line-height:1.65; }
.field input,.field select { height:44px; border-color:#d7e2f0; }
.field textarea { border-color:#d7e2f0; font-size:15px; }
.form { gap:20px; }
.steps { padding:8px 0; }
.steps li { font-size:14px; }
.step-dot { width:24px;height:24px; }
.steps li:before { top:11px; }
.material-row { grid-template-columns:145px minmax(0,1fr) 90px; gap:14px; padding:20px 0; }
.material-state { font-size:13px; }
.material-row .tag { font-size:11px;padding:3px 6px;white-space:normal; }
.upload-form { font-size:13px; }
.file-line { padding:12px; flex-wrap:wrap; }
.file-meta { flex:1; }
.file-meta a { font-size:14px; }
.expert-grid { display:grid; grid-template-columns:minmax(170px,.7fr) minmax(0,1.2fr) minmax(0,1.3fr); gap:16px; align-items:start; }
.expert-task-card { min-height:420px; }
.selected-task { display:grid; gap:12px; padding:16px; background:#eaf3ff; border:1px solid #b8d3ff; border-radius:8px; margin-top:20px; font-size:14px; }
.selected-task p,.selected-task small { font-size:12px;color:var(--muted); }
.ai-grid { grid-template-columns:minmax(190px,.9fr) minmax(0,1.3fr) minmax(0,1.1fr); gap:16px; }
.ai-summary { padding:14px 20px; }
.ai-summary .kv { font-size:12px; gap:8px 12px; }
.finding-list a { padding:13px 10px; gap:8px; }
.finding-list strong { font-size:15px; }
.finding-list small { font-size:12px; }
.finding-list .tag { font-size:10px;padding:2px 5px; }
.original-paper { min-height:510px; background:linear-gradient(#fff,#fcfdff); }
.original-paper .evidence { border:0; }
.original-paper blockquote { margin:22px 0; padding:20px 15px; min-height:230px; font:16px/2 Georgia,"PingFang SC",serif; }
.ai-grid>.panel:last-child .kv { grid-template-columns:1fr; gap:8px; }
.ai-grid>.panel:last-child .kv dd { margin-bottom:12px; }
.ai-grid .check { display:flex; margin:6px 0; }
.login-page { grid-template-columns:57.4% 42.6%; }
.login-brand { padding:58px 70px 68px; background:linear-gradient(145deg,#dceeff,#bedffb 50%,#f3f9ff); }
.login-brand .brand-org { font-size:32px; color:#062755; }
.login-brand-text { z-index:1; }
.login-brand-text h1 { font-size:64px; margin-top:2px; color:#052650; }
.login-brand-text p { font-size:18px; letter-spacing:4px; margin-top:16px; }
.login-art { position:absolute; top:215px; left:0; bottom:155px; margin:0; width:100%; max-width:none; background:url('/assets/login-landscape.webp') center center/cover no-repeat; mask-image:linear-gradient(transparent,#000 6%,#000 86%,transparent); }
.login-slogan { position:relative; margin-top:auto; font-size:36px; line-height:1.4; color:#092954; }
.login-tags { position:relative; gap:16px; margin-top:18px; }
.login-tags li { display:flex; align-items:center; gap:10px; font-size:16px; border-radius:18px; padding:12px 16px; border-color:#e0edff; }
.login-tags .icon { color:var(--primary); }
.login-panel { padding:40px 56px; }
.login-card { width:100%; max-width:534px; padding:44px 60px 48px; gap:26px; border-radius:14px; min-height:620px; }
.login-card h2 { font-size:44px; line-height:1.3; }
.login-card>p.muted { font-size:21px; margin-top:-14px; }
.login-card .field { gap:10px; font-size:19px; }
.login-card input { height:58px; font-size:16px; }
.login-card .btn-block { height:56px; font-size:20px; margin-top:5px; }
.pw-toggle { top:15px; background:transparent; }
.login-foot { padding-top:20px; border-top:1px solid var(--border); gap:18px; font-size:16px; }
.login-foot .muted { font-size:14px; }
.empty-state { padding:42px 18px; }
@media (max-width:1280px) {
 .brand {width:260px;gap:12px;} .brand-org{font-size:16px;} .brand-name{font-size:28px;} .top-nav{gap:0;} .top-nav-item{font-size:15px;padding:0 9px;} .header-tools{gap:8px;} .env-pill{font-size:11px;}
 .stat-card{gap:12px;padding:16px;} .stat-icon{width:46px;height:52px;} .knowledge-grid{grid-template-columns:150px minmax(0,1fr) 240px;}
 .login-card{padding:36px;}.login-brand{padding-left:48px;padding-right:48px;}.login-tags{gap:8px;}.login-tags li{font-size:14px;padding:10px;}
}
@media (max-width:1000px) {
 .app-header{height:auto;position:relative;flex-wrap:wrap;padding:12px 18px;gap:12px;} .brand{width:auto;}.top-nav{order:3;flex:none;width:100%;height:46px;}.header-tools{margin-left:auto;} .top-nav-item.is-active:after{bottom:2px;}
 .app-body{grid-template-columns:1fr;}.side-nav{display:flex;overflow-x:auto;padding:10px 16px;gap:16px;border-right:0;border-bottom:1px solid var(--border);}.side-nav ul{display:flex;flex:none;gap:6px;}.side-item{min-height:42px;white-space:nowrap;padding:0 12px;font-size:14px;gap:8px;}.side-item .icon{width:19px;height:19px;}.side-divider{display:none;}
 .workarea{padding:20px;}.knowledge-grid{grid-template-columns:150px minmax(0,1fr);}.knowledge-grid>.inspector-panel{grid-column:1/-1;min-height:0;}
 .stat-grid.six{grid-template-columns:repeat(3,minmax(0,1fr));}.expert-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr);}.expert-task-card{grid-column:1/-1;min-height:0;}.ai-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}.ai-grid>.panel:last-child{grid-column:1/-1;}
 .login-page{grid-template-columns:1fr;}.login-brand{min-height:600px;}.login-art{top:180px;bottom:100px;}.login-brand-text h1{font-size:48px;}.login-brand .brand-org{font-size:24px;}.login-slogan{font-size:28px;}.login-panel{padding:32px;}.login-card{max-width:540px;min-height:0;}.login-card h2{font-size:32px;}
}
@media (max-width:700px) {
 body{font-size:14px;}.brand-org{font-size:14px;}.brand-name{font-size:25px;}.header-tools{width:auto;}.header-tools .env-pill{display:none;}.user-menu summary{font-size:12px;gap:5px;}.user-menu summary>span:first-of-type{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}.user-popover{right:-5px;}.app-header{gap:8px;}.brand{gap:8px;}.top-nav{height:44px;}.top-nav-item{font-size:14px;}
 .workarea{padding:16px;gap:14px;}.page-header,.page-header:has(.breadcrumb){min-height:0;gap:12px;flex-wrap:wrap;}.page-header h1{font-size:25px;overflow-wrap:anywhere;}.page-header p{font-size:14px;}.page-header .btn{font-size:13px;min-height:36px;}.page-header .btn-primary:before{display:none;}
 .panel{padding:16px;overflow-x:visible;}.panel-head h2,.panel>h2{font-size:18px;}.panel-head{gap:8px;}.panel-head>.muted{font-size:12px;}.stat-grid,.stat-grid.three,.stat-grid.six,.stat-grid.five{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;}.stat-card{padding:12px;gap:10px;min-height:100px;}.stat-icon{width:30px;height:42px;background:none!important;}.stat-icon .icon{width:27px;height:27px;}.stat-card span{font-size:12px;}.stat-card strong{font-size:27px;}.stat-card small{font-size:10px;}.flow-summary strong{font-size:13px;}.stat-grid.six .stat-card{padding:12px;gap:8px;}.stat-grid.six .stat-icon{display:none;}
 .grid-2,.grid-form,.dashboard-grid,.business-list-grid,.inspector-grid,.knowledge-grid,.expert-grid,.ai-grid{grid-template-columns:minmax(0,1fr);gap:14px;}.expert-task-card,.knowledge-grid>.inspector-panel,.ai-grid>.panel:last-child{grid-column:auto;}.inspector-panel,.business-list-grid>.panel,.expert-task-card{min-height:0;}.dashboard-grid>.todo-panel{min-height:0;}.entry-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.entry-card{min-height:110px;}.entry-card strong{font-size:15px;}.entry-card small{font-size:11px;}
 .table-scroll,.panel:has(> .table){overflow-x:auto;}.table{min-width:540px;font-size:13px;}.table th{font-size:12px;padding:10px;}.table td{padding:14px 10px;}.page-tabs{gap:18px;flex-wrap:nowrap;overflow-x:auto;font-size:14px;}.filter-form{margin-left:0;}.filter-form input,.filter-bar input{width:100%;min-width:0;}.filter-bar{align-items:flex-start;}.filter-bar label{font-size:12px;}.filter-bar select{max-width:140px;}.filter-bar .btn{min-height:36px;font-size:13px;}
 .process-flow{gap:8px;flex-wrap:wrap;justify-content:flex-start;}.process-flow li{flex:0 0 calc(33.3% - 6px);}.process-flow span{font-size:12px;}.process-flow li:after{display:none;}.process-flow .icon{width:36px;height:36px;}.process-panel{overflow:hidden;}
 .classification{display:flex;flex-wrap:wrap;align-items:center;gap:4px;}.classification .panel-head{width:100%;margin:0;}.classification h3,.classification hr{display:none;}.category-link{padding:8px;font-size:12px;}.kanban{grid-template-columns:repeat(6,220px);}.kanban-cards{min-height:200px;}
 .material-row{grid-template-columns:minmax(0,1fr);gap:10px;}.material-state{text-align:left;}.file-line{gap:8px;}.file-line>small{margin-left:0;}.material-cat{grid-template-columns:1fr auto;}.material-cat small{font-size:11px;}.upload-form input[type=file]{font-size:12px;width:100%;}.steps{overflow-x:auto;gap:16px;padding:10px 4px;}.steps li{flex:0 0 80px;font-size:12px;}.steps li:before{left:-58%;width:120%;}.kv{grid-template-columns:95px minmax(0,1fr);font-size:13px;gap:12px;}.original-paper{min-height:0;}.original-paper blockquote{min-height:180px;font-size:14px;}.field-row{grid-template-columns:1fr;}.form-actions{flex-wrap:wrap;}.notice{font-size:12px;}.selected-task{margin-top:12px;}
 .login-brand{padding:28px 24px;min-height:530px;}.login-brand-text h1{font-size:43px;}.login-brand .brand-org{font-size:22px;}.login-brand-text p{font-size:14px;letter-spacing:2px;}.login-art{top:155px;bottom:130px;}.login-slogan{font-size:24px;}.login-tags{gap:8px;margin-top:12px;}.login-tags li{font-size:12px;padding:7px 10px;border-radius:12px;}.login-tags .icon{width:18px;height:18px;}.login-panel{padding:56px 20px 28px;}.login-panel>.env-pill{top:18px;right:20px;}.login-card{padding:24px;gap:20px;}.login-card h2{font-size:30px;}.login-card>p.muted{font-size:15px;margin-top:-10px;}.login-card .field{font-size:15px;}.login-card input{height:48px;font-size:14px;}.login-card .btn-block{height:48px;font-size:16px;}.login-foot{font-size:14px;}.login-foot .muted{font-size:12px;}.pw-toggle{top:10px;}
}
@media print { .stat-grid{display:grid!important;}.page-tabs,.filter-bar,.classification,.expert-task-card{display:none!important;}.table{min-width:0;} }
.side-item .icon { order:-1; }
.process-flow strong { font-size:18px; color:var(--brand); }
.ai-summary .tag { white-space:normal; overflow-wrap:anywhere; max-width:100%; }
.page-header,.page-actions { min-width:0; }
@media (max-width:700px) { .page-actions { width:100%;gap:8px; }.page-actions .btn { white-space:normal;max-width:100%;font-size:12px; }.page-actions .tag { white-space:normal; }.ai-summary .kv { grid-template-columns:70px minmax(0,1fr); }.ai-summary dd { overflow-wrap:anywhere; }.page-actions .btn-primary:before{display:none;} }
.stat-card { padding:16px 20px; }
.stat-copy { gap:2px; }
.stat-copy small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:100%; }
.dashboard-grid .business-overview { gap:10px; }
.dashboard-grid .business-overview strong { font-size:18px; }
.dashboard-grid .business-overview li { min-height:25px; }
.dashboard-grid .timeline { gap:12px; }
.dashboard-grid .timeline li { display:block; position:relative; padding-left:26px; border:0; }
.dashboard-grid .timeline .icon { position:absolute;top:5px;left:0; }
.dashboard-grid .timeline .muted { display:block; font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.business-award .tag { color:#c98519;background:#fff2df; }
.business-project .tag { color:#219575;background:#e3f5ed; }
.business-patent .tag { color:#7554d4;background:#eee7ff; }
@media (max-width:700px) { .stat-card { padding:12px; }.stat-copy small { white-space:normal; }.dashboard-grid .timeline .muted { white-space:normal; } }
.application-heading { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:center;gap:24px; }
.application-heading .page-header { min-height:120px; }
.application-heading .page-header h1 { font-size:32px; }
.application-heading .page-header p { font-size:14px; }
.application-grid { grid-template-columns:minmax(0,1.8fr) minmax(0,1fr);align-items:start; }
.application-grid .material-row { grid-template-columns:180px minmax(0,1fr) 80px; }
.application-grid .material-cat strong { font-size:20px; }
.application-grid .material-cat small { font-size:14px;line-height:1.7; }
.application-grid .kv { grid-template-columns:90px minmax(0,1fr);gap:20px 14px;font-size:16px; }
.application-grid .hint { margin:16px 0; }
.preflight { display:grid;list-style:none;padding:0;margin:0;gap:12px; }
.preflight li { display:flex;gap:12px;padding:14px;background:linear-gradient(#fff,#f9fcff);border:1px solid var(--border);border-radius:8px; }
.preflight .icon { color:var(--primary); }
.preflight strong { font-size:16px; }.preflight p { font-size:14px;color:var(--muted);line-height:1.7; }
.upload-form input[type=file] { padding:8px;border:1px dashed #c9dcf6;background:#f9fcff;border-radius:6px;min-width:0;width:100%;color:var(--muted); }
.upload-form input[type=file]::file-selector-button { padding:5px 10px;border:0;border-radius:4px;background:#e8f2ff;color:var(--primary);margin-right:10px;font:inherit; }
.application-submit .panel { border-top:2px solid #dfeafb; }
.application-submit .inline-actions { justify-content:flex-end; }
.application-submit h2 { font-size:20px; }
.application-submit .plain-list { font-size:13px;color:var(--muted); }
@media(max-width:700px) { .application-heading,.application-grid {grid-template-columns:minmax(0,1fr);gap:14px;}.application-heading .page-header{min-height:0;}.application-heading .page-header h1{font-size:26px;}.application-steps {gap:12px;overflow:visible;}.application-steps li{flex:1;font-size:11px;}.application-steps li:before{left:-60%;width:125%;}.application-grid .material-row{grid-template-columns:minmax(0,1fr);}.application-grid .kv{grid-template-columns:85px minmax(0,1fr);font-size:14px;}.application-grid .material-cat strong{font-size:17px;}.application-grid .material-cat small{font-size:12px;}.preflight p{font-size:12px;}.preflight strong{font-size:14px;} }
.registration-meta { margin-top:16px;font-size:13px;color:var(--muted); }
.registration-meta summary { cursor:pointer; }
.registration-meta .kv { margin-top:16px; }
.page-actions .btn-primary:before { content:none; }
.page-actions .btn-primary[href$="/new"]:before { content:"＋"; }
@media(max-width:700px) { .page-actions .btn-primary[href$="/new"]:before{display:none;} }
.knowledge-grid > .panel { min-height:510px; }
@media(max-width:700px) { .knowledge-grid > .panel {min-height:0;} }

/* 新评审沿用统一框架，当前业务节点与办理区清晰呈现。 */
.review-flow .is-active { background:#0866ef; color:#fff; font-weight:600; }
.review-action { display:grid; gap:12px; align-content:start; }
.review-action .field { display:grid; gap:7px; }
.review-action .field input,.review-action .field textarea,.review-action .field select { width:100%; }
.review-action button { justify-self:start; }
.page-reviews .panel h2 { margin-top:0; }
.page-reviews .kv dd { overflow-wrap:anywhere; }
#review-handling,#review-trail,#review-info { scroll-margin-top:95px; }
.legacy-overview { padding:12px 20px; }
.legacy-overview > summary { color:#60799f; cursor:pointer; }
.legacy-overview .stat-grid { margin-top:14px; }
.page-workspace .todo-panel { align-self:start; }
.page-reviews .file-list small { display:block; margin:5px 0; color:#60799f; }

/* v0.8综合控制台：按用户2026-10-13参考图调整，保留旧页面类和路由。 */
.app-header{height:72px;display:flex;gap:16px;padding:0 18px;background:#fff;box-shadow:0 2px 10px #1264ed0a}
.brand{width:auto;gap:16px;align-items:center;min-width:335px}.brand-org{font-size:12px;letter-spacing:0;max-width:135px;line-height:1.4}.brand-name{font-size:22px;line-height:1.1}.brand-name small{display:block;font-size:11px;font-weight:500;letter-spacing:.5px;margin-top:5px;color:#597aa8}
.top-nav{gap:0;align-self:stretch;height:72px;flex:1}.top-nav-item{font-size:13px;padding:0 10px}.top-nav-item.is-active:after{bottom:13px;left:10px;right:10px}.header-tools{gap:8px;flex:none}.header-tools .env-pill{font-size:10px;padding:4px 7px}.header-tools .user-menu summary{font-size:11px;gap:6px}.header-tools .user-menu .icon{width:20px;height:20px}.header-tools>.btn{font-size:11px;padding:6px}.header-search{display:flex;align-items:center;gap:4px}.header-search input{width:110px;min-height:30px;font-size:11px;padding:4px 7px}.header-search .btn{padding:4px 6px;font-size:11px;min-height:30px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.app-body{grid-template-columns:186px minmax(0,1fr);min-height:calc(100vh - 72px)}.side-nav{padding:16px 8px;background:linear-gradient(#f3f9ff,#fff);border-right:1px solid #e0edfc}.side-nav ul{gap:4px}.side-item{min-height:36px;height:auto;padding:9px 12px;font-size:13px;border-radius:6px;gap:10px}.side-item .icon{width:17px;height:17px}.side-item.is-active{color:white;background:linear-gradient(100deg,#329fff,#1670f1);box-shadow:0 3px 8px #1b79ec20}.side-item.is-active .icon{color:white}.side-divider{margin:15px 10px}.workarea{padding:18px 20px 26px;gap:14px;background:#eff6ff}.page-header h1{font-size:26px}.page-header p{font-size:13px}
.innovation-banner{position:relative;isolation:isolate;overflow:hidden;border:1px solid #cae2fb;min-height:145px;display:flex;align-items:center;border-radius:9px;padding:20px 28px;background:linear-gradient(95deg,#e9f5ffff 8%,#e9f5ffee 35%,#e9f5ff22 75%),url('/assets/login-landscape.webp') center 48%/cover;box-shadow:0 4px 12px #3282bd10}.innovation-banner h1{font-size:27px;color:#082d70;letter-spacing:.2px;line-height:1.4;margin:7px 0}.innovation-banner p{font-size:13px;color:#446487;margin:6px 0}.innovation-banner small{font-size:11px;color:#5b7290}.innovation-banner>div>span{font-size:11px;color:#2463a1}.innovation-banner .rail-art{display:none}
.cockpit-content{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:14px;align-items:start}.cockpit-metrics{grid-column:1;grid-row:1;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.metric-card{display:flex;gap:9px;background:white;border:1px solid #dcebf9;border-radius:8px;padding:13px 10px;min-height:83px;color:#183964;align-items:center}.metric-card:hover{text-decoration:none;box-shadow:0 4px 10px #1275e015}.metric-card>.icon{width:30px;height:30px;padding:5px;border-radius:6px;background:#278cff;color:white;flex:none}.metric-card:nth-child(2)>.icon{background:#23bdb0}.metric-card:nth-child(3)>.icon{background:#ffa54d}.metric-card:nth-child(4)>.icon{background:#8c6af2}.metric-card:nth-child(5)>.icon{background:#fc6670}.metric-card:nth-child(6)>.icon{background:#22bcd6}.metric-card div{display:grid;gap:2px;min-width:0}.metric-card span{font-size:11px;font-weight:600}.metric-card strong{font-size:23px;line-height:1.1;color:#12468d}.metric-card small{font-size:9px;color:#7288a6;line-height:1.35;overflow-wrap:anywhere}
.cockpit-content .panel{padding:15px;border-color:#dceafa;border-radius:8px;margin:0}.cockpit-content .panel h2{font-size:15px}.cockpit-content .panel-head{margin-bottom:10px}.cockpit-content .panel-head>span,.cockpit-content .panel-head a{font-size:11px}.cockpit-content .notice{font-size:11px;padding:8px 10px;line-height:1.55}.app-matrix{grid-column:1;grid-row:2}.cockpit-apps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.cockpit-apps>a{background:linear-gradient(120deg,#edf7ff,#f9fbff);padding:12px 10px;border:1px solid #e6f0fc;border-radius:7px;display:grid;grid-template-columns:34px minmax(0,1fr);column-gap:9px;row-gap:3px;color:#13498f;position:relative}.cockpit-apps>a:hover{text-decoration:none;background:#e7f2ff}.cockpit-apps .icon{grid-row:span 3;width:32px;height:32px;padding:6px;border-radius:7px;background:#278cff;color:white}.cockpit-apps>a:nth-child(2n) .icon{background:#23bbad}.cockpit-apps>a:nth-child(3n) .icon{background:#ffa052}.cockpit-apps>a:nth-child(4n) .icon{background:#9271ed}.cockpit-apps strong{font-size:13px}.cockpit-apps small{font-size:10px;color:#7b92b2;line-height:1.45}.cockpit-apps>a>span{font-size:10px;color:#2685ef}
.cockpit-charts{grid-column:1;grid-row:3;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:14px;min-width:0}.cockpit-charts .panel-head form{display:flex;gap:5px;align-items:center;font-size:10px}.cockpit-charts select{font-size:10px;max-width:110px;min-height:26px;padding:3px}.cockpit-charts .btn{font-size:10px;padding:3px 6px;min-height:26px}.cockpit-charts .muted{font-size:11px}.trend-svg{width:100%;height:205px;display:block}.trend-svg text{font-size:12px;fill:#7486a5}.cockpit-charts details{font-size:11px}.distribution{display:flex;align-items:center;gap:5px;min-height:200px}.distribution svg{width:45%;max-width:170px;flex:none}.distribution svg text{font-size:12px;fill:#7085a4}.distribution svg .donut-count{font-size:25px;fill:#1255b3;font-weight:700}.distribution ul{list-style:none;padding:0;margin:0;width:55%;display:grid;gap:8px}.distribution li{display:grid;grid-template-columns:7px minmax(0,1fr) 20px 34px;gap:5px;align-items:center;font-size:10px}.distribution i{width:7px;height:7px;border-radius:2px}.distribution small{font-size:9px;color:#8396b2}.distribution strong{font-size:11px}
.cockpit-bottom{display:contents}.cockpit-bottom>.panel:first-child{grid-column:1;grid-row:4}.cockpit-bottom>#my-todos{grid-column:2;grid-row:3 / span 2}.cockpit-bottom>.assistant-card{grid-column:2;grid-row:1 / span 2;min-height:230px;background:linear-gradient(130deg,#e7f4ff,#fff);text-align:left;display:grid;gap:10px}.assistant-icon .icon{width:42px;height:42px;padding:9px;background:#2e8af5;border-radius:50%;color:white}.assistant-card h2{margin:0}.assistant-card p{font-size:12px;margin:0;color:#6383ab}.assistant-card a,.assistant-card small{font-size:11px;line-height:1.5}.assistant-card .btn{font-size:12px}.cockpit-latest,.cockpit-todos{margin:0;padding:0;list-style:none;display:grid;gap:12px}.cockpit-latest li{display:grid;gap:4px;border-bottom:1px solid #edf3fb;padding-bottom:8px}.cockpit-latest a,.cockpit-todos a{font-size:12px}.cockpit-latest small,.cockpit-todos small{display:block;font-size:10px;color:#7d91ae}.cockpit-todos li{display:grid;gap:6px;border-bottom:1px solid #edf3fb;padding-bottom:10px}.cockpit-todos .btn{font-size:10px;white-space:normal;justify-self:start;padding:4px 7px;min-height:25px}.stats-definition{grid-column:1 / -1;font-size:11px;color:#68809f}.stats-definition summary{cursor:pointer}.inspection-form .form-grid{gap:12px}.inspection-form label,.inspection-form .field>span{font-size:13px}
@media(max-width:1400px){.brand{min-width:280px;gap:10px}.brand-name{font-size:19px}.brand-org{max-width:110px;font-size:11px}.top-nav-item{padding:0 7px;font-size:12px}.header-search input{width:82px}.header-tools .env-pill{display:none}.cockpit-metrics{gap:6px}.metric-card{gap:6px;padding:12px 7px}.metric-card>.icon{width:25px;height:25px}.metric-card span{font-size:10px}.metric-card strong{font-size:21px}.cockpit-content{grid-template-columns:minmax(0,1fr) 245px;gap:12px}.cockpit-apps{gap:7px}.cockpit-apps>a{padding:10px 7px;column-gap:5px}.distribution{flex-direction:column}.distribution svg{width:130px;height:130px}.distribution ul{width:100%;grid-template-columns:1fr 1fr;gap:8px}.distribution li{grid-template-columns:6px minmax(0,1fr) 16px}.distribution small{display:none}}
@media(max-width:1100px){.app-header{flex-wrap:wrap;height:auto;min-height:102px;padding:12px 16px 0;gap:5px 15px}.brand{flex:1}.header-tools{order:2}.top-nav{order:3;flex-basis:100%;height:38px}.top-nav-item{font-size:13px;padding:0 13px}.top-nav-item.is-active:after{bottom:2px}.app-body{grid-template-columns:160px minmax(0,1fr)}.side-item{font-size:12px}.cockpit-content{grid-template-columns:minmax(0,1fr)}.cockpit-metrics,.app-matrix,.cockpit-charts,.cockpit-bottom>.panel:first-child,.cockpit-bottom>#my-todos,.cockpit-bottom>.assistant-card{grid-column:1;grid-row:auto}.cockpit-bottom{display:grid;gap:14px}.cockpit-content .panel{padding:15px}.cockpit-charts{grid-template-columns:1fr 1fr}.metric-card span{font-size:11px}.distribution{flex-direction:row}.distribution ul{display:grid;grid-template-columns:1fr}.cockpit-apps{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.app-header{padding:10px 12px 0;gap:10px;min-height:115px}.brand{min-width:0;gap:9px}.brand-org{font-size:9px;max-width:100px}.brand-name{font-size:19px}.brand-name small{font-size:8px}.header-tools{gap:0}.header-tools .header-search,.header-tools>.btn{display:none}.header-tools .user-menu summary{font-size:10px}.header-tools .user-menu summary span:first-of-type{max-width:58px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.top-nav{height:32px;gap:0;min-width:0}.top-nav-item{font-size:12px;padding:0 10px}.app-body{display:block}.side-nav{padding:8px 10px;display:flex;gap:10px;overflow-x:auto;border-right:0;border-bottom:1px solid #dce8fa;max-height:64px}.side-nav ul{display:flex;gap:6px}.side-item{white-space:nowrap;font-size:11px;padding:8px;height:35px}.side-divider{display:none}.side-nav ul:nth-of-type(2){display:flex}.side-item .icon{width:14px;height:14px}.workarea{padding:12px;gap:12px}.innovation-banner{min-height:143px;padding:16px;background-position:center 45%}.innovation-banner h1{font-size:21px;max-width:240px}.innovation-banner p{font-size:10px;max-width:235px}.innovation-banner small{font-size:10px;max-width:220px;display:block}.cockpit-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.metric-card{padding:12px;min-height:75px}.metric-card span{font-size:12px}.metric-card strong{font-size:22px}.metric-card small{font-size:10px}.metric-card>.icon{width:30px;height:30px}.cockpit-apps{grid-template-columns:repeat(2,minmax(0,1fr))}.cockpit-apps>a{padding:12px 9px}.cockpit-charts{grid-template-columns:minmax(0,1fr)}.distribution{min-height:185px}.distribution svg{width:45%;height:auto}.distribution ul{width:55%}.cockpit-content .panel h2{font-size:15px}.trend-svg{height:auto}.page-header h1{font-size:23px}.cockpit-bottom .assistant-card{min-height:0}.inspection-form .form-grid{grid-template-columns:minmax(0,1fr)}}
@media print{.header-search,.inspection-form,form,.stats-definition,.assistant-card,[data-print]{display:none!important}.app-header,.side-nav{display:none!important}.workarea{padding:0}.panel{break-inside:avoid}.table{font-size:10px;min-width:0}}

/* 同一桌面视口下的首页内容密度复核；业务页面字号不缩小。 */
@media(min-width:1101px){
 .page-workspace{padding:16px 20px;gap:12px}.innovation-banner{padding:14px 26px;min-height:136px}.innovation-banner h1{font-size:25px;line-height:1.3}.innovation-banner p{margin:4px 0}.cockpit-content{gap:12px}.cockpit-content .panel{padding:12px 14px}.cockpit-apps>a{padding:9px 10px}.cockpit-apps{gap:8px}.trend-svg{height:165px}.distribution{min-height:165px}.cockpit-charts .empty-state{padding:24px 12px;min-height:150px}.cockpit-charts .empty-icon{display:none}.cockpit-charts .empty-state p{font-size:12px}.cockpit-bottom>.assistant-card{min-height:220px;gap:8px}.cockpit-bottom #my-todos .empty-state{padding:20px 8px}.cockpit-bottom #my-todos .empty-state p{font-size:12px}.cockpit-latest{gap:7px}.cockpit-latest li{padding-bottom:5px}
}

/* 第三轮：多附件的单件操作另起一行，避免挤窄文件信息。 */
.file-line:has(form[action$="/deactivate-material"]) { flex-wrap:wrap; align-items:flex-start; }
.file-line:has(form[action$="/deactivate-material"]) .file-meta { flex:1 1 180px; }
.file-line form[action$="/deactivate-material"] { flex:1 1 100%; display:flex; gap:8px; align-items:center; padding-top:6px; }
.file-line form[action$="/deactivate-material"] input[name="reason"] { flex:1; min-width:0; padding:7px 9px; border:1px solid #c9dcf6; border-radius:5px; font:inherit; }
.upload-form label:has(select[name="replace_file_id"]) { display:flex; flex-wrap:wrap; align-items:center; gap:6px; width:100%; }
.upload-form select[name="replace_file_id"] { padding:7px; border:1px solid #c9dcf6; border-radius:5px; min-width:0; max-width:100%; color:var(--text); background:white; }

/* 领导演示：沿用现有外壳，独立主栏/侧栏避免跨行卡片撑开首页。 */
:root{--primary:#1476ef;--border:#dfebf8;--radius:10px}
.app-header{gap:14px;height:64px;padding:0 18px}.brand{min-width:325px;gap:10px}.brand-symbol{width:31px;height:31px;border-radius:50%;background:#eff6ff;display:grid;place-items:center;color:#0867d9;flex:none}.brand-symbol .icon{width:23px;height:23px}.brand-org{font-size:11px;max-width:146px;color:#1252a3;white-space:nowrap}.brand-org small{display:block;font-size:5px;letter-spacing:0;line-height:2;color:#4177b7}.brand-name{font-size:23px;border-left:1px solid #d6e6fa;padding-left:12px;letter-spacing:.5px}.brand-name small{font-size:9px;letter-spacing:.4px;margin-top:4px}.top-nav{height:64px;gap:0}.top-nav-item{font-size:12px;padding:0 9px}.top-nav-item.is-active{background:linear-gradient(0deg,#eff7ff,transparent 70%)}.top-nav-item.is-active:after{bottom:10px}.header-search input{border:1px solid #dbe8f8;border-radius:5px;background:#f7fbff;width:106px}.header-search .btn{border-radius:5px;background:#1677ef;color:white;border-color:#1677ef}.header-tools{gap:7px}.header-tools>.btn{display:none}.header-tools .env-pill{display:inline-flex;font-size:9px;white-space:nowrap}.user-menu summary{white-space:nowrap}
.app-body{grid-template-columns:172px minmax(0,1fr);min-height:calc(100vh - 64px)}.side-nav{padding:13px 9px;background:linear-gradient(180deg,#f0f8ff,#f8fbff)}.side-heading{font-size:10px;letter-spacing:1px;color:#8ba0bb;margin:10px 12px}.side-nav ul{gap:2px}.side-item{font-size:12px;padding:9px 10px;min-height:35px}.side-divider{margin:14px 10px}
.workarea{padding:18px 20px 26px;background:linear-gradient(145deg,#edf6ff,#f5f9fe);gap:16px}.page-header h1{font-size:25px;letter-spacing:.3px}.page-header p{color:#7d8eaa;line-height:1.8}.panel{border-radius:10px;box-shadow:0 3px 14px #134f8910;border-color:#e0ebf7}.panel-head{align-items:center}.panel h2{color:#173d73}.page-tabs{border-bottom-color:#e0eafa}.page-tabs a,.page-tabs button{font-size:13px}.notice-warn{border-color:#efe3c8;background:#fffbf2;color:#997534}.table thead th{background:#f2f7fd;color:#6080a3;font-size:12px;font-weight:600;border-color:#e8eff7}.table tbody td{font-size:13px;border-color:#edf2f9;padding-top:16px;padding-bottom:16px}.table tbody tr:hover{background:#f7fbff}.table tbody small{color:#8398b4;font-size:11px}.stat-card{box-shadow:0 2px 9px #2373c10b;border:1px solid #dfebf8;border-radius:9px}.stat-copy strong{color:#14487f}.btn{transition:background .15s,box-shadow .15s;cursor:pointer}.btn-primary{background:linear-gradient(130deg,#278fff,#1470ed);border-color:#1978ef;box-shadow:0 3px 7px #137beb20}.btn:disabled{cursor:not-allowed;box-shadow:none}.field textarea{border-color:#cddff2;border-radius:6px;padding:11px;font:inherit;max-width:100%}.field input,.field select{border-color:#cddff2}
.demo-context{display:flex;justify-content:space-between;align-items:center;font-size:11px;color:#6787ad;margin:-4px 0 -4px;min-height:18px}.demo-context>span:before{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:#24b4a2;margin-right:6px}.demo-context a{display:flex;align-items:center;gap:4px;font-size:11px}.demo-context .icon{width:12px;height:12px}.demo-intro{display:grid;gap:14px}.demo-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.demo-steps .panel{display:flex;gap:16px}.demo-steps h2{font-size:18px}.demo-steps small{color:#7c91ac}.demo-steps p{margin:10px 0}.demo-step-number{font-size:25px;font-weight:700;color:#2490ff}.demo-intro .actions{flex-wrap:wrap}
.page-workspace{padding:12px 18px 18px;gap:12px}.innovation-banner{min-height:139px;padding:19px 28px;background:linear-gradient(95deg,#edf8ff 0%,#edf8fff2 30%,#edf8ff38 66%,#cfe9ff16 100%),url('/assets/login-landscape.webp') center 70%/cover;border-radius:9px;box-shadow:0 4px 16px #307fc015}.innovation-banner h1{font-size:27px;letter-spacing:.2px;margin:5px 0;line-height:1.5;color:#102e71}.innovation-banner p{font-size:12px;color:#6a83a4}.innovation-banner small{font-size:10px;color:#7187a5}.banner-eyebrow{font-size:10px;letter-spacing:2px}.banner-slogan{position:absolute;right:28px;top:23px;font-size:17px;letter-spacing:4px;color:#1d4f88;font-family:"STKaiti","KaiTi",serif;text-shadow:0 1px 3px white}
.cockpit-content{display:grid;grid-template-columns:minmax(0,1fr) 286px;gap:12px;align-items:start}.cockpit-main{display:grid;gap:12px;min-width:0}.cockpit-rail{display:grid;gap:12px;min-width:0}.cockpit-metrics,.app-matrix,.cockpit-charts,.stats-definition{grid-row:auto;grid-column:auto}.cockpit-metrics{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.metric-card{gap:8px;padding:12px 10px;min-height:83px;border-radius:9px;box-shadow:0 3px 8px #176ac208}.metric-card>.icon{width:34px;height:38px;padding:7px;border-radius:8px;box-shadow:0 3px 8px #2488f428;background:linear-gradient(140deg,#56b9ff,#1b7afa)}.metric-card:nth-child(2)>.icon{background:linear-gradient(140deg,#48e0cd,#08b6a5)}.metric-card:nth-child(3)>.icon{background:linear-gradient(140deg,#ffce86,#ff9b49)}.metric-card:nth-child(4)>.icon{background:linear-gradient(140deg,#b496ff,#8c61f3)}.metric-card:nth-child(5)>.icon{background:linear-gradient(140deg,#ff96a3,#f76073)}.metric-card:nth-child(6)>.icon{background:linear-gradient(140deg,#50def6,#10b6d8)}.metric-card span{font-size:10px;white-space:nowrap}.metric-card strong{font-size:25px;font-weight:750;color:#223a92}.metric-card:nth-child(5) strong{font-size:20px}.metric-card small{font-size:9px;color:#8a9db7;line-height:1.5;min-height:24px}
.cockpit-content .panel{padding:13px 14px;border-radius:9px;box-shadow:0 3px 12px #287cbd09}.cockpit-content .panel h2{display:flex;align-items:center;gap:6px;font-size:14px;color:#183b7c;font-weight:700}.cockpit-content .panel h2>.icon{width:16px;height:16px;color:#1d85ff}.cockpit-content .panel-head{margin-bottom:10px}.cockpit-content .panel-head a{font-size:10px}.section-label{color:#92a2bb;font-size:10px}.app-matrix{padding-bottom:14px!important}.cockpit-apps{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.cockpit-apps>a{display:flex;align-items:center;gap:10px;padding:12px 10px;border-radius:8px;background:linear-gradient(110deg,#edf7ff,#f8fbff);border:1px solid #e6f0fb;min-height:66px}.cockpit-apps .icon{width:37px;height:40px;padding:8px;flex:none;border-radius:8px;background:linear-gradient(140deg,#60c0ff,#2786f9);box-shadow:0 3px 8px #2973ac18}.cockpit-apps>a:nth-child(2) .icon{background:linear-gradient(140deg,#41d9c8,#10b7a7)}.cockpit-apps>a:nth-child(3) .icon{background:linear-gradient(140deg,#ffd38e,#ffa05a)}.cockpit-apps>a:nth-child(4) .icon{background:linear-gradient(140deg,#bba1ff,#9770f0)}.cockpit-apps>a:nth-child(5) .icon{background:linear-gradient(140deg,#ffc88d,#ff994b)}.cockpit-apps>a:nth-child(6) .icon{background:linear-gradient(140deg,#b599ff,#8b66ef)}.cockpit-apps>a:nth-child(7) .icon{background:linear-gradient(140deg,#64dbff,#25bae6)}.cockpit-apps>a:nth-child(8) .icon{background:linear-gradient(140deg,#3297ff,#1267f1)}.cockpit-apps>a>div{flex:1;min-width:0}.cockpit-apps strong{font-size:12px;display:block;white-space:nowrap}.cockpit-apps small{font-size:9px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#8398b5}.cockpit-apps>a>span{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:white;border:1px solid #d9eafa;color:#3489ed;font-size:15px;flex:none}
.cockpit-charts{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:12px}.cockpit-charts .panel{min-height:240px}.cockpit-charts select{max-width:105px;border:1px solid #e1eaf6;border-radius:4px;color:#647e9e;background:#f5f9fd}.chart-caption{display:flex;justify-content:space-between;align-items:center;gap:6px;color:#879db6;font-size:9px}.chart-caption i{display:inline-block;width:5px;height:5px;background:#18b39b;border-radius:50%;margin-right:3px}.trend-svg{height:173px;width:100%;margin-top:7px}.trend-svg text{font-size:11px;fill:#7c93b0}.chart-data{font-size:9px;color:#8b9fba}.chart-data summary{cursor:pointer}.distribution{min-height:186px;gap:5px;flex-direction:row}.distribution svg{width:46%;max-width:165px;height:auto}.distribution svg .donut-count{font-size:28px;fill:#234290}.distribution svg text{font-size:11px}.distribution ul{width:54%;grid-template-columns:1fr;gap:9px}.distribution li{grid-template-columns:6px minmax(0,1fr) 17px 27px;gap:5px;font-size:9px}.distribution small{display:block;font-size:9px}.distribution strong{font-size:10px}.distribution i{width:6px;height:6px}
.cockpit-lower{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:12px}.cockpit-lower>.panel{min-width:0;min-height:258px}.latest-labels{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 67px;gap:12px;background:#f3f8fe;padding:6px 8px;font-size:9px;color:#8199b6}.cockpit-latest{gap:0}.cockpit-latest li{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 67px;gap:12px;align-items:center;padding:10px 8px;border-bottom:1px solid #edf3fb}.cockpit-latest li:last-child{border:0}.cockpit-latest a{font-size:10px;color:#405a81;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cockpit-latest li>div{display:flex;flex-direction:column;align-items:flex-start;gap:3px;font-size:9px;color:#7f97b4}.cockpit-latest .tag{font-size:9px;padding:1px 5px;line-height:1.5}.cockpit-latest time{font-size:9px;color:#839ab4}.cockpit-todos{gap:0}.cockpit-todos li{display:flex;gap:7px;align-items:center;padding:12px 0;border-bottom:1px solid #edf3fb}.cockpit-todos li>.icon{width:25px;height:26px;padding:5px;background:#e6f4ff;color:#3297ef;border-radius:6px;flex:none}.cockpit-todos li>div{min-width:0;flex:1}.cockpit-todos li>div>a{display:block;font-size:10px;color:#3e5982;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cockpit-todos small{font-size:9px;margin-top:3px}.cockpit-todos .todo-action{font-size:9px;text-align:right;max-width:60px;color:#2883f4}.todo-foot{display:block;font-size:9px;color:#91a4bd;margin-top:8px}.stats-definition{font-size:10px;color:#8a9eb8}
.cockpit-rail>.assistant-card{min-height:0;text-align:left;display:grid;gap:10px;background:linear-gradient(125deg,#e7f4ff,#fff 75%);grid-column:auto;grid-row:auto}.assistant-heading{display:flex;gap:9px;align-items:center}.assistant-avatar{width:49px;height:49px;flex:none}.assistant-heading h2{font-size:13px!important}.assistant-heading p{font-size:9px;color:#7b94b5;margin-top:3px}.assistant-heading .tag{font-size:9px;padding:0 5px;background:#edddff;color:#9556e7}.assistant-topics{display:flex;justify-content:space-between;border-bottom:1px solid #e1ebfa;padding-bottom:7px}.assistant-topics a{font-size:10px;color:#6785a8}.assistant-status{position:relative;padding:11px 11px 10px 31px;border:1px solid #e5effc;background:#f6faff;border-radius:7px}.assistant-status>.icon{position:absolute;top:13px;left:10px;width:15px;height:15px;color:#2c85ec}.assistant-status strong{font-size:11px;color:#54759f}.assistant-status p{font-size:10px;line-height:1.8;color:#8da0ba;margin-top:3px}.assistant-card .btn{font-size:11px;min-height:30px;border:0;background:#dceafb;color:#7497c7}.assistant-link{font-size:10px!important;text-align:center}.assistant-card>small{font-size:9px;line-height:1.7;color:#8b9fb9}.source-pending{padding:12px 10px;background:#f7faff;border:1px dashed #dce9f9;border-radius:6px;text-align:center}.source-pending>span{display:inline-block;font-size:10px;padding:2px 9px;background:#edf3fd;border-radius:20px;color:#8098b8}.source-pending p{font-size:12px;color:#577aa8;margin:7px 0}.source-pending small{font-size:10px;color:#97aac0;line-height:1.7;display:block}.text-link{display:block;margin-top:9px;font-size:10px;color:#537eaf}.risk-line{display:flex;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #edf2f9}.risk-mark{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:5px;background:#e9f7ff;color:#28a5df;font-size:14px;font-weight:700}.risk-mark.is-amber{background:#fff3e1;color:#f09a39}.risk-line strong{display:block;font-size:11px;color:#607ea4}.risk-line small{display:block;font-size:9px;color:#90a4bf}.risk-line a{margin-left:auto;font-size:9px}.risk-panel .hint{font-size:9px;margin-top:9px}.demo-launch-card{display:flex;gap:10px;align-items:center;border:1px solid #d7e9fc;padding:13px 15px;border-radius:9px;background:linear-gradient(110deg,#e1f2ff,#f8fbff);color:#3975b6}.demo-launch-card>.icon{width:27px;height:27px}.demo-launch-card strong{font-size:12px;display:block}.demo-launch-card small{font-size:10px;display:block;color:#8aa1bd}.demo-launch-card>span{margin-left:auto;font-size:18px}
@media(min-width:1101px) and (max-width:1470px){.brand{min-width:294px;gap:8px}.brand-org{font-size:10px;max-width:130px}.brand-name{font-size:21px;padding-left:9px}.top-nav-item{font-size:11px;padding:0 7px}.header-search input{width:86px}.header-tools .env-pill{font-size:8px;padding:3px 5px}.app-header{gap:10px;padding:0 14px}.header-tools .user-menu summary{font-size:10px}.cockpit-content{grid-template-columns:minmax(0,1fr) 262px}.metric-card{gap:6px;padding:11px 8px}.metric-card>.icon{width:29px;height:33px;padding:6px}.metric-card strong{font-size:23px}.metric-card span{font-size:9px}.metric-card small{font-size:8px}.cockpit-apps>a{gap:7px;padding:10px 8px}.cockpit-apps .icon{width:32px;height:35px;padding:7px}.cockpit-apps strong{font-size:11px}.cockpit-apps small{font-size:8px}.cockpit-lower{grid-template-columns:minmax(0,1.45fr) minmax(0,1fr)}.distribution li{font-size:8px}.innovation-banner h1{font-size:25px}}
@media(max-width:1100px){.app-header{height:auto;min-height:94px;flex-wrap:wrap;padding:10px 14px 0}.brand{min-width:0;flex:1}.top-nav{height:36px;flex-basis:100%;order:3}.top-nav-item{font-size:12px}.app-body{grid-template-columns:152px minmax(0,1fr)}.cockpit-content{grid-template-columns:minmax(0,1fr)}.cockpit-rail{grid-template-columns:repeat(2,minmax(0,1fr))}.cockpit-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.cockpit-charts{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.cockpit-lower{grid-template-columns:minmax(0,1fr)}.banner-slogan{display:none}.cockpit-apps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.app-header{min-height:96px;padding:10px 10px 0;gap:8px}.brand-symbol{width:24px;height:24px}.brand-symbol .icon{width:17px;height:17px}.brand-org{max-width:100px;font-size:8px}.brand-org small{font-size:3.5px}.brand{gap:6px}.brand-name{font-size:17px;padding-left:7px}.brand-name small{font-size:7px;letter-spacing:0}.header-tools .env-pill{display:none}.header-tools .user-menu summary{font-size:9px}.header-tools .user-menu .icon{width:16px;height:16px}.top-nav{height:32px;gap:0;flex-wrap:nowrap;overflow-x:auto}.top-nav-item{padding:0 8px;font-size:11px;flex:none}.top-nav-item.is-active:after{bottom:0}.app-body{display:block}.side-heading{display:none}.side-nav{padding:7px 9px;max-height:55px}.side-item{font-size:10px;min-height:32px;white-space:nowrap}.workarea,.page-workspace{padding:12px;gap:12px}.demo-context{font-size:9px;margin:0;gap:8px}.demo-context a{font-size:9px}.innovation-banner{padding:17px;min-height:155px;background-position:65% 70%}.innovation-banner h1{font-size:20px;max-width:250px;line-height:1.5}.innovation-banner p{max-width:235px;font-size:10px}.innovation-banner small{font-size:9px}.cockpit-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card span{font-size:11px}.metric-card small{font-size:9px}.metric-card strong{font-size:25px}.cockpit-charts,.cockpit-lower,.cockpit-rail,.demo-steps{grid-template-columns:minmax(0,1fr)}.cockpit-apps>a{padding:12px 10px;gap:8px}.cockpit-apps strong{font-size:11px}.cockpit-apps small{font-size:8px}.cockpit-apps .icon{width:31px;height:35px;padding:6px}.cockpit-apps>a>span{width:14px;height:14px}.cockpit-content .panel{padding:13px 12px}.cockpit-content .panel h2{font-size:13px}.latest-labels,.cockpit-latest li{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 63px;gap:6px}.cockpit-latest a{font-size:9px}.distribution{min-height:185px}.distribution ul{gap:11px}.distribution li{font-size:10px}.trend-svg{height:174px}.chart-caption{font-size:8px}.chart-data{font-size:9px}.table-scroll{overflow:auto}.demo-steps .panel{padding:18px}.review-flow{flex-wrap:wrap}.review-flow li{font-size:11px}.grid-2{min-width:0}.file-list li,.review-action{overflow-wrap:anywhere}.actions{flex-wrap:wrap}}
@media print{.demo-context,.cockpit-rail,.demo-launch-card{display:none!important}}
/* 桌面驾驶舱首屏：保留可读字号，收紧重复说明和行间空间。 */
@media(min-width:1101px){
 .page-workspace>.demo-context{display:none}.page-workspace{padding:12px 18px;gap:10px}.cockpit-content,.cockpit-main,.cockpit-rail{gap:10px}.innovation-banner{padding:12px 26px;min-height:115px}.innovation-banner h1{line-height:1.3;margin:4px 0;font-size:25px}.innovation-banner p{line-height:1.5;margin:3px 0}.innovation-banner small{line-height:1.4}.banner-slogan{top:20px;font-size:16px}.cockpit-content .panel{padding:11px 13px;line-height:1.45}.cockpit-content .panel-head{margin-bottom:8px}.cockpit-metrics{gap:8px}.metric-card{min-height:76px;padding:10px 8px;line-height:1.35}.metric-card small{min-height:20px}.metric-card strong{font-size:24px}.app-matrix{padding-bottom:11px!important}.cockpit-apps{gap:8px}.cockpit-apps>a{min-height:53px;padding:9px 9px}.cockpit-apps .icon{height:34px;width:33px;padding:7px}.cockpit-charts .panel{min-height:204px}.trend-svg{height:143px;margin-top:4px}.chart-caption{line-height:1.4}.chart-data{font-size:9px;line-height:1.4}.distribution{min-height:169px}.cockpit-lower{gap:10px}.cockpit-lower>.panel{min-height:221px}.cockpit-latest li{padding:8px 6px;gap:6px;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 63px}.latest-labels{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) 63px;gap:6px;padding:5px 6px}.cockpit-latest li>div{flex-direction:row;flex-wrap:wrap;gap:3px;align-items:center;line-height:1.3}.cockpit-latest .tag{font-size:8px}.cockpit-latest li>div>span:first-child{font-size:9px}.cockpit-todos li{padding:9px 0;line-height:1.4}.cockpit-todos .todo-action{max-width:58px;font-size:8px}.cockpit-todos small{font-size:8px}.stats-definition{line-height:1.4}.cockpit-rail>.assistant-card{gap:8px}.assistant-status{padding:9px 9px 8px 29px}.assistant-card>small{font-size:9px}.source-pending{padding:10px}.risk-line{padding:9px 0}
}
@media(min-width:1101px){
 .innovation-banner>div{display:grid;gap:3px}.innovation-banner>div>span{line-height:1.3}.innovation-banner h1{margin:0;line-height:1.35;font-size:24px}.innovation-banner p{margin:0;line-height:1.45}.innovation-banner small{display:block;line-height:1.3}.innovation-banner{min-height:113px;padding:11px 26px}.metric-card{min-height:76px;padding:8px;}.metric-card small{min-height:18px;line-height:1.35}.cockpit-apps>a{padding:7px 9px;min-height:50px}.cockpit-apps .icon{height:31px;width:31px}.cockpit-charts .panel{min-height:202px}.trend-svg{height:117px}.distribution{min-height:163px}.cockpit-todos li{padding:6px 0;line-height:1.35}.cockpit-todos small{margin-top:2px}.todo-foot{margin-top:6px;font-size:8px}.cockpit-lower>.panel{min-height:221px}
}
/* 二级页面的检索和文件选择保持相同控件质感。 */
.panel-head>input[type=search],.filter-form input[type=search],.filter-bar input[type=search]{height:34px;border:1px solid #d7e5f6;border-radius:6px;background:#f8fbff;padding:0 11px;max-width:100%;font:inherit;font-size:12px;color:#416386}
.panel input[type=file]{max-width:100%;font:inherit;font-size:12px;border:1px dashed #cbdef5;background:#f7fbff;border-radius:6px;padding:8px}
.panel input[type=file]::file-selector-button{border:0;background:#e7f1ff;color:#327bdd;font:inherit;padding:5px 9px;border-radius:4px;margin-right:8px}

/* 统一业务入口，保留既有企业蓝和页面布局。 */
.location-trail{display:flex;flex-wrap:wrap;gap:8px;color:#7c91af;font-size:12px;margin-bottom:12px}.location-trail a{color:#527aad}
.project-next-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf2fa}
.project-lifecycle .actions,.workflow-next .actions{display:flex;flex-wrap:wrap;gap:8px}.project-lifecycle .process-flow{font-size:13px}.workflow-next>p{line-height:1.8;color:#47648a}
.cockpit-apps>a:nth-child(n+5){background:#f8fbff}.project-lifecycle .panel-head{flex-wrap:wrap;gap:10px}
@media(max-width:650px){.project-next-row{align-items:flex-start;flex-direction:column}.project-lifecycle .process-flow{overflow:auto;justify-content:flex-start}.location-trail{font-size:11px}}

/* 四业务演示中心：既有企业级卡片和按钮，不改变驾驶舱。 */
.application-entry{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;white-space:nowrap}.application-entry .icon{width:17px;height:17px}.entry-role-hint{font-size:12px;color:#67809f;max-width:230px}.demo-business-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.demo-business-card{min-width:0;scroll-margin-top:20px}.demo-business-card h2{font-size:19px}.demo-business-card p{line-height:1.8}.demo-route-line{font-size:12px;color:#5c7b9d}.demo-picker{display:flex;gap:8px;align-items:end}.demo-picker label{display:grid;gap:6px;min-width:0;flex:1}.demo-picker select{width:100%;max-width:100%;min-width:0}.demo-role-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:14px 0}.demo-role-links>div{background:#f4f8ff;border:1px solid #e1ecfc;border-radius:8px;padding:11px;display:grid;gap:8px;align-content:start}.demo-role-links small{color:#7186a1;line-height:1.7}.demo-next{border-left:3px solid #237deb;background:#edf5ff;padding:10px 13px}.demo-business-card details{margin-top:16px}.demo-business-card details ul{padding-left:20px;line-height:2}.handling-progress{flex-wrap:wrap}.offline-registration{padding:14px;border:1px solid #f2d4a4;border-radius:8px;margin:14px 0}.offline-registration summary{color:#8b610f;cursor:pointer}.page-actions{flex-wrap:wrap}.demo-business-card .actions{gap:8px;flex-wrap:wrap}
@media(max-width:900px){.demo-business-grid{grid-template-columns:minmax(0,1fr)}.demo-role-links{grid-template-columns:minmax(0,1fr)}.demo-picker{flex-wrap:wrap}.entry-role-hint{max-width:none}.handling-progress{gap:8px}}
