/* 会务工作台：复用 Blue Workbench v1.0，强调会议上下文、时间线与现场签到。 */
body.is-meeting-route .content { max-width: 1480px; }
body.is-meeting-route #view { max-width: 1480px; margin: 0 auto; }
body.is-meeting-route .meeting-workbench { --meeting-ink:#183761; --meeting-muted:#60728d; --meeting-line:#dfe7f0; --meeting-blue:#2563eb; --meeting-soft:#edf4ff; color:var(--meeting-ink); }
.meeting-tabs { display:flex; gap:6px; padding:4px; margin:0 0 16px; background:#f7f9fc; border:1px solid #dfe7f0; border-radius:12px; width:max-content; max-width:100%; overflow:auto; }
.meeting-filter-tabs { display:flex; gap:8px; margin:0 0 12px; overflow:auto; }
.meeting-filter-tab { min-height:44px; padding:0 14px; border:1px solid #dfe7f0; border-radius:9px; background:#fff; color:#60728d; cursor:pointer; white-space:nowrap; }
.meeting-filter-tab.is-active { border-color:#2563eb; color:#2563eb; background:#edf4ff; font-weight:700; }
.meeting-pagination { display:flex; align-items:center; justify-content:center; gap:14px; margin:18px 0 4px; color:#71839b; font-size:13px; }
.meeting-mobile-nav { display:none; }
.meeting-tab { min-height:44px; padding:0 16px; border:0; border-radius:8px; background:transparent; color:#60728d; font-weight:700; white-space:nowrap; cursor:pointer; }
.meeting-tab:focus-visible,.meeting-filter-tab:focus-visible,.meeting-mobile-nav button:focus-visible { outline:3px solid rgba(37,99,235,.28); outline-offset:2px; }
.meeting-tab:hover,.meeting-tab.is-active { color:#2563eb; background:#fff; box-shadow:0 4px 12px rgba(36,75,125,.08); }
.meeting-hero { display:flex; justify-content:space-between; align-items:flex-end; gap:24px; padding:28px 30px; margin-bottom:16px; border:1px solid #d9e6f5; border-radius:16px; background:#f4f8fd; box-shadow:0 8px 24px rgba(44,74,111,.06); position:relative; overflow:hidden; }
.meeting-hero:after { content:""; position:absolute; width:220px; height:220px; right:-88px; top:-120px; border:24px solid rgba(37,99,235,.08); border-radius:50%; }
.meeting-hero > div,.meeting-hero-actions { position:relative; z-index:1; }
.meeting-eyebrow { display:flex; align-items:center; gap:8px; color:#2563eb; font-size:12px; font-weight:800; letter-spacing:.05em; }
.meeting-eyebrow span { width:7px; height:7px; border-radius:50%; background:#0f9f76; box-shadow:0 0 0 4px rgba(15,159,118,.12); }
.meeting-hero h2,.meeting-detail-head h2 { margin:10px 0 8px; color:#183761; font-size:clamp(23px,3vw,30px); line-height:1.24; letter-spacing:-.03em; }
.meeting-hero p,.meeting-detail-head p { margin:0; color:#60728d; line-height:1.7; }
.meeting-hero-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.meeting-hero-actions .select { min-width:190px; min-height:44px; }
.meeting-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin-bottom:18px; }
.meeting-metric { min-height:98px; padding:16px 18px; border:1px solid #dfe7f0; border-radius:12px; background:#fff; box-shadow:0 5px 18px rgba(44,74,111,.04); }
.meeting-metric span,.meeting-metric small { display:block; color:#60728d; font-size:12px; line-height:1.5; }
.meeting-metric strong { display:block; margin:7px 0 3px; color:#183761; font-size:25px; line-height:1.15; overflow-wrap:anywhere; }
.meeting-metric.is-focus { border-color:#b9d2fa; background:#f7fbff; }
.meeting-metric.is-focus strong { color:#2563eb; }
.meeting-overview-grid,.meeting-detail-grid,.meeting-split { display:grid; grid-template-columns:minmax(0,7fr) minmax(300px,5fr); gap:16px; }
.meeting-panel { padding:20px; border:1px solid #dfe7f0; border-radius:12px; background:#fff; box-shadow:0 6px 20px rgba(44,74,111,.045); min-width:0; }
.meeting-panel-head { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:16px; }
.meeting-panel-head h3,.meeting-list-head h2 { margin:0; color:#183761; font-size:17px; }
.meeting-panel-head p,.meeting-list-head p { margin:4px 0 0; color:#60728d; font-size:12.5px; line-height:1.55; }
.meeting-list-stack { display:grid; gap:10px; }
.meeting-card { padding:16px; border:1px solid #e0e8f2; border-radius:11px; background:#fff; cursor:pointer; transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease; }
.meeting-card:hover { transform:translateY(-1px); border-color:#b9d2fa; box-shadow:0 8px 20px rgba(37,99,235,.08); }
.meeting-card.is-compact { padding:14px 16px; }
.meeting-card-top,.meeting-card-foot,.meeting-contextbar,.meeting-toolbar { display:flex; align-items:center; gap:10px; }
.meeting-card-top { justify-content:space-between; }
.meeting-type,.meeting-api-note { color:#71839b; font-size:11px; }
.meeting-card h3 { margin:10px 0 5px; color:#183761; font-size:15px; line-height:1.45; overflow-wrap:anywhere; }
.meeting-card-meta { margin:0; color:#60728d; font-size:12px; line-height:1.6; overflow-wrap:anywhere; }
.meeting-status { display:inline-flex; align-items:center; gap:6px; min-height:26px; padding:4px 9px; border:1px solid #d9e4f1; border-radius:999px; color:#60728d; background:#f8fafc; font-size:11px; font-weight:800; white-space:nowrap; }
.meeting-status i { width:6px; height:6px; border-radius:50%; background:#94a3b8; }
.meeting-status.is-live { color:#0f7f66; border-color:#b8e4d6; background:#f0fbf7; }.meeting-status.is-live i { background:#0f9f76; }
.meeting-status.is-done { color:#2563eb; border-color:#bfd5fb; background:#f1f6ff; }.meeting-status.is-done i { background:#2563eb; }
.meeting-status.is-muted { color:#71839b; }.meeting-status.is-draft i { background:#94a3b8; }
.meeting-card-stats { display:flex; gap:18px; margin-top:14px; color:#71839b; font-size:12px; }.meeting-card-stats b { color:#183761; }
.meeting-progress { height:5px; margin:9px 0 12px; overflow:hidden; border-radius:99px; background:#e8eef6; }.meeting-progress span { display:block; height:100%; border-radius:inherit; background:#4f8bf5; }
.meeting-card-foot { justify-content:space-between; }.meeting-card-foot .btn { min-height:36px; }
.meeting-todo-row { display:flex; gap:12px; padding:15px 0; border-bottom:1px solid #edf2f7; }.meeting-todo-row:last-child { border-bottom:0; }.todo-index { color:#2563eb; font-size:12px; font-weight:800; }.meeting-todo-row b,.meeting-todo-row small { display:block; }.meeting-todo-row b { font-size:13px; line-height:1.5; }.meeting-todo-row small { margin-top:3px; color:#71839b; font-size:12px; line-height:1.55; }
.meeting-toolbar { min-height:62px; padding:9px 12px; margin-bottom:16px; border:1px solid #dfe7f0; border-radius:12px; background:#fff; box-shadow:0 5px 18px rgba(44,74,111,.04); }.meeting-toolbar .select { min-height:44px; min-width:150px; }.meeting-search { display:flex; align-items:center; gap:8px; min-width:240px; flex:0 1 340px; }.meeting-search span { color:#91a0b4; font-size:20px; }.meeting-search .input { min-height:44px; width:100%; }
.meeting-list-head { display:flex; justify-content:space-between; margin:24px 0 12px; }.meeting-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.meeting-contextbar { min-height:62px; padding:9px 12px; margin-bottom:16px; border:1px solid #dfe7f0; border-radius:12px; background:#fff; }.meeting-contextbar .select { min-height:44px; min-width:260px; }
.meeting-detail-head { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; padding:22px 24px; margin-bottom:16px; border:1px solid #d9e6f5; border-radius:14px; background:#f7fbff; }.meeting-detail-head .btn { flex:none; }
.meeting-info-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.meeting-info-grid div,.meeting-detail-fields div { padding:13px 14px; border:1px solid #edf2f7; border-radius:9px; background:#f9fbfd; }.meeting-info-grid span,.meeting-detail-fields span { display:block; color:#71839b; font-size:11px; }.meeting-info-grid b,.meeting-detail-fields b { display:block; margin-top:5px; color:#183761; font-size:13px; line-height:1.45; overflow-wrap:anywhere; }
.meeting-detail-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; align-content:start; }.meeting-detail-stats h3 { grid-column:1/-1; margin:0 0 4px; font-size:16px; }.detail-stat { padding:13px 10px; border-radius:9px; background:#f5f9ff; text-align:center; }.detail-stat strong,.detail-stat span { display:block; }.detail-stat strong { color:#2563eb; font-size:24px; }.detail-stat span { margin-top:4px; color:#60728d; font-size:11px; }
.meeting-agenda { margin-top:16px; }.meeting-timeline { position:relative; padding-left:8px; }.meeting-timeline:before { content:""; position:absolute; left:19px; top:12px; bottom:12px; width:1px; background:#cfe0f5; }.meeting-timeline-item { position:relative; display:flex; align-items:flex-start; gap:14px; min-height:64px; padding:8px 0 14px; }.meeting-timeline-dot { z-index:1; display:grid; place-items:center; width:24px; height:24px; flex:none; border:1px solid #a9c7f4; border-radius:50%; background:#edf4ff; color:#2563eb; font-size:10px; font-weight:800; }.meeting-timeline-item b,.meeting-timeline-item p { display:block; }.meeting-timeline-item b { margin-top:2px; font-size:13px; }.meeting-timeline-item p { margin:4px 0 0; color:#71839b; font-size:12px; }.meeting-timeline-item .meeting-api-note { margin-left:auto; padding-top:4px; }
.meeting-split { grid-template-columns:minmax(0,8fr) minmax(250px,4fr); }.meeting-table-wrap { overflow:auto; }.meeting-table { width:100%; min-width:620px; border-collapse:collapse; }.meeting-table th,.meeting-table td { padding:13px 12px; border-bottom:1px solid #edf2f7; text-align:left; font-size:12px; vertical-align:middle; }.meeting-table th { background:#f7faff; color:#71839b; font-size:11px; }.meeting-table td b,.meeting-table td small { display:block; }.meeting-table td small { margin-top:3px; color:#91a0b4; font-size:11px; }.meeting-side-note h3 { margin:0 0 10px; font-size:16px; }.meeting-side-note p { color:#60728d; font-size:13px; line-height:1.7; }.meeting-state { display:flex; align-items:center; gap:10px; padding:12px 14px; margin-top:14px; border:1px solid #cfe0f5; border-radius:9px; background:#f5f9ff; color:#45617e; font-size:12px; line-height:1.5; }.meeting-state.is-error { justify-content:space-between; margin:30px auto; max-width:720px; background:#fff8f8; border-color:#f3c8cc; color:#8f3440; }.meeting-state.is-error p { margin:4px 0 0; }.meeting-state-icon { display:grid; place-items:center; width:24px; height:24px; flex:none; border-radius:50%; background:#dceaff; color:#2563eb; font-weight:800; }.meeting-state.is-error .meeting-state-icon { background:#fde0e2; color:#c2414b; }.meeting-loading { display:grid; place-items:center; gap:12px; min-height:260px; color:#60728d; }.meeting-loading span { width:30px; height:30px; border:3px solid #dce8f8; border-top-color:#2563eb; border-radius:50%; animation:meeting-spin .8s linear infinite; }.meeting-loading p { margin:0; font-size:13px; }.meeting-empty { display:grid; justify-items:center; gap:7px; min-height:160px; padding:24px 16px; place-content:center; border:1px dashed #cfdeee; border-radius:10px; background:#fbfdff; text-align:center; }.meeting-empty-mark { color:#7ba9ec; font-size:28px; }.meeting-empty h3 { margin:0; font-size:15px; }.meeting-empty p { max-width:360px; margin:0 0 8px; color:#71839b; font-size:12px; line-height:1.6; }
.meeting-checkin-list { display:grid; gap:8px; }.meeting-checkin-row { display:grid; grid-template-columns:36px minmax(0,1fr) 190px auto; align-items:center; gap:12px; min-height:66px; padding:10px 12px; border:1px solid #e7eef6; border-radius:10px; }.meeting-person-mark { display:grid; place-items:center; width:36px; height:36px; border-radius:10px; background:#edf4ff; color:#2563eb; font-weight:800; }.meeting-person b,.meeting-person small,.meeting-checkin-state span,.meeting-checkin-state small { display:block; }.meeting-person b { overflow-wrap:anywhere; }.meeting-person small,.meeting-checkin-state small { margin-top:3px; color:#91a0b4; font-size:11px; }.meeting-checkin-state { display:grid; grid-template-columns:20px 1fr; align-items:center; column-gap:5px; }.meeting-checkin-state i { grid-row:span 2; display:grid; place-items:center; width:20px; height:20px; border-radius:50%; font-style:normal; font-size:12px; }.meeting-checkin-state.is-done i { background:#d8f3ea; color:#0f9f76; }.meeting-checkin-state.is-pending i { border:1px solid #cbd8e7; color:#91a0b4; }.meeting-checkin-state span { font-size:12px; font-weight:700; }.meeting-checkin-state.is-done span { color:#0f7f66; }.meeting-checkin-state.is-pending span { color:#71839b; }.meeting-form-grid,.meeting-detail-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.meeting-detail-modal .modal { max-width:560px; }
@keyframes meeting-spin { to { transform:rotate(360deg); } }
@media (prefers-reduced-motion:reduce) { .meeting-card,.meeting-loading span { animation:none; transition:none; } }
@media (max-width:960px) { .meeting-overview-grid,.meeting-detail-grid,.meeting-split { grid-template-columns:1fr; }.meeting-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }.meeting-hero { align-items:flex-start; flex-direction:column; }.meeting-hero-actions { width:100%; }.meeting-hero-actions .select { flex:1; }.meeting-detail-head { align-items:flex-start; flex-direction:column; } }
@media (max-width:620px) { .meeting-tabs { width:100%; }.meeting-tab { flex:1; padding:0 10px; }.meeting-hero { padding:20px; border-radius:12px; }.meeting-hero h2,.meeting-detail-head h2 { font-size:23px; }.meeting-metrics { gap:8px; }.meeting-metric { min-height:84px; padding:13px 14px; }.meeting-metric strong { font-size:21px; }.meeting-toolbar,.meeting-contextbar { align-items:stretch; flex-wrap:wrap; padding:10px; }.meeting-toolbar .meeting-search { min-width:100%; order:-1; }.meeting-toolbar .select,.meeting-contextbar .select,.meeting-date-filter { flex:1; min-width:0; }.meeting-grid { grid-template-columns:1fr; }.meeting-panel { padding:15px; }.meeting-form-grid,.meeting-detail-fields,.meeting-info-grid { grid-template-columns:1fr; }.meeting-checkin-row { grid-template-columns:34px minmax(0,1fr) auto; gap:9px; }.meeting-checkin-state { grid-column:2; grid-row:2; }.meeting-checkin-row > .btn { grid-column:3; grid-row:1 / span 2; }.meeting-table { min-width:580px; }.meeting-state.is-error { align-items:flex-start; flex-wrap:wrap; }.meeting-state.is-error .btn { margin-left:34px; }.meeting-detail-stats { grid-template-columns:repeat(3,1fr); }.meeting-mobile-nav { position:sticky; bottom:8px; z-index:3; display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin:18px 0 0; padding:7px; border:1px solid #dfe7f0; border-radius:14px; background:rgba(255,255,255,.96); box-shadow:0 8px 24px rgba(31,76,128,.12); }.meeting-mobile-nav button { min-height:44px; border:0; border-radius:9px; background:transparent; color:#71839b; font-size:16px; cursor:pointer; }.meeting-mobile-nav button span { display:block; margin-top:2px; font-size:11px; }.meeting-mobile-nav button.is-active { color:#2563eb; background:#edf4ff; font-weight:700; } }
