:root {
  --ink: #1f2724;
  --muted: #78817d;
  --soft: #a6afaa;
  --line: #e4e7e1;
  --surface: #ffffff;
  --canvas: #f7f7f3;
  --sage: #bdd9c4;
  --sage-deep: #2f6b50;
  --sage-dark: #1d4d3a;
  --amber: #f2c897;
  --coral: #e98567;
  --navy: #274a5c;
  --shadow: 0 18px 42px rgba(40, 56, 47, .07);
  --radius: 18px;
  font-family: 'Manrope', 'Noto Sans SC', sans-serif;
  color: var(--ink);
  background: var(--canvas);
  font-synthesis: none;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 1100px; background: var(--canvas); }
button, input, select, textarea { font: inherit; }
[hidden] { display: none !important; }
button { cursor: pointer; }

.app-shell { display: flex; min-height: 100vh; }
.sidebar { width: 254px; background: #eff1ec; border-right: 1px solid #e1e5de; padding: 28px 17px 20px; display: flex; flex-direction: column; flex-shrink: 0; }
.brand-lockup { display: flex; align-items: center; gap: 11px; padding: 0 14px 32px; }
.brand-mark { display: grid; place-items: center; width: 35px; height: 35px; color: #f8fbf4; background: var(--sage-dark); border-radius: 10px 10px 10px 3px; font-family: 'Noto Serif SC', serif; font-weight: 900; font-size: 17px; }
.brand-name { font-family: 'Noto Serif SC', serif; font-weight: 700; font-size: 18px; letter-spacing: .08em; }
.brand-caption { font: 500 8px 'DM Mono', monospace; letter-spacing: .12em; color: #84908a; margin-top: 2px; }
.workspace-switcher { background: #e5e9e2; border: 1px solid #dfe4dc; border-radius: 12px; display: flex; align-items: center; padding: 10px; gap: 9px; margin: 0 2px 29px; }
.workspace-avatar, .user-avatar, .avatar-button { display: grid; place-items: center; background: #d7e6d6; color: var(--sage-deep); border-radius: 9px; font-weight: 800; }
.workspace-avatar { width: 31px; height: 31px; font-size: 13px; }
.workspace-copy { min-width: 0; flex: 1; display: grid; gap: 2px; }
.workspace-copy strong { font-size: 11px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.workspace-copy span { color: var(--muted); font-size: 9px; white-space: nowrap; }
.chevron { font-size: 19px; color: #93a099; margin-top: -5px; }
.primary-nav, .secondary-nav { display: grid; gap: 5px; }
.nav-item { appearance: none; border: 0; background: transparent; display: flex; align-items: center; gap: 13px; height: 42px; border-radius: 10px; padding: 0 13px; color: #6d7772; text-align: left; font-size: 12px; transition: all .18s ease; }
.nav-item:hover { background: rgba(255,255,255,.55); color: var(--ink); }
.nav-item.active { color: var(--sage-dark); background: #fff; box-shadow: 0 5px 14px rgba(45, 74, 57, .05); font-weight: 700; }
.nav-icon { width: 16px; text-align: center; font-size: 16px; font-weight: 400; }
.nav-count { margin-left: auto; font: 10px 'DM Mono', monospace; color: #a3ada6; }
.nav-beta { margin-left: auto; padding: 3px 6px; border: 1px solid #dce8dd; border-radius: 999px; color: #7c9a81; background: #f1f7f1; font: 9px 'DM Mono', monospace; }
.sidebar-section-label { padding: 30px 14px 11px; text-transform: uppercase; letter-spacing: .12em; font: 10px 'DM Mono', monospace; color: #a5aea8; }
.sidebar-bottom { margin-top: auto; }
.protocol-card { background: #e3ece2; border-radius: 12px; padding: 14px; margin: 0 2px 20px; }
.protocol-top { color: var(--sage-dark); display: flex; align-items: center; gap: 7px; font-size: 10px; font-weight: 700; }
.status-dot { width: 6px; height: 6px; background: #61ad7d; border-radius: 50%; box-shadow: 0 0 0 4px rgba(97,173,125,.13); }
.protocol-card p { color: #789080; font-size: 10px; line-height: 1.65; margin: 9px 0 11px; }
.text-button, .subtle-button { border: 0; background: transparent; padding: 0; color: var(--sage-deep); font-size: 10px; font-weight: 700; }
.text-button span, .subtle-button span { font-size: 14px; margin-left: 4px; }
.user-row { border-top: 1px solid #dfe4dd; padding: 16px 5px 0; display: flex; align-items: center; gap: 9px; }
.user-avatar { width: 29px; height: 29px; border-radius: 50%; font-size: 11px; }
.user-row div:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.user-row strong { font-size: 11px; }
.user-row span { color: #89948d; font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.more { margin-left: auto; color: #a5aea8; letter-spacing: 2px; }

.main-content { min-width: 0; flex: 1; }
.topbar { height: 80px; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; padding: 0 48px; }
.breadcrumb { display: flex; align-items: center; gap: 10px; color: #a4aca7; font-size: 11px; }
.breadcrumb strong { color: var(--ink); font-weight: 700; }
.breadcrumb-separator { color: #ccd1cb; }
.topbar-actions { display: flex; align-items: center; gap: 10px; }
.icon-button, .avatar-button { border: 1px solid var(--line); background: #fff; color: #77817b; width: 34px; height: 34px; border-radius: 10px; display: grid; place-items: center; font-size: 14px; }
.icon-button:hover { color: var(--sage-deep); border-color: #bed4c3; }
.notification { position: relative; }
.notification i { position: absolute; width: 5px; height: 5px; background: var(--coral); border-radius: 50%; top: 7px; right: 8px; border: 1px solid #fff; }
.avatar-button { border: 0; border-radius: 50%; width: 32px; height: 32px; background: var(--sage-dark); color: #fff; font-size: 11px; }
.page-content { padding: 39px 48px 60px; max-width: 1530px; margin: 0 auto; }
.hero-row { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 30px; }
.eyebrow { display: flex; align-items: center; gap: 9px; color: #9aa39e; text-transform: uppercase; letter-spacing: .1em; font: 10px 'DM Mono', monospace; }
.eyebrow-line { height: 1px; width: 23px; background: #b7c5ba; }
h1, h2, p { margin: 0; }
h1 { margin-top: 11px; font-size: clamp(28px, 3.1vw, 40px); letter-spacing: -.06em; line-height: 1.18; font-weight: 800; }
.serif-dot { font-family: 'Noto Serif SC', serif; color: var(--sage-deep); }
.hero-subtitle { color: #87918b; margin-top: 10px; font-size: 13px; }
.hero-subtitle strong { color: var(--sage-deep); }
.primary-button, .secondary-button { border: 0; border-radius: 10px; height: 42px; padding: 0 18px; font-size: 11px; font-weight: 700; transition: all .18s ease; }
.primary-button { color: #f8faf5; background: var(--sage-dark); box-shadow: 0 8px 17px rgba(36, 87, 62, .13); }
.primary-button:hover { background: #285f48; transform: translateY(-1px); box-shadow: 0 11px 23px rgba(36,87,62,.19); }
.plus { font-size: 17px; vertical-align: -1px; margin-right: 6px; font-weight: 400; }
.secondary-button { color: var(--sage-dark); background: #edf2ed; }
.secondary-button:hover { background: #e3ebe3; }

.metric-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 41px; }
.metric-card { min-height: 156px; border: 1px solid #e6e9e4; border-radius: var(--radius); background: var(--surface); padding: 22px 20px 17px; position: relative; overflow: hidden; }
.featured-metric { background: var(--sage-dark); color: #f5f8f2; border-color: var(--sage-dark); }
.warm-metric { background: #fbf2e8; border-color: #f3e5d4; }
.metric-label { font-size: 10px; color: #9ba39f; font-weight: 700; letter-spacing: .02em; }
.featured-metric .metric-label { color: #bed8c5; }
.warm-metric .metric-label { color: #a88d77; }
.metric-value { font: 800 32px 'Manrope', sans-serif; letter-spacing: -.08em; margin-top: 12px; }
.metric-value span { font-size: 12px; letter-spacing: 0; font-weight: 600; margin-left: 2px; }
.metric-foot { display: flex; align-items: center; gap: 8px; color: #a2aba5; font-size: 9px; margin-top: 11px; }
.featured-metric .metric-foot { color: #a6c8ae; }
.warm-metric .metric-foot { color: #b4957d; }
.trend { font-weight: 800; }
.trend.up { color: #5ea378; }
.featured-metric .trend.up { color: #b9edbe; }
.trend.urgent { color: #cf805f; }
.trend.neutral { color: var(--sage-deep); }
.metric-sparkline { position: absolute; bottom: 19px; right: 18px; height: 41px; display: flex; align-items: end; gap: 4px; opacity: .85; }
.metric-sparkline span { width: 4px; border-radius: 4px 4px 1px 1px; background: #71b783; }
.metric-sparkline span:nth-child(4), .metric-sparkline span:nth-child(6) { background: #cae6ce; }
.metric-line { background: #ebefea; height: 5px; border-radius: 5px; position: absolute; left: 20px; right: 20px; bottom: 22px; }
.metric-line i, .metric-progress i { display: block; height: 100%; background: var(--sage); border-radius: inherit; }
.metric-ring { position: absolute; right: 20px; bottom: 16px; border: 4px solid #e8efe9; border-top-color: #62a875; border-right-color: #62a875; height: 39px; width: 39px; border-radius: 50%; display: grid; place-items: center; font: 9px 'DM Mono', monospace; color: var(--sage-deep); }
.metric-progress { height: 5px; background: #f1e2d0; border-radius: 5px; position: absolute; left: 20px; right: 20px; bottom: 22px; }
.metric-progress i { background: var(--amber); }

.content-grid { display: grid; grid-template-columns: minmax(0, 1.56fr) minmax(285px, .74fr); gap: 44px; }
.section-heading { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 17px; }
.section-heading h2 { font-size: 15px; letter-spacing: -.04em; }
.section-heading p { font-size: 10px; color: #a0a8a3; margin-top: 5px; }
.case-list { border-top: 1px solid var(--line); }
.case-row { min-height: 106px; padding: 17px 14px 17px 0; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 15px; transition: all .18s ease; }
.case-row:hover { padding-left: 8px; background: rgba(255,255,255,.42); }
.case-flag { width: 6px; height: 44px; border-radius: 5px; background: var(--sage); flex-shrink: 0; }
.case-flag.coral { background: var(--coral); }.case-flag.amber { background: var(--amber); }.case-flag.navy { background: #91b8c4; }
.case-main { flex: 1; min-width: 0; }
.case-topline { display: flex; gap: 8px; align-items: center; margin-bottom: 6px; }
.case-code { color: #a2aba5; font: 9px 'DM Mono', monospace; }.case-badge, .tag { font-size: 9px; color: #6e8b77; background: #eef5ee; border-radius: 4px; padding: 3px 6px; }.case-badge.urgent { color: #b46851; background: #fbede9; }.case-badge.blue { color: #52748a; background: #edf4f6; }
.case-name { font-size: 12px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.case-meta { display: flex; gap: 15px; color: #9ba39e; font-size: 9px; margin-top: 8px; }
.case-meta span::before { content: '·'; margin-right: 5px; color: #bcc9bf; }.case-meta span:first-child::before { content: ''; margin: 0; }
.case-side { text-align: right; width: 130px; flex-shrink: 0; }.fit-score { font-size: 11px; font-weight: 800; color: var(--sage-deep); }.fit-score span { color: #aab4ad; font-size: 9px; font-weight: 500; }.case-status { color: #9ba39e; font-size: 9px; margin-top: 7px; }.case-status.active { color: #b96d53; }.row-arrow { color: #c3cbc5; font-size: 19px; margin-left: 7px; }
.network-heading { margin-top: 41px; }
.lawyer-strip { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.lawyer-card { border: 1px solid var(--line); background: #fff; border-radius: 13px; padding: 14px; min-height: 128px; transition: transform .18s ease, box-shadow .18s ease; }.lawyer-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); }.lawyer-head { display: flex; align-items: center; gap: 9px; }.lawyer-avatar { width: 29px; height: 29px; display:grid;place-items:center;border-radius:50%;font-weight:800;font-size:10px; }.lawyer-avatar.green { background:#dcebdc;color:#4d8660 }.lawyer-avatar.blue { background:#dbe8ec;color:#50788b }.lawyer-avatar.gold { background:#f5e5cb;color:#9b7349 }.lawyer-name { font-size: 11px; font-weight: 700; }.lawyer-firm { font-size: 8px; color:#a0a9a3;margin-top:2px }.lawyer-fit { display:flex; align-items:center; justify-content:space-between; margin-top:14px; font-size:9px;color:#9ca6a0 }.lawyer-fit strong {color:var(--sage-deep);font-size:11px}.tags { display:flex;gap:4px;margin-top:9px;flex-wrap:wrap }.tag { font-size:8px; padding:3px 5px }
.right-column { min-width: 0; }.dots-button { border:0;background:transparent;color:#aab2ad;font-weight:800;letter-spacing:2px }.timeline { border-top:1px solid var(--line); padding-top:3px; }.timeline-item { display:grid; grid-template-columns:18px 1fr; gap:11px; padding:17px 0; border-bottom:1px solid var(--line); }.timeline-mark { width: 18px;height:18px;display:grid;place-items:center;border-radius:50%;background:#eef4ee;color:var(--sage-deep);font-size:10px }.timeline-item:nth-child(2) .timeline-mark{background:#f9eee6;color:#bf7458}.timeline-item:nth-child(3) .timeline-mark{background:#edf3f5;color:#5b8494}.timeline-item:nth-child(4) .timeline-mark{background:#f4eddf;color:#aa814e}.timeline-copy {font-size:10px;color:#707c75;line-height:1.6}.timeline-copy strong{color:var(--ink);font-weight:700}.timeline-time { display:block;color:#aab2ad;font:9px 'DM Mono',monospace;margin-top:7px }.principle-card { background: var(--sage-dark); color:#ecf4eb;border-radius:var(--radius);padding:21px 22px 20px;margin-top:29px;min-height:167px;position:relative;overflow:hidden }.principle-mark{position:absolute;right:16px;top:-15px;font:100px 'Noto Serif SC',serif;color:rgba(190,225,194,.15);line-height:1}.principle-card p{position:relative;font:600 15px/1.7 'Noto Serif SC',serif;letter-spacing:-.03em;max-width:220px}.principle-card span{display:block;position:relative;color:#9bc6a5;font:9px 'DM Mono',monospace;margin-top:18px}

.modal-backdrop { position: fixed; inset: 0; background: rgba(24, 36, 29, .28); backdrop-filter: blur(5px); display:grid; place-items:center; z-index:5; padding:20px }.modal-backdrop[hidden]{display:none}.modal{position:relative;background:#fff;border-radius:22px;box-shadow:0 25px 80px rgba(26,40,31,.2);width:min(650px, calc(100vw - 40px));padding:38px}.case-modal { max-height:calc(100vh - 32px); overflow-y:auto; overscroll-behavior:contain; }.modal-close{position:absolute;right:18px;top:16px;border:0;background:#f2f5f1;color:#84908a;width:30px;height:30px;border-radius:50%;font-size:21px;line-height:1}.modal-kicker{color:var(--sage-deep);font:10px 'DM Mono',monospace;letter-spacing:.1em;text-transform:uppercase}.modal h2{font:800 28px 'Noto Serif SC',serif;letter-spacing:-.06em;margin-top:12px}.modal-intro{color:#89948d;font-size:11px;line-height:1.7;margin:10px 0 24px;max-width:480px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px 14px}.form-grid label{display:grid;gap:8px}.form-grid label span{font-size:10px;font-weight:800;color:#68766e}.form-grid input,.form-grid select,.form-grid textarea{border:1px solid #dde5de;border-radius:9px;background:#fbfcfa;color:var(--ink);padding:0 12px;height:40px;outline:none;font-size:11px}.form-grid textarea{height:78px;padding:11px 12px;resize:vertical}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:#79a583;box-shadow:0 0 0 3px #eaf3ea}.full-width{grid-column:1 / -1}.privacy-note{display:flex;gap:10px;background:#f1f6f0;padding:12px 13px;border-radius:10px;margin-top:20px;color:var(--sage-deep)}.privacy-note>span{font-size:17px}.privacy-note strong{font-size:10px}.privacy-note p{color:#869a8a;font-size:9px;margin-top:3px}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:24px;position:sticky;bottom:-38px;background:linear-gradient(to bottom, rgba(255,255,255,0), #fff 16px);padding:22px 0 0;z-index:2}.detail-modal{width:min(820px,calc(100vw - 40px));max-height:calc(100vh - 32px);padding:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain}.detail-header{padding:35px 38px 27px;background:#f3f7f1;border-bottom:1px solid #e2ebe0}.detail-kicker{font:9px 'DM Mono',monospace;color:#78927d;letter-spacing:.1em}.detail-title{font:800 24px 'Noto Serif SC',serif;letter-spacing:-.05em;margin-top:10px}.detail-sub{font-size:11px;color:#87948b;margin-top:8px}.detail-body{padding:29px 38px 34px}.detail-grid{display:grid;grid-template-columns:1.3fr .7fr;gap:30px}.detail-label{font:9px 'DM Mono',monospace;color:#a2aca4;letter-spacing:.08em;margin-bottom:12px}.detail-brief{font:13px/1.8 'Noto Serif SC',serif;color:#4c5b52}.detail-facts{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:24px}.fact{border-top:1px solid #e8ece7;padding-top:9px}.fact span{display:block;color:#a2aca4;font-size:9px}.fact strong{display:block;font-size:11px;margin-top:4px}.match-panel{background:#f8faf7;border:1px solid #e3ebe2;border-radius:15px;padding:17px}.match-panel h3{font-size:12px;margin:0}.match-note{color:#87958b;font-size:9px;line-height:1.6;margin:7px 0 15px}.match-lawyer{display:flex;gap:10px;align-items:center;border-top:1px solid #e4ece3;padding:12px 0}.match-lawyer-avatar{width:29px;height:29px;border-radius:50%;display:grid;place-items:center;background:#dbead9;color:#4f8660;font-size:10px;font-weight:800}.match-lawyer strong{display:block;font-size:10px}.match-lawyer span{display:block;color:#9ba89e;font-size:8px;margin-top:3px}.match-percent{margin-left:auto;color:var(--sage-deep);font:700 12px 'DM Mono',monospace}.reason-list{display:grid;gap:8px;margin-top:13px}.reason{display:flex;gap:7px;color:#6f8174;font-size:9px;line-height:1.45}.reason b{color:#70a177}.detail-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:26px}
.success-button { background: #5a9970; }
.toast { position: fixed; z-index: 8; bottom: 28px; left: 50%; transform: translate(-50%, 12px); background: #243f32; color: #edf6ed; border-radius: 10px; padding: 12px 18px; font-size: 11px; box-shadow: 0 12px 34px rgba(27, 54, 38, .2); opacity: 0; transition: all .22s ease; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast-with-action { display:flex; align-items:center; gap:14px; white-space:nowrap; }
.toast-action { border:1px solid rgba(237,246,237,.42); border-radius:7px; background:rgba(255,255,255,.08); color:#edf6ed; padding:6px 9px; font:600 10px inherit; cursor:pointer; }
.toast-action:hover { background:rgba(255,255,255,.16); }
.toast-action:disabled { opacity:.6; cursor:wait; }

.demo-banner { display:flex; align-items:center; gap:9px; color:#78897e; background:#eef5ed; border:1px solid #dce9dc; border-radius:10px; padding:10px 13px; margin:-8px 0 25px; font-size:10px; }
.demo-banner strong { color:var(--sage-deep); font-size:10px; }
.demo-banner.is-loading { background:#f5f5ef; border-color:#e6e6db; color:#8a918b; }
.demo-banner.is-loading strong { color:#70776f; }
.demo-banner.is-offline { background:#fff7ed; border-color:#f0dfc5; color:#9a7b53; }
.demo-banner.is-offline strong { color:#9a6330; }
.demo-banner.is-empty { background:#f7f7f3; border-color:#e4e4dc; }
.data-source-retry { margin-left:auto; border:0; background:transparent; color:#9a6330; font:600 10px Manrope, sans-serif; cursor:pointer; padding:2px 0; }
.data-source-retry:hover { text-decoration:underline; }
.auth-modal { max-width:520px; }
.auth-select-label { display:grid; gap:8px; color:#6f7f75; font-size:11px; font-weight:700; }
.auth-select-label select { border:1px solid var(--line); border-radius:10px; background:#fff; color:#26352c; padding:12px; font:500 13px Manrope, sans-serif; }
.auth-permission-note { margin-top:16px; padding:12px 14px; border-radius:10px; background:#f1f6f0; color:#5f7566; font-size:11px; line-height:1.6; }
.audit-live { color:#5d8b70; font-size:10px; font-weight:700; }
.audit-log-list { display:grid; gap:8px; }
.audit-log-row { display:grid; grid-template-columns:1fr auto; gap:12px; padding:11px 12px; border:1px solid var(--line); border-radius:10px; background:#fbfcf8; }
.audit-log-row strong { display:block; color:#35463b; font-size:11px; }
.audit-log-row small { display:block; margin-top:4px; color:#8a968d; font-size:10px; }
.audit-log-time { color:#9aa69e; font:10px 'DM Mono', monospace; white-space:nowrap; }
.audit-empty { padding:18px 12px; border:1px dashed #d9e0d7; border-radius:10px; color:#8a968d; font-size:11px; text-align:center; }
.review-status { font-size:9px; }
.review-status.approved { color:#4f8665; }
.review-status.blocked { color:#af5c4e; }
.review-state-card { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:12px 0 16px; padding:13px 15px; border:1px solid var(--line); border-radius:12px; background:#fbfcf8; }
.review-state-card div { display:grid; gap:5px; }
.review-state-card span { color:#8a978e; font-size:10px; }
.review-state-card strong { color:#6f806f; font-size:13px; }
.review-state-card strong.approved { color:#4f8665; }
.review-state-card strong.blocked { color:#af5c4e; }
.review-state-card small { grid-column:1 / -1; color:#9aa69e; font-size:10px; }
.material-file-list { display:grid; gap:8px; margin-bottom:14px; padding-bottom:14px; border-bottom:1px solid var(--line); }
.material-file-heading { display:flex; justify-content:space-between; align-items:center; color:#53675a; font-size:11px; }
.material-file-heading span { color:#9aa69e; font-size:10px; }
.material-file-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; align-items:center; gap:10px; padding:10px 11px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.material-file-row strong { display:block; color:#4d6053; font-size:10px; }
.material-file-row small { display:block; margin-top:3px; color:#9aa69e; font-size:9px; }
.material-file-row label { display:flex; align-items:center; gap:4px; color:#758278; font-size:9px; white-space:nowrap; }
.material-file-actions { grid-column:1 / -1; display:flex; align-items:center; gap:8px; padding-top:2px; }
.material-file-actions span { color:#a2ada6; font-size:9px; }
.file-action-button { border:0; border-radius:7px; padding:5px 8px; background:#eaf4ec; color:#3e7655; font:inherit; font-size:9px; cursor:pointer; }
.file-action-button.secondary { background:#f6f1e6; color:#8b6a31; }
.customer-consent-evidence-link { flex-basis:100%; width:max-content; }
.material-upload-box { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:12px; padding:11px 12px; border:1px dashed #cbd9ce; border-radius:9px; background:#fbfdfb; }
.material-upload-box strong { display:block; color:#53675a; font-size:10px; }
.material-upload-box small { display:block; margin-top:4px; color:#9aa69e; font-size:9px; }
.file-upload-button { flex:0 0 auto; padding:7px 10px; border-radius:7px; background:#eaf4ec; color:#3e7655; font-size:9px; cursor:pointer; }
.file-upload-button input { display:none; }
.material-file-meta { grid-column:1 / -1; display:flex; align-items:center; gap:7px; color:#9aa69e; font-size:9px; }
.material-file-meta small { flex:1; color:#9aa69e; }
.material-file-meta button { border:0; background:transparent; color:#6b8270; font:inherit; font-size:9px; cursor:pointer; padding:2px 0; }
.material-file-meta button:last-child { color:#b4796c; }
.parse-status { padding:3px 6px; border-radius:5px; background:#f4f0e5; color:#92783f; white-space:nowrap; }
.parse-status.ready { background:#eaf4ec; color:#3e7655; }
.parse-status.review { background:#fff0e9; color:#b86f59; }
.material-review-details { grid-column:1 / -1; color:#718078; font-size:9px; }
.material-review-details summary { cursor:pointer; color:#4f7a5c; }
.material-review-details > div { display:flex; flex-wrap:wrap; gap:6px 12px; padding-top:7px; }
.material-review-details span b { margin-right:4px; color:#9aa69e; font-weight:500; }
.review-edit-button { margin-left:8px; border:0; background:transparent; color:#3e7655; font:inherit; font-size:9px; cursor:pointer; }
.material-review-edit { grid-column:1 / -1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:7px; padding-top:8px; }
.material-review-edit label { display:flex; align-items:center; gap:6px; color:#8b9890; font-size:9px; }
.material-review-edit input { min-width:0; flex:1; border:1px solid var(--line); border-radius:6px; padding:5px 6px; color:#53675a; font:inherit; font-size:9px; }
.material-review-edit > div { grid-column:1 / -1; display:flex; gap:8px; justify-content:flex-end; }
.material-review-edit button { border:0; border-radius:6px; padding:5px 8px; background:#eef3ee; color:#6f7f73; font:inherit; font-size:9px; cursor:pointer; }
.material-review-edit button:last-child { background:#eaf4ec; color:#3e7655; }
.adaptation-change-card { margin-bottom:12px; padding:10px 11px; border:1px solid #d9e7da; border-radius:9px; background:#f7fbf7; }
.adaptation-change-card strong { display:block; color:#4f7659; font-size:10px; }
.adaptation-change-card p { margin:5px 0 2px; color:#5f7164; font-size:9px; line-height:1.5; }
.adaptation-change-card small { color:#a0aba3; font-size:8px; }
.match-delta { display:block; margin-top:3px; font-size:8px; font-weight:500; }
.match-delta.up { color:#4e8a61; }
.match-delta.down { color:#b8796b; }
.match-breakdown { display:flex; flex-wrap:wrap; align-items:center; gap:5px; margin:7px 0 9px; }
.match-breakdown span { padding:3px 5px; border-radius:5px; background:#f3f6f3; color:#7b8b80; font-size:8px; line-height:1.2; }
.match-breakdown span.positive { background:#eaf4ec; color:#4e8a61; }
.match-breakdown em { color:#a0aba3; font-size:8px; font-style:normal; }
.match-gaps { display:grid; gap:4px; margin-top:8px; padding:7px 8px; border-radius:6px; background:#fff8ed; color:#9b7848; font-size:8px; line-height:1.4; }
.match-gaps strong { font-weight:800; }
.match-gaps span { display:block; }
.match-rule-version { display:block; margin-top:7px; color:#a0aba3; font:8px 'DM Mono',monospace; }
.demo-pulse { width:7px; height:7px; border-radius:50%; background:#6aa677; box-shadow:0 0 0 4px rgba(106,166,119,.13); flex-shrink:0; }
.section-actions { display:flex; align-items:center; gap:15px; }
.case-filter { border:1px solid #e1e7e1; background:#fff; color:#718078; border-radius:7px; padding:6px 24px 6px 9px; font-size:9px; outline:none; }
.case-filter:focus { border-color:#8caf91; }
.case-role { color:#66866d; background:#eef5ed; border-radius:4px; padding:3px 6px; font-size:9px; }
.empty-state { display:grid; gap:6px; padding:35px 15px; color:#9ba69f; font-size:10px; border-bottom:1px solid var(--line); }
.empty-state strong { color:#65756b; font-size:12px; }
.detail-status-line { display:flex; align-items:center; gap:9px; color:#8b9990; font-size:10px; margin-bottom:22px; }
.status-chip { color:#b46851; background:#fbede9; border-radius:5px; padding:5px 8px; font-size:9px; font-weight:800; }
.status-chip.active { color:#5c8868; background:#edf5ed; }
.match-option { border-top:1px solid #e4ece3; padding-bottom:10px; }
.match-option.recommended { background:rgba(221,238,221,.34); margin:0 -8px; padding:0 8px 10px; border-radius:8px; }
.match-option .reason-list { margin-top:3px; }
.match-option .match-lawyer { padding-bottom:8px; }
.match-panel-heading { display:flex; justify-content:space-between; gap:10px; align-items:flex-start; }
.match-panel-heading .match-note { margin-bottom:10px; }
.match-count { color:#8ca095; background:#eef5ed; border-radius:5px; padding:5px 6px; white-space:nowrap; font:9px 'DM Mono',monospace; }
.choose-lawyer { width:100%; border:1px solid #cfe1d0; background:#fff; color:#5e8767; border-radius:7px; padding:7px 8px; margin-top:10px; font-size:9px; font-weight:800; text-align:left; }
.choose-lawyer:hover { background:#edf6ed; border-color:#92b698; }
.choose-lawyer span { float:right; font-size:13px; line-height:10px; }
.match-boundary { display:flex; gap:7px; align-items:flex-start; border-top:1px solid #e4ece3; margin-top:11px; padding-top:11px; color:#8a9990; }.match-boundary span { color:#6d9875; font-size:13px; }.match-boundary p { font-size:8px; line-height:1.55; }
.workflow-block { border-top:1px solid #e8ece7; margin-top:27px; padding-top:21px; }
.workflow-steps { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.workflow-steps span { color:#a0aaa3; background:#f4f6f3; border-radius:6px; padding:7px 9px; font-size:9px; }
.workflow-steps span.done { color:#5e8769; background:#edf5ed; }
.workflow-steps span.current { color:#a8654d; background:#fbede8; box-shadow:0 0 0 1px #f0d4ca; }
.proposal-panel { border:1px solid #dce9dc; background:#f7fbf6; border-radius:13px; padding:17px; margin-top:23px; }
.proposal-heading { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; }.proposal-heading h3 { font-size:13px; margin:0; }.proposal-heading p { color:#8b9990; font-size:9px; margin-top:5px; }.proposal-chip { color:#a2664e; background:#fbede8; border-radius:5px; padding:5px 7px; font-size:9px; font-weight:800; white-space:nowrap; }
.proposal-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px 18px; border-top:1px solid #e3ece2; margin-top:15px; padding-top:14px; }.proposal-grid div { min-width:0; }.proposal-grid span { display:block; color:#9aa79e; font-size:8px; }.proposal-grid strong { display:block; color:#516257; font-size:10px; line-height:1.5; margin-top:4px; }
.permission-row { display:flex; align-items:flex-start; gap:7px; border-top:1px solid #e3ece2; margin-top:14px; padding-top:12px; color:#6f9075; }.permission-row span { font-size:13px; }.permission-row p { color:#899a8e; font-size:9px; line-height:1.5; }
.proposal-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:15px; }
.activation-panel { border:1px solid #e9dcc1; background:#fffaf0; border-radius:13px; padding:17px; margin-top:18px; }.activation-heading { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; }.activation-heading h3 { font-size:13px; margin:0; color:#665942; }.activation-heading p { color:#9c8d75; font-size:9px; line-height:1.55; margin-top:5px; }.activation-chip { color:#a27642; background:#f6ead4; border-radius:5px; padding:5px 7px; font-size:9px; font-weight:800; white-space:nowrap; }.activation-chip.ready { color:#5b8b66; background:#e7f1e4; }.activation-checklist { display:grid; grid-template-columns:1fr 1fr; gap:8px; border-top:1px solid #eee2cc; margin-top:14px; padding-top:13px; }.activation-check { display:flex; align-items:center; gap:8px; min-width:0; padding:9px 10px; border:1px solid #eee5d4; border-radius:9px; background:#fffdf8; }.activation-check > span { width:20px; height:20px; display:grid; place-items:center; border-radius:50%; background:#f4e2bd; color:#a17743; font-size:11px; font-weight:800; }.activation-check.ready > span { background:#dceedd; color:#5b9368; }.activation-check > div { flex:1; min-width:0; }.activation-check strong,.activation-check small { display:block; }.activation-check strong { color:#6b6250; font-size:10px; }.activation-check small { color:#9a907d; font-size:8px; line-height:1.4; margin-top:3px; }.activation-check em { color:#a17d4d; font-size:8px; font-style:normal; white-space:nowrap; }.activation-check.ready em { color:#61906a; }.activation-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-top:13px; }.activation-hint { color:#9a896d; background:#fff5df; border-radius:8px; padding:9px 10px; margin-top:12px; font-size:9px; line-height:1.5; }
.activation-confirm-overlay { position:fixed; inset:0; z-index:80; display:grid; place-items:center; padding:22px; background:rgba(22,16,38,.48); backdrop-filter:blur(7px); }.activation-confirm-card { position:relative; width:min(680px,100%); max-height:min(90vh,760px); overflow:auto; padding:26px; border:1px solid rgba(111,78,176,.22); border-radius:20px; background:linear-gradient(145deg,#fffdfb,#f8f3ff); box-shadow:0 24px 80px rgba(26,16,53,.25); }.activation-confirm-close { position:absolute; top:16px; right:18px; width:30px; height:30px; border:0; border-radius:50%; background:#eee8f8; color:#6e568f; font-size:20px; line-height:1; cursor:pointer; }.activation-confirm-card h3 { margin:6px 42px 7px 0; color:#2c213d; font-size:22px; letter-spacing:-.02em; }.activation-confirm-intro { max-width:570px; margin:0 0 18px; color:#77698a; font-size:12px; line-height:1.65; }.activation-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; }.activation-form-field { display:flex; flex-direction:column; gap:7px; min-width:0; }.activation-form-field:nth-child(2),.activation-form-field:nth-child(5),.activation-form-field:nth-child(6) { grid-column:span 2; }.activation-form-field > span { color:#594b6c; font-size:11px; font-weight:800; }.activation-form-field em { color:#af6a72; font-size:9px; font-style:normal; }.activation-form-field input,.activation-form-field select,.activation-form-field textarea { width:100%; box-sizing:border-box; border:1px solid #ded4ea; border-radius:10px; padding:11px 12px; background:#fff; color:#352941; font:inherit; font-size:12px; outline:0; transition:border-color .2s,box-shadow .2s; }.activation-form-field textarea { min-height:82px; resize:vertical; line-height:1.55; }.activation-form-field input:focus,.activation-form-field select:focus,.activation-form-field textarea:focus { border-color:#8660c7; box-shadow:0 0 0 3px rgba(134,96,199,.13); }.activation-form-field input:disabled { color:#aaa1ae; background:#f3f0f6; }.activation-form-field small { color:#94869f; font-size:10px; line-height:1.45; }.activation-form-notice { margin-top:16px; padding:11px 12px; border:1px solid #e3d9ef; border-radius:10px; background:#f8f3ff; color:#756584; font-size:10px; line-height:1.55; }.activation-form-error { margin-top:12px; padding:10px 12px; border:1px solid #ecc7c7; border-radius:10px; background:#fff1f1; color:#a34e56; font-size:11px; line-height:1.5; }.activation-form-error[hidden] { display:none; }.activation-form-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:18px; }.activation-confirm-card .primary-button,.activation-confirm-card .secondary-button { min-height:38px; }.activation-confirm-card .detail-label { color:#8761bd; }
.progress-panel { border:1px solid #dce9dc; background:#fbfdfb; border-radius:13px; padding:17px; margin-top:23px; }.progress-heading { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; }.progress-heading h3 { font-size:13px; margin:0; }.progress-heading p { color:#8b9990; font-size:9px; margin-top:5px; }.progress-chip { color:#5c8868; background:#edf5ed; border-radius:5px; padding:5px 7px; font-size:9px; font-weight:800; white-space:nowrap; }
.progress-track { position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin-top:22px; }.progress-track-line { position:absolute; left:15px; right:15px; top:11px; height:2px; background:#e3ece3; z-index:0; }.progress-track-line i { display:block; height:100%; background:#8cbd92; transition:width .25s ease; }.progress-step { position:relative; z-index:1; display:grid; gap:5px; }.progress-step span { width:23px; height:23px; display:grid; place-items:center; background:#edf3ed; color:#9aa69d; border:3px solid #fbfdfb; border-radius:50%; font:700 9px 'DM Mono'; }.progress-step.current span { color:#ae6a51; background:#fbede8; }.progress-step.done span { color:#fff; background:#6ea277; }.progress-step strong { color:#627169; font-size:9px; }.progress-step small { color:#9ba69f; font-size:8px; line-height:1.45; }.progress-actions { display:flex; justify-content:flex-end; flex-wrap:wrap; gap:8px; margin-top:16px; }
.progress-actions button:disabled { cursor:not-allowed; opacity:.45; transform:none; box-shadow:none; }
.review-panel { border:1px solid #e6e6db; background:#fffdf7; border-radius:13px; padding:17px; margin-top:23px; }.review-heading { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; }.review-heading h3 { font-size:13px; margin:0; }.review-heading p { color:#8b9990; font-size:9px; margin-top:5px; }.review-chip { color:#9b794e; background:#f7edda; border-radius:5px; padding:5px 7px; font-size:9px; font-weight:800; white-space:nowrap; }.review-grid { display:grid; grid-template-columns:1fr 1fr; gap:13px 14px; border-top:1px solid #eeeade; margin-top:15px; padding-top:14px; }.review-grid label { display:grid; gap:7px; }.review-grid label span { color:#7c877f; font-size:9px; font-weight:800; }.review-grid select,.review-grid textarea { border:1px solid #e6e3d6; border-radius:8px; background:#fffef9; color:#58635b; height:36px; padding:0 10px; font-size:10px; outline:none; }.review-grid textarea { height:62px; padding:9px 10px; resize:vertical; }.review-grid select:focus,.review-grid textarea:focus { border-color:#c5a66d; box-shadow:0 0 0 3px #f7f0df; }.review-actions { display:flex; justify-content:flex-end; margin-top:15px; }.review-footer { border-top:1px solid #eeeade; margin-top:14px; padding-top:13px; }.review-footer .secondary-button { color:#8f774f; background:#f8f0df; }.review-done { display:flex; align-items:center; gap:10px; }.review-check { width:27px; height:27px; display:grid; place-items:center; border-radius:50%; background:#e6f0e5; color:#5e956b; font-weight:800; }.review-done strong { display:block; color:#5d6b61; font-size:11px; }.review-done p { color:#9aa39c; font-size:9px; margin-top:4px; }.review-summary { display:flex; align-items:center; gap:10px; border-top:1px solid #eeeade; margin-top:14px; padding-top:13px; color:#9a9b8e; font-size:9px; }.review-summary strong { color:#8b6f44; font-size:11px; }
.match-lawyer-avatar.blue { background:#dbe8ec; color:#50788b; }
.match-lawyer-avatar.gold { background:#f5e5cb; color:#9b7349; }

.publish-mode { display:flex; gap:5px; padding:4px; background:#f0f4ef; border-radius:9px; width:max-content; margin:0 0 22px; }
.publish-mode-button { border:0; background:transparent; color:#87948b; padding:8px 12px; border-radius:6px; font-size:10px; font-weight:700; }
.publish-mode-button.active { color:var(--sage-dark); background:#fff; box-shadow:0 3px 10px rgba(45,74,57,.08); }
.create-panel[hidden], .confirm-panel[hidden] { display:none; }
.upload-zone { min-height:172px; border:1.5px dashed #b9d1bd; border-radius:14px; background:#f7fbf6; display:grid; place-items:center; align-content:center; gap:7px; text-align:center; cursor:pointer; transition:all .18s ease; }
.upload-zone:hover, .upload-zone:focus-within { border-color:#5e956c; background:#f0f8ef; box-shadow:0 0 0 4px #e9f3e8; }
.upload-zone input { position:absolute; width:1px; height:1px; opacity:0; }
.upload-zone strong { color:#547461; font-size:12px; }
.upload-zone small, .upload-zone em { color:#98a79d; font-size:9px; font-style:normal; }
.upload-zone em { color:#6e9477; margin-top:3px; }
.upload-icon { width:35px; height:35px; border-radius:50%; display:grid; place-items:center; background:#deeee0; color:#4c8960; font:700 20px/1 'Manrope'; }
.upload-status { display:flex; align-items:center; gap:10px; background:#f1f6f0; border-radius:10px; padding:12px 13px; margin-top:13px; }
.upload-status[hidden] { display:none; }
.ocr-review-panel[hidden] { display:none; }
.ocr-review-panel { border:1px solid #e4d6b9; background:#fffaf1; border-radius:13px; padding:16px; margin-top:14px; }
.ocr-review-heading { display:flex; align-items:flex-start; gap:9px; }
.ocr-review-heading > div { flex:1; }
.ocr-review-heading strong,.ocr-review-heading span { display:block; }
.ocr-review-heading strong { color:#765d39; font-size:12px; }
.ocr-review-heading span { color:#a08d72; font-size:10px; line-height:1.55; margin-top:4px; }
.ocr-review-heading em { color:#9b784c; background:#f5e8cf; border-radius:5px; padding:5px 7px; font-size:9px; font-style:normal; font-weight:800; white-space:nowrap; }
.ocr-review-grid { margin-top:15px; }
.ocr-review-grid input { background:#fffdf8; border-color:#e9dec9; }
.ocr-review-note { display:flex; gap:8px; align-items:flex-start; background:#fff4df; border-radius:8px; padding:10px; margin-top:13px; }
.ocr-review-note > span { width:18px; height:18px; display:grid; place-items:center; border-radius:50%; background:#efd5aa; color:#8d6736; font-weight:800; font-size:11px; }
.ocr-review-note p { color:#9c8667; font-size:10px; line-height:1.5; }
.ocr-review-actions { display:flex; justify-content:flex-end; margin-top:14px; }
.redaction-review-panel[hidden] { display:none; }
.redaction-review-panel { border:1px solid #cfe2d3; background:#f7fbf7; border-radius:13px; padding:16px; margin-top:14px; }
.redaction-review-heading { display:flex; align-items:flex-start; gap:9px; }
.redaction-review-heading > div { flex:1; }
.redaction-review-heading strong,.redaction-review-heading span { display:block; }
.redaction-review-heading strong { color:#2f6441; font-size:12px; }
.redaction-review-heading span { color:#78927e; font-size:10px; line-height:1.55; margin-top:4px; }
.redaction-review-heading em { color:#4c805d; background:#e2f0e4; border-radius:5px; padding:5px 7px; font-size:9px; font-style:normal; font-weight:800; white-space:nowrap; }
.redaction-summary { display:grid; gap:4px; margin-top:15px; padding:10px 12px; border-radius:9px; background:#eaf5ec; color:#567760; }
.redaction-summary strong { font-size:11px; color:#2f6842; }
.redaction-summary span { font-size:10px; line-height:1.5; }
.redaction-manual-heading { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-top:14px; }
.redaction-manual-heading strong { color:#506e58; font-size:11px; }
.redaction-manual-heading span { color:#829487; font-size:9px; line-height:1.5; text-align:right; }
.redaction-manual-options { display:grid; gap:7px; margin-top:8px; }
.redaction-manual-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 10px; border:1px solid #dce9de; border-radius:8px; background:#fff; }
.redaction-manual-row > span { min-width:0; display:grid; gap:3px; }
.redaction-manual-row strong { color:#4f6855; font-size:10px; }
.redaction-manual-row small { color:#87978c; font-size:9px; line-height:1.45; }
.redaction-manual-row select { flex:0 0 104px; padding:7px 8px; border:1px solid #cfe0d2; border-radius:6px; background:#f8fcf8; color:#486a50; font:700 10px 'Noto Sans SC', sans-serif; }
.redaction-manual-empty { padding:9px 10px; border-radius:8px; background:#f1f6f1; color:#819086; font-size:9px; line-height:1.5; }
.redaction-custom-row { display:flex; gap:8px; margin-top:8px; }
.redaction-custom-row input { min-width:0; flex:1; padding:8px 10px; border:1px solid #dce9de; border-radius:7px; background:#fff; color:#4f6855; font:10px 'Noto Sans SC', sans-serif; }
.redaction-custom-row input::placeholder { color:#a3b0a7; }
.redaction-custom-row button { flex:0 0 auto; padding:8px 10px; border:1px solid #bfd7c3; border-radius:7px; background:#edf7ee; color:#487453; font:700 10px 'Noto Sans SC', sans-serif; cursor:pointer; }
.redaction-preview-text { max-height:130px; overflow:auto; margin:12px 0 0; padding:11px 12px; border:1px solid #dce9de; border-radius:9px; background:#fff; color:#64776a; white-space:pre-wrap; word-break:break-all; font:10px/1.7 'DM Mono', monospace; }
.redaction-review-note { display:flex; gap:8px; align-items:flex-start; background:#fff8e9; border-radius:8px; padding:10px; margin-top:13px; }
.redaction-review-note > span { width:18px; height:18px; display:grid; place-items:center; border-radius:50%; background:#f2ddb0; color:#916f31; font-weight:800; font-size:11px; }
.redaction-review-note p { color:#987d4d; font-size:10px; line-height:1.5; }
.redaction-review-actions { display:flex; justify-content:flex-end; margin-top:14px; }
.upload-status.error { background:#fff4ef; border:1px solid #f1d8cd; }.upload-status.error strong { color:#ae654d; }.upload-status.error div span { color:#ae8b7c; }.upload-status button { border:0; background:transparent; color:#a9654e; font-size:10px; font-weight:800; white-space:nowrap; }
.status-chip.blocked { color:#ae654d; background:#fbede8; }.blocked-panel { display:flex; align-items:flex-start; gap:9px; background:#fff2ed; border:1px solid #f1d9cf; border-radius:10px; padding:12px; margin-bottom:20px; }.blocked-panel.pending { background:#fff8ed; border-color:#f1e3cc; }.blocked-panel > span { width:20px; height:20px; display:grid; place-items:center; border-radius:50%; background:#f4d6ca; color:#a8644c; font-weight:800; font-size:11px; }.blocked-panel.pending > span { background:#f4e3c4; color:#a27642; }.blocked-panel strong { display:block; color:#955b47; font-size:11px; }.blocked-panel p { color:#a38376; font-size:9px; line-height:1.55; margin-top:4px; }.danger-action { color:#ae654d; }
.status-spinner { width:17px; height:17px; border:2px solid #cfe2d1; border-top-color:#5d9970; border-radius:50%; animation:spin .8s linear infinite; }
.upload-status strong, .upload-status span { display:block; }.upload-status strong { color:#547461; font-size:10px; }.upload-status div span { color:#93a197; font-size:9px; margin-top:3px; }
.extracted-preview { border:1px solid #dbe9dc; background:#fbfdfb; border-radius:12px; padding:14px; margin-top:13px; }
.preview-heading, .confirm-heading { display:flex; gap:9px; align-items:center; }.preview-check { width:21px; height:21px; display:grid; place-items:center; border-radius:50%; background:#dceede; color:#4c8a5f; font-weight:800; font-size:11px; }.preview-heading strong, .confirm-heading strong { display:block; color:#547461; font-size:10px; }.preview-heading span:last-child, .confirm-heading span:last-child { display:block; color:#9aa79e; font-size:9px; margin-top:3px; }
.preview-grid { display:grid; grid-template-columns:1fr 1fr 1fr; gap:9px 14px; border-top:1px solid #e7eee6; margin-top:13px; padding-top:12px; }.preview-fact span { display:block; color:#a0aaa2; font-size:8px; }.preview-fact strong { display:block; color:#45574b; font-size:10px; margin-top:4px; }
.confirm-panel { border-top:1px solid #e8eee7; margin-top:20px; padding-top:18px; }.confirm-heading { margin-bottom:14px; }.confirm-number { width:24px; height:24px; display:grid; place-items:center; border-radius:7px; color:#68816e; background:#e8f1e7; font:700 9px 'DM Mono'; }.compact-grid { gap:13px 14px; }
.modal-actions .primary-button:disabled, .modal-actions .secondary-button:disabled { cursor:not-allowed; opacity:.45; transform:none; box-shadow:none; }
@keyframes spin { to { transform:rotate(360deg); } }

@media (max-width: 1250px) { .page-content { padding-left: 34px; padding-right: 34px; }.topbar { padding: 0 34px; }.content-grid { gap: 28px; }.lawyer-strip { grid-template-columns: 1fr 1fr; } .lawyer-card:nth-child(3){display:none;} }
@media (max-width: 700px) { .demo-banner { align-items:flex-start; flex-wrap:wrap; }.hero-row { align-items:flex-start; gap:20px; flex-direction:column; }.section-heading { align-items:flex-start; gap:12px; flex-direction:column; }.section-actions { width:100%; justify-content:space-between; }.form-grid { grid-template-columns:1fr; }.full-width { grid-column:auto; }.detail-grid { grid-template-columns:1fr; }.detail-body,.detail-header { padding-left:22px; padding-right:22px; }.detail-actions { flex-wrap:wrap; }.case-side { width:92px; }.firm-summary { grid-template-columns:1fr 1fr; }.firm-table-row { grid-template-columns:1.1fr 1fr .7fr; }.firm-table-row > :last-child { grid-column:3; }.firm-table-head > :last-child { display:none; }.firm-footer,.permission-footer { align-items:flex-start; flex-direction:column; }.firm-footer .primary-button { width:100%; }.firm-alert { flex-wrap:wrap; } }

.firm-case-review-row { display:grid; grid-template-columns:1.4fr .95fr 1.15fr; gap:12px; align-items:center; padding:12px; margin-top:9px; border:1px solid #e7ede6; border-radius:10px; background:#fbfcfa; }
.firm-case-review-copy strong,.firm-case-review-copy small { display:block; }
.firm-case-review-copy strong { color:#526157; font-size:11px; }
.firm-case-review-copy small { color:#98a49b; font-size:8px; margin-top:4px; }
.firm-case-review-status,.firm-case-review-actions { display:flex; flex-wrap:wrap; align-items:center; gap:5px; }
.firm-case-review-actions { gap:9px; }
.firm-case-review-actions .table-action { padding:5px 7px; border:1px solid #cfe1d1; border-radius:6px; background:#f4faf4; }
.firm-status.blocked { color:#a95f52; background:#f8e8e5; }
.firm-review-note { color:#a95f52; font-size:8px; }
@media (max-width: 700px) { .firm-case-review-row { grid-template-columns:1fr; gap:8px; } }
.match-empty { display:flex; flex-direction:column; gap:7px; padding:22px 16px; border:1px dashed #d9e5da; border-radius:12px; background:#fbfdfb; color:#7d8d82; }
.match-empty strong { color:#4c6e59; font-size:13px; }
.match-empty span { font-size:11px; line-height:1.6; }

/* 可读性升级试验：放大工作内容，保留案号、时间和辅助信息的小字层级。 */
body { font-size:14px; }
.nav-item { font-size:13px; }
.hero-subtitle { font-size:14px; }
.section-heading h2 { font-size:17px; }.section-heading p { font-size:11px; }
.case-name { font-size:13px; }.case-meta { font-size:11px; }.case-side { width:145px; }.fit-score { font-size:12px; }.fit-score span,.case-status { font-size:10px; }
.lawyer-name { font-size:12px; }.lawyer-firm { font-size:10px; }.lawyer-fit { font-size:10px; }.lawyer-fit strong { font-size:12px; }.tag { font-size:9px; }
.timeline-copy { font-size:11px; }.timeline-time { font-size:10px; }
.primary-button,.secondary-button { font-size:12px; }
.modal { width:min(700px, calc(100vw - 40px)); }.modal-intro { font-size:13px; line-height:1.8; }.form-grid label span { font-size:12px; }.form-grid input,.form-grid select,.form-grid textarea { font-size:13px; }.form-grid textarea { line-height:1.7; }
.upload-zone strong { font-size:14px; }.upload-zone small,.upload-zone em { font-size:11px; }.upload-status strong { font-size:12px; }.upload-status div span { font-size:11px; }.preview-heading strong,.confirm-heading strong { font-size:12px; }.preview-heading span:last-child,.confirm-heading span:last-child { font-size:10px; }.preview-fact span { font-size:10px; }.preview-fact strong { font-size:12px; }
.detail-modal { width:min(900px, calc(100vw - 40px)); }.detail-title { font-size:28px; }.detail-sub { font-size:12px; }.detail-brief { font-size:15px; line-height:1.9; }.detail-facts { gap:16px; }.fact span { font-size:11px; }.fact strong { font-size:13px; }.match-panel h3 { font-size:14px; }.match-note { font-size:11px; }.match-lawyer strong { font-size:12px; }.match-lawyer span { font-size:10px; }.reason { font-size:11px; }.choose-lawyer { font-size:11px; }.detail-label { font-size:10px; }
.workflow-steps span { font-size:10px; }.proposal-heading h3,.progress-heading h3,.permission-heading h3,.review-heading h3 { font-size:14px; }.proposal-heading p,.progress-heading p,.permission-heading p,.review-heading p { font-size:10px; }.proposal-grid span,.progress-step small,.permission-item small,.review-grid label span { font-size:10px; }.proposal-grid strong,.progress-step strong,.permission-item strong { font-size:12px; }.permission-item em { font-size:10px; }.permission-footer > span { font-size:9px; }.review-grid select,.review-grid textarea { font-size:12px; }.review-done strong { font-size:12px; }.review-done p { font-size:10px; }
.firm-section-heading h3 { font-size:14px; }.firm-section-heading p { font-size:10px; }.firm-table-row { font-size:10px; }.firm-table-row strong { font-size:12px; }.firm-table-row small { font-size:9px; }.firm-alert strong { font-size:12px; }.firm-alert p { font-size:10px; }.approval-row strong { font-size:12px; }.approval-row small { font-size:10px; }
.permission-panel { border:1px solid #dce7e0; background:#f8fbf8; border-radius:13px; padding:17px; margin-top:23px; }.permission-heading { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; }.permission-heading h3 { font-size:13px; margin:0; }.permission-heading p { color:#8b9990; font-size:9px; margin-top:5px; }.permission-chip { color:#5e8767; background:#e9f3e9; border-radius:5px; padding:5px 7px; font-size:9px; font-weight:800; white-space:nowrap; }.permission-list { display:grid; gap:8px; border-top:1px solid #e3ece4; margin-top:15px; padding-top:13px; }.permission-item { display:flex; align-items:center; gap:9px; background:#fff; border:1px solid #e8eee8; border-radius:8px; padding:10px; }.permission-item input { accent-color:#5d9570; }.permission-item span { flex:1; min-width:0; }.permission-item strong,.permission-item small { display:block; }.permission-item strong { color:#5d6c62; font-size:10px; }.permission-item small { color:#9aa79e; font-size:8px; margin-top:3px; }.permission-item em { color:#8ea092; font-style:normal; font-size:8px; white-space:nowrap; }.permission-item input:checked + span + em { color:#5b9067; }.permission-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; border-top:1px solid #e3ece4; margin-top:13px; padding-top:13px; }.permission-footer > span { color:#a0aaa2; font:8px 'DM Mono',monospace; }.permission-footer div { display:flex; gap:8px; }
.customer-consent-note { display:flex; align-items:center; gap:10px; margin-top:12px; padding:11px 12px; border:1px solid #eadfca; border-radius:9px; background:#fffaf1; }.customer-consent-copy { flex:1; min-width:0; }.customer-consent-copy strong,.customer-consent-copy small { display:block; }.customer-consent-copy strong { color:#75634b; font-size:10px; }.customer-consent-copy small { margin-top:4px; color:#a3947c; font-size:8px; line-height:1.5; }.customer-consent-status { color:#aa8760; font-size:9px; font-weight:800; white-space:nowrap; }.customer-consent-status.granted { color:#5b9067; }.customer-consent-note .secondary-button { padding:7px 9px; white-space:nowrap; }
.customer-consent-meta { flex-basis:100%; color:#8d806b; font-size:8px; line-height:1.5; }
.workspace-menu { border:1px solid #e0e7df; background:#fff; color:#607168; border-radius:8px; height:34px; padding:0 26px 0 10px; font-size:10px; outline:none; }.workspace-menu:focus { border-color:#7fa486; box-shadow:0 0 0 3px #eaf3ea; }
.notification-modal { width:min(620px, calc(100vw - 40px)); max-height:calc(100vh - 32px); overflow-y:auto; }.notification-item { width:100%; display:flex; align-items:center; gap:11px; text-align:left; border:1px solid #e4ebe4; background:#fbfdfb; border-radius:11px; padding:12px; margin-top:9px; color:var(--ink); }.notification-item:hover { border-color:#a9c7ad; background:#f5faf4; }.notification-mark { width:25px; height:25px; display:grid; place-items:center; border-radius:50%; color:#5d9067; background:#e7f2e7; font-weight:800; }.notification-mark.firm { color:#a66a50; background:#fbede8; }.notification-copy { flex:1; min-width:0; }.notification-copy strong,.notification-copy small { display:block; }.notification-copy strong { color:#526257; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }.notification-copy small { color:#929e96; font-size:10px; line-height:1.5; margin-top:3px; }.notification-item > b { color:#628a6a; font-size:10px; white-space:nowrap; }.notification-item > b span { font-size:14px; margin-left:3px; }.notification-empty { text-align:center; border:1px dashed #dce7dd; border-radius:12px; padding:31px 20px; margin-top:12px; }.notification-empty > span { width:30px; height:30px; display:grid; place-items:center; margin:0 auto 10px; border-radius:50%; background:#e7f2e7; color:#5d9067; font-weight:800; }.notification-empty strong { color:#5d6c62; font-size:12px; }.notification-empty p { color:#9aa69e; font-size:10px; line-height:1.6; margin-top:6px; }
.receiver-modal { width:min(760px, calc(100vw - 40px)); max-height:calc(100vh - 32px); overflow-y:auto; }.receiver-kicker { color:var(--sage-deep); font:10px 'DM Mono',monospace; letter-spacing:.1em; }.receiver-modal h2 { font:800 26px 'Noto Serif SC',serif; letter-spacing:-.05em; margin-top:12px; }.receiver-intro { color:#87948b; font-size:13px; line-height:1.8; margin-top:10px; }.receiver-case-head { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; background:#f3f7f1; border:1px solid #e0ebe0; border-radius:12px; padding:16px; margin-top:22px; }.receiver-case-head span,.receiver-case-head small { display:block; color:#83958a; font-size:10px; }.receiver-case-head strong { display:block; color:#4d5f53; font-size:16px; margin:7px 0; }.receiver-case-head b { color:var(--sage-deep); font:800 20px 'DM Mono',monospace; text-align:right; }.receiver-case-head em { display:block; color:#91a198; font:10px 'Manrope'; font-style:normal; margin-top:3px; }.receiver-grid { display:grid; grid-template-columns:1fr 1fr; gap:15px 18px; margin-top:22px; }.receiver-grid div { border-top:1px solid #e7ece6; padding-top:10px; }.receiver-grid span { display:block; color:#9aa69e; font-size:10px; }.receiver-grid strong { display:block; color:#546359; font-size:13px; line-height:1.6; margin-top:5px; }.receiver-reasons { background:#f8faf7; border:1px solid #e2ebe1; border-radius:12px; padding:15px; margin-top:22px; }.receiver-reasons > div:not(.detail-label) { color:#6c7e71; font-size:12px; line-height:1.6; margin-top:8px; }.receiver-reasons b { color:#6aa074; margin-right:7px; }.receiver-boundary { display:flex; align-items:flex-start; gap:8px; background:#f7f0e2; border-radius:9px; padding:11px; margin-top:16px; }.receiver-boundary span { color:#a17b4b; font-size:13px; }.receiver-boundary p { color:#967e61; font-size:10px; line-height:1.6; }.receiver-actions { display:flex; justify-content:flex-end; gap:9px; margin-top:22px; }
.next-action-card { display:flex; align-items:center; justify-content:space-between; gap:16px; border:1px solid #cfe2d1; background:#f2f8f1; border-radius:12px; padding:15px 16px; margin-bottom:23px; }.next-action-card h3 { color:#4f6d57; font-size:14px; margin:0; }.next-action-card p { color:#87988b; font-size:10px; line-height:1.55; margin-top:4px; }.next-action-card .detail-label { color:#72947a; margin-bottom:6px; }.next-action-card .primary-button { flex-shrink:0; }
.firm-modal { width:min(860px, calc(100vw - 40px)); max-height:calc(100vh - 32px); overflow-y:auto; }.firm-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:9px; margin:23px 0 27px; }.firm-summary div { background:#f5f8f4; border:1px solid #e4ece2; border-radius:10px; padding:12px; }.firm-summary span,.firm-summary strong { display:block; }.firm-summary span { color:#91a097; font-size:8px; }.firm-summary strong { color:#4e6d57; font:800 20px 'Manrope'; margin-top:7px; }.firm-summary .warning-number { color:#b37056; }.firm-section { border-top:1px solid #e7ece5; padding-top:19px; margin-top:19px; }.firm-section-heading { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; margin-bottom:13px; }.firm-section-heading h3 { font-size:13px; margin:0; }.firm-section-heading p { color:#939f97; font-size:9px; margin-top:5px; }.firm-table { border:1px solid #e5ebe4; border-radius:10px; overflow:hidden; }.firm-table-row { display:grid; grid-template-columns:1.1fr 1fr .7fr .45fr; gap:12px; align-items:center; padding:11px 12px; border-top:1px solid #edf0eb; color:#748078; font-size:9px; }.firm-table-row:first-child { border-top:0; }.firm-table-head { color:#a0aaa3; background:#f8faf7; font-size:8px; }.firm-table-row strong,.firm-table-row small { display:block; }.firm-table-row strong { color:#526157; font-size:10px; }.firm-table-row small { color:#a1aaa4; font-size:8px; margin-top:3px; }.firm-status { font-style:normal; border-radius:4px; padding:4px 6px; font-size:8px; }.firm-status.pending { color:#a66a50; background:#fbede8; }.firm-status.approved { color:#5d8968; background:#eaf4ea; }.table-action { border:0; background:transparent; color:#5f8d68; font-size:9px; font-weight:800; padding:5px 0; }.approved-action { color:#799386; }.firm-alert { display:flex; align-items:flex-start; gap:10px; background:#fff7ed; border:1px solid #f1e3d2; border-radius:10px; padding:12px; }.firm-alert > span { width:19px; height:19px; display:grid; place-items:center; border-radius:50%; background:#f1d6b4; color:#a56841; font-weight:800; font-size:11px; }.firm-alert div { flex:1; }.firm-alert strong { display:block; color:#88664a; font-size:10px; }.firm-alert p { color:#a58d79; font-size:9px; line-height:1.55; margin-top:4px; }.approval-row { display:flex; align-items:center; justify-content:space-between; gap:15px; border-top:1px solid #e9eee8; margin-top:13px; padding-top:13px; }.approval-row strong,.approval-row small { display:block; }.approval-row strong { color:#5d6b61; font-size:10px; }.approval-row small { color:#99a49d; font-size:8px; margin-top:4px; }.toggle-switch { width:36px; height:20px; border:0; border-radius:10px; background:#dce3dd; padding:2px; }.toggle-switch i { display:block; width:16px; height:16px; background:#fff; border-radius:50%; box-shadow:0 1px 3px rgba(0,0,0,.12); transition:transform .18s ease; }.toggle-switch.active { background:#6b9e74; }.toggle-switch.active i { transform:translateX(16px); }.firm-footer { display:flex; justify-content:space-between; align-items:center; gap:14px; border-top:1px solid #e7ece5; margin-top:24px; padding-top:17px; }.firm-footer > span { color:#a0aaa3; font-size:8px; line-height:1.5; }
.firm-admin-shell[hidden] { display:none !important; }
.firm-admin-shell { min-height:100vh; display:flex; color:var(--workspace-text); background:radial-gradient(ellipse 42% 52% at 76% 12%, rgba(86,52,168,.2), transparent 72%), linear-gradient(132deg, #070511, #100a1d 58%, #0b0717); }
.firm-admin-sidebar { width:274px; flex:0 0 274px; display:flex; flex-direction:column; padding:30px 22px 24px; border-right:1px solid rgba(198,165,255,.14); background:rgba(8,6,15,.7); backdrop-filter:blur(22px); }
.firm-admin-sidebar .brand-lockup { padding:0 10px 35px; }
.firm-admin-sidebar .brand-name { color:#f5efff; }
.firm-admin-sidebar .brand-caption { color:#81748f; }
.firm-admin-sidebar .brand-mark { background:linear-gradient(145deg,#302052,#110d1c); border:1px solid rgba(205,174,255,.4); box-shadow:0 0 24px rgba(137,82,255,.18); }
.firm-admin-account { display:flex; align-items:center; gap:11px; padding:13px 12px; border:1px solid rgba(198,165,255,.18); border-radius:14px; background:rgba(158,106,255,.08); }
.firm-admin-account > span { display:grid; place-items:center; width:35px; height:35px; border-radius:11px; color:#f4eaff; background:rgba(158,106,255,.25); font-weight:800; }
.firm-admin-account strong,.firm-admin-account small { display:block; }.firm-admin-account strong { color:#f5efff; font-size:12px; }.firm-admin-account small { margin-top:4px; color:#9e91aa; font-size:10px; }
.firm-admin-label { margin:34px 12px 12px; color:#83768f; font:10px 'DM Mono',monospace; letter-spacing:.12em; }
.firm-admin-nav { display:grid; gap:6px; }.firm-admin-nav a { padding:12px 13px; border:1px solid transparent; border-radius:10px; color:#9b8ea7; font-size:13px; text-decoration:none; }.firm-admin-nav a:hover,.firm-admin-nav a.active { color:#f4eaff; border-color:rgba(198,165,255,.22); background:linear-gradient(90deg,rgba(145,87,230,.2),rgba(98,142,255,.08)); box-shadow:inset 3px 0 #9c72ed; }
.firm-admin-boundary { margin-top:auto; padding:14px; border:1px solid rgba(95,211,155,.16); border-radius:13px; background:rgba(86,133,104,.09); }.firm-admin-boundary strong { color:#a8d4b7; font-size:11px; }.firm-admin-boundary p { margin-top:7px; color:#8ea798; font-size:10px; line-height:1.65; }
.firm-admin-logout { margin-top:14px; padding:10px 13px; border:1px solid rgba(198,165,255,.2); border-radius:9px; background:transparent; color:#b8a6c5; text-align:left; font-size:11px; }.firm-admin-logout:hover { color:#fff; border-color:#9c72ed; background:rgba(156,114,237,.12); }
.firm-admin-main { min-width:0; flex:1; }.firm-admin-topbar { height:82px; display:flex; align-items:center; justify-content:space-between; padding:0 54px; border-bottom:1px solid rgba(198,165,255,.14); background:rgba(7,5,13,.28); backdrop-filter:blur(18px); }.firm-admin-topbar span { display:block; color:#897b95; font-size:11px; }.firm-admin-topbar strong { display:block; margin-top:5px; color:#f5efff; font-size:16px; }.firm-admin-role-chip { padding:7px 10px; border:1px solid rgba(198,165,255,.22); border-radius:999px; color:#c1a8ff !important; background:rgba(158,106,255,.1); }
.firm-admin-content { width:min(1060px, calc(100% - 108px)); margin:0 auto; padding:44px 0 70px; }.firm-admin-page { width:100%; max-height:none; overflow:visible; padding:0; background:transparent; }.firm-admin-page .modal-kicker { color:#b69bff; }.firm-admin-page h2 { color:#f5efff; font-size:34px; }.firm-admin-page .modal-intro { max-width:700px; color:#a79bb1; line-height:1.8; }.firm-admin-page .firm-summary div { background:rgba(255,255,255,.045); border-color:rgba(198,165,255,.14); }.firm-admin-page .firm-summary span { color:#988aa4; }.firm-admin-page .firm-summary strong { color:#d6c4ff; }.firm-admin-page .firm-section { border-color:rgba(198,165,255,.14); }.firm-admin-page .firm-section-heading h3 { color:#f5efff; }.firm-admin-page .firm-section-heading p { color:#9c90a6; }.firm-admin-page .firm-table { border-color:rgba(198,165,255,.14); }.firm-admin-page .firm-table-row { border-color:rgba(198,165,255,.1); color:#a79bb1; }.firm-admin-page .firm-table-head { background:rgba(255,255,255,.04); color:#8d8098; }.firm-admin-page .firm-table-row strong { color:#e8ddf4; }.firm-admin-page .firm-table-row small { color:#94869f; }.firm-admin-page .audit-empty { color:#9c90a6; }.firm-admin-page .approval-row { border-color:rgba(198,165,255,.14); }.firm-admin-page .approval-row strong { color:#e8ddf4; }.firm-admin-page .approval-row small { color:#9c90a6; }.firm-admin-page .firm-footer { border-color:rgba(198,165,255,.14); }.firm-admin-page .firm-footer > span { color:#9c90a6; }
.firm-material-case-heading,.firm-material-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0; border-top:1px solid rgba(198,165,255,.12); border-bottom:1px solid rgba(198,165,255,.12); }.firm-material-case-heading span,.firm-material-case-heading small { display:block; color:#9586a0; font-size:10px; }.firm-material-case-heading strong { display:block; margin-top:5px; color:#f3eaff; font-size:15px; }.firm-material-permission-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin:14px 0; }.firm-admin-page .permission-item { color:#e8ddf4; background:rgba(255,255,255,.045); border-color:rgba(198,165,255,.14); }.firm-admin-page .permission-item strong { color:#e8ddf4; }.firm-admin-page .permission-item small { color:#9d90a9; }.firm-admin-page .permission-item input { accent-color:#a979ef; }.firm-material-files { display:grid; gap:7px; }.firm-material-file-row { display:grid; grid-template-columns:minmax(0,1fr) auto auto auto; align-items:center; gap:12px; padding:11px 12px; border:1px solid rgba(198,165,255,.12); border-radius:10px; background:rgba(255,255,255,.03); color:#d6c7e2; font-size:11px; }.firm-material-file-row strong,.firm-material-file-row small { display:block; }.firm-material-file-row small { margin-top:4px; color:#93859d; font-size:9px; }.firm-material-file-row label { color:#aa9bb7; font-size:10px; white-space:nowrap; }.firm-material-file-row input { accent-color:#a979ef; }.firm-material-actions { margin-top:14px; border-bottom:0; }.firm-material-actions span { color:#9d90a9; font-size:10px; }.firm-admin-page .firm-material-actions .primary-button { color:#fff; background:#8962cf; border-color:#9a74dc; }
@media (max-width: 900px) { body{min-width:0}.sidebar{width:218px}.metric-grid{grid-template-columns:1fr 1fr}.content-grid{grid-template-columns:1fr}.right-column{display:grid;grid-template-columns:1fr 1fr;gap:25px;align-items:start}.principle-card{margin-top:31px}.topbar{padding:0 24px}.page-content{padding:31px 24px 45px} }
/* 律师协作工作台：合作确认后使用的主工作区 */
.collaboration-workspace {
  margin-top: 28px;
  padding: 26px;
  border: 1px solid #dfe8e1;
  border-radius: 18px;
  background: linear-gradient(180deg, #fbfdfb 0%, #f4f8f4 100%);
}
.workspace-heading,
.workspace-section-heading,
.workspace-task-top,
.workspace-delivery,
.workspace-message-compose {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}
.workspace-heading h3,
.workspace-section-heading h3 { margin: 5px 0 6px; color: #1e2c25; }
.workspace-heading p,
.workspace-section-heading p,
.workspace-task p,
.workspace-delivery p,
.workspace-message p { margin: 0; color: #728078; line-height: 1.7; }
.workspace-chip,
.workspace-task-status {
  flex: 0 0 auto;
  padding: 6px 10px;
  border-radius: 999px;
  background: #edf2ee;
  color: #6d7b72;
  font-size: 12px;
  white-space: nowrap;
}
.workspace-chip.active,
.workspace-task-status.done { background: #dfeee4; color: #2d7650; }
.workspace-task-status.needs { background: #fff1e4; color: #a9682d; }
.workspace-task-status.overdue,
.workspace-task-timing.overdue { background: #fde9e7; color: #ad4b43; }
.workspace-task-timing.due-soon { color: #a9682d; }
.workspace-confirmation-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 22px;
}
.workspace-confirmation-grid > div {
  padding: 14px 16px;
  border-radius: 12px;
  background: rgba(255, 255, 255, .76);
  border: 1px solid #e4ebe5;
}
.workspace-confirmation-grid span,
.workspace-task-meta,
.workspace-approval-row,
.workspace-message small { display: block; color: #849189; font-size: 12px; }
.workspace-confirmation-grid strong { display: block; margin-top: 6px; color: #35463b; line-height: 1.6; font-size: 14px; font-weight: 600; }
.workspace-approval-row { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; }
.workspace-approval-row span { padding: 7px 10px; border-radius: 8px; background: #f0f3f0; }
.workspace-approval-row span.approved { color: #2d7650; background: #e3f1e7; }
.workspace-actions { margin-top: 18px; display: flex; justify-content: flex-end; }
.workspace-section { margin-top: 24px; padding-top: 22px; border-top: 1px solid #e1e9e2; }
.workspace-task-list { display: grid; gap: 12px; margin-top: 14px; }
.workspace-task { padding: 16px; border-radius: 13px; background: #fff; border: 1px solid #e4ebe5; }
.workspace-task-top strong { color: #2b3c31; }
.workspace-task-meta { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 12px; }
.workspace-delivery { margin-top: 14px; padding: 13px; border-radius: 10px; background: #f8fbf8; border: 1px solid #e5ede6; }
.workspace-delivery strong { color: #456050; font-size: 13px; }
.workspace-delivery small { display: block; margin-top: 6px; color: #6d7e72; }
.workspace-delivery-actions { display: flex; align-items: center; gap: 8px; }
.workspace-delivery-files { display: grid; gap: 7px; margin-top: 10px; }
.workspace-delivery-file { display: inline-flex; align-items: center; gap: 7px; width: fit-content; padding: 7px 9px; border: 1px solid #dce8de; border-radius: 8px; background: #fff; color: #3d6750; cursor: pointer; font: inherit; text-align: left; }
.workspace-delivery-file span { color: #5c9672; }
.workspace-delivery-file small { display: inline; margin: 0; color: #87978c; }
.workspace-submit { margin-top: 14px; }
.workspace-submit textarea,
.workspace-message-compose textarea { width: 100%; min-height: 84px; resize: vertical; padding: 12px; border: 1px solid #dbe5dc; border-radius: 10px; background: #fbfdfb; color: #35463b; font: inherit; }
.workspace-submit > div { display: flex; justify-content: flex-end; gap: 8px; margin-top: 9px; }
.workspace-file-picker { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-top: 9px; padding: 10px 12px; border: 1px dashed #bdd3c1; border-radius: 10px; background: #f7fbf7; color: #3d6750; cursor: pointer; }
.workspace-file-picker input { max-width: 230px; font: inherit; color: #617268; }
.workspace-file-picker small { color: #87978c; }
.workspace-empty { display: grid; gap: 9px; padding: 20px; margin-top: 14px; border: 1px dashed #cfdcd2; border-radius: 12px; background: rgba(255,255,255,.66); color: #66766c; }
.workspace-empty strong { color: #3d5043; }
.workspace-empty.compact { padding: 14px; margin-top: 0; }
.muted-copy { color: #87968b; font-size: 13px; }
.workspace-message-list { display: grid; gap: 10px; margin: 14px 0; }
.workspace-message { padding: 12px 14px; border-radius: 10px; background: #fff; border: 1px solid #e5ece6; }
.workspace-message strong { color: #3b5745; font-size: 13px; }
.workspace-message p { margin: 5px 0; color: #52665a; }
.workspace-message-compose { align-items: flex-end; }
.workspace-message-compose textarea { min-height: 58px; }
.workspace-message-compose .primary-button { flex: 0 0 auto; }
.workspace-message-links-form { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 8px; }
.workspace-message-links-form select { min-width: 170px; padding: 8px 10px; border: 1px solid #dbe5dc; border-radius: 8px; background: #fff; color: #52665a; font: inherit; }
.workspace-message-links-form label { color: #748378; font-size: 12px; }
.workspace-message-links-form input { accent-color: #3d8b61; }
.workspace-message-links { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 7px; }
.workspace-message-links span { padding: 4px 7px; border-radius: 6px; background: #edf5ee; color: #4c7559; font-size: 11px; }
.proposal-revision-panel { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin: 18px 0; padding: 16px; border: 1px solid #efd2b7; border-radius: 12px; background: #fff8ef; }
.proposal-revision-panel h3 { margin: 5px 0; color: #7b5033; }
.proposal-revision-panel p { margin: 0; color: #8b705d; line-height: 1.7; }
.proposal-revision-panel .proposal-actions { margin-top: 0; }
.proposal-version-note { margin: 14px 0; color: #849189; font-size: 12px; }
.workspace-boundary { margin-top: 20px; padding-top: 14px; border-top: 1px solid #e1e9e2; color: #87958a; font-size: 12px; line-height: 1.7; }
.contact-response-panel { position: relative; display: grid; gap: 12px; margin-bottom: 20px; padding: 18px; border: 1px solid #cfe3d1; border-radius: 14px; background: #f2f8f1; }
.contact-response-panel.accepted { background: #f3f8f3; border-color: #c7dfcb; }
.contact-response-panel.declined { background: #fbf5f1; border-color: #ead8cc; }
.contact-response-panel.source { background: #f7fbf6; }
.contact-response-panel h3 { margin: 4px 0 5px; color: #294333; font-size: 15px; }
.contact-response-panel p { margin: 0; color: #75867a; font-size: 12px; line-height: 1.7; }
.contact-response-state { position: absolute; top: 17px; right: 17px; padding: 5px 8px; border-radius: 999px; color: #5e8867; background: #e2f0e3; font-size: 10px; font-weight: 800; }
.contact-response-panel.declined .contact-response-state { color: #a46d54; background: #f7e7df; }
.contact-response-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.contact-response-note { margin-top: 10px; padding: 10px 12px; border-left: 3px solid #a7c8aa; background: rgba(255,255,255,.7); border-radius: 0 8px 8px 0; }
.contact-response-note strong { display: block; margin-bottom: 3px; color: #58725f; font-size: 11px; }
.contact-response-note p { color: #718273; font-size: 11px; }
.case-response-badge { color: #a66a50; background: #fbede8; border-radius: 5px; padding: 4px 6px; font-size: 9px; font-weight: 800; }
@media (max-width: 720px) {
  .activation-confirm-overlay { padding: 10px; }
  .activation-confirm-card { padding: 21px 16px; border-radius: 16px; }
  .activation-form-grid { grid-template-columns: 1fr; }
  .activation-form-field:nth-child(2),.activation-form-field:nth-child(5),.activation-form-field:nth-child(6) { grid-column:span 1; }
  .collaboration-workspace { padding: 18px; }
  .workspace-confirmation-grid { grid-template-columns: 1fr; }
  .workspace-heading,
  .workspace-task-top,
  .workspace-delivery,
  .workspace-message-compose { display: grid; }
  .workspace-delivery-actions { justify-content: flex-start; }
  .contact-response-actions { justify-content: flex-start; }
}

/* 试点登录入口：保持与案件工作台一致的暖白、墨绿和克制金色 */
.login-screen {
  position: fixed;
  inset: 0;
  z-index: 1000;
  overflow: auto;
  background: #f5f7f3;
  color: #243229;
}
.login-frame {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(390px, 480px);
  gap: clamp(36px, 8vw, 128px);
  align-items: center;
  width: min(1180px, calc(100% - 64px));
  min-height: 100%;
  margin: 0 auto;
  padding: 64px 0;
}
.login-intro { min-width: 0; padding: 18px 0; }
.login-brand { display: flex; align-items: center; gap: 12px; }
.login-brand-mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: #274d39; color: #f8f6eb; font-family: 'Noto Serif SC', serif; font-size: 22px; font-weight: 800; box-shadow: 0 12px 24px rgba(39, 77, 57, .16); }
.login-brand strong { display: block; color: #274d39; font-family: 'Noto Serif SC', serif; font-size: 20px; letter-spacing: .04em; }
.login-brand small { display: block; margin-top: 2px; color: #879489; font: 500 9px/1 'DM Mono', monospace; letter-spacing: .12em; }
.login-intro-copy { max-width: 610px; margin-top: clamp(80px, 13vh, 150px); }
.login-eyebrow { display: flex; align-items: center; gap: 10px; color: #668271; font-size: 12px; font-weight: 700; letter-spacing: .08em; }
.login-eyebrow span { width: 28px; height: 1px; background: #c6925b; }
.login-intro h1 { margin: 26px 0 24px; color: #26382d; font-family: 'Noto Serif SC', serif; font-size: clamp(40px, 5.2vw, 72px); font-weight: 700; letter-spacing: -.055em; line-height: 1.18; }
.login-intro h1 em { color: #9a6c43; font-style: normal; }
.login-intro-copy p { max-width: 480px; margin: 0; color: #728078; font-size: 16px; line-height: 1.9; }
.login-trust-line { display: flex; flex-wrap: wrap; align-items: center; gap: 11px; margin-top: clamp(60px, 11vh, 130px); color: #7d8d82; font-size: 11px; }
.login-trust-line > span:first-child { color: #4e8764; font-size: 15px; }
.login-trust-line i { width: 3px; height: 3px; border-radius: 50%; background: #c9b39b; }
.login-card { position:relative; z-index:2; padding: 38px; border: 1px solid rgba(219, 226, 217, .95); border-radius: 24px; background: rgba(255, 255, 252, .88); box-shadow: 0 28px 80px rgba(54, 75, 60, .1), 0 3px 10px rgba(54, 75, 60, .04); backdrop-filter: blur(18px); }
.login-card-kicker { color: #9a6c43; font-size: 11px; font-weight: 800; letter-spacing: .12em; }
.login-card h2 { margin: 10px 0 8px; color: #293a2f; font-family: 'Noto Serif SC', serif; font-size: 28px; letter-spacing: -.03em; }
.login-card-intro { margin: 0; color: #7c897f; font-size: 13px; line-height: 1.7; }
.login-user-list { display: grid; gap: 10px; margin-top: 25px; }
.login-user-card { display: flex; align-items: center; gap: 12px; min-height: 68px; padding: 10px 13px; border: 1px solid #e3e9e1; border-radius: 13px; background: #fff; color: #33483a; text-align: left; cursor: pointer; transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease, background 180ms ease; }
.login-user-card:hover { border-color: #aac8b1; background: #fbfdf9; transform: translateY(-1px); }
.login-user-card:focus-visible { outline: 3px solid rgba(71, 126, 89, .24); outline-offset: 2px; }
.login-user-card.selected { border-color: #699c79; background: #f1f7f1; box-shadow: inset 0 0 0 1px rgba(105, 156, 121, .12); }
.login-user-avatar { display: grid; place-items: center; flex: 0 0 auto; width: 38px; height: 38px; border-radius: 12px; background: #e2f0e6; color: #3d7952; font-family: 'Noto Serif SC', serif; font-size: 16px; font-weight: 700; }
.login-user-avatar.admin { background: #f4eadc; color: #9a6c43; }
.login-user-copy { min-width: 0; flex: 1; }
.login-user-copy strong { display: block; overflow: hidden; color: #324438; font-size: 13px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.login-user-copy small { display: block; margin-top: 4px; overflow: hidden; color: #87958a; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.login-user-check { color: #9cad9f; font-size: 18px; }
.login-user-card.selected .login-user-check { color: #3c8053; }
.login-loading, .login-error-state { display: flex; align-items: center; gap: 10px; min-height: 68px; padding: 0 14px; border: 1px dashed #d5dfd6; border-radius: 13px; color: #829087; font-size: 12px; }
.login-loading span { width: 14px; height: 14px; border: 2px solid #d5e4d7; border-top-color: #568365; border-radius: 50%; animation: login-spin .8s linear infinite; }
.login-actions { margin-top: 22px; }
.login-primary-button { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 48px; padding: 0 18px; border: 0; border-radius: 11px; background: #2f6546; color: #fffdf6; font-size: 13px; font-weight: 700; cursor: pointer; transition: filter 180ms ease, transform 180ms ease, opacity 180ms ease; }
.login-primary-button:hover:not(:disabled) { filter: brightness(1.06); transform: translateY(-1px); }
.login-primary-button:active:not(:disabled) { transform: scale(.98); }
.login-primary-button:focus-visible { outline: 3px solid rgba(71, 126, 89, .28); outline-offset: 3px; }
.login-primary-button:disabled { cursor: not-allowed; opacity: .45; }
.login-primary-button.loading { cursor: wait; }
.login-button-spinner { width: 14px; height: 14px; border: 2px solid rgba(255, 255, 255, .38); border-top-color: #fff; border-radius: 50%; animation: login-spin .8s linear infinite; }
.login-footnote { margin-top: 22px; padding-top: 16px; border-top: 1px solid #e8ede7; }
.login-footnote span { color: #8f6b4c; font-size: 11px; font-weight: 800; }
.login-footnote p { margin: 6px 0 0; color: #89958c; font-size: 11px; line-height: 1.7; }
.login-backdrop-orb { position: fixed; z-index: 0; border-radius: 50%; pointer-events: none; filter: blur(1px); }
.login-orb-one { top: -180px; right: 24%; width: 520px; height: 520px; background: radial-gradient(circle, rgba(213, 231, 213, .72), rgba(245, 247, 243, 0) 68%); }
.login-orb-two { bottom: -260px; left: -140px; width: 620px; height: 620px; background: radial-gradient(circle, rgba(239, 224, 205, .58), rgba(245, 247, 243, 0) 69%); }
@keyframes login-spin { to { transform: rotate(360deg); } }
.app-shell[hidden] { display: none; }
.auth-mode-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; margin-top: 24px; padding: 4px; border-radius: 10px; background: #f0f4ef; }
.auth-mode-tab { min-height: 34px; border: 0; border-radius: 8px; background: transparent; color: #829087; font-size: 12px; font-weight: 700; cursor: pointer; }
.auth-mode-tab.active { background: #fff; color: #2f6546; box-shadow: 0 2px 8px rgba(44, 75, 54, .08); }
.auth-mode-tab:focus-visible { outline: 3px solid rgba(71, 126, 89, .22); outline-offset: 2px; }
.auth-form { display: grid; gap: 13px; margin-top: 20px; }
.auth-form[hidden] { display: none; }
.auth-field { display: grid; gap: 7px; }
.auth-field > span { color: #68766e; font-size: 11px; font-weight: 800; }
.auth-field input { width: 100%; height: 44px; padding: 0 13px; border: 1px solid #dce5dc; border-radius: 10px; background: #fbfdfb; color: #2f4235; font: 500 13px Manrope, 'Microsoft YaHei', sans-serif; outline: none; box-sizing: border-box; }
.auth-field input::placeholder { color: #a2ada4; }
.auth-field input:focus { border-color: #79a583; background: #fff; box-shadow: 0 0 0 3px #eaf3ea; }
.auth-form-error { padding: 10px 12px; border: 1px solid #ead2c7; border-radius: 9px; background: #fff5f0; color: #a15e4d; font-size: 11px; line-height: 1.5; }
.auth-form-error[hidden] { display: none; }
.auth-account-card { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid #e2ebe1; border-radius: 13px; background: #f7faf6; }
.auth-account-avatar { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: #deeee1; color: #38714d; font: 700 18px 'Noto Serif SC', serif; }
.auth-account-card strong { display: block; color: #31463a; font-size: 14px; }
.auth-account-card small { display: block; margin-top: 4px; color: #86958a; font-size: 11px; }
.profile-panel { margin-top: 34px; padding: 30px; border: 1px solid #e1e9df; border-radius: 22px; background: rgba(255, 255, 251, .92); box-shadow: 0 18px 48px rgba(50, 76, 57, .06); }
.profile-panel[hidden] { display: none; }
.profile-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding-bottom: 24px; border-bottom: 1px solid #e6ece5; }
.profile-header h2 { margin: 8px 0 6px; color: #20352a; font: 700 clamp(26px, 3vw, 38px)/1.16 'Noto Serif SC', serif; letter-spacing: -.04em; }
.profile-header p { margin: 0; color: #89978d; font-size: 13px; line-height: 1.7; }
.profile-status-card { min-width: 130px; padding: 15px 16px; border-radius: 14px; background: #eff6ed; color: #6f8174; }
.profile-status-card span, .profile-status-card small { display: block; font-size: 11px; }
.profile-status-card strong { display: block; margin: 5px 0 2px; color: #2f6546; font: 800 25px/1 Manrope, sans-serif; }
.profile-account-strip { display: flex; align-items: center; gap: 12px; margin: 24px 0 0; padding: 14px 16px; border: 1px solid #e2ebe1; border-radius: 14px; background: #f7faf6; }
.profile-account-avatar { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; background: #dceede; color: #31704c; font: 700 18px 'Noto Serif SC', serif; }
.profile-account-strip strong, .profile-account-strip span { display: block; }
.profile-account-strip strong { color: #31463a; font-size: 14px; }
.profile-account-strip > div:nth-child(2) span { margin-top: 4px; color: #8a998e; font-size: 11px; }
.profile-verification { margin-left: auto; color: #8f6b4c; font-size: 11px; }
.profile-form { margin-top: 26px; }
.profile-section { padding: 26px 0; border-bottom: 1px solid #e8eee7; }
.profile-section-heading { display: flex; align-items: flex-start; gap: 12px; margin-bottom: 20px; }
.profile-section-number { display: grid; place-items: center; flex: 0 0 auto; width: 28px; height: 28px; border-radius: 9px; background: #eef5ed; color: #4f8561; font: 700 11px/1 DM Mono, monospace; }
.profile-section-heading h3 { margin: 0; color: #2b4134; font-size: 16px; }
.profile-section-heading p { margin: 5px 0 0; color: #8a978e; font-size: 11px; line-height: 1.6; }
.profile-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
.profile-field { display: grid; gap: 8px; min-width: 0; }
.profile-field-wide { grid-column: 1 / -1; }
.profile-field > span { color: #5e7063; font-size: 11px; font-weight: 800; }
.profile-field > span em { margin-left: 4px; color: #b9785d; font-style: normal; font-size: 10px; }
.profile-field input, .profile-field select, .profile-field textarea { width: 100%; box-sizing: border-box; border: 1px solid #dce6dc; border-radius: 10px; background: #fcfefb; color: #2e4336; font: 500 13px/1.55 Manrope, 'Microsoft YaHei', sans-serif; outline: none; transition: border-color 160ms ease, box-shadow 160ms ease, background 160ms ease; }
.profile-field input, .profile-field select { min-height: 44px; padding: 0 13px; }
.profile-field textarea { min-height: 108px; padding: 12px 13px; resize: vertical; }
.profile-field input::placeholder, .profile-field textarea::placeholder { color: #a3aea5; }
.profile-field input:focus, .profile-field select:focus, .profile-field textarea:focus { border-color: #78a582; background: #fff; box-shadow: 0 0 0 3px #eaf3e9; }
.profile-field small { color: #97a399; font-size: 10px; line-height: 1.55; }
.profile-readonly-field { padding: 12px 13px; border: 1px solid #e7eee5; border-radius: 10px; background: #f7faf6; }
.profile-readonly-field output { color: #326b49; font: 800 22px/1 Manrope, sans-serif; }
.profile-choice-grid { display: flex; flex-wrap: wrap; gap: 8px; min-height: 38px; }
.profile-choice { display: inline-flex; align-items: center; min-height: 34px; padding: 0 12px; border: 1px solid #dbe6db; border-radius: 999px; background: #fbfdfb; color: #708074; font-size: 11px; cursor: pointer; transition: background 160ms ease, border-color 160ms ease, color 160ms ease; }
.profile-choice:hover { border-color: #9fbea4; color: #356b48; }
.profile-choice.selected { border-color: #5d966d; background: #e7f2e6; color: #2f6546; font-weight: 800; }
.profile-visibility-section { padding-top: 24px; }
.profile-visibility-toggle { display: flex; align-items: center; gap: 12px; cursor: pointer; }
.profile-visibility-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.profile-toggle-track { display: inline-flex; align-items: center; width: 42px; height: 24px; padding: 3px; box-sizing: border-box; border-radius: 999px; background: #c8d4ca; transition: background 160ms ease; }
.profile-toggle-track i { width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(36, 61, 43, .16); transition: transform 160ms ease; }
.profile-visibility-toggle input:checked + .profile-toggle-track { background: #4e8b60; }
.profile-visibility-toggle input:checked + .profile-toggle-track i { transform: translateX(18px); }
.profile-visibility-toggle input:focus-visible + .profile-toggle-track { outline: 3px solid rgba(71, 126, 89, .22); outline-offset: 2px; }
.profile-visibility-toggle strong, .profile-visibility-toggle small { display: block; }
.profile-visibility-toggle strong { color: #385643; font-size: 13px; }
.profile-visibility-toggle small { margin-top: 4px; color: #8b998f; font-size: 11px; line-height: 1.5; }
.profile-form-feedback { margin-top: 16px; padding: 11px 13px; border: 1px solid #ead2c7; border-radius: 10px; background: #fff5f0; color: #a15e4d; font-size: 11px; line-height: 1.5; }
.profile-form-feedback.success { border-color: #d2e5d2; background: #eff8ee; color: #3b7850; }
.profile-form-feedback[hidden] { display: none; }
.profile-form-actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 24px; }
.profile-form-actions > span { max-width: 580px; color: #98a49a; font-size: 10px; line-height: 1.6; }
.profile-form-actions .primary-button { min-width: 142px; }
@media (max-width: 760px) {
  .profile-panel { padding: 22px 18px; border-radius: 16px; }
  .profile-header { display: grid; grid-template-columns: 1fr; }
  .profile-status-card { width: fit-content; }
  .profile-form-grid { grid-template-columns: 1fr; }
  .profile-field-wide { grid-column: auto; }
  .profile-form-actions { align-items: stretch; flex-direction: column; }
  .profile-form-actions .primary-button { width: 100%; }
  .profile-verification { margin-left: auto; text-align: right; }
}
@media (max-width: 820px) {
  .login-frame { grid-template-columns: 1fr; width: min(560px, calc(100% - 36px)); padding: 38px 0; }
  .login-intro-copy { margin-top: 64px; }
  .login-intro h1 { font-size: clamp(38px, 11vw, 56px); }
  .login-trust-line { margin-top: 42px; }
  .login-card { padding: 28px 22px; }
}

.network-panel { margin-top: 34px; padding: 30px; border: 1px solid #e1e9df; border-radius: 22px; background: rgba(255, 255, 251, .92); box-shadow: 0 18px 48px rgba(50, 76, 57, .06); }
.network-panel[hidden] { display: none; }
.network-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 24px; padding-bottom: 24px; border-bottom: 1px solid #e6ece5; }
.network-header h2 { margin: 8px 0 6px; color: #20352a; font: 700 clamp(26px, 3vw, 38px)/1.16 'Noto Serif SC', serif; letter-spacing: -.04em; }
.network-header p { max-width: 670px; margin: 0; color: #89978d; font-size: 13px; line-height: 1.7; }
.legal-tools-panel { margin-top: 34px; }
.legal-tools-panel[hidden] { display: none; }
.tools-coming-soon-card { min-height: 480px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 54px 30px; border: 1px solid #e1e9df; border-radius: 22px; background: radial-gradient(circle at 50% 20%, rgba(132, 179, 145, .16), transparent 42%), rgba(255, 255, 251, .92); box-shadow: 0 18px 48px rgba(50, 76, 57, .06); text-align: center; }
.tools-coming-soon-mark { display: grid; place-items: center; width: 62px; height: 62px; margin-bottom: 22px; border: 1px solid rgba(80, 137, 94, .25); border-radius: 18px 18px 18px 5px; color: #397650; background: #e9f3e9; font-size: 29px; box-shadow: 0 12px 30px rgba(66, 116, 78, .1); }
.tools-coming-soon-card h2 { margin: 12px 0 15px; color: #20352a; font: 700 clamp(28px, 4vw, 46px)/1.2 'Noto Serif SC', serif; letter-spacing: -.045em; }
.tools-coming-soon-card h2 em { color: #508c61; font-style: normal; }
.tools-coming-soon-card p { max-width: 610px; margin: 0; color: #89978d; font-size: 13px; line-height: 1.85; }
.tools-coming-soon-list { display: grid; gap: 6px; margin: 28px 0; padding: 15px 22px; border: 1px solid #e1e9df; border-radius: 12px; background: rgba(240, 247, 240, .72); }
.tools-coming-soon-list span { color: #9aa79e; font-size: 10px; }
.tools-coming-soon-list strong { color: #4f6d58; font-size: 12px; font-weight: 700; }
.network-protection-note { display: flex; align-items: flex-start; gap: 12px; margin: 22px 0; padding: 15px 17px; border: 1px solid #dce9dc; border-radius: 14px; background: #f2f8f1; color: #38714d; }
.network-protection-note > span { font-size: 16px; }
.network-protection-note strong, .network-protection-note small { display: block; }
.network-protection-note strong { font-size: 12px; }
.network-protection-note small { margin-top: 4px; color: #7f9183; font-size: 11px; line-height: 1.5; }
.lawyer-network-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.network-lawyer-card { display: grid; gap: 14px; padding: 19px; border: 1px solid #e1e9df; border-radius: 16px; background: #fff; }
.network-lawyer-card-top { display: flex; align-items: center; gap: 11px; min-width: 0; }
.network-lawyer-avatar { display: grid; place-items: center; flex: 0 0 auto; width: 42px; height: 42px; border-radius: 13px; background: #e1f0e3; color: #39734e; font: 700 18px 'Noto Serif SC', serif; }
.network-lawyer-identity { min-width: 0; flex: 1; }
.network-lawyer-identity strong, .network-lawyer-identity span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.network-lawyer-identity strong { color: #2e4436; font-size: 14px; }
.network-lawyer-identity span { margin-top: 4px; color: #8b998f; font-size: 11px; }
.network-verified { align-self: flex-start; color: #9a6c43; font-size: 10px; white-space: nowrap; }
.network-lawyer-summary { display: grid; gap: 4px; }
.network-lawyer-summary span, .network-public-grid span, .network-public-block > span { color: #8b998f; font-size: 10px; }
.network-lawyer-summary strong { color: #50675a; font-size: 12px; font-weight: 600; line-height: 1.55; }
.network-lawyer-tags { display: flex; flex-wrap: wrap; gap: 6px; }
.network-lawyer-tags span { padding: 5px 8px; border-radius: 999px; background: #f3f7f2; color: #568064; font-size: 10px; }
.network-view-profile { justify-self: start; min-height: 35px; padding: 0 12px; font-size: 11px; }
.network-empty, .network-loading { display: grid; place-items: center; gap: 7px; min-height: 180px; padding: 24px; border: 1px dashed #d6e2d6; border-radius: 14px; color: #849288; text-align: center; }
.network-empty strong, .network-loading strong { color: #50675a; font-size: 13px; }
.network-empty span { font-size: 11px; line-height: 1.6; }
.network-empty.error { border-color: #ead2c7; background: #fff8f3; }
.network-loading { display: flex; justify-content: center; flex-direction: column; }
.network-loading > span { width: 18px; height: 18px; border: 2px solid #dbe9dc; border-top-color: #4e8b60; border-radius: 50%; animation: login-spin .8s linear infinite; }
.lawyer-strip .network-lawyer-card { min-width: 0; }
.lawyer-strip .network-lawyer-summary { display: none; }
.lawyer-strip .network-lawyer-card { gap: 10px; }
.network-profile-modal { width: min(760px, calc(100% - 32px)); max-height: min(820px, calc(100vh - 40px)); overflow: auto; padding: 32px; }
.network-profile-heading { display: flex; align-items: center; gap: 13px; padding: 18px 0 22px; border-bottom: 1px solid #e8eee7; }
.network-profile-avatar { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: #e1f0e3; color: #39734e; font: 700 22px 'Noto Serif SC', serif; }
.network-profile-heading h2 { margin: 0; color: #2a4032; font: 700 25px/1.2 'Noto Serif SC', serif; }
.network-profile-heading p { margin: 5px 0 0; color: #8b998f; font-size: 12px; }
.network-profile-content { display: grid; gap: 18px; padding: 22px 0; }
.network-public-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.network-public-grid > div { display: grid; gap: 5px; padding: 12px 13px; border-radius: 11px; background: #f7faf6; }
.network-public-grid strong { color: #476052; font-size: 12px; line-height: 1.55; }
.network-public-block { display: grid; gap: 6px; }
.network-public-block p { margin: 0; color: #53675a; font-size: 12px; line-height: 1.75; white-space: pre-wrap; }
.network-public-boundary { padding: 11px 13px; border: 1px solid #eadfce; border-radius: 10px; background: #fffaf2; color: #96704d; font-size: 10px; line-height: 1.6; }
.network-contact-form { display: grid; gap: 14px; padding-top: 22px; border-top: 1px solid #e8eee7; }
.network-contact-title { display: grid; gap: 4px; }
.network-contact-title strong { color: #304738; font-size: 14px; }
.network-contact-title span { color: #8b998f; font-size: 11px; }
.network-contact-actions { display: flex; justify-content: flex-end; gap: 10px; }
.network-contact-actions .primary-button, .network-contact-actions .secondary-button { min-height: 40px; }
.network-contact-form .profile-field input, .network-contact-form .profile-field select, .network-contact-form .profile-field textarea { font-size: 12px; }
@media (max-width: 760px) {
  .network-panel { padding: 22px 18px; border-radius: 16px; }
  .tools-coming-soon-card { min-height: 400px; padding: 38px 22px; border-radius: 16px; }
  .network-header { display: grid; grid-template-columns: 1fr; }
  .lawyer-network-list { grid-template-columns: 1fr; }
  .network-profile-modal { padding: 24px 20px; }
  .network-public-grid { grid-template-columns: 1fr; }
  .network-contact-actions { display: grid; grid-template-columns: 1fr 1fr; }
}

/* 登录首页视觉：Spline 几何场景只作用于登录层，工作台保持原有业务界面 */
#login-screen { overflow: hidden; background: radial-gradient(ellipse 42% 52% at 78% 46%, rgba(96,57,194,.24), transparent 70%), radial-gradient(ellipse 32% 30% at 16% 14%, rgba(38,58,151,.14), transparent 72%), linear-gradient(132deg,#040309 0%,#080611 48%,#0b0717 100%); color:#f5efff; box-shadow:inset 0 0 180px rgba(0,0,0,.44); }
#login-screen::before { content:""; position:absolute; inset:-12%; z-index:0; pointer-events:none; background:radial-gradient(ellipse 24% 20% at 72% 37%,rgba(153,104,255,.13),transparent 72%),radial-gradient(ellipse 20% 34% at 88% 70%,rgba(43,93,213,.1),transparent 74%),radial-gradient(ellipse 30% 18% at 42% 84%,rgba(88,51,166,.07),transparent 76%); filter:blur(28px); }
#login-screen::after { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; background:radial-gradient(ellipse at 52% 48%,transparent 28%,rgba(3,2,8,.12) 72%,rgba(0,0,0,.54) 100%); }
#login-screen .login-backdrop-orb { display:none; }
#login-screen .login-spline-visual { position:absolute; z-index:1; right:20%; top:50%; width:min(620px,45vw); aspect-ratio:1; transform:translateY(-50%); pointer-events:none; opacity:.72; }
#login-screen .login-spline-visual canvas { display:block; width:100%; height:100%; opacity:0; filter:brightness(.3) saturate(1.45) sepia(.55) hue-rotate(205deg) contrast(1.12); }
#login-screen .login-spline-viewer { display:block; position:absolute; inset:0; width:100%; height:100%; background:transparent; }
#login-screen .login-spline-visual.runtime-ready canvas { opacity:1; }
#login-screen .login-spline-visual.runtime-ready .login-spline-viewer { display:none; }
#login-screen .login-spline-visual.runtime-fallback canvas { display:none; }
#login-screen .login-frame { z-index:2; width:min(1240px,calc(100% - 72px)); grid-template-columns:minmax(0,1fr) minmax(390px,430px); gap:clamp(36px,7vw,110px); }
#login-screen .login-brand-mark { background:linear-gradient(145deg,#302052,#110d1c); color:#f5efff; border:1px solid rgba(205,174,255,.4); box-shadow:0 0 24px rgba(137,82,255,.18); }
#login-screen .login-brand strong { color:#f5efff; }
#login-screen .login-brand small { color:#776f84; }
#login-screen .login-intro-copy { margin-top:clamp(72px,12vh,135px); }
#login-screen .login-eyebrow { color:#ae8de0; font:600 10px Manrope,monospace; letter-spacing:.16em; }
#login-screen .login-eyebrow span { background:linear-gradient(90deg,#8753e9,#628eff); }
#login-screen .login-intro h1 { color:#f5efff; font:700 clamp(52px,6vw,86px)/1.1 "Noto Sans SC","HarmonyOS Sans SC","MiSans",sans-serif; letter-spacing:-.075em; text-shadow:0 8px 35px rgba(87,55,160,.16); }
#login-screen .login-intro h1 em { color:transparent; background:linear-gradient(105deg,#f5efff 12%,#c7a7ff 50%,#7e9fff 92%); -webkit-background-clip:text; background-clip:text; }
#login-screen .login-intro-copy p { color:#aaa1b8; font:500 14px/1.95 "Noto Sans SC",sans-serif; letter-spacing:.055em; }
#login-screen .login-trust-line { color:#71677e; font:500 9px Manrope,monospace; letter-spacing:.12em; }
#login-screen .login-trust-line > span:first-child { color:#9c7de6; }
#login-screen .login-trust-line i { background:#66558d; }
#login-screen .login-card { border:1px solid rgba(190,150,255,.28); border-radius:19px; background:linear-gradient(145deg,rgba(30,22,50,.94),rgba(10,8,18,.96)); box-shadow:0 25px 80px rgba(0,0,0,.5),0 0 50px rgba(95,56,195,.16); backdrop-filter:blur(20px); }
#login-screen .login-card-kicker { color:#b68fff; font:700 9px Manrope,monospace; letter-spacing:.15em; }
#login-screen .login-card h2 { color:#f5efff; font:600 25px "Noto Serif SC",serif; }
#login-screen .login-card-intro { color:#968ca3; }
#login-screen .auth-mode-tabs { background:rgba(255,255,255,.06); }
#login-screen .auth-mode-tab { color:#897e98; }
#login-screen .auth-mode-tab.active { color:#f3eaff; background:rgba(158,106,255,.2); box-shadow:none; }
#login-screen .auth-field > span { color:#afa3bd; }
#login-screen .auth-field input { border-color:rgba(195,166,244,.18); background:rgba(3,2,8,.42); color:#f2eaff; }
#login-screen .auth-field input::placeholder { color:#5e566b; }
#login-screen .auth-field input:focus { border-color:#8b67d5; background:rgba(3,2,8,.6); box-shadow:0 0 0 3px rgba(139,103,213,.16); }
#login-screen .login-primary-button { background:linear-gradient(100deg,#7140c9,#4d74df); color:#fff; }
#login-screen .login-footnote { border-color:rgba(211,188,255,.12); }
#login-screen .login-footnote span { color:#b68fff; }
#login-screen .login-footnote p { color:#837991; }
@media (max-width:820px) { #login-screen .login-spline-visual { right:-18vw; top:58%; width:92vw; } #login-screen .login-frame { width:min(560px,calc(100% - 36px)); } }

/* 工作台视觉统一：与登录页共享黑紫、紫蓝和克制发光语言；业务结构和交互保持不变 */
:root {
  --workspace-bg: #07050d;
  --workspace-bg-deep: #040309;
  --workspace-surface: rgba(20, 15, 34, .84);
  --workspace-surface-strong: rgba(28, 21, 48, .95);
  --workspace-surface-soft: rgba(255, 255, 255, .045);
  --workspace-line: rgba(193, 162, 255, .16);
  --workspace-line-strong: rgba(198, 165, 255, .32);
  --workspace-text: #f5efff;
  --workspace-text-secondary: #b2a8bf;
  --workspace-text-muted: #7c728a;
  --workspace-purple: #9c72ed;
  --workspace-purple-bright: #c7a7ff;
  --workspace-blue: #628eff;
  --workspace-success: #5fd39b;
  --workspace-warning: #e8b46d;
  --workspace-danger: #ed806f;
  --workspace-radius-sm: 8px;
  --workspace-radius-md: 14px;
  --workspace-radius-lg: 20px;
  --workspace-shadow: 0 24px 70px rgba(0, 0, 0, .32);
}

body { min-width: 0; background: var(--workspace-bg); color: var(--workspace-text); }
.app-shell { position: relative; min-height: 100vh; overflow: hidden; isolation: isolate; background: radial-gradient(ellipse 38% 48% at 78% 12%, rgba(86, 52, 168, .18), transparent 72%), radial-gradient(ellipse 34% 40% at 28% 92%, rgba(34, 43, 121, .12), transparent 76%), linear-gradient(132deg, var(--workspace-bg-deep), var(--workspace-bg) 52%, #0b0717); }
.app-shell::before { content: ""; position: absolute; inset: -10%; z-index: -1; pointer-events: none; background: radial-gradient(ellipse 22% 24% at 70% 40%, rgba(146, 92, 235, .1), transparent 74%), radial-gradient(ellipse 18% 28% at 92% 78%, rgba(47, 94, 218, .08), transparent 76%); filter: blur(30px); }
.sidebar { width: 254px; padding: 28px 17px 20px; background: rgba(9, 7, 17, .78); border-right: 1px solid var(--workspace-line); box-shadow: 18px 0 60px rgba(0, 0, 0, .12); backdrop-filter: blur(24px); }
.brand-lockup { padding-bottom: 32px; }
.brand-mark { color: var(--workspace-text); background: linear-gradient(145deg, #302052, #110d1c); border: 1px solid rgba(205, 174, 255, .4); box-shadow: 0 0 24px rgba(137, 82, 255, .18); }
.brand-name { color: var(--workspace-text); }
.brand-caption { color: #776f84; }
.workspace-switcher { background: rgba(255, 255, 255, .045); border-color: var(--workspace-line); border-radius: var(--workspace-radius-md); }
.workspace-avatar, .user-avatar { background: rgba(158, 106, 255, .2); color: var(--workspace-purple-bright); }
.workspace-copy strong, .user-row strong { color: var(--workspace-text-secondary); }
.workspace-copy span, .user-row span { color: var(--workspace-text-muted); }
.chevron, .more { color: #81758e; }
.sidebar-section-label { color: #7d718b; }
.nav-item { color: #8b8196; border: 1px solid transparent; }
.nav-item:hover { background: rgba(158, 106, 255, .08); color: var(--workspace-text); border-color: rgba(193, 162, 255, .1); }
.nav-item.active { color: #f3eaff; background: linear-gradient(90deg, rgba(145, 87, 230, .2), rgba(98, 142, 255, .08)); border-color: rgba(198, 165, 255, .22); box-shadow: 0 8px 22px rgba(76, 43, 151, .18), inset 3px 0 0 #9c72ed; }
.nav-icon { color: #a68ee1; }
.nav-count { color: #887b95; }
.nav-beta { border-color: rgba(198, 165, 255, .18); color: #b69bff; background: rgba(158, 106, 255, .1); }
.protocol-card { background: rgba(86, 133, 104, .09); border: 1px solid rgba(95, 211, 155, .16); }
.protocol-top { color: #9ee3bc; }
.protocol-card p { color: #8ea798; }
.text-button, .subtle-button { color: #b69bff; }
.user-row { border-color: var(--workspace-line); }
.main-content { position: relative; min-width: 0; background: transparent; }
.topbar { height: 80px; padding: 0 48px; border-color: var(--workspace-line); background: rgba(7, 5, 13, .3); backdrop-filter: blur(18px); }
.breadcrumb { color: var(--workspace-text-muted); }
.breadcrumb strong { color: var(--workspace-text); }
.breadcrumb-separator { color: #51485e; }
.icon-button, .avatar-button { border-color: var(--workspace-line); background: rgba(255, 255, 255, .045); color: #a89ab5; }
.icon-button:hover { color: var(--workspace-purple-bright); border-color: var(--workspace-line-strong); background: rgba(158, 106, 255, .1); }
.notification i { background: var(--workspace-warning); border-color: #171022; }
.avatar-button { border: 1px solid rgba(198, 165, 255, .34); background: linear-gradient(145deg, #7140c9, #4d74df); color: #fff; }
.page-content { position: relative; z-index: 1; padding: 39px 48px 60px; }
.eyebrow { color: #a28fb5; }
.eyebrow-line { background: linear-gradient(90deg, #8753e9, #628eff); }
h1, h2, h3, .section-heading h2 { color: var(--workspace-text); }
.hero-subtitle, .section-heading p { color: var(--workspace-text-secondary); }
.hero-subtitle strong { color: var(--workspace-purple-bright); }
.primary-button { color: #fff; background: linear-gradient(100deg, #7140c9, #4d74df); box-shadow: 0 10px 24px rgba(74, 46, 158, .24); }
.primary-button:hover { background: linear-gradient(100deg, #8150db, #5c83ef); box-shadow: 0 13px 30px rgba(74, 46, 158, .34); }
.secondary-button { color: #d6c5ff; background: rgba(158, 106, 255, .12); border: 1px solid rgba(198, 165, 255, .22); }
.secondary-button:hover { background: rgba(158, 106, 255, .2); }
.demo-banner { border-color: rgba(198, 165, 255, .18); background: rgba(158, 106, 255, .08); color: var(--workspace-text-secondary); }
.demo-banner strong { color: var(--workspace-purple-bright); }
.metric-grid { gap: 14px; }
.metric-card { min-height: 156px; border-color: var(--workspace-line); border-radius: var(--workspace-radius-lg); background: var(--workspace-surface); box-shadow: var(--workspace-shadow); }
.metric-card { min-height: 132px; padding-top: 18px; padding-bottom: 14px; opacity: .9; }
.metric-card .metric-foot { position: relative; z-index: 2; margin-top: 8px; padding-bottom: 14px; }
.metric-card .metric-line, .metric-card .metric-progress { bottom: 10px; z-index: 1; }
.metric-card:hover, .case-row:hover, .network-lawyer-card:hover { border-color: var(--workspace-line-strong); box-shadow: 0 18px 46px rgba(0, 0, 0, .25), 0 0 28px rgba(100, 61, 182, .1); }
.featured-metric { background: linear-gradient(145deg, rgba(63, 34, 112, .9), rgba(24, 17, 42, .96)); border-color: rgba(168, 119, 245, .3); }
.warm-metric { background: linear-gradient(145deg, rgba(92, 57, 48, .48), rgba(31, 19, 35, .92)); border-color: rgba(232, 180, 109, .2); }
.metric-label { color: var(--workspace-text-muted); }
.featured-metric .metric-label { color: #d5bdff; }
.warm-metric .metric-label { color: #d5ad91; }
.metric-value { color: var(--workspace-text); }
.metric-foot { color: var(--workspace-text-muted); }
.featured-metric .metric-foot { color: #cbb4ef; }
.warm-metric .metric-foot { color: #d2a986; }
.trend.up { color: var(--workspace-success); }
.featured-metric .trend.up { color: #a6f0c5; }
.trend.urgent { color: var(--workspace-danger); }
.trend.neutral { color: #9d87d8; }
.metric-sparkline span { background: #9d72ed; }
.metric-sparkline span:nth-child(4), .metric-sparkline span:nth-child(6) { background: #628eff; }
.metric-line, .metric-progress { background: rgba(255, 255, 255, .08); }
.metric-line i { background: linear-gradient(90deg, #9c72ed, #628eff); }
.metric-progress i { background: linear-gradient(90deg, #e8b46d, #ed806f); }
.metric-ring { border-color: rgba(255, 255, 255, .1); border-top-color: #9c72ed; border-right-color: #628eff; color: #c7a7ff; }
.section-heading { border-color: var(--workspace-line); }
.metric-grid + .content-grid { padding-top: 25px; border-top: 1px solid var(--workspace-line); }
.metric-grid + .content-grid .main-column::before { content:'优先处理'; display:block; margin:-5px 0 13px; color:#b68fff; font:600 10px 'DM Mono',monospace; letter-spacing:.13em; text-transform:uppercase; }
.case-list, .timeline { border-color: var(--workspace-line); }
.case-row { border-color: var(--workspace-line); color: var(--workspace-text-secondary); }
.case-row:hover { padding-left: 8px; background: rgba(158, 106, 255, .055); }
.case-side { min-width: 190px; }
.case-next-action { display:grid; gap:3px; min-width:180px; margin-bottom:8px; padding:8px 10px; border:1px solid rgba(198,165,255,.18); border-radius:10px; background:linear-gradient(100deg,rgba(158,106,255,.12),rgba(98,142,255,.06)); }
.case-next-action small { color:#a28fb5; font:500 9px 'DM Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }
.case-next-action strong { overflow:hidden; color:#e8ddff; font:600 11px 'Noto Sans SC',sans-serif; text-overflow:ellipsis; white-space:nowrap; }
.case-row strong, .case-row h3, .timeline-copy strong { color: var(--workspace-text); }
.case-row small, .timeline-time { color: var(--workspace-text-muted); }
.case-flag.coral { background: var(--workspace-danger); }.case-flag.amber { background: var(--workspace-warning); }.case-flag.navy { background: var(--workspace-blue); }
.case-filter { border-color: var(--workspace-line); background: rgba(255, 255, 255, .045); color: var(--workspace-text-secondary); }
.lawyer-strip .network-lawyer-card, .network-lawyer-card { border-color: var(--workspace-line); background: var(--workspace-surface); color: var(--workspace-text-secondary); }
.network-lawyer-card strong { color: var(--workspace-text); }
.network-lawyer-tags span { background: rgba(158, 106, 255, .12); color: #c7a7ff; border: 1px solid rgba(198, 165, 255, .12); }
.network-verified { color: #e8b46d; }
.network-lawyer-summary span, .network-public-grid span, .network-public-block > span { color: var(--workspace-text-muted); }
.network-lawyer-summary strong { color: var(--workspace-text-secondary); }
.timeline-item { border-color: var(--workspace-line); }
.timeline-copy { color: var(--workspace-text-secondary); }
.timeline-mark { background: rgba(95, 211, 155, .14); color: var(--workspace-success); }
.timeline-item:nth-child(2) .timeline-mark { background: rgba(232, 180, 109, .14); color: var(--workspace-warning); }
.timeline-item:nth-child(3) .timeline-mark { background: rgba(98, 142, 255, .14); color: #9fb9ff; }
.timeline-item:nth-child(4) .timeline-mark { background: rgba(237, 128, 111, .14); color: var(--workspace-danger); }
.principle-card { background: linear-gradient(145deg, rgba(57, 32, 102, .9), rgba(18, 12, 31, .96)); border: 1px solid rgba(198, 165, 255, .22); box-shadow: var(--workspace-shadow); }
.principle-card p { color: #eee5ff; }
.principle-card span { color: #ad91e8; }
.profile-panel, .network-panel, .tools-coming-soon-card { border-color: var(--workspace-line); background: var(--workspace-surface); box-shadow: var(--workspace-shadow); }
.profile-header, .network-header { border-color: var(--workspace-line); }
.profile-header p, .network-header p { color: var(--workspace-text-secondary); }
.tools-coming-soon-card h2 { color: var(--workspace-text); }
.tools-coming-soon-card h2 em { color: #c7a7ff; }
.tools-coming-soon-card p { color: var(--workspace-text-secondary); }
.tools-coming-soon-mark { border-color: rgba(198, 165, 255, .22); color: #c7a7ff; background: rgba(158, 106, 255, .12); box-shadow: none; }
.tools-coming-soon-list { border-color: var(--workspace-line); background: rgba(158, 106, 255, .08); }
.tools-coming-soon-list span { color: var(--workspace-text-muted); }
.tools-coming-soon-list strong { color: #d9c8ff; }
.profile-status-card { background: rgba(95, 211, 155, .1); color: #9bceb1; border: 1px solid rgba(95, 211, 155, .16); }
.profile-status-card strong { color: var(--workspace-success); }
.profile-account-strip, .network-protection-note { border-color: var(--workspace-line); background: rgba(255, 255, 255, .045); }
.profile-account-strip strong, .network-protection-note strong { color: var(--workspace-text); }
.profile-account-strip > div:nth-child(2) span, .network-protection-note small { color: var(--workspace-text-muted); }
.profile-account-avatar, .network-profile-avatar { background: rgba(158, 106, 255, .18); color: #c7a7ff; }
.profile-verification { color: var(--workspace-warning); }
.profile-section { border-color: var(--workspace-line); }
.profile-section-heading h3 { color: var(--workspace-text); }
.profile-section-heading p { color: var(--workspace-text-muted); }
.profile-section-number { background: rgba(158, 106, 255, .14); color: #c7a7ff; }
.profile-field > span, .profile-field > span em { color: var(--workspace-text-secondary); }
.profile-field input, .profile-field select, .profile-field textarea, .form-grid input, .form-grid select, .form-grid textarea { border-color: var(--workspace-line); background: rgba(3, 2, 8, .42); color: var(--workspace-text); }
.profile-field input::placeholder, .profile-field textarea::placeholder { color: #665b72; }
.profile-field input:focus, .profile-field select:focus, .profile-field textarea:focus { border-color: #8b67d5; background: rgba(3, 2, 8, .6); box-shadow: 0 0 0 3px rgba(139, 103, 213, .16); }
.profile-field small, .profile-readonly-field small { color: var(--workspace-text-muted); }
.profile-readonly-field { border-color: var(--workspace-line); background: rgba(255, 255, 255, .045); }
.profile-readonly-field output { color: var(--workspace-purple-bright); }
.profile-choice { border-color: var(--workspace-line); background: rgba(255, 255, 255, .035); color: var(--workspace-text-secondary); }
.profile-choice:hover, .profile-choice.selected { border-color: rgba(198, 165, 255, .42); background: rgba(158, 106, 255, .18); color: #f3eaff; }
.profile-visibility-toggle strong { color: var(--workspace-text); }
.profile-visibility-toggle small { color: var(--workspace-text-muted); }
.profile-toggle-track { background: #40364d; }.profile-visibility-toggle input:checked + .profile-toggle-track { background: #7140c9; }
.profile-form-actions > span { color: var(--workspace-text-muted); }
.profile-form-feedback { border-color: rgba(237, 128, 111, .25); background: rgba(237, 128, 111, .1); color: #f0a294; }
.profile-form-feedback.success { border-color: rgba(95, 211, 155, .24); background: rgba(95, 211, 155, .1); color: #9ce4bd; }
.network-empty, .network-loading { border-color: var(--workspace-line); color: var(--workspace-text-muted); background: rgba(255, 255, 255, .025); }
.network-empty strong, .network-loading strong { color: var(--workspace-text-secondary); }
.network-empty.error { border-color: rgba(237, 128, 111, .3); background: rgba(237, 128, 111, .08); }
.modal-backdrop { background: rgba(3, 2, 8, .72); backdrop-filter: blur(12px); }
.modal { border: 1px solid var(--workspace-line-strong); border-radius: var(--workspace-radius-lg); background: linear-gradient(145deg, rgba(30, 22, 50, .97), rgba(10, 8, 18, .98)); color: var(--workspace-text); box-shadow: var(--workspace-shadow); }
.modal-close { background: rgba(255, 255, 255, .06); color: #a99ab6; }
.modal-close:hover { background: rgba(158, 106, 255, .16); color: #f3eaff; }
.modal-kicker, .detail-kicker { color: #b68fff; }
.modal h2, .detail-title, .network-profile-heading h2 { color: var(--workspace-text); }
.modal-intro, .detail-sub, .network-profile-heading p { color: var(--workspace-text-secondary); }
.form-grid label span, .detail-label { color: var(--workspace-text-secondary); }
.privacy-note, .confirm-panel { border-color: rgba(95, 211, 155, .18); background: rgba(95, 211, 155, .08); color: #9ce4bd; }
.upload-zone { border-color: var(--workspace-line-strong); background: rgba(158, 106, 255, .06); color: var(--workspace-text-secondary); }
.upload-zone:hover, .upload-zone.dragover { border-color: #9c72ed; background: rgba(158, 106, 255, .14); }
.detail-header { background: rgba(158, 106, 255, .1); border-color: var(--workspace-line); }
.detail-body { color: var(--workspace-text-secondary); }
.detail-brief { color: #ded4ea; }
.detail-facts .fact { border-color: var(--workspace-line); }
.detail-facts .fact span, .match-note { color: var(--workspace-text-muted); }
.match-panel { border-color: var(--workspace-line); background: rgba(255, 255, 255, .045); }
.match-panel h3, .match-lawyer strong { color: var(--workspace-text); }
.match-lawyer { border-color: var(--workspace-line); }.match-lawyer-avatar { background: rgba(158, 106, 255, .18); color: #c7a7ff; }.match-lawyer span { color: var(--workspace-text-muted); }.match-percent { color: var(--workspace-purple-bright); }
.match-gaps { background: rgba(232, 180, 109, .10); color: #e8c28f; }.match-rule-version { color: var(--workspace-text-muted); }
.network-public-grid > div { background: rgba(255, 255, 255, .045); }.network-public-grid strong, .network-public-block p { color: var(--workspace-text-secondary); }
.network-public-boundary { border-color: rgba(232, 180, 109, .22); background: rgba(232, 180, 109, .08); color: #e8c28f; }
.network-contact-form { border-color: var(--workspace-line); }.network-contact-title strong { color: var(--workspace-text); }.network-contact-title span { color: var(--workspace-text-muted); }
.firm-summary > div, .firm-table-row, .firm-section { border-color: var(--workspace-line); }
.firm-section-heading h3, .firm-summary strong { color: var(--workspace-text); }.firm-section-heading p, .firm-summary span, .firm-table-row { color: var(--workspace-text-secondary); }
.firm-table-row:hover { background: rgba(158, 106, 255, .06); }.audit-empty { color: var(--workspace-text-muted); }.audit-live { color: var(--workspace-success); }
.approval-row { border-color: var(--workspace-line); background: rgba(255, 255, 255, .035); }.approval-row strong { color: var(--workspace-text); }.approval-row small { color: var(--workspace-text-muted); }
.auth-account-card { border-color: var(--workspace-line); background: rgba(255, 255, 255, .045); }.auth-account-card strong { color: var(--workspace-text); }.auth-account-card small { color: var(--workspace-text-muted); }.auth-account-avatar { background: rgba(158, 106, 255, .18); color: #c7a7ff; }
.auth-permission-note { border-color: rgba(232, 180, 109, .22); background: rgba(232, 180, 109, .08); color: #e8c28f; }
.modal-actions { background: linear-gradient(to bottom, rgba(10, 8, 18, 0), rgba(10, 8, 18, .98) 16px); }
.login-spin, .status-spinner { border-color: rgba(198, 165, 255, .22); border-top-color: #9c72ed; }
#app-content .hero-row h1 { font-family: 'Noto Sans SC', 'HarmonyOS Sans SC', 'MiSans', sans-serif; font-weight: 700; letter-spacing: -.08em; line-height: 1.12; text-shadow: 0 8px 30px rgba(87, 55, 160, .18); }
#app-content .hero-row h1 #greeting-name { color: transparent; background: linear-gradient(105deg, #f5efff 12%, #c7a7ff 54%, #7e9fff 94%); -webkit-background-clip: text; background-clip: text; }
#app-content .hero-row h1 .serif-dot { color: #5fd39b; font-family: 'Noto Sans SC', sans-serif; }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; } }
@media (max-width: 980px) { .sidebar { width: 220px; } .topbar, .page-content { padding-left: 28px; padding-right: 28px; } .content-grid { gap: 26px; } }
@media (max-width: 760px) { body { min-width: 0; } .app-shell { overflow:auto; } .sidebar { width:100%; min-height:auto; padding:18px 16px; } .brand-lockup { padding-bottom:18px; } .workspace-switcher { margin-bottom:14px; } .primary-nav, .secondary-nav { grid-template-columns:repeat(2, minmax(0, 1fr)); } .sidebar-section-label, .sidebar-bottom { display:none; } .app-shell { display:block; } .main-content { min-width:0; } .topbar { height:64px; padding:0 18px; } .page-content { padding:28px 18px 42px; } .hero-row { align-items:flex-start; flex-direction:column; gap:18px; } .metric-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); } .content-grid { grid-template-columns:1fr; } .profile-form-grid, .network-public-grid { grid-template-columns:1fr; } .profile-field-wide { grid-column:auto; } .modal { width:calc(100vw - 28px); padding:24px 20px; } }

/* 登录首页与 work/login-mockup-spline.html 对齐：Hero 默认展示，登录面板由导航或 CTA 打开 */
#login-screen { overflow:hidden; isolation:isolate; background:radial-gradient(ellipse 46% 58% at 76% 47%,rgba(92,55,177,.34),transparent 70%),radial-gradient(ellipse 38% 32% at 18% 16%,rgba(38,48,133,.24),transparent 72%),radial-gradient(ellipse 34% 30% at 46% 90%,rgba(54,25,102,.16),transparent 76%),linear-gradient(132deg,#040309 0%,#080611 48%,#0b0717 100%); color:#f5efff; }
#login-screen::before { background:radial-gradient(ellipse 24% 20% at 72% 37%,rgba(153,104,255,.13),transparent 72%),radial-gradient(ellipse 20% 34% at 88% 70%,rgba(43,93,213,.1),transparent 74%),radial-gradient(ellipse 30% 18% at 42% 84%,rgba(88,51,166,.07),transparent 76%); filter:blur(28px); opacity:.9; }
#login-screen::after { background:radial-gradient(ellipse at 52% 48%,transparent 28%,rgba(3,2,8,.12) 72%,rgba(0,0,0,.54) 100%),linear-gradient(90deg,rgba(4,3,10,.54) 0%,rgba(4,3,10,.08) 48%,rgba(7,3,18,.2) 100%); }
#login-screen .login-backdrop-orb { display:none; }
#login-screen .login-topbar { position:absolute; z-index:5; top:18px; left:30px; right:30px; display:flex; align-items:center; justify-content:space-between; }
#login-screen .login-top-brand { display:flex; align-items:center; gap:11px; }
#login-screen .login-top-brand .login-brand-mark { width:39px; height:39px; border-radius:12px 12px 12px 3px; font-size:21px; }
#login-screen .login-top-brand strong { display:block; color:#f5efff; font:600 18px 'Noto Serif SC',serif; letter-spacing:.12em; }
#login-screen .login-top-brand small { display:block; margin-top:2px; color:#776f84; font:500 8px/1 Manrope,monospace; letter-spacing:.16em; }
#login-screen .login-nav { display:flex; align-items:center; gap:25px; padding:9px 11px 9px 20px; border:1px solid rgba(193,162,255,.16); border-radius:999px; background:rgba(8,7,14,.67); backdrop-filter:blur(14px); color:#93899e; font:500 10px Manrope,'Noto Sans SC',sans-serif; letter-spacing:.03em; }
#login-screen .login-nav a { color:inherit; text-decoration:none; }
#login-screen .login-nav a.active { color:#efe6ff; }
#login-screen .login-nav-button { border:1px solid rgba(198,165,255,.42); border-radius:999px; padding:8px 15px; background:rgba(143,87,230,.13); color:#eee4ff; font:700 10px 'Noto Sans SC',sans-serif; cursor:pointer; }
#login-screen .login-stars { position:absolute; inset:0; z-index:0; pointer-events:none; }
#login-screen .login-star { position:absolute; width:2px; height:2px; border-radius:50%; background:#b99aff; box-shadow:0 0 10px 2px rgba(141,108,255,.55); opacity:0; animation:login-star-twinkle 5s ease-in-out infinite; }
#login-screen .star-a { left:13%; top:21%; animation-delay:.7s; }
#login-screen .star-b { left:27%; top:72%; animation-delay:2.2s; }
#login-screen .star-c { left:39%; top:13%; animation-delay:1.4s; }
#login-screen .star-d { left:48%; top:82%; animation-delay:3.1s; }
#login-screen .star-e { left:58%; top:18%; animation-delay:4.3s; }
#login-screen .star-f { left:69%; top:76%; animation-delay:2.7s; }
#login-screen .star-g { left:84%; top:29%; animation-delay:4.9s; }
#login-screen .star-h { left:92%; top:66%; animation-delay:1.9s; }
#login-screen .star-i { left:76%; top:12%; animation-delay:3.8s; }
#login-screen .star-j { left:21%; top:46%; animation-delay:5.5s; }
#login-screen .star-k { left:52%; top:57%; animation-delay:6.4s; }
#login-screen .star-l { left:89%; top:86%; animation-delay:7.1s; }
@keyframes login-star-twinkle { 0%,62%,100% { opacity:0; transform:scale(.4); } 70% { opacity:.72; transform:scale(1); } 78% { opacity:.12; transform:scale(.65); } }
#login-screen .login-frame { display:flex; align-items:center; width:min(1200px,calc(100vw - 120px)); min-height:100%; margin:0 auto; padding:0; gap:0; pointer-events:none; }
#login-screen .login-frame .login-intro { pointer-events:auto; }
#login-screen .login-frame .login-panel { pointer-events:none; }
#login-screen .login-intro { position:relative; z-index:3; width:47%; padding-top:35px; }
#login-screen .login-frame > .login-intro > .login-brand { display:none; }
#login-screen .login-intro-copy { max-width:none; margin-top:0; }
#login-screen .login-eyebrow { gap:10px; color:#ae8de0; font:600 10px Manrope,monospace; letter-spacing:.16em; }
#login-screen .login-eyebrow span { width:25px; height:1px; background:linear-gradient(90deg,#8753e9,#628eff); }
#login-screen .login-intro h1 { margin:22px 0 19px; color:#f5efff; font:700 clamp(52px,6vw,86px)/1.1 'Noto Sans SC','HarmonyOS Sans SC','MiSans',sans-serif; letter-spacing:-.075em; text-shadow:0 8px 35px rgba(87,55,160,.16); }
#login-screen .login-intro h1 em { color:transparent; background:linear-gradient(105deg,#f5efff 12%,#c7a7ff 50%,#7e9fff 92%); -webkit-background-clip:text; background-clip:text; }
#login-screen .login-intro-copy p { max-width:390px; margin:0; color:#aaa1b8; font:500 14px/1.95 'Noto Sans SC','HarmonyOS Sans SC','MiSans',sans-serif; letter-spacing:.055em; }
#login-screen .login-hero-button { display:inline-flex; align-items:center; gap:12px; margin-top:31px; padding:13px 18px; border:1px solid rgba(197,163,255,.27); border-radius:999px; background:rgba(139,84,231,.13); color:#f2eaff; font:600 11px 'Noto Sans SC',sans-serif; letter-spacing:.04em; cursor:pointer; }
#login-screen .login-hero-button span { font:400 16px Manrope,sans-serif; }
#login-screen .login-trust-line { gap:11px; margin-top:31px; color:#71677e; font:500 9px Manrope,monospace; letter-spacing:.12em; }
#login-screen .login-trust-line > span:first-child { color:#71677e; font-size:9px; }
#login-screen .login-trust-line i { width:3px; height:3px; background:#66558d; }
#login-screen .login-spline-visual { right:20%; width:min(560px,36vw); height:min(560px,36vw); opacity:1; pointer-events:none; isolation:isolate; }
#login-screen .login-spline-visual::before { content:""; position:absolute; z-index:0; inset:-24%; border-radius:50%; pointer-events:none; background:radial-gradient(ellipse at 50% 48%,rgba(117,69,221,.32) 0%,rgba(78,48,157,.18) 34%,rgba(35,42,112,.1) 52%,transparent 76%); filter:blur(24px); }
#login-screen .login-spline-visual canvas { position:relative; z-index:1; filter:brightness(.42) saturate(.52) hue-rotate(18deg) contrast(1.08); opacity:.82; pointer-events:auto; touch-action:none; cursor:grab; }
#login-screen .login-spline-visual canvas:active { cursor:grabbing; }
#login-screen .login-panel { position:absolute; z-index:10; right:30px; top:76px; width:340px; padding:27px; border:1px solid rgba(190,150,255,.28); border-radius:19px; background:linear-gradient(145deg,rgba(30,22,50,.94),rgba(10,8,18,.96)); box-shadow:0 25px 80px rgba(0,0,0,.5); backdrop-filter:blur(20px); opacity:0; transform:translateY(-8px) scale(.98); pointer-events:none; transition:.25s ease; }
#login-screen .login-panel.open { opacity:1; transform:none; pointer-events:auto; }
#login-screen .login-panel-close { position:absolute; right:14px; top:12px; border:0; background:transparent; color:#8d819c; font:400 18px Manrope,sans-serif; cursor:pointer; }
#login-screen .login-card-kicker { color:#b68fff; font:700 9px Manrope,monospace; letter-spacing:.15em; }
#login-screen .login-card h2 { margin:9px 0 7px; color:#f5efff; font:600 25px 'Noto Serif SC',serif; letter-spacing:-.02em; }
#login-screen .login-card-intro { margin:0; color:#968ca3; font:400 11px/1.8 'Noto Sans SC',sans-serif; }
#login-screen .auth-mode-tabs { gap:5px; margin-top:17px; padding:4px; border-radius:8px; background:rgba(255,255,255,.06); }
#login-screen .auth-mode-tab { min-height:0; padding:8px; border-radius:5px; color:#897e98; font:600 10px 'Noto Sans SC',sans-serif; }
#login-screen .auth-mode-tab.active { color:#f3eaff; background:rgba(158,106,255,.2); box-shadow:none; }
#login-screen .auth-form { gap:0; margin-top:0; }
#login-screen .auth-field { gap:6px; margin-top:13px; color:#afa3bd; font:600 10px 'Noto Sans SC',sans-serif; }
#login-screen .auth-field > span { color:#afa3bd; font:600 10px 'Noto Sans SC',sans-serif; }
#login-screen .auth-field input { height:39px; border:1px solid rgba(195,166,244,.18); border-radius:8px; background:rgba(3,2,8,.42); padding:0 11px; color:#f2eaff; font:400 12px 'Noto Sans SC',sans-serif; }
#login-screen .auth-field input::placeholder { color:#5e566b; }
#login-screen .auth-field input:focus { border-color:#8b67d5; background:rgba(3,2,8,.6); box-shadow:0 0 0 3px rgba(139,103,213,.16); }
#login-screen .login-primary-button { width:100%; height:42px; min-height:0; margin-top:17px; padding:0; border-radius:8px; background:linear-gradient(100deg,#7140c9,#4d74df); color:#fff; font:600 11px 'Noto Sans SC',sans-serif; }
#login-screen .login-footnote { margin-top:15px; padding-top:12px; border-color:rgba(211,188,255,.12); }
#login-screen .login-footnote span { color:#b68fff; font-size:9px; }
#login-screen .login-footnote p { margin-top:0; color:#837991; font:400 9px/1.8 'Noto Sans SC',sans-serif; }
@media (max-width:900px) { #login-screen .login-topbar { left:18px; right:18px; } #login-screen .login-nav { display:none; } #login-screen .login-frame { display:block; width:calc(100vw - 42px); padding-top:130px; } #login-screen .login-intro { width:100%; padding-top:0; text-align:center; } #login-screen .login-eyebrow { justify-content:center; } #login-screen .login-intro h1 { font-size:clamp(44px,12vw,68px); } #login-screen .login-intro-copy p { margin:auto; } #login-screen .login-hero-button { margin-top:24px; } #login-screen .login-trust-line { justify-content:center; margin-top:22px; } #login-screen .login-spline-visual { right:-10vw; top:58%; width:82vw; height:82vw; opacity:.7; } #login-screen .login-panel { left:21px; right:21px; top:80px; width:auto; } }

.message-inbox-panel, .contacts-panel { margin-top: 28px; padding: 34px; border: 1px solid var(--line, #e7e7df); border-radius: 22px; background: rgba(255,255,251,.82); box-shadow: 0 18px 50px rgba(31, 47, 42, .06); }
.message-inbox-tabs { display:flex; gap:8px; margin: 24px 0 16px; padding-bottom: 12px; border-bottom:1px solid var(--line, #e7e7df); }
.message-inbox-tabs button { border:0; border-radius:999px; padding:9px 14px; background:#f1f3ee; color:#78877f; cursor:pointer; font:600 13px 'Noto Sans SC', sans-serif; }
.message-inbox-tabs button.active { background:#1d5d48; color:#fff; }
.message-inbox-list, .contact-list { display:grid; gap:10px; }
.message-inbox-row, .contact-row { display:flex; width:100%; align-items:center; gap:14px; padding:17px 16px; border:1px solid #e8ebe4; border-radius:15px; background:#fff; color:#26342f; text-align:left; cursor:pointer; transition:.18s ease; }
.message-inbox-row:hover, .contact-row:hover { border-color:#9fc5af; transform:translateY(-1px); box-shadow:0 8px 22px rgba(30,80,61,.08); }
.message-inbox-row.unread { border-color:#b9d9c6; background:#fbfffb; }
.message-inbox-mark { display:grid; width:34px; height:34px; flex:0 0 34px; place-items:center; border-radius:50%; background:#eef6ef; color:#3b8d62; }
.message-inbox-mark.case { background:#fff1ea; color:#b36e4a; }
.message-inbox-copy { display:grid; min-width:0; flex:1; gap:7px; color:#6d7b75; font:400 13px/1.55 'Noto Sans SC', sans-serif; }
.message-inbox-meta { display:flex; align-items:center; justify-content:space-between; gap:12px; color:#244d3d; }
.message-inbox-meta strong { font-size:14px; }
.message-inbox-meta small { color:#9aa49f; font-size:11px; font-weight:400; }
.message-unread-dot { width:8px; height:8px; flex:0 0 8px; border-radius:50%; background:#d37c53; }
.message-inbox-empty, .contact-empty { display:grid; place-items:center; gap:8px; min-height:180px; padding:30px; border:1px dashed #d9dfd6; border-radius:16px; color:#87958d; text-align:center; }
.message-inbox-empty strong, .contact-empty strong { color:#345248; font:700 17px 'Noto Serif SC', serif; }
.message-inbox-empty span, .contact-empty span { max-width:480px; font:400 13px/1.7 'Noto Sans SC', sans-serif; }
.message-inbox-empty.error, .contact-empty.error { border-color:#e4b9a6; background:#fffaf7; }
.contact-empty-mark { color:#73a783; font-size:28px; }
.contact-row { min-height:86px; }
.contact-avatar { display:grid; width:42px; height:42px; flex:0 0 42px; place-items:center; border-radius:50%; background:#dceee1; color:#27704b; font:700 18px 'Noto Serif SC', serif; }
.contact-main { display:grid; min-width:0; flex:1; gap:6px; }
.contact-identity { display:flex; align-items:baseline; gap:10px; }
.contact-identity strong { color:#263f35; font:700 16px 'Noto Serif SC', serif; }
.contact-identity small, .contact-side small { color:#91a099; font:400 11px 'Noto Sans SC', sans-serif; }
.contact-last-message { overflow:hidden; color:#7e8c85; font:400 13px 'Noto Sans SC', sans-serif; text-overflow:ellipsis; white-space:nowrap; }
.contact-side { display:flex; align-items:center; gap:10px; color:#91a099; }
.contact-side b { display:grid; min-width:21px; height:21px; padding:0 5px; place-items:center; border-radius:999px; background:#d87952; color:#fff; font:700 11px Manrope,sans-serif; }
.contact-conversation-header { display:flex; align-items:center; gap:20px; padding-bottom:22px; border-bottom:1px solid var(--line, #e7e7df); }
.contact-conversation-header > div { flex:1; }
.contact-conversation-header h2 { margin:5px 0 4px; color:#263c34; font:700 28px 'Noto Serif SC', serif; }
.contact-conversation-header p { margin:0; color:#86958d; font:400 13px 'Noto Sans SC', sans-serif; }
.contact-conversation-note { display:flex; gap:10px; margin:18px 0; padding:14px 16px; border-radius:13px; background:#f1f8f1; color:#658171; font:400 12px/1.7 'Noto Sans SC', sans-serif; }
.contact-conversation-note strong { color:#397552; white-space:nowrap; }
.contact-message-list { display:grid; gap:12px; max-height:430px; overflow:auto; padding:4px 2px 20px; }
.contact-message { justify-self:start; max-width:74%; padding:12px 15px; border:1px solid #e3ebe3; border-radius:14px 14px 14px 4px; background:#fff; }
.contact-message.mine { justify-self:end; border-color:#b9d8c2; border-radius:14px 14px 4px 14px; background:#f0f9f1; }
.contact-message strong { color:#3e5d4e; font:700 12px 'Noto Sans SC', sans-serif; }
.contact-message p { margin:5px 0; color:#475850; font:400 14px/1.7 'Noto Sans SC', sans-serif; white-space:pre-wrap; }
.contact-message small { color:#9aa7a0; font:400 10px Manrope,sans-serif; }
.contact-message-empty { padding:40px 10px; color:#9aa59f; text-align:center; font:400 13px 'Noto Sans SC', sans-serif; }
.contact-conversation-actions { display:grid; grid-template-columns:auto 1fr auto; gap:10px; align-items:end; padding-top:16px; border-top:1px solid var(--line, #e7e7df); }
.contact-conversation-actions textarea { min-height:76px; resize:vertical; padding:12px 14px; border:1px solid #dce5dc; border-radius:12px; background:#fff; color:#30433a; font:400 13px/1.6 'Noto Sans SC', sans-serif; }
.contact-conversation-actions textarea:focus { outline:0; border-color:#83b394; box-shadow:0 0 0 3px rgba(101,159,119,.13); }
.contact-paused-note { margin-top:14px; color:#a37863; font:400 12px 'Noto Sans SC', sans-serif; }
.contact-prefill-note { margin:16px 0; padding:12px 14px; border:1px solid #c5dfcb; border-radius:12px; background:#f2faf3; color:#4d765d; font:400 12px/1.7 'Noto Sans SC', sans-serif; }
@media (max-width: 720px) { .message-inbox-panel, .contacts-panel { padding:20px 16px; border-radius:16px; } .contact-conversation-header { flex-wrap:wrap; } .contact-conversation-header > div { order:2; flex-basis:calc(100% - 20px); } .contact-conversation-actions { grid-template-columns:1fr; } .contact-message { max-width:88%; } }

/* 消息中心与主工作台主题统一：覆盖早期浅色消息样式 */
.app-shell .message-inbox-panel,
.app-shell .contacts-panel {
  border-color:var(--workspace-line);
  background:var(--workspace-surface);
  box-shadow:var(--workspace-shadow);
  color:var(--workspace-text);
}
.app-shell .message-inbox-panel .network-header,
.app-shell .contacts-panel .network-header {
  border-color:var(--workspace-line);
}
.app-shell .message-inbox-panel .network-header p,
.app-shell .contacts-panel .network-header p {
  color:var(--workspace-text-muted);
}
.app-shell .message-inbox-tabs {
  border-color:var(--workspace-line);
}
.app-shell .message-inbox-tabs button {
  border:1px solid transparent;
  background:rgba(255,255,255,.045);
  color:var(--workspace-text-secondary);
}
.app-shell .message-inbox-tabs button:hover {
  border-color:var(--workspace-line-strong);
  background:rgba(158,106,255,.1);
  color:var(--workspace-text);
}
.app-shell .message-inbox-tabs button.active {
  background:linear-gradient(100deg,#7140c9,#4d74df);
  color:#fff;
  box-shadow:0 8px 20px rgba(74,46,158,.2);
}
.app-shell .message-inbox-row,
.app-shell .contact-row {
  border-color:var(--workspace-line);
  background:rgba(255,255,255,.035);
  color:var(--workspace-text-secondary);
}
.app-shell .message-inbox-row:hover,
.app-shell .contact-row:hover {
  border-color:var(--workspace-line-strong);
  background:rgba(158,106,255,.08);
  box-shadow:0 12px 30px rgba(0,0,0,.22),0 0 24px rgba(100,61,182,.1);
}
.app-shell .message-inbox-row.unread {
  border-color:rgba(158,106,255,.35);
  background:linear-gradient(100deg,rgba(158,106,255,.12),rgba(98,142,255,.06));
}
.app-shell .message-inbox-mark {
  background:rgba(95,211,155,.12);
  color:var(--workspace-success);
}
.app-shell .message-inbox-mark.case {
  background:rgba(98,142,255,.14);
  color:#9fb9ff;
}
.app-shell .message-inbox-copy {
  color:var(--workspace-text-secondary);
}
.app-shell .message-inbox-meta {
  color:var(--workspace-text);
}
.app-shell .message-inbox-meta small {
  color:var(--workspace-text-muted);
}
.app-shell .message-unread-dot {
  background:var(--workspace-warning);
  box-shadow:0 0 0 4px rgba(232,180,109,.1);
}
.app-shell .message-inbox-empty,
.app-shell .contact-empty {
  border-color:var(--workspace-line);
  background:rgba(255,255,255,.025);
  color:var(--workspace-text-muted);
}
.app-shell .message-inbox-empty strong,
.app-shell .contact-empty strong {
  color:var(--workspace-text);
  font-family:'Noto Sans SC','HarmonyOS Sans SC','MiSans',sans-serif;
}
.app-shell .message-inbox-empty.error,
.app-shell .contact-empty.error {
  border-color:rgba(237,128,111,.3);
  background:rgba(237,128,111,.08);
}
.app-shell .contact-empty-mark {
  color:var(--workspace-purple-bright);
}
.app-shell .contact-avatar {
  background:rgba(158,106,255,.18);
  color:var(--workspace-purple-bright);
  border:1px solid rgba(198,165,255,.16);
}
.app-shell .contact-identity strong,
.app-shell .contact-conversation-header h2 {
  color:var(--workspace-text);
}
.app-shell .contact-identity small,
.app-shell .contact-last-message,
.app-shell .contact-side small,
.app-shell .contact-conversation-header p {
  color:var(--workspace-text-muted);
}
.app-shell .contact-side b {
  background:var(--workspace-warning);
  color:#241b10;
}
.app-shell .contact-conversation-header,
.app-shell .contact-conversation-actions {
  border-color:var(--workspace-line);
}
.app-shell .contact-conversation-note {
  border-color:rgba(98,142,255,.24);
  background:rgba(98,142,255,.08);
  color:#b7c9ff;
}
.app-shell .contact-conversation-note strong {
  color:#c7d4ff;
}
.app-shell .contact-message {
  border-color:var(--workspace-line);
  background:rgba(255,255,255,.05);
}
.app-shell .contact-message.mine {
  border-color:rgba(158,106,255,.32);
  background:linear-gradient(145deg,rgba(113,64,201,.3),rgba(77,116,223,.18));
}
.app-shell .contact-message strong {
  color:var(--workspace-purple-bright);
}
.app-shell .contact-message p {
  color:var(--workspace-text-secondary);
}
.app-shell .contact-message small,
.app-shell .contact-message-empty {
  color:var(--workspace-text-muted);
}
.app-shell .contact-conversation-actions textarea,
.app-shell #contact-message-input {
  border-color:var(--workspace-line);
  background:rgba(3,2,8,.42);
  color:var(--workspace-text);
}
.app-shell .contact-conversation-actions textarea::placeholder,
.app-shell #contact-message-input::placeholder {
  color:var(--workspace-text-muted);
}
.app-shell .contact-conversation-actions textarea:focus,
.app-shell #contact-message-input:focus {
  border-color:#8b67d5;
  background:rgba(3,2,8,.6);
  box-shadow:0 0 0 3px rgba(139,103,213,.16);
}
.app-shell .contact-paused-note {
  border-color:rgba(232,180,109,.22);
  background:rgba(232,180,109,.08);
  color:#e8c28f;
}
.app-shell .contact-prefill-note {
  border-color:rgba(95,211,155,.22);
  background:rgba(95,211,155,.08);
  color:#a8e8c3;
}
.activation-evidence-upload input[type="file"] {
  padding:9px 10px;
  background:#fbf8ff;
  border-style:dashed;
  cursor:pointer;
}
.customer-consent-evidence-link {
  margin-top:7px;
}
 .site-compliance-footer{display:flex;justify-content:center;align-items:center;gap:14px;flex-wrap:wrap;padding:18px 20px 24px;color:#9aa69d;font-size:10px;line-height:1.5}.site-compliance-footer a{color:#77967d;text-decoration:none}.site-compliance-footer a:hover{text-decoration:underline}
