:root {
  color-scheme: light;
  --ink: #1a2035;
  --text-primary: #1a2035;
  --text-secondary: #5a6578;
  --text-tertiary: #8b95a8;
  --muted: #5a6578;
  --line: #e2e8f0;
  --border: #e2e8f0;
  --panel: #ffffff;
  --canvas: #f8fafc;
  --blue: #2264e5;
  --blue-soft: #e8f0fe;
  --green: #16a34a;
  --green-soft: #dcfce7;
  --orange: #e5a000;
  --orange-soft: #fef3c7;
  --red: #dc2626;
  --red-soft: #fee2e2;
  --purple: #7756d8;
  --purple-soft: #f3eefe;
  --shadow-sm: 0 1px 3px rgba(31, 47, 78, .04), 0 1px 2px rgba(31, 47, 78, .03);
  --shadow: 0 4px 16px rgba(31, 47, 78, .08);
  --shadow-lg: 0 10px 32px rgba(31, 47, 78, .10);
  --radius: 10px;
  --radius-sm: 6px;
  --radius-lg: 16px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
html, body { margin: 0; min-height: 100%; font-family: "Microsoft YaHei UI", "PingFang SC", system-ui, sans-serif; color: var(--text-primary); background: var(--canvas); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid rgba(34,100,229,.18); outline-offset: 2px; }
.hidden { display: none !important; }
.muted { color: var(--text-secondary); }
.eyebrow { margin: 0 0 5px; color: var(--blue); font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.login-view { min-height: 100vh; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 22px; padding: 32px; background: radial-gradient(circle at 30% 20%, #e8f0ff, transparent 34%), linear-gradient(135deg, #f8fafc, #edf3ff); }
.login-card { width: min(430px, 100%); padding: 42px; border: 1px solid rgba(255,255,255,.75); border-radius: 20px; background: rgba(255,255,255,.92); box-shadow: var(--shadow-lg); backdrop-filter: blur(18px); }
.login-card h1 { margin: 12px 0 8px; font-size: 27px; }
.qr-login-panel { display: grid; gap: 8px; margin-top: 24px; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius-lg); background: #f8fbff; text-align: center; }
.qr-login-panel > strong { font-size: 16px; }
.qr-login-panel > p { margin: 0; font-size: 12px; line-height: 1.6; }
.qr-code-frame { width: 176px; height: 176px; display: grid; place-items: center; margin: 4px auto; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; overflow: hidden; }
.qr-code-frame img { width: 100%; height: 100%; object-fit: contain; }
.qr-status { color: var(--text-secondary); }
.login-divider { display: flex; align-items: center; gap: 12px; margin: 22px 0 0; color: var(--text-tertiary); font-size: 12px; }
.login-divider::before, .login-divider::after { content: ""; height: 1px; flex: 1; background: var(--border); }
.site-filing { color: var(--text-tertiary); font-size: 12px; line-height: 1.6; text-align: center; }
.site-filing a { color: inherit; text-decoration: none; }
.site-filing a:hover { color: var(--blue); text-decoration: underline; }
.brand-mark { width: 54px; height: 54px; display: grid; place-items: center; color: #fff; background: linear-gradient(135deg, #2264e5, #4d83ec); border-radius: var(--radius); font-size: 23px; font-weight: 700; box-shadow: 0 8px 20px rgba(34,100,229,.25); }
.brand-mark.small { width: 38px; height: 38px; border-radius: 8px; font-size: 17px; }
.stack-form { display: grid; gap: 16px; margin-top: 28px; }
.stack-form label, .field { display: grid; gap: 7px; color: var(--text-secondary); font-size: 13px; font-weight: 500; }
input, select, textarea { width: 100%; min-height: 42px; border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 10px 12px; color: var(--text-primary); background: #fff; outline: none; transition: border-color .18s ease, box-shadow .18s ease, background .18s ease; }
input:focus, select:focus, textarea:focus { border-color: #89adf6; box-shadow: 0 0 0 3px rgba(34,100,229,.10); }
textarea { min-height: 98px; resize: vertical; }
.form-error { min-height: 20px; margin: 12px 0 0; color: var(--red); font-size: 13px; }
.primary-btn, .soft-btn, .danger-btn, .danger-confirm-btn, .ghost-btn { min-height: 40px; border: 0; border-radius: var(--radius-sm); padding: 9px 15px; font-weight: 500; transition: transform .15s ease, background .15s ease, box-shadow .15s ease; }
.primary-btn { color: #fff; background: var(--blue); box-shadow: 0 2px 6px rgba(34,100,229,.20); }
.primary-btn:hover { transform: translateY(-1px); background: #1a56d4; box-shadow: 0 4px 12px rgba(34,100,229,.25); }
.soft-btn { color: var(--text-secondary); background: #f1f5f9; }
.soft-btn:hover { background: #e2e8f0; }
.danger-btn { color: var(--red); background: var(--red-soft); border: 1px solid #fca5a5; }
.danger-btn:hover { color: #b91c1c; background: #fecaca; }
.danger-confirm-btn { color: #fff; background: var(--red); box-shadow: 0 2px 6px rgba(220,38,38,.18); }
.danger-confirm-btn:hover { background: #b91c1c; }
.ghost-btn { color: var(--blue); background: transparent; }
.ghost-btn:hover { background: var(--blue-soft); }
button:disabled { cursor: not-allowed; opacity: .55; transform: none !important; box-shadow: none !important; }
.request-entry-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; width: min(620px,100%); padding: 6px; border-radius: var(--radius); background: #f1f5f9; }
.request-entry-tabs button { width: 100%; color: var(--text-secondary); background: transparent; box-shadow: none; }
.request-entry-tabs button:hover { color: var(--text-primary); background: #fff; }
.confirm-copy { margin: 0; color: var(--text-secondary); line-height: 1.7; }
.full { width: 100%; }
.app-shell { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 10; width: 232px; display: flex; flex-direction: column; padding: 18px 14px; border-right: 1px solid var(--border); background: rgba(255,255,255,.97); box-shadow: 4px 0 16px rgba(31,47,78,.03); }
.brand { display: flex; align-items: center; gap: 11px; padding: 5px 8px 20px; }
.brand strong, .brand small { display: block; }
.brand small { margin-top: 3px; color: var(--text-tertiary); font-size: 11px; }
.nav-list { display: grid; gap: 5px; overflow: auto; padding-right: 3px; }
.nav-section { margin: 16px 10px 5px; color: var(--text-tertiary); font-size: 11px; font-weight: 600; }
.nav-item { position: relative; width: 100%; min-height: 43px; display: flex; align-items: center; gap: 10px; padding: 10px 11px; border: 0; border-radius: var(--radius-sm); color: var(--text-secondary); background: transparent; text-align: left; transition: color .16s ease, background .16s ease, transform .16s ease; }
.nav-item:hover { color: var(--blue); background: var(--blue-soft); transform: translateX(2px); }
.nav-item.active { color: var(--blue); background: var(--blue-soft); font-weight: 600; }
.nav-item.active::before { content: ""; position: absolute; left: -7px; top: 10px; bottom: 10px; width: 3px; border-radius: 3px; background: var(--blue); }
.nav-icon { width: 22px; text-align: center; font-size: 16px; }
.account-card { margin-top: auto; display: grid; grid-template-columns: 38px 1fr 32px; align-items: center; gap: 9px; padding: 13px 8px 2px; border-top: 1px solid var(--border); }
.avatar { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--blue); font-weight: 600; }
.account-copy { min-width: 0; }
.account-copy strong, .account-copy small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.account-copy strong { font-size: 13px; }
.account-copy small { margin-top: 3px; color: var(--text-tertiary); font-size: 11px; }
.icon-btn { width: 32px; height: 32px; border: 0; border-radius: var(--radius-sm); color: var(--text-tertiary); background: transparent; font-size: 20px; }
.icon-btn:hover { background: #f1f5f9; }
.main-shell { min-width: 0; margin-left: 232px; }
.topbar { position: sticky; top: 0; z-index: 8; display: flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 76px; padding: 13px 28px; border-bottom: 1px solid var(--border); background: rgba(248,250,253,.91); backdrop-filter: blur(18px); }
.topbar h2 { margin: 0; font-size: 20px; font-weight: 600; }
.top-actions { display: flex; align-items: center; gap: 9px; }
.global-search { width: min(380px, 32vw); display: flex; align-items: center; gap: 8px; padding: 0 11px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); }
.global-search input { border: 0; padding-left: 0; box-shadow: none; }
.global-search input:focus { box-shadow: none; }
.badge { min-width: 19px; display: inline-grid; place-items: center; margin-left: 3px; padding: 2px 5px; border-radius: 9px; color: #fff; background: var(--red); font-size: 10px; }
.content { max-width: 1520px; margin: 0 auto; padding: 26px 30px 48px; }
.hero { display: flex; align-items: center; justify-content: space-between; gap: 28px; min-height: 150px; padding: 30px; border: none; border-radius: var(--radius); background: linear-gradient(135deg, var(--blue), #4d83ec); color: #fff; }
.hero h1 { margin: 6px 0 8px; font-size: 26px; color: #fff; }
.hero p { margin: 0; color: rgba(255,255,255,.85); }
.hero-badge { min-width: 150px; padding: 18px; border: 1px solid rgba(255,255,255,.2); border-radius: var(--radius); color: #fff; background: rgba(255,255,255,.12); text-align: center; transition: transform .16s ease,border-color .16s ease,box-shadow .16s ease; }
.hero-badge:hover { transform: translateY(-2px); border-color: rgba(255,255,255,.35); box-shadow: 0 8px 20px rgba(0,0,0,.12); }
.hero-badge strong { display: block; font-size: 28px; }
.grid { display: grid; gap: 14px; }
.metric-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 14px; }
.metric-card, .panel, .module-card { border: 1px solid var(--border); border-radius: var(--radius); background: var(--panel); box-shadow: var(--shadow-sm); }
.metric-card { position: relative; overflow: hidden; padding: 19px; }
.metric-card::after { content: ""; position: absolute; inset: auto 0 0; height: 3px; background: linear-gradient(90deg,var(--blue),#4d83ec); opacity: .65; }
.metric-card.clickable { cursor: pointer; transition: transform .16s ease, box-shadow .16s ease; }
.metric-card.clickable:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.metric-card small { color: var(--text-secondary); }
.metric-card strong { display: block; margin-top: 9px; font-size: 25px; }
.dashboard-summary { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.dashboard-summary article { padding: 16px 18px; border-radius: var(--radius); background: linear-gradient(145deg,#f7faff,#eef4ff); }
.dashboard-summary small, .dashboard-summary strong { display: block; }
.dashboard-summary small { color: var(--text-secondary); }
.dashboard-summary strong { margin-top: 7px; font-size: 26px; }
.status-chart { margin-top: 20px; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius); background: #fbfcff; }
.status-chart h4 { margin: 0 0 15px; }
.status-chart-row { display: grid; grid-template-columns: 110px minmax(100px,1fr) 42px 44px; align-items: center; gap: 10px; margin-top: 11px; font-size: 13px; }
.status-chart-row > span { color: var(--text-secondary); }
.status-chart-row > strong { text-align: right; }
.status-chart-row > small { color: var(--text-tertiary); text-align: right; }
.status-chart-track { height: 11px; overflow: hidden; border-radius: 999px; background: #e8eef8; }
.status-chart-track i { display: block; height: 100%; min-width: 3px; border-radius: inherit; background: linear-gradient(90deg,var(--blue),#4d83ec); }
.dashboard-analysis-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 16px; margin-top: 20px; }
.dashboard-analysis-grid .status-chart { margin-top: 0; }
.retention-panel { padding: 18px; border: 1px solid var(--border); border-radius: var(--radius); background: linear-gradient(145deg,#fbfcff,#f5f8ff); }
.retention-panel h4 { margin: 0 0 15px; }
.retention-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 11px; }
.retention-card { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 14px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.retention-card small, .retention-card strong { display: block; }
.retention-card small { color: var(--text-secondary); }
.retention-card strong { margin-top: 5px; font-size: 23px; }
.retention-ring { --retention: 0; width: 58px; height: 58px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 50%; background: conic-gradient(var(--green) calc(var(--retention)*1%),#e8eef5 0); }
.retention-ring::before { content: ""; grid-area: 1/1; width: 44px; height: 44px; border-radius: 50%; background: #fff; }
.retention-ring span { grid-area: 1/1; z-index: 1; color: var(--text-secondary); font-size: 10px; font-weight: 600; }
.scope-banner { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 14px; padding: 14px 18px; border: 1px solid var(--border); border-radius: var(--radius); background: linear-gradient(135deg,#f7faff,#edf4ff); }
.scope-banner > div { display: grid; gap: 3px; }
.scope-banner small { color: var(--text-tertiary); font-size: 11px; }
.scope-banner strong { font-size: 17px; }
.scope-banner span { color: var(--text-tertiary); font-size: 12px; }
.dashboard-filters label { display: grid; gap: 4px; color: var(--text-secondary); font-size: 11px; }
.dashboard-filters select { min-width: 170px; }
.source-panel { margin-top: 16px; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius); background: #fbfcff; }
.source-panel h4 { margin: 0 0 14px; }
.source-bars { display: grid; gap: 10px; }
.source-bars article { display: grid; grid-template-columns: 110px minmax(100px,1fr) 42px 44px; align-items: center; gap: 10px; font-size: 12px; }
.source-bars article > span { overflow: hidden; color: var(--text-secondary); text-overflow: ellipsis; white-space: nowrap; }
.source-bars article > div { height: 10px; overflow: hidden; border-radius: 999px; background: #e8eef8; }
.source-bars article i { display: block; min-width: 3px; height: 100%; border-radius: inherit; background: linear-gradient(90deg,var(--green),#4ade80); }
.source-bars article strong, .source-bars article em { text-align: right; }
.source-bars article em { color: var(--text-tertiary); font-style: normal; }
.flow-board { min-width: 0; padding: 18px; border: 1px solid var(--border); border-radius: var(--radius); background: #fbfcff; }
.flow-board h4 { margin: 0 0 15px; }
.flow-steps { display: grid; grid-template-columns: repeat(9,minmax(0,1fr)); gap: 8px; width: 100%; }
.flow-step { position: relative; min-width: 0; padding: 12px 7px; border: 1px solid var(--border); border-radius: var(--radius); background: linear-gradient(145deg,#fff,#f0f5ff); text-align: center; }
.flow-step:not(:last-child)::after { content: "\203A"; position: absolute; z-index: 2; right: -8px; top: 34px; color: var(--text-tertiary); font-size: 18px; font-weight: 600; }
.flow-step > span { width: 23px; height: 23px; display: grid; place-items: center; margin: 0 auto 7px; border-radius: 50%; color: #fff; background: var(--blue); font-size: 11px; font-weight: 600; }
.flow-step small, .flow-step strong, .flow-step em { display: block; }
.flow-step small { overflow: hidden; color: var(--text-secondary); text-overflow: ellipsis; white-space: nowrap; }
.flow-step strong { margin-top: 7px; font-size: 20px; }
.flow-step em { margin-top: 2px; color: var(--text-tertiary); font-size: 10px; font-style: normal; }
.exception-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 20px 0 10px; }
.exception-header h4 { margin: 0; }
.exception-header small { color: var(--text-tertiary); }
.exception-grid { display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 8px; }
.exception-card { display: flex; align-items: center; justify-content: space-between; gap: 8px; min-width: 0; padding: 11px 12px; border: 1px solid #fca5a5; border-radius: var(--radius); background: var(--red-soft); }
.exception-card span { overflow: hidden; color: #991b1b; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.exception-card strong { color: var(--red); }
.management-overview .metric-card:nth-child(2)::after { background: var(--orange); }
.management-overview .metric-card:nth-child(3)::after { background: var(--green); }
.management-overview .metric-card:nth-child(4)::after { background: var(--purple); }
.compact-metrics { margin-top: 0; }
.source-detail-table { margin-top: 16px; }
.source-detail { margin-top: 14px; }
.source-detail > summary { width: fit-content; cursor: pointer; color: var(--blue); font-size: 12px; font-weight: 600; }
.dashboard-tabs { position: sticky; top: 148px; z-index: 5; display: flex; gap: 6px; margin-top: 16px; padding: 6px; border: 1px solid var(--border); border-radius: var(--radius); background: rgba(255,255,255,.92); box-shadow: var(--shadow-sm); backdrop-filter: blur(12px); }
.dashboard-tabs button { flex: 1; min-height: 42px; border: 0; border-radius: var(--radius-sm); color: var(--text-secondary); background: transparent; font-weight: 500; }
.dashboard-tabs button:hover { color: var(--blue); background: #f1f5f9; }
.dashboard-tabs button.active { color: #fff; background: var(--blue); box-shadow: 0 2px 8px rgba(34,100,229,.2); }
.dashboard-tab-panels > div { animation: tab-in .18s ease; }
.dashboard-tab-card { margin-top: 16px; }
@keyframes tab-in { from { opacity: .35; transform: translateY(5px); } }
.panel { margin-top: 16px; overflow: hidden; }
.panel-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 17px 20px; border-bottom: 1px solid var(--border); background: linear-gradient(180deg,#fff,#fcfdff); }
.panel-header h3 { margin: 0; font-size: 15px; font-weight: 600; }
.panel-body { padding: 18px 20px; }
.module-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
.module-card { display: flex; align-items: flex-start; gap: 13px; min-height: 98px; padding: 18px; text-align: left; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease; }
.module-card:hover { transform: translateY(-2px); border-color: #93c5fd; box-shadow: 0 8px 20px rgba(34,100,229,.08); }
.module-card span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; color: var(--blue); background: var(--blue-soft); }
.module-card strong, .module-card small { display: block; }
.module-card small { margin-top: 5px; color: var(--text-secondary); line-height: 1.45; }
.requirements-section { margin-top: 24px; display: grid; gap: 16px; }
.section-heading h2, .section-heading p { margin: 0; }
.section-heading p { margin-top: 5px; color: var(--text-secondary); }
.plan-summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(420px, 1fr)); gap: 16px; }
.plan-summary-card { padding: 20px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; }
.plan-summary-card header { display: flex; gap: 12px; align-items: flex-start; }
.plan-summary-card header > div { min-width: 0; }
.plan-summary-card header strong { display: block; font-size: 17px; }
.plan-summary-card header small { display: block; margin-top: 6px; color: var(--text-secondary); line-height: 1.45; }
.plan-summary-icon { display: grid; flex: 0 0 36px; width: 36px; height: 36px; place-items: center; border-radius: 8px; background: var(--blue-soft); color: var(--blue); }
.plan-gap-grid { display: grid; grid-template-columns: repeat(4, minmax(76px, 1fr)); gap: 10px; margin-top: 18px; }
.plan-gap-grid > div { padding: 12px; border-radius: var(--radius); }
.plan-gap-grid small { display: block; color: var(--text-secondary); white-space: nowrap; }
.plan-gap-grid strong { display: block; margin-top: 5px; font-size: 21px; }
.plan-gap-grid .remaining { color: var(--orange); background: var(--orange-soft); }
.plan-gap-grid .complete { color: var(--green); background: var(--green-soft); }
.plan-summary-card footer { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.plan-status-tabs { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:18px; }
.plan-status-tabs button { display:flex; align-items:center; gap:8px; }
.plan-status-tabs button span { font-size:12px; opacity:.8; }
.plan-history-results { grid-template-columns:repeat(3,minmax(0,1fr)); }
.plan-status-record { margin-top:14px; padding-top:12px; border-top:1px solid var(--border); color:var(--text-secondary); font-size:13px; }
.plan-status-record p,.plan-note { margin:5px 0; white-space:pre-wrap; overflow-wrap:anywhere; }
.plan-note { color:var(--text-secondary); font-size:13px; }
.plan-pagination { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:12px; margin-top:18px; }
.candidate-deletion-panel { border-color:#fecaca; }
.candidate-deletion-panel .panel-header { background:#fff4f4; }
.candidate-deletion-panel h3 { color:#a52626; }
.candidate-deletion-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.candidate-deletion-meta small,.candidate-deletion-reason small { display:block; margin-bottom:6px; color:var(--text-secondary); }
.candidate-deletion-meta strong { overflow-wrap:anywhere; }
.candidate-deletion-reason { margin-top:18px; }
.candidate-deletion-reason p { white-space:pre-wrap; overflow-wrap:anywhere; margin:0; }
@media(max-width:640px){.candidate-deletion-meta{grid-template-columns:1fr}.plan-summary-card footer{flex-wrap:wrap}}
.requirement-card { overflow: hidden; }
.requirement-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 22px; }
.requirement-line { display: grid; grid-template-columns: 90px 1fr; gap: 10px; align-items: start; padding: 8px 0; border-bottom: 1px solid var(--border); }
.requirement-line strong { color: var(--text-secondary); font-size: 13px; }
.requirement-line span { white-space: pre-wrap; line-height: 1.55; }
.toolbar { position: sticky; top: 76px; z-index: 6; display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: -4px 0 15px; padding: 10px; border: 1px solid var(--border); border-radius: var(--radius); background: rgba(248,250,253,.94); box-shadow: var(--shadow-sm); backdrop-filter: blur(14px); }
.toolbar .grow { flex: 1; min-width: 220px; }
.toolbar-search { flex: 1 1 360px; min-width: 260px; }
.toolbar select { width: auto; min-width: 130px; }
.table-wrap { overflow: auto; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); scrollbar-color: #c7d1e1 transparent; scrollbar-width: thin; }
table { width: 100%; border-collapse: collapse; font-size: 13px; }
th, td { height: 44px; padding: 10px 14px; border-bottom: 1px solid var(--border); text-align: left; white-space: nowrap; }
th { position: sticky; top: 0; z-index: 1; color: var(--text-secondary); background: #f8fafc; font-size: 12px; font-weight: 600; }
tbody tr { transition: background .15s ease; }
tbody tr:hover { background: #f6f9ff; }
tbody tr[data-open], tbody tr[data-open-candidate], .clickable { cursor: pointer; }
.status-pill { display: inline-flex; align-items: center; min-height: 22px; padding: 3px 10px; border: none; border-radius: 12px; color: var(--blue); background: var(--blue-soft); font-size: 11px; font-weight: 500; }
.status-pill.green { color: var(--green); background: var(--green-soft); }
.status-pill.orange { color: var(--orange); background: var(--orange-soft); }
.status-pill.red { color: var(--red); background: var(--red-soft); }
.status-pill.purple { color: var(--purple); background: var(--purple-soft); }
.empty { padding: 46px 20px; color: var(--text-tertiary); text-align: center; }
.pagination { display: flex; align-items: center; justify-content: flex-end; gap: 6px; margin-top: 12px; }
.pagination button, .pagination span { min-width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--border); border-radius: var(--radius-sm); font-size: 12px; color: var(--text-secondary); background: transparent; cursor: pointer; padding: 0 6px; }
.pagination button.active, .pagination span.active { background: var(--blue); color: #fff; border-color: var(--blue); }
.pagination button:hover:not(.active) { background: #f1f5f9; }
.candidate-results-strip { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: -3px 2px 10px; padding: 0 4px; }
.candidate-results-strip > div { display: flex; align-items: baseline; gap: 5px; }
.candidate-results-strip strong { font-size: 22px; }
.candidate-results-strip span, .candidate-results-strip small { color: var(--text-tertiary); }
.candidate-table { table-layout: fixed; min-width: 0; width: 100%; }
.candidate-table-wrap { overflow-x: hidden; }
.candidate-table th { position: relative; white-space: nowrap; }
.candidate-table td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.candidate-table tbody tr { position: relative; }
.candidate-table tbody tr:hover { background: linear-gradient(90deg,#f0f5ff,#f8faff); box-shadow: inset 3px 0 0 var(--blue); }
.candidate-name-cell { min-width: 0; }
.candidate-name-cell strong, .candidate-name-cell small { display: block; overflow: hidden; text-overflow: ellipsis; }
.candidate-name-cell small { margin-top: 4px; color: var(--text-tertiary); font-size: 10px; }
.grade-stars { color: var(--orange); letter-spacing: 2px; }
.candidate-mobile-card .grade-stars { display: block; margin-top: 4px; font-size: 13px; }
.list-item .grade-stars { margin-left: 8px; font-size: 13px; }
.person-chip { display: inline-flex; max-width: 100%; overflow: hidden; padding: 4px 8px; border-radius: var(--radius-sm); color: var(--blue); background: var(--blue-soft); text-overflow: ellipsis; }
.person-chip.secondary { color: var(--green); background: var(--green-soft); }
.candidate-mobile-list { display: none; }
.column-resizer { position: absolute; top: 0; right: -4px; width: 9px; height: 100%; cursor: col-resize; user-select: none; z-index: 2; }
.column-resizer:hover { background: rgba(34,100,229,.12); }
.column-setting-list { display: grid; gap: 8px; }
.column-setting-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius); }
.column-setting-row > div { display: flex; gap: 5px; }
.detail-hero { display: grid; grid-template-columns: 190px 1fr; gap: 26px; }
.candidate-profile-panel { border-color: var(--border); box-shadow: var(--shadow); }
.portrait-column { min-width: 0; }
.portrait-actions { margin-top: 9px; }
.portrait-actions button { flex: 1; padding-left: 8px; padding-right: 8px; }
.photo-tile { min-height: 215px; display: grid; place-items: center; border: 1px dashed var(--border); border-radius: var(--radius); color: var(--text-tertiary); background: #f1f5f9; overflow: hidden; transition: border-color .16s ease, box-shadow .16s ease; }
.photo-tile img { width: 100%; height: 100%; object-fit: cover; }
.photo-tile:hover { border-color: #93c5fd; box-shadow: inset 0 0 0 3px rgba(34,100,229,.04); }
.identity-head { display: flex; justify-content: space-between; gap: 16px; }
.identity-head h1 { margin: 0 0 7px; font-size: 24px; font-weight: 700; }
.info-grid { grid-template-columns: repeat(3, minmax(0,1fr)); margin-top: 20px; }
.info-item { min-height: 68px; padding: 12px 2px; border-bottom: 1px dashed var(--border); }
.info-item small, .info-item strong { display: block; }
.info-item small { margin-bottom: 6px; color: var(--text-tertiary); }
.info-item.editable { cursor: text; border-radius: var(--radius-sm); transition: background .15s ease; }
.info-item.editable:hover { padding-left: 9px; padding-right: 9px; color: var(--blue); background: #f3f7ff; }
.inline-controls { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 7px; }
.inline-controls input, .inline-controls select { padding: 7px 8px; font-size: 12px; }
.info-item.editing { padding: 7px; background: #f7faff; box-shadow: inset 0 0 0 1px #c8daf8; }
.inline-actions { display: flex; gap: 6px; margin-top: 7px; }
.inline-actions button { padding: 6px 9px; font-size: 11px; }
.assignment-grid { grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; margin-top: 18px; }
.assignment-grid > div { padding: 14px 16px; border: 1px solid var(--border); border-radius: var(--radius); background: linear-gradient(145deg,#f8fafc,#f1f4f8); }
.assignment-grid small, .assignment-grid strong { display: block; }
.assignment-grid small { margin-bottom: 5px; color: var(--text-secondary); }
.current-task-panel { border-color: #93c5fd; box-shadow: 0 4px 16px rgba(34,100,229,.06); }
.current-task-panel .panel-header { background: linear-gradient(135deg,#f8fbff,#edf4ff); }
.task-assignments { margin-top: 0; }
.task-assignments > div { background: #fff; }
.candidate-task-actions { margin-top: 14px; padding-top: 14px; border-top: 1px dashed var(--border); }
.candidate-task-actions .primary-btn:first-of-type { box-shadow: 0 4px 12px rgba(34,100,229,.2); }
.action-row { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.list-item > .action-row { margin-top: 0; }
.info-item.editable::after { content: "\7F16\8F91"; float: right; margin-top: -17px; color: transparent; font-size: 10px; transition: color .15s ease; }
.info-item.editable:hover::after { color: var(--blue); }
.photo-album-item { display: grid; gap: 8px; }
.photo-album-item .soft-btn { width: 100%; }
.timeline { display: grid; gap: 12px; }
.timeline-item { position: relative; padding: 14px 16px 14px 40px; border: 1px solid var(--border); border-radius: var(--radius); background: #fbfcfe; }
.timeline-item::before { content: ""; position: absolute; left: 17px; top: 19px; width: 9px; height: 9px; border-radius: 50%; background: var(--blue); }
.timeline-item p { margin: 7px 0 0; white-space: pre-wrap; }
.timeline-item small { color: var(--text-tertiary); }
.task-groups { display: grid; gap: 18px; }
.task-group { border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; background: #fbfcff; }
.task-group > header { display: flex; align-items: center; justify-content: space-between; padding: 12px 16px; border-bottom: 1px solid var(--border); }
.task-group > header h4 { margin: 0; }
.task-group > header span { color: var(--text-tertiary); font-size: 13px; }
.task-group .list { padding: 8px; }
.mobile-more-hint { display: none; }
.candidate-backbar { display: flex; align-items: center; margin: -4px 0 2px; }
.candidate-backbar .soft-btn { background: #fff; box-shadow: var(--shadow-sm); }
.rest-calendar { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 12px; }
.rest-day { padding: 14px; border: 1px solid var(--border); border-radius: var(--radius); background: #fbfcff; }
.rest-day > strong { display: block; margin-bottom: 10px; }
.rest-person { display: grid; gap: 3px; margin-top: 8px; padding: 9px; border-radius: var(--radius-sm); background: var(--orange-soft); }
.rest-person.approved { background: var(--green-soft); }
.rest-person small { color: var(--text-secondary); }
.rest-person em { font-size: 12px; font-style: normal; color: var(--blue); }
@media (max-width: 900px) { .rest-calendar { grid-template-columns: 1fr; } }
.section-columns { display: grid; grid-template-columns: 1.35fr .65fr; gap: 14px; }
.detail-side { min-width: 0; }
.detail-summary > summary { cursor: pointer; list-style: none; }
.detail-summary > summary::-webkit-details-marker { display: none; }
.detail-summary > summary span { color: var(--text-tertiary); font-size: 11px; }
.detail-summary:not([open]) > summary { border-bottom: 0; }
.list { display: grid; gap: 10px; }
.list-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 15px 16px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; transition: border-color .16s ease, box-shadow .16s ease; }
.list-item:hover { border-color: #93c5fd; box-shadow: 0 4px 12px rgba(34,100,229,.06); }
.list-item strong, .list-item small { display: block; }
.list-item small { margin-top: 5px; color: var(--text-secondary); line-height: 1.45; }
.modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 24px; background: rgba(15,23,42,.46); backdrop-filter: blur(4px); animation: fade-in .15s ease; }
.modal-card { width: min(680px, 100%); max-height: min(88vh, 900px); display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(255,255,255,.75); border-radius: var(--radius-lg); background: #fff; box-shadow: var(--shadow-lg); animation: modal-in .2s ease; }
.modal-card > header { display: flex; align-items: center; justify-content: space-between; padding: 19px 22px; border-bottom: 1px solid var(--border); }
.modal-card h3 { margin: 0; font-size: 16px; font-weight: 600; }
#modal-form { min-height: 0; display: flex; flex-direction: column; }
.modal-body { overflow: auto; padding: 20px 22px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 15px; }
.field.full { grid-column: 1 / -1; }
.form-grid > .full { grid-column: 1 / -1; }
.modal-card footer { display: flex; justify-content: flex-end; gap: 8px; padding: 15px 22px; border-top: 1px solid var(--border); }
.toast-region { position: fixed; right: 22px; bottom: 22px; z-index: 120; display: grid; gap: 9px; }
.toast { min-width: 280px; max-width: 420px; padding: 13px 16px; border-radius: var(--radius); color: #fff; background: var(--text-primary); box-shadow: var(--shadow-lg); animation: toast-in .22s ease; }
.toast.success { background: var(--green); }
.toast.warning { background: var(--orange); }
.toast.error { background: var(--red); }
.loading { padding: 60px 20px; color: var(--text-tertiary); text-align: center; }
.loading::before { content: ""; display: inline-block; width: 20px; height: 20px; margin-right: 9px; border: 2px solid #cbd5e1; border-top-color: var(--blue); border-radius: 50%; vertical-align: middle; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@keyframes toast-in { from { transform: translateY(8px); opacity: 0; } }
@keyframes fade-in { from { opacity: 0; } }
@keyframes modal-in { from { opacity: 0; transform: scale(.96); } }
.skeleton { background: linear-gradient(90deg, #f1f5f9 25%, #e2e8f0 50%, #f1f5f9 75%); background-size: 200% 100%; animation: skeleton-shimmer 1.5s infinite; border-radius: var(--radius-sm); }
@keyframes skeleton-shimmer { 0% { background-position: 200% 0; } 100% { background-position: -200% 0; } }
.filter-tag { display: inline-flex; align-items: center; padding: 4px 12px; border: 1px solid var(--border); border-radius: 14px; font-size: 12px; color: var(--text-secondary); background: #fff; cursor: pointer; transition: all .15s ease; }
.filter-tag:hover { border-color: var(--blue); color: var(--blue); }
.filter-tag.active { background: var(--blue); color: #fff; border-color: var(--blue); }
.breadcrumb { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--text-tertiary); margin-bottom: 8px; }
.breadcrumb a { color: var(--text-secondary); text-decoration: none; }
.breadcrumb a:hover { color: var(--blue); }
.breadcrumb span { color: var(--text-primary); font-weight: 500; }
.empty-state { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 60px 20px; color: var(--text-tertiary); }
.empty-state-icon { font-size: 48px; margin-bottom: 16px; opacity: .5; }
.empty-state h4 { margin: 0 0 8px; color: var(--text-primary); font-size: 16px; font-weight: 600; }
.empty-state p { margin: 0 0 16px; font-size: 13px; }
@media (max-width: 1050px) {
  .sidebar { width: 78px; }
  .brand > div, .account-copy, .nav-item span:last-child, .nav-section { display: none; }
  .main-shell { margin-left: 78px; }
  .nav-item { justify-content: center; }
  .account-card { grid-template-columns: 38px; justify-content: center; }
  .account-card .icon-btn { display: none; }
  .metric-grid, .dashboard-summary { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .module-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .dashboard-analysis-grid { grid-template-columns: 1fr; }
  .flow-steps { grid-template-columns: repeat(5,minmax(90px,1fr)); }
  .flow-step::after { display: none; }
  .exception-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
}
@media (max-width: 760px) {
  .app-shell { display: block; }
  .sidebar { inset: auto 0 0; width: auto; height: 72px; flex-direction: row; padding: 7px 8px; border-top: 1px solid var(--border); border-right: 0; box-shadow: 0 -8px 26px rgba(31,47,78,.08); }
  .brand, .account-card, .nav-section { display: none; }
  .nav-list { width: 100%; display: flex; gap: 5px; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; }
  .nav-list::-webkit-scrollbar { display: none; }
  .nav-item { flex: 0 0 72px; display: grid; gap: 2px; justify-items: center; padding: 5px 3px; font-size: 10px; }
  .nav-item span:last-child { display: block; }
  .nav-item.active::before { inset: auto 16px -5px; width: auto; height: 3px; }
  .main-shell { margin: 0 0 72px; }
  .topbar { align-items: flex-start; padding: 13px 16px; }
  .global-search { display: none; }
  .top-actions .soft-btn { padding: 9px; }
  .content { padding: 14px 12px 30px; }
  .toolbar { position: static; padding: 9px; }
  .toolbar .grow { min-width: 100%; }
  .toolbar-search { flex-basis: 100%; min-width: 100%; }
  .toolbar select { flex: 1; min-width: 0; }
  .candidate-toolbar > button { flex: 1 1 auto; }
  .candidate-table-wrap { display: none; }
  .candidate-mobile-list { display: grid; gap: 10px; }
  .candidate-results-strip { align-items: flex-start; flex-direction: column; gap: 2px; margin-top: 2px; }
  .candidate-mobile-card { padding: 15px; border: 1px solid var(--border); border-radius: var(--radius); background: #fff; box-shadow: var(--shadow-sm); cursor: pointer; }
  .candidate-mobile-card:active { transform: scale(.99); }
  .candidate-mobile-card > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--border); }
  .candidate-mobile-card > header strong, .candidate-mobile-card > header small { display: block; }
  .candidate-mobile-card > header small { margin-top: 4px; color: var(--text-tertiary); font-size: 10px; }
  .candidate-mobile-meta { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; padding-top: 12px; }
  .candidate-mobile-meta span { min-width: 0; }
  .candidate-mobile-meta small, .candidate-mobile-meta strong { display: block; }
  .candidate-mobile-meta small { margin-bottom: 4px; color: var(--text-tertiary); font-size: 10px; }
  .candidate-mobile-meta strong { overflow: hidden; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
  .hero { padding: 20px; }
  .hero-badge { display: none; }
  .metric-grid, .info-grid, .section-columns, .form-grid, .dashboard-summary { grid-template-columns: 1fr; }
  .module-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .module-card { min-height: 88px; padding: 13px; }
  .module-card > span { display: none; }
  .requirement-grid { grid-template-columns: 1fr; }
  .plan-summary-grid { grid-template-columns: 1fr; }
  .plan-gap-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .status-chart-row { grid-template-columns: 88px minmax(70px,1fr) 34px; }
  .status-chart-row > small { display: none; }
  .flow-steps { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .retention-grid { grid-template-columns: 1fr; }
  .dashboard-tabs { position: static; overflow-x: auto; }
  .dashboard-tabs button { flex: 0 0 auto; min-width: 100px; padding: 0 14px; }
  .scope-banner { align-items: flex-start; flex-direction: column; }
  .source-bars article { grid-template-columns: 86px minmax(70px,1fr) 34px; }
  .source-bars article > em { display: none; }
  .exception-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .assignment-grid { grid-template-columns: 1fr; }
  .detail-hero { grid-template-columns: 1fr; }
  .photo-tile { max-height: 310px; min-height: 230px; }
  .portrait-column { width: min(100%,360px); margin: 0 auto; }
  .identity-head { align-items: flex-start; }
  .candidate-task-actions { position: sticky; bottom: 79px; z-index: 4; margin: 14px -15px -15px; padding: 11px 15px; border-top: 1px solid var(--border); background: rgba(255,255,255,.96); box-shadow: 0 -8px 22px rgba(31,47,78,.08); backdrop-filter: blur(12px); }
  .candidate-task-actions button { min-width: 46%; }
  .task-group .list-item:nth-child(n+4) { display: none; }
  .mobile-more-hint { display: block; padding: 0 16px 13px; color: var(--text-tertiary); font-size: 11px; text-align: center; }
  .topbar h2 { font-size: 18px; }
  .panel-header { align-items: flex-start; padding: 15px; }
  .panel-body { padding: 15px; }
  .list-item { align-items: stretch; flex-direction: column; }
  .list-item > button, .list-item > .action-row { align-self: stretch; }
  .list-item > button { width: 100%; }
  .action-row > button { flex: 1 1 auto; }
  .modal-backdrop { align-items: end; padding: 0; }
  .modal-card { width: 100%; max-height: 92vh; border-radius: var(--radius-lg) var(--radius-lg) 0 0; }
  .modal-card > header, .modal-body, .modal-card footer { padding-left: 17px; padding-right: 17px; }
  .toast-region { right: 12px; bottom: 84px; left: 12px; }
  .toast { min-width: 0; max-width: none; }
}
.metric-card strong,
.status-pill,
.table-wrap td,
.list-item strong,
.compact-date,
.money,
.amount { font-variant-numeric: tabular-nums; }
.table-wrap { overflow-x: auto; }
.table-wrap table { min-width: 720px; }
.money,
.amount { text-align: right; }
.list-item.unread { background: var(--blue-soft); box-shadow: inset 3px 0 0 var(--blue); }
.list-item.unread > div > strong { color: var(--text-primary); }
.list-item.unread + .list-item.unread { margin-top: 8px; }
.candidate-bulk-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin: 0 2px 10px; padding: 10px 14px; background: var(--blue-soft); border-radius: var(--radius); }
.candidate-bulk-bar strong { color: var(--blue); font-variant-numeric: tabular-nums; }
.candidate-bulk-bar .action-row { flex-wrap: wrap; gap: 8px; }
.candidate-table input[type="checkbox"] { width: 15px; height: 15px; cursor: pointer; accent-color: var(--blue); }
.candidate-table th:first-child, .candidate-table td:first-child { text-align: center; }
.gap-number { color: var(--orange); font-size: 15px; font-variant-numeric: tabular-nums; }
@media (max-width: 760px) {
  .candidate-bulk-bar { flex-direction: column; align-items: flex-start; gap: 10px; }
}

.inline-save-btn, .inline-cancel-btn { margin-top: 6px; padding: 5px 12px; font-size: 12px; }

.candidate-extra-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 0;font-size:13px}
.candidate-extra-filters label{display:flex;align-items:center;gap:5px}
.candidate-photo-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:18px 0}
.candidate-photo-card{background:#fff;border:1px solid #e2e9f4;border-radius:14px;padding:18px;cursor:pointer;box-shadow:0 3px 12px #16375b08}
.candidate-card-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px}
.candidate-card-heading h3{margin:0;color:#132845}
.candidate-card-body{display:flex;gap:16px;align-items:center;font-size:13px;line-height:1.6}
.candidate-card-body p{margin:4px 0}.candidate-next-step{color:#b96600}
.candidate-list-photo{flex:0 0 84px;height:116px;background:#edf2f9;display:flex;align-items:center;justify-content:center;color:#8098bc;border-radius:5px;overflow:hidden;font-size:30px}
.candidate-list-photo img{width:100%;height:100%;object-fit:cover}
.candidate-photo-card footer{border-top:1px solid #edf1f7;margin-top:14px;padding-top:12px;color:#72839c;font-size:12px;line-height:1.8}
#main-content[data-candidate-layout] .candidate-mobile-list{display:none!important}
#main-content[data-candidate-layout="cards"] .candidate-table-wrap{display:none!important}
#main-content[data-candidate-layout="table"] .candidate-photo-cards{display:none}
#main-content[data-candidate-layout="table"] .candidate-table-wrap{display:block!important;overflow:auto}
@media(max-width:900px){.candidate-photo-cards{grid-template-columns:1fr}}

.candidate-extra-filters input[type="checkbox"]{width:16px;height:16px;padding:0}.candidate-extra-filters input[type="date"]{width:168px}.candidate-extra-filters label{white-space:nowrap}

/* Persistent filters and image paste actions. */
.candidate-status-always .candidate-extra-filters{margin:0;padding:10px 0;gap:10px 14px}
.candidate-list-feedback{font-size:13px;color:#557094;line-height:1.7}
.candidate-list-feedback:empty{display:none}
.candidate-list-feedback.is-error{color:#a33921;background:#fff5ef;padding:8px 12px;border-radius:8px}
#candidate-list-results{min-height:120px}
#photo-drop:focus-visible,#photo-drop.is-dragover{outline:2px solid #2264e5;outline-offset:3px}
.photo-paste-help,#photo-upload-feedback{font-size:12px;line-height:1.6;color:#58708e;overflow-wrap:anywhere;margin:8px 0 0}
#photo-upload-feedback:empty{display:none}
.portrait-actions{flex-wrap:wrap}
.photo-paste-menu{position:fixed;z-index:150;padding:5px;border:1px solid #dfe6f2;border-radius:9px;background:white;box-shadow:0 8px 28px #203c702b}
.photo-paste-menu button{border:0;background:white;color:#183c73;padding:10px 16px;border-radius:6px;white-space:nowrap}
.photo-paste-menu button:hover,.photo-paste-menu button:focus-visible{background:#edf4ff}

.candidate-stale-banner{padding:10px 14px;margin:8px 0;color:#884c18;background:#fff8eb;border:1px solid #f0d7a6;border-radius:8px;font-size:13px}
.message-center{display:grid;gap:16px}.message-tabs,.message-subtabs{display:flex;gap:8px;flex-wrap:wrap}.message-tabs button,.message-subtabs button{display:flex;gap:9px;align-items:center}.message-tabs button span,.message-subtabs button span{font-variant-numeric:tabular-nums;font-size:12px;opacity:.8}.message-filters{padding:18px}.message-filter-fields{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.message-filter-fields .field{min-width:140px;flex:1 1 145px;margin:0;max-width:230px}.message-filter-fields input,.message-filter-fields select{width:100%}.message-subtabs{margin-bottom:16px}.message-filter-footer{display:flex;gap:20px;align-items:center;justify-content:space-between;flex-wrap:wrap;margin-top:16px;color:var(--text-secondary)}.message-unread-filter{display:flex;align-items:center;gap:7px;white-space:nowrap;font-size:13px}.message-unread-filter input{width:15px;height:15px;margin:0}.message-copy{flex:1;min-width:0}.message-heading{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.message-copy p{margin:8px 0;white-space:pre-wrap;overflow-wrap:anywhere}.message-copy small{display:block;line-height:1.7}.message-item{align-items:center;gap:18px;padding:17px 14px}.message-item .action-row{flex-shrink:0;gap:8px}.message-unread-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--blue)}.message-unavailable{color:#8a6950}.message-error p{max-width:600px;overflow-wrap:anywhere}.message-results .panel-header{gap:12px;flex-wrap:wrap}.message-center .pagination{margin:0}.message-report-snapshot{border-left:3px solid var(--blue);padding:14px 18px;background:var(--blue-soft);border-radius:8px;margin:12px 0 18px}.message-report-snapshot p{margin:7px 0;line-height:1.7}.message-report-snapshot small{color:var(--text-secondary)}@media(max-width:760px){.message-item{align-items:flex-start;flex-direction:column}.message-item .action-row{width:100%;flex-wrap:wrap}.message-filter-fields .field{max-width:none;min-width:120px}.message-filter-footer{gap:10px}.message-tabs button{flex:1 1 calc(50% - 8px);justify-content:center}}
.photo-just-added{outline:3px solid #22a66b;outline-offset:3px;border-radius:10px}

/* Candidate daily work: one primary step with grouped optional actions. */
.personnel-advanced{grid-column:1/-1}
.candidate-more{flex:1 1 100%;padding-top:8px}.candidate-more>summary{display:inline-block;cursor:pointer;color:#536783;padding:9px 14px;border-radius:10px;background:#f1f5fa}.candidate-more[open]>.action-row{margin-top:12px;gap:8px}.personnel-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.personnel-summary{background:#f3f7fc;border-radius:12px;padding:14px 18px}.personnel-actions button{white-space:normal;min-height:44px}@media(max-width:600px){.personnel-actions{grid-template-columns:1fr}}
/* Decision context stays beside the approval controls, including narrow drawers. */
.decision-summary{min-width:0;width:100%;padding:18px;border:1px solid #dce5f2;border-radius:12px;background:#fff;margin:0 0 18px;box-sizing:border-box;color:#203552}
.decision-summary h3{margin:0 0 14px;font-size:17px}.decision-summary h4{margin:18px 0 8px;font-size:14px;color:#234877}
.decision-summary p{margin:8px 0;line-height:1.65;overflow-wrap:anywhere}.decision-summary .table-wrap{margin:14px 0}.decision-summary table{min-width:0;width:100%;table-layout:fixed}.decision-summary th,.decision-summary td{padding:10px;vertical-align:top;white-space:normal;overflow-wrap:anywhere}.decision-summary thead{background:#f1f5fc}.decision-summary small{color:#77869c;font-weight:400}.decision-summary .warning-text{padding:9px 12px;background:#fff6e7;border-radius:8px}

/* Complete local V4 acceptance: readable facts, compact lists and explicit recovery. */
.content small,.content .muted,.modal-body small,.candidate-group-line,.candidate-stage-context,.candidate-status-date{font-size:13px;line-height:1.65;color:#536783}
.content .metric-card small,.timeline-meta{color:#536783;line-height:1.65}
.read-error{padding:24px;line-height:1.7}.read-error>strong{color:#92451a}.read-error p{white-space:pre-wrap;overflow-wrap:anywhere}
.approval-inline-facts{margin-top:10px}.approval-inline-facts>summary,.account-secondary-actions>summary{cursor:pointer;color:#245ca9;padding:8px 10px;border-radius:8px;background:#f0f5fc}
.approval-inline-facts .decision-summary{margin-top:12px}.account-secondary-actions[open]>.action-row{display:flex;flex-wrap:wrap;margin-top:10px;gap:7px}
.risk-summary-list{display:grid;gap:16px;grid-template-columns:repeat(2,minmax(0,1fr))}.risk-summary-card{min-width:0;padding:20px;border:1px solid #dce5f2;border-radius:12px;background:#fff;line-height:1.7;overflow-wrap:anywhere}.risk-summary-heading{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.risk-summary-card p{margin:9px 0}.risk-summary-card>.action-row{margin-top:16px;gap:8px;flex-wrap:wrap}.risk-complete-table{padding:12px 18px;border-top:1px solid #dce5f2}.risk-complete-table>summary{cursor:pointer;padding:8px 0;color:#245ca9}.risk-detail-field{border-bottom:1px solid #e3eaf4;padding:8px 0 16px;overflow-wrap:anywhere}.risk-detail-field h4{color:#526783;margin:8px 0}.risk-detail-field td{white-space:normal}.risk-detail-field .risk-original-full[open]{max-width:100%}
.data-section-nav{position:sticky;top:70px;z-index:8;background:#fff;padding:10px 12px;border:1px solid #dce5f2}.data-section-nav a{text-decoration:none;font-size:13px}section[id^="data-section-"],section[id^="request-"]{scroll-margin-top:155px}
.request-quota>summary{cursor:pointer}.request-quota>summary h3{font-size:15px}.request-quota .metric-grid{margin-top:16px}.request-quota .rest-calendar{max-height:480px;overflow:auto}.request-quota input[type=month]{margin-left:12px}.request-entry-tabs{margin-bottom:16px}#request-filter-form .toolbar{margin-bottom:8px}#request-filter-form p{margin-bottom:0}
[hidden]{display:none!important}
@media(max-width:1120px){.risk-summary-list{grid-template-columns:1fr}.data-section-nav{position:static}}

.risk-summary-card:only-child{grid-column:1/-1}.finance-date-scope{flex-basis:100%;margin:4px 0 0!important}
/* The request entry group is navigation, not a sticky long-form toolbar. */
.content .request-entry-tabs.toolbar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;position:static;top:auto;width:100%;max-width:none;min-height:0;margin:0 0 16px;padding:12px 16px;box-sizing:border-box}
.content .request-entry-tabs.toolbar button{min-height:42px;padding:10px 14px;border-radius:8px;border:1px solid #dce5f2;background:#f1f5fc;color:#25456f;line-height:1.4}
.content .request-entry-tabs.toolbar .primary-btn{background:#2264e5;color:white;border-color:#2264e5}
#request-filter-form .toolbar{position:static;top:auto;box-shadow:none;border:0;background:none;padding:0;min-height:0;width:100%;margin:0 0 12px!important}
#request-filter-form .toolbar label{margin:0}#request-filter-form>p{position:static;line-height:1.7;margin:0}
@media(max-width:640px){.content .request-entry-tabs.toolbar{grid-template-columns:1fr;gap:8px}}

/* Candidate-linked permanent-block registration, using the shared V4 form. */
.block-entry-choices{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}
.block-entry-choices>button{display:flex;flex-direction:column;align-items:flex-start;text-align:left;gap:9px;white-space:normal;min-height:110px;padding:18px}
.block-entry-choices small{font-size:13px;font-weight:400;line-height:1.6}
.block-candidate-picker{margin-bottom:22px}.block-candidate-picker .action-row{margin:10px 0}
#pb-candidate-results{display:grid;gap:9px;max-height:330px;overflow:auto;padding:4px 3px}
.block-candidate-option{display:block;width:100%;text-align:left;border:1px solid #dce5f4;border-radius:12px;padding:14px;background:#fff;color:var(--text,#193451);white-space:normal;line-height:1.6;cursor:pointer}
.block-candidate-option strong,.block-candidate-option small{display:block}.block-candidate-option p{margin:4px 0;font-size:13px;overflow-wrap:anywhere}.block-candidate-option small{color:#607591}
.block-candidate-option>span{color:#2463eb;display:block;margin-top:6px;font-size:13px}.block-candidate-option.selected{border-color:#2463eb;background:#f1f6ff;box-shadow:0 0 0 1px #2463eb}
#pb-candidate-selected{padding:16px;background:#eef5ff;border:1px solid #cbdcff;border-radius:12px;margin-top:14px;line-height:1.7}#pb-candidate-selected p{margin:5px 0;overflow-wrap:anywhere}
.block-entry-reason{border-top:1px solid #dce5f4;padding-top:16px;margin-top:8px}.block-entry-reason .field{margin:12px 0}
@media(max-width:640px){.block-entry-choices{grid-template-columns:1fr}.block-entry-choices>button{min-height:90px}#pb-candidate-results{max-height:270px}}

#pb-candidate-selected>strong,#pb-candidate-selected>small{display:block;margin:4px 0;overflow-wrap:anywhere}

.block-entry-choices .primary-btn small{color:#e6efff}

.candidate-create-photo{display:flex;gap:20px;align-items:center;padding:18px;border:1px solid #dce5f4;border-radius:12px;background:#fff}
.candidate-create-photo-preview{width:108px;height:132px;flex:none;border:1px dashed #9bb6de;border-radius:10px;display:flex;align-items:center;justify-content:center;background:#f4f7fc;color:#6a7c95;overflow:hidden}
.candidate-create-photo-preview img{width:100%;height:100%;object-fit:contain}.candidate-create-photo-preview.is-dragover{border-color:#2264e5;background:#eaf1ff}.candidate-create-photo-preview:focus-visible{outline:3px solid #8cb4ff;outline-offset:2px}
.candidate-create-photo-controls{min-width:0}.candidate-create-photo-controls h4{margin:0 0 8px}.candidate-create-photo-controls p{font-size:13px;margin:8px 0;overflow-wrap:anywhere}.candidate-create-photo-controls small{display:block;line-height:1.6}.linked-block-portrait{display:flex;flex-direction:column;gap:8px}.linked-block-portrait img{width:100%;max-height:240px;object-fit:contain}.linked-block-portrait small{font-size:12px}
@media(max-width:480px){.candidate-create-photo{align-items:flex-start;padding:12px;gap:12px}.candidate-create-photo-preview{width:82px;height:108px}.candidate-create-photo-controls .action-row{gap:6px}.candidate-create-photo-controls button{padding:8px 10px}.candidate-create-photo-controls small{font-size:12px}}

.blacklist-profile .identity-head{flex-wrap:wrap;align-items:flex-start}.blacklist-profile .identity-head>div{min-width:0;flex:1 1 180px}.blacklist-profile .identity-head h1{overflow-wrap:anywhere}

/* Visible progress even while the initial candidate request is pending. */
.skeleton-wrap{display:grid;gap:18px;padding:24px 0}.loading-copy{margin:0;color:#526b8e;font-size:15px}.skeleton-title{height:30px;width:34%;min-width:150px}.skeleton-line{height:16px;width:100%}.skeleton-line.w80{width:80%}.skeleton-line.w60{width:60%}.skeleton-block{height:120px;width:100%}
.candidate-handling-context{margin:16px 0 10px;padding:12px 16px;border:1px solid #dce5f4;border-radius:10px;background:#f7f9fd;font-size:13px;line-height:1.7}.candidate-handling-context summary{cursor:pointer;color:#526b8e}.candidate-handling-context p{margin:8px 0}
@media(prefers-reduced-motion:reduce){.skeleton{animation:none}}

/* Public-pool historical people attribution, separate from current handlers. */
.pool-movement-panel{margin-top:18px;margin-bottom:22px}.pool-movement-panel .panel-header small{display:block;color:var(--muted);margin-top:6px;line-height:1.6}
.pool-period-form{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.pool-period-form label{display:grid;gap:7px;min-width:160px;color:var(--muted);font-size:13px}.pool-period-form select{min-width:220px}.pool-period-form input,.pool-period-form select{min-height:40px}
.pool-scope-note,.pool-summary-explanation{line-height:1.7;margin:14px 0;color:var(--muted);font-size:13px}.pool-feedback{color:var(--red);font-size:14px;line-height:1.7}.pool-feedback:empty{display:none}.pool-feedback button{margin-left:10px}
.pool-person-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:26px 0 12px}.pool-person-heading h4{margin:0;font-size:16px}.pool-person-heading span{color:var(--muted);font-size:12px;line-height:1.7}
.pool-person-table-wrap{overflow:auto;border:1px solid var(--line);border-radius:12px}.pool-person-table{width:100%;border-collapse:collapse;min-width:620px}.pool-person-table th,.pool-person-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}.pool-person-table thead th{font-size:12px;color:var(--muted);background:var(--canvas)}.pool-person-table tbody tr:last-child>*{border-bottom:0}.pool-person-table tbody th{font-weight:500;max-width:240px}.pool-person-table tbody th small{display:block;color:var(--muted);font-size:12px;margin-top:5px}
.pool-person-name,.pool-number-link{border:0;background:none;color:var(--blue);font:inherit;text-align:left;padding:6px 0;cursor:pointer}.pool-person-name{font-weight:600;overflow-wrap:anywhere}.pool-number-link{font-weight:600;font-size:17px;min-width:90px}.pool-number-link span{display:block;font-size:11px;font-weight:400;color:var(--muted);margin-top:4px}.pool-person-name:hover,.pool-number-link:hover{text-decoration:underline}.pool-person-name:focus-visible,.pool-number-link:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:3px}.pool-basis-note{font-size:13px;line-height:1.7;color:var(--muted)}.pool-basis-note summary{cursor:pointer}
@media(max-width:760px){.pool-period-form label{flex:1 1 140px}.pool-period-form select{min-width:0;width:100%}.pool-period-form button{flex:1 1 100%}.pool-person-heading{display:block}.pool-person-heading span{display:block;margin-top:6px}.pool-person-table th,.pool-person-table td{padding:10px 12px}}

.followup-quality{padding:12px 14px;border-radius:10px;background:#fff8e8;color:#805d16;line-height:1.6}.followup-quality:empty{display:none}.followup-quality.is-error{background:#fff0ef;color:#a82927}.message-archive-note{font-size:14px;line-height:1.7;color:#586d8e;padding:10px 0}
