:root { --navy:#173242; --deep:#102731; --paper:#f5f6f1; --white:#fffefd; --mist:#e7ebea; --line:#d8e0de; --muted:#74817e; --ink:#17313a; --jade:#198b78; --jade-soft:#e2f2ec; --red:#ba4a3f; --red-soft:#faebe7; --amber:#ab791f; --amber-soft:#f9f1dd; --shadow:0 20px 55px rgba(17,43,49,.09); }
* { box-sizing:border-box; }
body { margin:0; min-width:320px; background:var(--paper); color:var(--ink); font:14px/1.45 Inter,"PingFang SC","Microsoft Yahei",system-ui,sans-serif; }
button,input { font:inherit; } button { cursor:pointer; } .shell { min-height:100vh; display:grid; grid-template-columns:248px minmax(0,1fr); }
.sidebar { position:sticky; top:0; height:100vh; padding:26px 16px 18px; color:#dce9e7; background:linear-gradient(155deg,#173a48 0%,#112833 62%,#0e2029 100%); display:flex; flex-direction:column; }
.brand { display:flex; align-items:center; gap:11px; color:white; text-decoration:none; padding:0 7px; } .brand-mark { width:38px; height:38px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.52); border-radius:50%; color:#f3d7a1; font:bold 20px Georgia,serif; position:relative; } .brand-mark::after { content:""; position:absolute; width:27px; border-top:2px solid #bb4b40; transform:rotate(-24deg); }
.brand b { display:block; font:600 21px/1.05 Georgia,"Songti SC",serif; letter-spacing:.08em; }.brand small { display:block; margin-top:4px; color:#a7b8b6; font-size:8px; letter-spacing:.18em; }.sidebar-note { margin:29px 8px 24px; color:#a8bbb7; font-size:12px; line-height:1.7; }.sidebar nav { display:grid; gap:4px; }.nav-item { width:100%; color:#a9bab6; background:transparent; border:0; border-radius:9px; padding:11px 10px; text-align:left; display:flex; gap:12px; align-items:center; transition:.18s; }.nav-item i { width:18px; color:#7eb9a9; text-align:center; font-style:normal; font-size:16px; }.nav-item:hover { color:white; background:rgba(255,255,255,.07); }.nav-item.active { color:white; background:rgba(234,247,243,.13); box-shadow:inset 2px 0 #d9ba7e; }.nav-item.active i { color:#eccf92; }.sidebar-foot { margin-top:auto; border-top:1px solid rgba(255,255,255,.14); padding:16px 8px 0; display:grid; gap:3px; }.pilot-chip { color:#f1c986; font-size:9px; letter-spacing:.12em; }.sidebar-foot b { margin-top:5px; font-weight:600; }.sidebar-foot small { color:#91a7a3; font-size:10px; }.reset-button { margin-top:13px; padding:0; color:#a8bbb7; border:0; background:transparent; text-align:left; font-size:11px; }
.main { min-width:0; }.topbar { height:78px; padding:15px clamp(22px,4vw,56px); border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; background:rgba(255,254,253,.78); backdrop-filter:blur(12px); position:sticky; top:0; z-index:3; }.topbar p { margin:2px 0 0; color:var(--muted); font-size:11px; }.kicker { color:#6f8781; font-size:9px; font-weight:800; letter-spacing:.15em; }.top-actions { display:flex; align-items:center; gap:10px; }.help-button,.line-button,.text-action { border:0; color:#4a635d; background:transparent; font-size:12px; }.help-button { padding:8px 10px; }.profile-button { width:34px; height:34px; border:0; border-radius:50%; background:#b64940; color:white; font-weight:700; }.profile-button span { display:none; }.content { max-width:1440px; margin:0 auto; padding:clamp(24px,4vw,52px); }
.page-head { display:flex; justify-content:space-between; align-items:flex-end; gap:18px; margin-bottom:25px; }.page-head h1 { margin:4px 0 6px; font:500 clamp(27px,3vw,40px)/1.12 Georgia,"Songti SC",serif; letter-spacing:-.04em; }.page-head p { margin:0; max-width:680px; color:var(--muted); }.primary-button { padding:11px 16px; color:white; border:1px solid var(--navy); border-radius:8px; background:var(--navy); box-shadow:0 6px 14px rgba(19,52,65,.15); white-space:nowrap; }.primary-button:hover { background:#204756; }.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:13px; }.metric-card,.card,.stat-strip,.notice-card { background:var(--white); border:1px solid var(--line); box-shadow:var(--shadow); }.metric-card { min-height:144px; padding:18px; border-radius:12px; }.metric-card span { color:var(--muted); font-size:12px; }.metric-card strong { display:block; margin:6px 0 1px; font:500 31px/1.05 Georgia,serif; }.metric-card em { color:var(--jade); font-style:normal; font-size:11px; }.metric-card p { color:#94a09d; font-size:10px; margin:15px 0 0; }.dashboard-grid { display:grid; grid-template-columns:1.3fr .9fr; gap:13px; margin-top:13px; }.dashboard-grid.lower { grid-template-columns:1fr 1fr; }.card { min-width:0; padding:21px; border-radius:12px; }.card-title { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }.card-title h2,.event-card h2,.policy-card h2 { margin:3px 0 0; font:500 22px/1.15 Georgia,"Songti SC",serif; letter-spacing:-.03em; }.text-action { color:#2d7468; white-space:nowrap; }.journey { margin:30px 0 21px; display:flex; align-items:flex-start; justify-content:space-between; }.journey-node { width:116px; text-align:center; color:#71817e; }.journey-node b { display:grid; place-items:center; width:43px; height:43px; margin:0 auto 8px; border:1px solid #bac9c5; border-radius:50%; background:#fff; font-size:11px; }.journey-node span { display:block; font-size:10px; line-height:1.35; }.journey-node.filled b { color:white; background:#3e776c; border-color:#3e776c; }.journey-node.active b { color:white; border-color:#ba4a3f; background:#ba4a3f; box-shadow:0 0 0 5px #faece8; }.journey i { height:1px; flex:1; min-width:16px; margin:21px -11px 0; background:#cdd8d5; }.quiet { margin:0; color:#75837f; font-size:11px; line-height:1.65; }.live-dot { color:#248d76; font-size:10px; }.live-dot::before { content:""; display:inline-block; width:6px; height:6px; margin-right:5px; border-radius:50%; background:#2aac8d; }.city-list { display:grid; gap:16px; margin:26px 0 18px; }.city-list div { position:relative; display:grid; grid-template-columns:54px 1fr; gap:9px; padding-bottom:8px; }.city-list b { font-size:12px; }.city-list span { color:var(--muted); font-size:11px; }.city-list i { position:absolute; left:0; right:0; bottom:0; height:3px; border-radius:8px; background:#e4ebe8; }.city-list i::after { content:""; display:block; width:var(--bar); height:100%; background:#2a8a78; border-radius:inherit; }.compact-row,.risk-row { display:grid; grid-template-columns:40px 1fr auto auto; gap:10px; align-items:center; padding:11px 0; border-bottom:1px solid #edf0ee; }.compact-row:last-child,.risk-row:last-child { border-bottom:0; }.avatar { width:35px; height:35px; display:grid; place-items:center; border-radius:50%; background:#dcece7; color:#28685d; font-weight:700; }.compact-row b,.risk-row b { display:block; font-size:12px; }.compact-row span,.risk-row small { display:block; color:var(--muted); font-size:10px; margin-top:2px; }.line-button { padding:6px 8px; border:1px solid #cbd8d4; border-radius:7px; background:white; }.line-button:hover { border-color:#659c90; color:#1e6c5d; }.money-flow { display:flex; align-items:center; gap:13px; margin:29px 0 15px; }.money-flow div { flex:1; padding:12px; border-radius:8px; background:#eef5f2; }.money-flow div:last-child { background:#f8efdf; }.money-flow span,.money-flow b { display:block; }.money-flow span { color:#73827e; font-size:10px; }.money-flow b { margin-top:4px; font-size:13px; }.money-flow i { color:#8c9f99; font-style:normal; }.page-head + .stat-strip { margin-top:-4px; }.stat-strip { display:grid; grid-template-columns:repeat(4,1fr); border-radius:10px; overflow:hidden; margin-bottom:14px; }.stat-strip div { padding:14px 18px; border-right:1px solid var(--line); }.stat-strip div:last-child { border:0; }.stat-strip strong,.stat-strip span { display:block; }.stat-strip strong { font:500 24px Georgia,serif; }.stat-strip span { color:var(--muted); font-size:10px; margin-top:3px; }.table-card { padding:0; overflow:hidden; }.table-toolbar { padding:15px 17px; display:flex; gap:12px; justify-content:space-between; align-items:center; border-bottom:1px solid var(--line); }.segmented { display:flex; gap:4px; }.segmented button { padding:6px 8px; border:0; border-radius:6px; background:transparent; color:var(--muted); font-size:11px; }.segmented button.active { color:var(--ink); background:#e7efec; }.search { display:flex; align-items:center; gap:6px; color:#84938e; }.search input { width:190px; border:1px solid #d4dfdc; border-radius:7px; outline:0; padding:7px 9px; background:white; }.data-table { min-width:790px; }.table-row { display:grid; grid-template-columns:1.25fr 1fr 1.28fr .78fr .86fr .5fr; gap:15px; align-items:center; min-height:68px; padding:11px 17px; border-bottom:1px solid #edf0ee; }.table-row:last-child { border-bottom:0; }.table-head { min-height:39px; color:#778683; font-size:10px; background:#f8faf9; }.table-row b,.table-row small { display:block; }.table-row b { font-size:12px; font-weight:650; }.table-row small { margin-top:2px; color:var(--muted); font-size:10px; }.check { display:inline-block; margin:2px 3px 2px 0; padding:2px 4px; color:#397467; background:#ecf5f1; border-radius:4px; font-size:9px; font-style:normal; }.chip { display:inline-flex; width:max-content; align-items:center; padding:4px 7px; border-radius:99px; color:#367265; background:var(--jade-soft); font-size:10px; white-space:nowrap; }.chip.amber { color:#8b651d; background:var(--amber-soft); }.chip.red { color:#a53b32; background:var(--red-soft); }.notice-card { display:flex; gap:18px; align-items:baseline; margin-top:14px; padding:14px 17px; border-radius:10px; box-shadow:none; color:#5e716d; font-size:11px; }.notice-card b { flex:0 0 auto; color:#31534c; }.intro-head { grid-template-columns:1.25fr .85fr 1fr .82fr .85fr .5fr; }.rule-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:14px; }.rule-grid article { padding:14px; background:#eaf1ef; border-radius:9px; }.rule-grid b,.rule-grid span { display:block; }.rule-grid b { color:#254b43; margin-bottom:5px; }.rule-grid span { color:#667a75; font-size:11px; line-height:1.5; }.event-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; }.event-card { display:flex; min-width:0; overflow:hidden; border:1px solid var(--line); border-radius:11px; background:var(--white); box-shadow:var(--shadow); }.event-date { flex:0 0 80px; padding:20px 10px; color:white; background:#285a66; text-align:center; }.event-date b,.event-date span { display:block; }.event-date b { font-size:13px; }.event-date span { margin-top:5px; color:#bed3d1; font-size:10px; }.event-body { flex:1; min-width:0; padding:17px; }.city-label { color:#3e816f; font-size:10px; }.event-card h2 { min-height:51px; margin:5px 0 4px; font-size:20px; }.event-card p { margin:0; color:var(--muted); font-size:11px; }.event-progress { height:4px; margin:17px 0 13px; background:#e4ebe8; border-radius:9px; }.event-progress i { display:block; width:var(--progress); height:100%; background:#2b8d79; border-radius:inherit; }.event-foot { display:flex; align-items:center; gap:7px; flex-wrap:wrap; }.event-foot b { margin-right:auto; font-size:12px; }.payment-head { grid-template-columns:1.25fr .78fr .72fr .85fr .72fr .7fr .65fr; }.finance strong { font-size:22px; }.risk-row { grid-template-columns:28px 1fr auto auto; }.risk-level { display:grid; place-items:center; width:26px; height:26px; border-radius:5px; color:#a83d34; background:#f8e7e4; font-size:10px; }.risk-level.medium { color:#8d681e; background:#fbf1dc; }.count { color:#a54b3e; font-size:11px; }.policy-list { display:grid; gap:13px; margin-top:21px; }.policy-list div { padding-bottom:13px; border-bottom:1px solid #e6ece9; }.policy-list div:last-child { border:0; padding-bottom:0; }.policy-list b,.policy-list span { display:block; }.policy-list b { color:#244b44; font-size:12px; }.policy-list span { margin-top:4px; color:#74827e; font-size:11px; line-height:1.55; }.empty-row { padding:24px 17px; color:var(--muted); font-size:12px; } #toast { position:fixed; z-index:20; bottom:24px; left:50%; max-width:min(90vw,560px); transform:translate(-50%,18px); opacity:0; padding:11px 15px; border-radius:8px; color:white; background:#1c3c47; box-shadow:0 12px 32px rgba(0,0,0,.2); font-size:12px; transition:.2s; pointer-events:none; } #toast.show { transform:translate(-50%,0); opacity:1; }
@media (max-width:1080px) { .metric-grid { grid-template-columns:repeat(2,1fr); }.event-grid { grid-template-columns:1fr; }.event-card h2 { min-height:auto; }.journey-node { width:92px; }.sidebar { width:210px; }.shell { grid-template-columns:210px minmax(0,1fr); } }
@media (max-width:760px) { .shell { display:block; }.sidebar { position:relative; width:auto; height:auto; padding:14px; }.sidebar-note,.sidebar-foot { display:none; }.sidebar nav { display:flex; overflow:auto; margin-top:14px; }.nav-item { width:auto; flex:0 0 auto; padding:8px 9px; font-size:11px; }.brand { padding:0; }.topbar { height:auto; padding:13px 18px; }.content { padding:24px 16px 32px; }.page-head { align-items:flex-start; flex-direction:column; }.primary-button { width:100%; }.metric-grid,.dashboard-grid,.dashboard-grid.lower,.rule-grid { grid-template-columns:1fr; }.journey { display:none; }.thread-card .quiet { margin-top:15px; }.stat-strip { grid-template-columns:1fr 1fr; }.stat-strip div:nth-child(2) { border-right:0; }.stat-strip div:nth-child(n+3) { border-top:1px solid var(--line); }.table-card { overflow:auto; }.notice-card { align-items:flex-start; flex-direction:column; gap:5px; }.top-actions .help-button { display:none; } }
.staging-callout { display:flex; gap:14px; align-items:flex-start; margin-bottom:14px; padding:13px 16px; border:1px solid #e9d6a6; border-radius:10px; color:#765c23; background:#fff9e8; font-size:11px; line-height:1.55; }.staging-callout b { flex:0 0 auto; color:#684d16; }.rank-list { display:grid; gap:15px; margin:25px 0 18px; }.rank-list div { padding:11px 12px; border-radius:8px; background:#eef5f2; }.rank-list b,.rank-list span { display:block; }.rank-list b { color:#285c53; font-size:12px; }.rank-list span { margin-top:3px; color:#6f807c; font-size:11px; }.greet-row { grid-template-columns:1.4fr .8fr .8fr .8fr .8fr .45fr; }.date-row { grid-template-columns:1.25fr 1fr 1.15fr .8fr .65fr .45fr; }.audit-row { grid-template-columns:.75fr 1fr 1.15fr .7fr 1.5fr .45fr; }.sidebar .nav-item { padding-left:12px; }
.date-row { grid-template-columns:1.2fr .92fr 1.1fr .65fr .7fr .6fr .8fr; }

/* 联系方式队列只显示脱敏依据，避免后台成为新的隐私扩散面。 */
.contact-risk-card .card-title { padding:18px 20px 13px; border-bottom:1px solid var(--line); }
.contact-risk-table { min-width:980px; }.contact-risk-row { grid-template-columns:1.25fr .72fr 1.25fr .86fr 1.25fr .65fr; }
.contact-risk-row small { line-height:1.5; }.contact-risk-row .danger { color:#a34238; border-color:#e7c3bd; background:#fff9f7; }

/* 审核结果必须在列表内保留简短、可核对的反馈。 */
.review-note { max-width:180px; line-height:1.4; }

/* Alpha.5：自动审核为主，人工队列只承接风险与抽样。 */
.review-routing { display:grid; grid-template-columns:repeat(4,1fr); gap:1px; margin-bottom:14px; border:1px solid #111; background:#111; }
.review-routing div { padding:13px 15px; background:#fff; }.review-routing b,.review-routing span { display:block; }.review-routing b { font-size:14px; }.review-routing span { margin-top:3px; color:#666; font-size:10px; }
.data-table.review-row .table-row { grid-template-columns:1.15fr 1fr 1.45fr .85fr; }
.review-row > span:last-child { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }.review-finished { color:#777; font-size:11px; }
@media (max-width:760px) { .review-routing { grid-template-columns:1fr 1fr; } }
