:root {
  --ink: #182320;
  --ink-2: #3f4d49;
  --muted: #72807c;
  --line: #dfe5e2;
  --line-soft: #edf0ef;
  --canvas: #f4f6f5;
  --surface: #ffffff;
  --surface-2: #f8faf9;
  --sidebar: #17231f;
  --sidebar-soft: #21312c;
  --teal: #177668;
  --teal-dark: #105e53;
  --teal-soft: #e2f1ed;
  --coral: #df765a;
  --coral-soft: #fbeae5;
  --gold: #c38b27;
  --gold-soft: #fbf1d9;
  --blue: #4a78a8;
  --blue-soft: #e8f0f8;
  --violet: #7567a7;
  --violet-soft: #eeeaf7;
  --danger: #bd4c4c;
  --danger-soft: #fbeaea;
  --shadow: 0 14px 38px rgba(20, 39, 33, 0.12);
  --shadow-sm: 0 2px 10px rgba(20, 39, 33, 0.07);
  --radius: 7px;
  --sidebar-w: 228px;
}

/* Results lists fit the page on desktop and become labeled cards on narrow screens. */
@media (min-width: 1101px) {
  .table-panel .data-table-wrap { overflow-x: hidden; }
  .table-panel .data-table,
  .table-panel .paper-data-table,
  .table-panel .patent-data-table,
  .table-panel .project-results-table,
  .table-panel .teaching-results-table,
  .table-panel .course-data-table,
  .table-panel .training-data-table,
  .table-panel .award-data-table { width: 100%; min-width: 0; }
  .table-panel .data-table th { height: 45px; padding: 5px 6px; line-height: 1.25; white-space: normal; }
  .table-panel .data-table td { min-width: 0; padding: 8px 6px; overflow: hidden; }
  .table-panel .col-check { width: 32px; }
  .table-panel .col-action { width: 38px; }
  .table-panel .col-title,
  .table-panel .col-person { min-width: 0; }
  .table-panel .col-year,
  .table-panel .teaching-col-year { width: 54px; }
  .table-panel .col-files,
  .table-panel .student-col-files,
  .table-panel .project-col-files,
  .table-panel .teaching-col-files { width: 70px; }
  .table-panel .col-updated { display: table-cell; width: 76px; }
  .table-panel .paper-data-table th:nth-child(2),
  .table-panel .paper-data-table td:nth-child(2),
  .table-panel .patent-data-table th:nth-child(2),
  .table-panel .patent-data-table td:nth-child(2) { width: 24%; }
  .table-panel .paper-data-table .col-paper-unit { width: 11%; }
  .table-panel .paper-data-table .col-paper-identity { width: 7%; }
  .table-panel .paper-data-table .col-paper-type { width: 7%; }
  .table-panel .paper-data-table .col-paper-category { width: 11%; }
  .table-panel .patent-data-table .col-person { width: 9%; }
  .table-panel .patent-data-table .col-patent-type { width: 11%; }
  .table-panel .patent-data-table .col-patent-stage { width: 8%; }
  .table-panel .patent-data-table .col-patent-transfer { width: 10%; }
  .table-panel .influence-data-table th:nth-child(2),
  .table-panel .influence-data-table td:nth-child(2) { width: 29%; }
  .table-panel .academic-data-table th:nth-child(2),
  .table-panel .academic-data-table td:nth-child(2) { width: 24%; }
  .table-panel .influence-data-table .col-person { width: 19%; }
  .table-panel .influence-data-table .col-year { width: 15%; }
  .table-panel .influence-data-table .col-influence-module { width: 12%; }
  .table-panel .academic-data-table .col-person { width: 15%; }
  .table-panel .academic-data-table .col-year { width: 12%; }
  .table-panel .academic-data-table .col-academic-category { width: 10%; }
  .table-panel .academic-data-table .col-academic-level { width: 13%; }
  .table-panel .project-results-table .project-col-title { width: 19%; }
  .table-panel .project-results-table .project-col-owner { width: 6%; }
  .table-panel .project-results-table .project-col-identity { width: 7%; }
  .table-panel .project-results-table .project-col-type { width: 5%; }
  .table-panel .project-results-table .project-col-level { width: 5%; }
  .table-panel .project-results-table .project-col-money,
  .table-panel .project-results-table .project-col-topic-money,
  .table-panel .project-results-table .project-col-received { width: 6%; }
  .table-panel .project-results-table .project-col-source,
  .table-panel .project-results-table .project-col-undertaking { width: 8%; }
  .table-panel .project-results-table .project-col-period { width: 7%; }
  .table-panel .project-results-table .project-col-lifecycle { width: 8%; }
  .table-panel .teaching-results-table .teaching-col-title { width: 24%; }
  .table-panel .teaching-results-table .teaching-col-owner { width: 9%; }
  .table-panel .teaching-results-table .teaching-col-identity { width: 8%; }
  .table-panel .teaching-results-table .teaching-col-level { width: 8%; }
  .table-panel .teaching-results-table .teaching-col-progress { width: 9%; }
  .table-panel .teaching-results-table .teaching-col-status { width: 9%; }
  .table-panel .course-data-table .course-col-title { width: 24%; }
  .table-panel .course-data-table .course-col-level { width: 10%; }
  .table-panel .course-data-table .course-col-term { width: 14%; }
  .table-panel .course-data-table .course-col-students { width: 7%; }
  .table-panel .course-data-table .course-col-hours { width: 10%; }
  .table-panel .course-data-table .course-col-evaluation { width: 11%; }
  .table-panel .training-data-table .student-col-name { width: 14%; }
  .table-panel .training-data-table .student-col-nationality { width: 6%; }
  .table-panel .training-data-table .student-col-category { width: 9%; }
  .table-panel .training-data-table .student-col-cohort { width: 8%; }
  .table-panel .training-data-table .student-col-destination { width: 13%; }
  .table-panel .training-data-table .student-col-current { width: 12%; }
  .table-panel .training-data-table .student-col-awards { width: 15%; }
  .table-panel .external-library-table .col-title { width: 31%; }
  .table-panel .external-library-table .col-person { width: 20%; }
}

@media (max-width: 1100px) {
  .table-panel .data-table-wrap { overflow-x: visible; }
  .table-panel .data-table,
  .table-panel .paper-data-table,
  .table-panel .patent-data-table,
  .table-panel .project-results-table,
  .table-panel .teaching-results-table,
  .table-panel .course-data-table,
  .table-panel .training-data-table,
  .table-panel .award-data-table { width: 100%; min-width: 0; display: block; }
  .table-panel .data-table thead { display: none; }
  .table-panel .data-table tbody { display: grid; }
  .table-panel .data-table tbody tr { position: relative; min-width: 0; padding: 12px 46px 12px 44px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2px 10px; border-bottom: 1px solid var(--line); background: #fff; }
  .table-panel .data-table tbody tr:hover { background: #f8fbff; }
  .table-panel .data-table td { width: auto !important; min-width: 0 !important; height: auto; min-height: 47px; padding: 6px 4px; overflow: visible; border: 0; display: grid; align-content: start; gap: 4px; text-align: left !important; }
  .table-panel .data-table td::before { content: attr(data-label); color: #8a8f94; font-size: 8px; font-weight: 650; line-height: 1.2; }
  .table-panel .data-table td.col-check,
  .table-panel .data-table td.col-action { position: absolute; top: 13px; width: 30px !important; min-height: 30px; padding: 0; place-items: center; }
  .table-panel .data-table td.col-check { left: 10px; }
  .table-panel .data-table td.col-action { right: 10px; }
  .table-panel .data-table td.col-check::before,
  .table-panel .data-table td.col-action::before { display: none; }
  .table-panel .data-table td[data-label="论文名称"],
  .table-panel .data-table td[data-label="专利名称"],
  .table-panel .data-table td[data-label="项目名称"],
  .table-panel .data-table td[data-label="成果名称"],
  .table-panel .data-table td[data-label="奖项名称"],
  .table-panel .data-table td[data-label="学生姓名"],
  .table-panel .data-table td[data-label="成果名称 / 学校单位"] { grid-column: 1 / -1; min-height: 56px; padding-bottom: 9px; border-bottom: 1px solid var(--line-soft); }
  .table-panel .record-title,
  .table-panel .record-meta,
  .table-panel .cell-primary,
  .table-panel .cell-secondary,
  .table-panel .paper-field-badge { overflow: visible; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; }
  .table-panel .record-title { font-size: 11px; line-height: 1.45; }
  .table-panel .record-meta { line-height: 1.4; }
  .table-panel .student-award-summary span { max-width: 100%; white-space: normal; }
  .table-panel .file-state,
  .table-panel .status { white-space: normal; }
  .table-panel .external-library-table .col-action .btn { width: auto; padding-inline: 8px; }
}

@media (max-width: 620px) {
  .table-panel .data-table tbody tr { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3px 9px; }
}

* { box-sizing: border-box; }

html, body { margin: 0; min-height: 100%; background: var(--canvas); }

body {
  color: var(--ink);
  font-family: "Segoe UI", "Microsoft YaHei", "PingFang SC", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  letter-spacing: 0;
  overflow-x: hidden;
}

button, input, select, textarea { font: inherit; color: inherit; }
button { letter-spacing: 0; }
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid rgba(23, 118, 104, 0.35);
  outline-offset: 2px;
}

.icon { width: 17px; height: 17px; stroke-width: 1.9; flex: 0 0 auto; }
.icon-sm { width: 14px; height: 14px; }
.icon-lg { width: 21px; height: 21px; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: var(--sidebar-w) minmax(0, 1fr); }

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--sidebar-w);
  background: var(--sidebar);
  color: #d9e2df;
  display: flex;
  flex-direction: column;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.24) transparent;
  z-index: 20;
}

.sidebar::-webkit-scrollbar { width: 8px; }
.sidebar::-webkit-scrollbar-track { background: transparent; }
.sidebar::-webkit-scrollbar-thumb { border: 2px solid transparent; border-radius: 8px; background: rgba(0, 0, 0, 0.24); background-clip: padding-box; }
.sidebar::-webkit-scrollbar-thumb:hover { background: rgba(0, 0, 0, 0.36); background-clip: padding-box; }

.brand {
  flex: 0 0 auto;
  height: 68px;
  display: flex;
  align-items: center;
  gap: 11px;
  padding: 0 20px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}

.brand-mark {
  width: 34px;
  height: 34px;
  border-radius: 7px;
  background: #f3f7f5;
  color: var(--teal-dark);
  display: grid;
  place-items: center;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.38);
}

.brand-name { color: #fff; font-weight: 700; font-size: 17px; line-height: 1.1; }
.brand-sub { color: #8fa19b; font-size: 10px; margin-top: 3px; }
.sidebar-section { flex: 0 0 auto; min-height: auto; padding: 19px 12px 0; overflow: visible; }
.sidebar-label { padding: 0 10px 8px; color: #71847d; font-size: 11px; font-weight: 700; }
.nav-list { display: grid; gap: 3px; }

.nav-item {
  width: 100%;
  height: 39px;
  border: 0;
  border-radius: 6px;
  padding: 0 11px;
  display: flex;
  align-items: center;
  gap: 11px;
  background: transparent;
  color: #afbeb9;
  cursor: pointer;
  text-align: left;
  transition: .16s ease;
}
.nav-item:hover { background: rgba(255,255,255,.06); color: #fff; }
.nav-item.active { background: var(--teal); color: #fff; box-shadow: 0 6px 18px rgba(0,0,0,.12); }
.nav-item .nav-count { margin-left: auto; min-width: 22px; color: #83968f; font-size: 11px; text-align: right; }
.nav-item.active .nav-count { color: rgba(255,255,255,.8); }
.nav-divider { height: 1px; background: rgba(255,255,255,.06); margin: 9px 10px; }

.sidebar-footer { flex: 0 0 auto; margin-top: auto; padding: 14px 14px 18px; }
.storage-card { border: 1px solid rgba(255,255,255,.09); background: rgba(255,255,255,.035); border-radius: 7px; padding: 12px; }
.storage-head { display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: #aebcb7; }
.storage-value { color: #e9efed; font-variant-numeric: tabular-nums; }
.storage-track { height: 4px; margin: 9px 0 7px; border-radius: 3px; background: rgba(255,255,255,.09); overflow: hidden; }
.storage-fill { width: 18%; height: 100%; background: #60b3a3; }
.storage-caption { color: #6f847c; font-size: 10px; }

.main-shell { grid-column: 2; min-width: 0; }
.topbar {
  height: 68px;
  position: sticky;
  top: 0;
  z-index: 15;
  background: rgba(255,255,255,.94);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  padding: 0 30px;
  gap: 20px;
}

.icon-button.mobile-menu { display: none; }
.global-search { position: relative; width: min(480px, 42vw); }
.global-search .icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: #87938f; }
.global-search input {
  width: 100%; height: 38px; border: 1px solid #dce3e0; border-radius: 6px; background: #f6f8f7;
  padding: 0 88px 0 37px; transition: .18s ease;
}
.global-search input:focus { background: #fff; border-color: #8cbbb2; box-shadow: 0 0 0 3px rgba(23,118,104,.07); }
.topbar-workbench-title { display: flex; align-items: center; gap: 10px; color: #365a53; }
.topbar-workbench-title > div { display: grid; gap: 1px; }
.topbar-workbench-title strong { color: #2e3936; font-size: 12px; }
.topbar-workbench-title span { color: #89938f; font-size: 8px; }
.search-key { position: absolute; right: 9px; top: 50%; transform: translateY(-50%); border: 1px solid #d9dfdc; border-bottom-width: 2px; border-radius: 4px; color: #8a9692; padding: 1px 6px; font-size: 10px; background: #fff; }
.topbar-spacer { flex: 1; }
.icon-button {
  width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 6px;
  background: #fff; color: #586661; cursor: pointer; position: relative; transition: .16s ease;
}
.icon-button:hover { border-color: #b9c9c4; color: var(--teal); background: #f8fbfa; }
.notification-dot { position: absolute; right: 8px; top: 7px; width: 6px; height: 6px; border-radius: 50%; background: var(--coral); border: 1px solid #fff; }
.profile { display: flex; align-items: center; gap: 9px; padding-left: 5px; }
.avatar { width: 34px; height: 34px; border-radius: 6px; display: grid; place-items: center; background: #dcece8; color: var(--teal-dark); font-weight: 700; }
.profile-name { font-size: 13px; font-weight: 650; }
.profile-role { font-size: 10px; color: var(--muted); }
.profile-button { border: 0; background: transparent; cursor: pointer; text-align: left; }
.profile-button:hover .profile-name { color: var(--teal); }
.nav-alert-dot { width: 7px; height: 7px; margin-left: auto; border-radius: 50%; background: #f2a94a; box-shadow: 0 0 0 3px rgba(242,169,74,.13); }

.main-content { padding: 26px 30px 42px; max-width: 1600px; margin: 0 auto; }
.page-head { display: flex; align-items: flex-end; gap: 20px; margin-bottom: 22px; }
.page-title { margin: 0; font-size: 24px; line-height: 1.25; font-weight: 720; }
.page-subtitle { margin: 5px 0 0; color: var(--muted); font-size: 12px; }
.page-actions { margin-left: auto; display: flex; gap: 8px; }

.btn {
  min-height: 37px; border-radius: 6px; padding: 0 14px; border: 1px solid var(--line); background: #fff;
  display: inline-flex; align-items: center; justify-content: center; gap: 7px; font-weight: 620; font-size: 13px; cursor: pointer;
  transition: .16s ease; white-space: nowrap;
}
.btn:hover { border-color: #b8c8c3; background: #f8faf9; }
.btn-primary { background: var(--teal); border-color: var(--teal); color: #fff; box-shadow: 0 4px 12px rgba(23,118,104,.18); }
.btn-primary:hover { background: var(--teal-dark); border-color: var(--teal-dark); }
.btn-subtle { background: #f3f7f5; border-color: #dbe7e3; color: var(--teal-dark); }
.btn-danger { color: var(--danger); background: #fff; }
.btn-danger:hover { background: var(--danger-soft); border-color: #e6bebe; }
.btn:disabled { opacity: .48; cursor: not-allowed; box-shadow: none; }
.btn-sm { min-height: 32px; padding: 0 10px; font-size: 12px; }

.metrics-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 13px; margin-bottom: 14px; }
.metric-card { min-height: 112px; padding: 17px 18px; background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.metric-top { display: flex; justify-content: space-between; align-items: center; color: var(--muted); font-size: 12px; }
.metric-icon { width: 32px; height: 32px; border-radius: 6px; display: grid; place-items: center; }
.metric-icon.teal { background: var(--teal-soft); color: var(--teal); }
.metric-icon.blue { background: var(--blue-soft); color: var(--blue); }
.metric-icon.coral { background: var(--coral-soft); color: var(--coral); }
.metric-icon.gold { background: var(--gold-soft); color: var(--gold); }
.metric-value { display: flex; align-items: baseline; gap: 7px; margin-top: 7px; }
.metric-number { font-size: 27px; line-height: 1.15; font-weight: 740; font-variant-numeric: tabular-nums; }
.metric-unit { color: var(--muted); font-size: 11px; }
.metric-foot { margin-top: 4px; color: var(--muted); font-size: 10px; }
.trend-up { color: var(--teal); font-weight: 700; }
.trend-warn { color: var(--coral); font-weight: 700; }

.analytics-grid { display: grid; grid-template-columns: minmax(0,1.7fr) minmax(260px,.8fr); align-items: start; gap: 13px; margin-bottom: 14px; }
.panel { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow-sm); }
.panel-head { min-height: 52px; padding: 0 17px; border-bottom: 1px solid var(--line-soft); display: flex; align-items: center; gap: 12px; }
.panel-title { font-size: 14px; font-weight: 680; }
.panel-caption { color: var(--muted); font-size: 11px; margin-left: 2px; }
.panel-action { margin-left: auto; }
.panel-actions { margin-left: auto; display: flex; align-items: center; gap: 7px; }

.trend-chart { height: 214px; padding: 20px 20px 14px 48px; position: relative; }
.chart-grid { position: absolute; inset: 20px 20px 36px 48px; display: flex; flex-direction: column; justify-content: space-between; pointer-events: none; }
.chart-grid-line { border-top: 1px dashed #e7ebe9; position: relative; }
.chart-grid-line span { position: absolute; right: calc(100% + 8px); top: -8px; color: #9aa4a1; font-size: 9px; }
.bars { position: relative; z-index: 2; height: 100%; display: flex; align-items: flex-end; justify-content: space-around; gap: 18px; }
.bar-group { height: 100%; flex: 1; display: flex; align-items: flex-end; justify-content: center; gap: 4px; position: relative; padding-bottom: 22px; }
.bar { width: min(22px, 32%); min-height: 3px; border-radius: 3px 3px 1px 1px; position: relative; cursor: default; transition: filter .15s ease; }
.bar:hover { filter: brightness(.92); }
.bar.primary { background: #57a99a; }
.bar.secondary { background: #d9e8e4; }
.bar.total { width: min(34px, 42%); background: #2789dc; }
.bar-value { position: absolute; bottom: calc(100% + 3px); left: 50%; transform: translateX(-50%); font-size: 9px; color: #687571; opacity: 0; transition: .15s ease; }
.bar:hover .bar-value { opacity: 1; }
.bar-value.always { opacity: 1; color: #28638f; font-weight: 700; }
.bar-label { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); color: #788580; font-size: 10px; }
.chart-legend { position: absolute; right: 18px; top: 9px; z-index: 4; display: flex; gap: 13px; color: var(--muted); font-size: 10px; }
.legend-dot { width: 7px; height: 7px; border-radius: 2px; display: inline-block; margin-right: 4px; }
.legend-series { min-height: 25px; padding: 0 6px; display: inline-flex; align-items: center; border: 0; border-radius: 5px; background: transparent; color: #737d82; font: inherit; cursor: pointer; }
.legend-series:hover, .legend-series.active { color: #253640; background: #f0f4f6; }
.legend-dot.paper { background: #2f8f7d; }.legend-dot.patent { background: #df765a; }.legend-dot.project { background: #4a78a8; }
.bar-cluster { width: 100%; height: 100%; display: flex; align-items: flex-end; justify-content: center; gap: 5px; }
.bar-cluster .bar { width: min(19px,27%); padding: 0; border: 0; cursor: pointer; }
.bar.series-paper { background: #2f8f7d; }.bar.series-patent { background: #df765a; }.bar.series-project { background: #4a78a8; }
.bar.selected { outline: 2px solid #1d1d1f; outline-offset: 2px; filter: none; }
.bar.series-paper .bar-value { color: #236b60; }.bar.series-patent .bar-value { color: #a64f3a; }.bar.series-project .bar-value { color: #355f88; }
.trend-panel { overflow: hidden; }
.year-detail-wrap { overflow-x: auto; border-top: 1px solid var(--line-soft); }
.year-detail-table { width: 100%; min-width: 640px; border-collapse: collapse; table-layout: fixed; }
.year-detail-table th, .year-detail-table td { min-height: 48px; padding: 9px 8px; border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); text-align: center; vertical-align: middle; }
.year-detail-table th:last-child, .year-detail-table td:last-child { border-right: 0; }
.year-detail-table tr:last-child th, .year-detail-table tr:last-child td { border-bottom: 0; }
.year-detail-table thead th { height: 34px; padding-block: 6px; background: #f7f9fa; color: #7a8388; font-size: 9px; font-weight: 650; }
.year-detail-table th:first-child { width: 118px; position: sticky; left: 0; z-index: 2; text-align: left; background: #fff; }
.year-detail-table thead th:first-child { z-index: 3; background: #f7f9fa; }
.year-detail-table tbody th { color: #3f4b50; font-size: 10px; font-weight: 680; }
.year-detail-table td strong { display: block; color: #25292c; font-size: 13px; font-variant-numeric: tabular-nums; }
.year-detail-table td small { display: block; margin-top: 3px; color: #7e888d; font-size: 8px; line-height: 1.35; white-space: nowrap; }
.year-total-row th, .year-total-row td { background: #f5faff; }
.year-total-row th:first-child { background: #f5faff; }
.detail-type-dot { width: 7px; height: 7px; margin-right: 6px; display: inline-block; border-radius: 2px; vertical-align: 0; }
.detail-type-dot.paper { background: #2f8f7d; }
.detail-type-dot.patent { background: #df765a; }
.detail-type-dot.project { background: #4a78a8; }
.detail-type-dot.activity { background: #477466; }
.analytics-side { min-width: 0; display: grid; align-content: start; gap: 13px; }
.analytics-focus-panel { min-height: 288px; overflow: hidden; }
.analytics-focus-selector { margin: 14px 15px 0; padding: 3px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3px; border-radius: 7px; background: #eff1f3; }
.analytics-focus-selector button { min-height: 31px; padding: 0 7px; border: 0; border-radius: 5px; background: transparent; color: #747b80; font-size: 9px; font-weight: 650; cursor: pointer; }
.analytics-focus-selector button.active { color: #243b50; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.1); }
.analytics-project-identity { margin: 9px 15px 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); border: 1px solid #e1e6e4; border-radius: 6px; overflow: hidden; background: #fff; }
.analytics-project-identity button { min-width: 0; min-height: 38px; padding: 5px 8px; border: 0; border-right: 1px solid #e7ebe9; display: flex; align-items: center; justify-content: center; gap: 6px; color: #6c7773; background: transparent; font: inherit; cursor: pointer; }
.analytics-project-identity button:last-child { border-right: 0; }
.analytics-project-identity button.active { color: #245f55; background: #edf6f3; }
.analytics-project-identity span { overflow: hidden; font-size: 8px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.analytics-project-identity strong { min-width: 18px; padding: 1px 5px; border-radius: 8px; color: inherit; background: rgba(255,255,255,.82); font-size: 8px; line-height: 1.5; font-variant-numeric: tabular-nums; }
.analytics-focus-metrics { padding: 14px 15px 12px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.analytics-focus-metrics.two { grid-template-columns: repeat(2,minmax(0,1fr)); }
.analytics-focus-metrics > div { min-height: 94px; padding: 12px 10px; display: grid; align-content: center; justify-items: center; border: 1px solid #e4e7e9; border-radius: 7px; background: #fbfcfc; text-align: center; }
.analytics-focus-metrics span { min-height: 26px; color: #71797e; font-size: 8px; line-height: 1.35; }
.analytics-focus-metrics strong { max-width: 100%; overflow: hidden; color: #27323a; font-size: 21px; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.analytics-focus-metrics small { margin-top: 3px; color: #8b9296; font-size: 7px; }
.project-sync-state { min-height: 42px; margin: 0 15px 14px; padding: 0 7px 0 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 1px solid #e0e5e7; border-radius: 7px; background: #f8fafb; }
.project-sync-state > span { min-width: 0; display: inline-flex; align-items: center; gap: 6px; overflow: hidden; color: #6f7a80; font-size: 7.5px; text-overflow: ellipsis; white-space: nowrap; }
.project-sync-state.connected > span { color: #176a5c; }
.project-sync-state > div { display: flex; gap: 3px; }
.project-sync-state .icon-button { width: 27px; height: 27px; }
.snapshot-list { padding: 4px 17px 10px; }
.snapshot-item { min-height: 58px; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 3px 10px; border-bottom: 1px solid var(--line-soft); }
.snapshot-item:last-child { border-bottom: 0; }
.snapshot-item > span { color: #46535a; font-size: 10px; font-weight: 680; }
.snapshot-item > strong { color: #25292c; font-size: 17px; font-variant-numeric: tabular-nums; }
.snapshot-item > small { grid-column: 1/-1; color: #7e888d; font-size: 8px; }

.distribution { min-height: 214px; padding: 18px; display: grid; grid-template-columns: 132px minmax(100px,1fr); align-items: center; gap: 18px; }
.donut { width: 126px; height: 126px; border-radius: 50%; position: relative; display: grid; place-items: center; }
.donut::after { content: ""; position: absolute; inset: 18px; border-radius: 50%; background: #fff; }
.donut-center { position: relative; z-index: 1; text-align: center; }
.donut-number { font-weight: 740; font-size: 22px; line-height: 1.1; }
.donut-label { color: var(--muted); font-size: 9px; margin-top: 3px; }
.distribution-list { display: grid; gap: 10px; }
.distribution-item { display: grid; grid-template-columns: 9px 1fr auto; align-items: center; gap: 7px; font-size: 11px; }
.distribution-color { width: 8px; height: 8px; border-radius: 2px; }
.distribution-name { color: #596762; }
.distribution-value { font-variant-numeric: tabular-nums; font-weight: 650; }

.table-panel { overflow: hidden; }
.influence-module-nav { margin: -5px 0 16px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; }
.influence-module-card { min-width: 0; min-height: 78px; padding: 12px; border: 1px solid rgba(0,0,0,.09); border-radius: 8px; display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 9px; color: #4e5559; background: rgba(255,255,255,.92); text-align: left; cursor: pointer; transition: border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
.influence-module-card:hover { border-color: rgba(0,0,0,.17); box-shadow: 0 5px 16px rgba(30,36,40,.07); transform: translateY(-1px); }
.influence-module-card.active { border-color: #16838c; box-shadow: 0 0 0 1px rgba(22,131,140,.12), 0 5px 18px rgba(25,70,75,.08); }
.influence-module-icon { width: 30px; height: 30px; border-radius: 7px; display: grid; place-items: center; color: #4b5960; background: #edf0f1; }
.influence-module-icon svg { width: 15px; height: 15px; }
.influence-module-card[data-module="application"] .influence-module-icon { color: #167653; background: #e9f6f0; }
.influence-module-card[data-module="outreach"] .influence-module-icon { color: #a65c20; background: #fbf0e6; }
.influence-module-card[data-module="other"] .influence-module-icon { color: #67558c; background: #f0edf7; }
.influence-module-copy { min-width: 0; display: grid; gap: 3px; }
.influence-module-copy strong { overflow: hidden; color: #2b2d30; font-size: 11px; font-weight: 680; text-overflow: ellipsis; white-space: nowrap; }
.influence-module-copy small { overflow: hidden; color: #85878c; font-size: 8px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.influence-module-count { align-self: start; min-width: 22px; color: #64676b; font-size: 15px; font-weight: 680; text-align: right; font-variant-numeric: tabular-nums; }
.external-library-page { min-width: 0; }
.external-summary-grid { margin-bottom: 12px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.external-summary-grid section { min-width: 0; min-height: 78px; padding: 13px 15px; border: 1px solid rgba(0,0,0,.08); border-radius: 8px; display: flex; align-items: center; gap: 11px; background: rgba(255,255,255,.9); }
.external-summary-grid section > div { min-width: 0; display: grid; gap: 1px; }
.external-summary-grid strong { color: #232629; font-size: 21px; line-height: 1.1; font-weight: 690; font-variant-numeric: tabular-nums; }
.external-summary-grid small { color: #7c8185; font-size: 9px; }
.external-summary-icon { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 8px; display: grid; place-items: center; }
.external-summary-icon svg { width: 16px; height: 16px; }
.external-summary-icon.approved { color: #14765a; background: #e8f5ef; }
.external-summary-icon.pending { color: #2c67a3; background: #eaf2fa; }
.external-summary-icon.warning { color: #ad6326; background: #fbefe4; }
.external-summary-icon.files { color: #69558e; background: #f0edf7; }
.external-folder-drop { min-height: 66px; margin-bottom: 13px; padding: 10px 14px; border: 1px dashed #b8c5c9; border-radius: 8px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 10px; color: #4d5a5f; background: rgba(249,251,251,.85); cursor: pointer; transition: border-color .16s ease, background .16s ease; }
.external-folder-drop:hover, .external-folder-drop.dragging { border-color: #16838c; background: #f0f8f8; }
.external-folder-drop > span { width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; color: #146f78; background: #e5f3f4; }
.external-folder-drop > span svg { width: 17px; height: 17px; }
.external-folder-drop > div { min-width: 0; display: grid; gap: 3px; }
.external-folder-drop strong { color: #303538; font-size: 11px; font-weight: 660; }
.external-folder-drop small { overflow: hidden; color: #858b8f; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.external-import-progress { margin-bottom: 12px; padding: 12px 14px; border: 1px solid #c9dfe0; border-radius: 8px; background: #f2f9f9; }
.external-import-progress > div:first-child { display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 9px; }
.external-import-progress > div:first-child > span { width: 28px; height: 28px; border-radius: 7px; display: grid; place-items: center; color: #16747b; background: #dff0f1; }
.external-import-progress > div:first-child > div { min-width: 0; display: grid; gap: 2px; }
.external-import-progress strong { overflow: hidden; color: #325158; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.external-import-progress small { color: #74898d; font-size: 8px; }
.external-import-progress b { color: #16747b; font-size: 11px; font-variant-numeric: tabular-nums; }
.external-import-progress .smart-progress { width: 100%; margin-top: 9px; }
.external-library-panel { min-width: 0; }
.external-library-toolbar { min-height: 60px; padding: 11px 16px; border-bottom: 1px solid var(--line-soft); display: flex; align-items: center; gap: 9px; }
.external-library-toolbar .tab-button span { margin-left: 4px; color: #8b8e91; font-variant-numeric: tabular-nums; }
.external-library-table .col-title { width: 34%; }
.external-library-table .col-person { width: 20%; }
.external-library-table .col-action { width: 90px; }
.external-library-row.needs-supplement { background: rgba(255,248,240,.45); }
.external-review-dot { width: 8px; height: 8px; margin: 0 auto; border-radius: 50%; display: block; }
.external-review-dot.ready { background: #42a77f; box-shadow: 0 0 0 3px #e8f5ef; }
.external-review-dot.warning { background: #d98236; box-shadow: 0 0 0 3px #fbefe4; }
.external-review-status { width: max-content; min-height: 25px; padding: 0 8px; border-radius: 6px; display: inline-flex; align-items: center; gap: 5px; font-size: 9px; font-weight: 650; }
.external-review-status svg { width: 12px; height: 12px; }
.external-review-status.approved { color: #147353; background: #e8f5ef; }
.external-review-status.pending { color: #2a669f; background: #eaf2fa; }
.external-review-status.supplement { color: #a65c20; background: #fbefe4; }
.external-type-unknown { color: #785b33; background: #f7efe3; }
.external-review-banner { min-height: 62px; margin-bottom: 16px; padding: 11px 13px; border: 1px solid #d6dedf; border-radius: 8px; display: flex; align-items: center; gap: 10px; background: #f7f9f9; }
.external-review-banner > span { width: 34px; height: 34px; flex: 0 0 34px; border-radius: 8px; display: grid; place-items: center; }
.external-review-banner > span svg { width: 17px; height: 17px; }
.external-review-banner > div { min-width: 0; display: grid; gap: 3px; }
.external-review-banner strong { color: #303538; font-size: 11px; font-weight: 670; }
.external-review-banner small { color: #7e8589; font-size: 9px; }
.external-review-banner.approved { border-color: #cce7da; background: #f1f9f5; }
.external-review-banner.approved > span { color: #147353; background: #dff1e8; }
.external-review-banner.ready { border-color: #cadfea; background: #f2f7fb; }
.external-review-banner.ready > span { color: #2a669f; background: #e2eef7; }
.external-review-banner.warning { border-color: #ecd8c3; background: #fcf7f1; }
.external-review-banner.warning > span { color: #a65c20; background: #f6e8d9; }
.external-review-no-files { min-height: 45px; margin-top: 9px; padding: 0 12px; border: 1px dashed #d2d7d8; border-radius: 7px; display: flex; align-items: center; gap: 7px; color: #8a8e91; font-size: 9px; }
.external-source-section p { margin: 0; padding: 11px 12px; border-radius: 7px; color: #646c70; background: #f4f6f6; font-size: 9px; line-height: 1.65; }
.table-toolbar { min-height: 58px; padding: 10px 15px; border-bottom: 1px solid var(--line-soft); display: flex; align-items: center; gap: 9px; }
.toolbar-tabs { display: inline-flex; align-items: center; background: #f2f5f4; border-radius: 6px; padding: 3px; }
.tab-button { height: 29px; padding: 0 11px; border: 0; border-radius: 4px; background: transparent; color: var(--muted); font-size: 11px; cursor: pointer; }
.tab-button.active { background: #fff; color: var(--ink); box-shadow: 0 1px 4px rgba(25,43,37,.09); font-weight: 650; }
.dashboard-latest-toolbar { min-width: 0; overflow: hidden; }
.dashboard-latest-tabs { width: 100%; min-width: 0; overflow-x: auto; overflow-y: hidden; scrollbar-width: thin; scrollbar-color: #c8cecc transparent; }
.dashboard-latest-tabs .dashboard-latest-tab { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; }
.dashboard-latest-count { min-width: 18px; height: 18px; padding: 0 5px; border-radius: 9px; display: inline-grid; place-items: center; color: #747b79; background: rgba(0,0,0,.055); font-size: 9px; font-variant-numeric: tabular-nums; }
.dashboard-latest-tab.active .dashboard-latest-count { color: #176a5c; background: #e6f3ef; }
.toolbar-spacer { flex: 1; }
.filter-select { height: 33px; border: 1px solid var(--line); border-radius: 5px; background: #fff; padding: 0 28px 0 9px; font-size: 11px; color: #56635f; }
.selection-bar { min-height: 44px; padding: 0 16px; display: flex; align-items: center; gap: 10px; background: #edf6f3; border-bottom: 1px solid #d7e9e3; color: var(--teal-dark); font-size: 12px; }
.selection-copy { color: #54766e; font-size: 10px; }

.record-merge-modal { width: min(980px,100%); }
.record-merge-modal .modal-body { display: grid; gap: 18px; background: #fbfbfd; }
.record-merge-section { padding: 0; }
.record-merge-section + .record-merge-section { padding-top: 18px; border-top: 1px solid rgba(0,0,0,.075); }
.record-merge-section-head { margin-bottom: 10px; display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.record-merge-section-head > div { min-width: 0; display: grid; gap: 3px; }
.record-merge-section-head strong { color: #252527; font-size: 12px; }
.record-merge-section-head span { color: #7a7a80; font-size: 9px; line-height: 1.5; }
.record-merge-count { flex: 0 0 auto; min-height: 25px; padding: 0 8px; border-radius: 6px; display: inline-flex; align-items: center; color: #35645a; background: #eaf5f1; font-size: 9px; font-weight: 680; }
.record-merge-count.warning { color: #8d5a13; background: #fff2dc; }
.record-merge-count.ready { color: #075ca9; background: #eaf4ff; }
.record-merge-counts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.record-merge-count.combined { color: #176a5c; background: #e7f5ef; }
.record-merge-canonical-list { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
.record-merge-canonical { min-width: 0; min-height: 66px; padding: 10px 11px; border: 1px solid rgba(0,0,0,.1); border-radius: 8px; display: grid; grid-template-columns: 16px minmax(0,1fr) auto; align-items: center; gap: 9px; background: #fff; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease, background .15s ease; }
.record-merge-canonical:hover { border-color: rgba(0,113,227,.32); }
.record-merge-canonical.selected { border-color: rgba(0,113,227,.55); background: #f5faff; box-shadow: 0 0 0 3px rgba(0,113,227,.07); }
.record-merge-canonical input { margin: 0; accent-color: #0071e3; }
.record-merge-canonical > span { min-width: 0; display: grid; gap: 5px; }
.record-merge-canonical strong { overflow: hidden; color: #29292c; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.record-merge-canonical small { overflow: hidden; color: #85858a; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.record-merge-canonical b { color: #6f7478; font-size: 8px; font-weight: 650; white-space: nowrap; }
.record-merge-canonical.selected b { color: #0066cc; }
.record-merge-conflicts { display: grid; gap: 8px; }
.record-merge-conflict { padding: 10px; border: 1px solid rgba(0,0,0,.075); border-radius: 8px; display: grid; grid-template-columns: 116px minmax(0,1fr); gap: 10px; background: #fff; }
.record-merge-conflict-label { padding-top: 9px; color: #4b4b50; font-size: 9px; font-weight: 680; }
.record-merge-conflict-review { min-width: 0; display: grid; gap: 8px; }
.record-merge-conflict-options { min-width: 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; }
.record-merge-field-option { min-width: 0; min-height: 55px; padding: 8px; border: 1px solid rgba(0,0,0,.085); border-radius: 7px; display: grid; grid-template-columns: 14px minmax(0,1fr); align-items: start; gap: 7px; background: #fcfcfd; cursor: pointer; }
.record-merge-field-option.selected { border-color: rgba(0,113,227,.48); background: #f2f8ff; }
.record-merge-field-option.combined { border-color: rgba(23,106,92,.22); background: #f2f9f6; cursor: default; }
.record-merge-field-option.combined > i { width: 14px; height: 14px; margin-top: 2px; display: grid; place-items: center; color: #176a5c; font-style: normal; }
.record-merge-field-option input { margin: 3px 0 0; accent-color: #0071e3; }
.record-merge-field-option > span { min-width: 0; display: grid; gap: 4px; }
.record-merge-field-option small { overflow: hidden; color: #88888e; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.record-merge-field-option strong { overflow: hidden; color: #303034; font-size: 9px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.record-merge-field-editor { min-width: 0; padding: 8px; border: 1px dashed rgba(0,0,0,.14); border-radius: 7px; display: grid; grid-template-columns: 110px minmax(0,1fr); align-items: center; gap: 8px; background: #fafbfc; }
.record-merge-field-editor.edited { border-style: solid; border-color: rgba(0,113,227,.46); background: #f3f8ff; }
.record-merge-field-editor.combined:not(.edited) { border-color: rgba(23,106,92,.28); background: #f4faf7; }
.record-merge-field-editor > span { min-width: 0; display: grid; gap: 2px; }
.record-merge-field-editor strong { color: #343438; font-size: 9px; }
.record-merge-field-editor small { color: #818187; font-size: 7px; }
.record-merge-field-editor input, .record-merge-field-editor textarea { width: 100%; min-width: 0; border: 1px solid rgba(0,0,0,.13); border-radius: 5px; background: #fff; color: #26262a; font: inherit; font-size: 9px; outline: none; }
.record-merge-field-editor input { height: 31px; padding: 0 8px; }
.record-merge-field-editor textarea { min-height: 52px; padding: 7px 8px; line-height: 1.45; resize: vertical; }
.record-merge-field-editor input:focus, .record-merge-field-editor textarea:focus { border-color: rgba(0,113,227,.58); box-shadow: 0 0 0 3px rgba(0,113,227,.08); }
.record-merge-field-editor.unavailable { display: flex; color: #797980; font-size: 8px; }
.record-merge-no-conflict, .record-merge-auto-fill, .record-merge-no-files { min-height: 38px; padding: 8px 10px; border-radius: 7px; display: flex; align-items: center; gap: 7px; color: #37645b; background: #edf7f3; font-size: 9px; }
.record-merge-auto-fill { margin-top: 8px; color: #075ca9; background: #eef6ff; }
.record-merge-no-files { color: #7d7d82; background: #f1f1f3; }
.record-merge-files { border: 1px solid rgba(0,0,0,.075); border-radius: 8px; overflow: hidden; background: #fff; }
.record-merge-files > div { min-height: 43px; padding: 7px 10px; border-bottom: 1px solid rgba(0,0,0,.055); display: grid; grid-template-columns: 26px minmax(0,1fr) auto; align-items: center; gap: 8px; }
.record-merge-files > div:last-child { border-bottom: 0; }
.record-merge-files > div > span { width: 26px; height: 26px; border-radius: 6px; display: grid; place-items: center; color: #397665; background: #edf6f2; }
.record-merge-files p { min-width: 0; margin: 0; display: grid; gap: 2px; }
.record-merge-files p strong { overflow: hidden; color: #353539; font-size: 8.5px; text-overflow: ellipsis; white-space: nowrap; }
.record-merge-files p small { overflow: hidden; color: #8a8a90; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.record-merge-files > div > b { color: #8a8a90; font-size: 7px; font-weight: 550; }
.record-merge-files .record-merge-files-more { display: block; min-height: 34px; color: #717176; background: #fafafa; font-size: 8px; text-align: center; }
.record-merge-activity-covers { display: grid; grid-template-columns: repeat(auto-fill,minmax(145px,1fr)); gap: 8px; }
.record-merge-activity-cover { min-width: 0; overflow: hidden; position: relative; border: 1px solid rgba(0,0,0,.1); border-radius: 8px; display: grid; background: #fff; cursor: pointer; transition: border-color .15s ease, box-shadow .15s ease; }
.record-merge-activity-cover:hover { border-color: rgba(0,113,227,.32); }
.record-merge-activity-cover.selected { border-color: rgba(0,113,227,.62); box-shadow: 0 0 0 3px rgba(0,113,227,.08); }
.record-merge-activity-cover > input { position: absolute; opacity: 0; pointer-events: none; }
.record-merge-activity-cover-image { aspect-ratio: 16 / 10; position: relative; overflow: hidden; display: block; background: #eef1f0; }
.record-merge-activity-cover-image img { width: 100%; height: 100%; display: block; object-fit: cover; }
.record-merge-activity-cover-image > b { position: absolute; left: 6px; bottom: 6px; min-height: 22px; padding: 0 7px; border-radius: 5px; display: inline-flex; align-items: center; gap: 4px; color: #fff; background: rgba(0,85,170,.9); font-size: 7px; font-weight: 680; }
.record-merge-activity-cover-copy { min-width: 0; padding: 8px; display: grid; gap: 3px; }
.record-merge-activity-cover-copy strong, .record-merge-activity-cover-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.record-merge-activity-cover-copy strong { color: #333337; font-size: 8.5px; }
.record-merge-activity-cover-copy small { color: #85858a; font-size: 7px; }
.record-merge-award-summary { min-height: 56px; padding: 10px 12px; border: 1px solid rgba(0,113,227,.13); border-radius: 8px; display: grid; grid-template-columns: 28px minmax(0,1fr); align-items: center; gap: 9px; background: #f5f9fd; }
.record-merge-award-summary > span { width: 28px; height: 28px; border-radius: 6px; display: grid; place-items: center; color: #075ca9; background: #e6f2ff; }
.record-merge-award-summary p { min-width: 0; margin: 0; display: grid; gap: 3px; }
.record-merge-award-summary strong { color: #2d3b48; font-size: 10px; }
.record-merge-award-summary small { color: #78838c; font-size: 8px; line-height: 1.45; }
.record-merge-award-entries { display: grid; gap: 8px; }
.record-merge-award-entry { min-width: 0; padding: 9px; border: 1px solid rgba(0,0,0,.08); border-radius: 8px; display: grid; grid-template-columns: 24px repeat(3,minmax(150px,1fr)); align-items: end; gap: 7px; background: #fff; }
.record-merge-award-entry > b { width: 22px; height: 22px; margin-bottom: 5px; border-radius: 5px; display: grid; grid-row: 1 / span 3; place-items: center; color: #075ca9; background: #eaf4ff; font-size: 8px; }
.record-merge-award-entry label { min-width: 0; display: grid; gap: 4px; }
.record-merge-award-entry label span { color: #77777d; font-size: 7px; }
.record-merge-award-entry input { width: 100%; min-width: 0; height: 31px; padding: 0 7px; border: 1px solid rgba(0,0,0,.13); border-radius: 5px; background: #fff; color: #29292d; font: inherit; font-size: 8.5px; outline: none; }
.record-merge-award-entry input:focus { border-color: rgba(0,113,227,.58); box-shadow: 0 0 0 3px rgba(0,113,227,.08); }
.record-merge-safety { min-height: 42px; padding: 9px 11px; border: 1px solid rgba(0,113,227,.12); border-radius: 7px; display: flex; align-items: center; gap: 7px; color: #5e6870; background: #f4f8fc; font-size: 8.5px; line-height: 1.5; }
.record-merge-safety strong { margin-left: auto; color: var(--danger); }

@media (max-width: 760px) {
  .record-merge-canonical-list, .record-merge-conflict-options { grid-template-columns: 1fr; }
  .record-merge-conflict { grid-template-columns: 1fr; }
  .record-merge-conflict-label { padding-top: 0; }
  .record-merge-field-editor { grid-template-columns: 1fr; }
  .record-merge-award-entry { grid-template-columns: 22px minmax(0,1fr); }
  .record-merge-award-entry > b { grid-row: 1 / span 7; }
  .record-merge-award-entry label { grid-column: 2; }
  .record-merge-activity-covers { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .record-merge-safety { align-items: flex-start; flex-wrap: wrap; }
}

/* Smart form workbench */
.smart-form-page {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 16px;
}

.smart-form-heading {
  display: flex;
  min-width: 0;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  padding: 2px 0 4px;
}

.smart-form-heading > div:first-child { min-width: 0; }
.smart-form-heading h1 { margin: 4px 0 0; color: var(--ink); font-size: 30px; font-weight: 650; letter-spacing: 0; }
.smart-form-heading p { margin: 6px 0 0; color: var(--muted); font-size: 13px; }
.smart-form-heading-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 7px; }

.smart-form-local-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  border: 1px solid #cfe2dc;
  border-radius: var(--radius);
  background: #f2f8f6;
  color: #25685d;
  font-size: 12px;
  font-weight: 600;
}

.smart-form-upload {
  display: grid;
  min-height: 330px;
  padding: 44px 24px;
  place-items: center;
  align-content: center;
  border: 1px dashed #b8cbc5;
  border-radius: var(--radius);
  background: #ffffff;
  text-align: center;
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease;
}

.smart-form-upload.dragging {
  border-color: var(--teal);
  background: #edf7f4;
  box-shadow: inset 0 0 0 2px rgba(23, 118, 104, 0.08);
}

.smart-form-upload-icon {
  display: grid;
  width: 58px;
  height: 58px;
  margin-bottom: 15px;
  place-items: center;
  border-radius: 7px;
  background: var(--teal-soft);
  color: var(--teal-dark);
}

.smart-form-upload-icon .icon { width: 28px; height: 28px; }
.smart-form-upload.processing .smart-form-upload-icon .icon,
.smart-form-footer .btn .lucide-loader-circle { animation: spin 0.9s linear infinite; }
.smart-form-upload h2 { margin: 0; color: var(--ink); font-size: 20px; letter-spacing: 0; }
.smart-form-upload p { margin: 8px 0 20px; color: var(--muted); font-size: 13px; }

.smart-form-error {
  display: flex;
  max-width: 600px;
  margin-top: 16px;
  align-items: flex-start;
  gap: 7px;
  color: var(--danger);
  font-size: 12px;
}

.smart-form-empty-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.smart-form-empty-grid > div { min-width: 0; padding: 18px 20px; border-right: 1px solid var(--line-soft); }
.smart-form-empty-grid > div:last-child { border-right: 0; }
.smart-form-empty-grid b,
.smart-form-empty-grid span { display: block; }
.smart-form-empty-grid b { color: var(--ink); font-size: 13px; }
.smart-form-empty-grid span { margin-top: 5px; color: var(--muted); font-size: 12px; line-height: 1.5; }

.smart-form-scopebar {
  display: flex;
  min-width: 0;
  min-height: 52px;
  padding: 8px 10px 8px 14px;
  align-items: center;
  gap: 16px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}

.smart-form-scope-group { display: flex; min-width: 0; align-items: center; gap: 10px; }
.smart-form-scope-group > span { flex: 0 0 auto; color: var(--muted); font-size: 12px; }
.smart-form-scope-group .segmented { display: flex; padding: 3px; border-radius: 6px; background: #eef2f0; }
.smart-form-scope-group .segmented label { cursor: pointer; }
.smart-form-scope-group .segmented input { position: absolute; opacity: 0; pointer-events: none; }
.smart-form-scope-group .segmented span { display: block; padding: 6px 10px; border-radius: 5px; color: #60706b; font-size: 12px; white-space: nowrap; }
.smart-form-scope-group .segmented label.active span { background: #fff; color: var(--ink); box-shadow: 0 1px 4px rgba(20, 39, 33, 0.1); font-weight: 600; }

.smart-form-complete-toggle { display: inline-flex; margin-left: auto; align-items: center; gap: 7px; color: var(--ink-2); font-size: 12px; cursor: pointer; white-space: nowrap; }
.smart-form-count { display: flex; min-width: 74px; padding-left: 14px; align-items: baseline; gap: 4px; border-left: 1px solid var(--line); }
.smart-form-count b { color: var(--teal-dark); font-size: 18px; }
.smart-form-count span { color: var(--muted); font-size: 11px; }

.smart-form-sheet-tabs {
  display: flex;
  min-width: 0;
  gap: 4px;
  overflow-x: auto;
  border-bottom: 1px solid var(--line);
  scrollbar-width: thin;
}

.smart-form-sheet-tabs button {
  display: grid;
  min-width: 150px;
  padding: 10px 14px 9px;
  gap: 3px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  text-align: left;
}

.smart-form-sheet-tabs button.active { border-bottom-color: var(--teal); color: var(--ink); }
.smart-form-sheet-tabs button span { overflow: hidden; font-size: 13px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.smart-form-sheet-tabs button small { font-size: 10px; font-weight: 500; }

.smart-form-workspace {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(0, 1.08fr) minmax(350px, 0.92fr);
  gap: 14px;
  align-items: start;
}

.smart-form-panel {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.smart-form-panel-head,
.smart-form-preview-head {
  display: flex;
  min-height: 54px;
  padding: 10px 14px;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--line-soft);
}

.smart-form-panel-head > div:first-child,
.smart-form-preview-head > div { display: grid; min-width: 0; gap: 2px; }
.smart-form-panel-head span,
.smart-form-preview-head span { color: var(--muted); font-size: 10px; text-transform: uppercase; }
.smart-form-panel-head strong,
.smart-form-preview-head strong { overflow: hidden; color: var(--ink); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.smart-form-panel-head > span,
.smart-form-preview-head small { flex: 0 0 auto; color: var(--muted); font-size: 11px; }

.smart-form-auto-summary {
  display: grid;
  min-height: 112px;
  padding: 18px 16px;
  grid-template-columns: 36px minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  background: #f7faf9;
}

.smart-form-auto-icon { display: grid; width: 34px; height: 34px; place-items: center; border-radius: 50%; color: var(--teal-dark); background: #e2f1ec; }
.smart-form-auto-icon .icon { width: 18px; height: 18px; }
.smart-form-auto-summary > div { display: grid; min-width: 0; gap: 5px; }
.smart-form-auto-summary strong { color: var(--ink); font-size: 13px; }
.smart-form-auto-summary span:not(.smart-form-auto-icon) { color: var(--muted); font-size: 11px; line-height: 1.55; }
.smart-form-advanced { border-top: 1px solid var(--line-soft); }

.smart-form-sheet-rules {
  display: grid;
  padding: 12px 14px;
  grid-template-columns: minmax(150px, 1fr) repeat(2, minmax(96px, 0.55fr));
  gap: 9px;
  border-bottom: 1px solid var(--line-soft);
  background: var(--surface-2);
}

.smart-form-sheet-rules label { min-width: 0; }
.smart-form-sheet-rules label > span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 10px; }
.smart-form-sheet-rules select,
.smart-form-sheet-rules input,
.smart-form-map-row select {
  width: 100%;
  min-width: 0;
  height: 34px;
  padding: 0 9px;
  border: 1px solid #d8dfdc;
  border-radius: 5px;
  outline: none;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 12px;
}

.smart-form-sheet-rules select:focus,
.smart-form-sheet-rules input:focus,
.smart-form-map-row select:focus { border-color: #6eaa9f; box-shadow: 0 0 0 2px rgba(23, 118, 104, 0.1); }

.smart-form-mapping-list { max-height: 520px; overflow-y: auto; }
.smart-form-map-row {
  display: grid;
  min-width: 0;
  min-height: 56px;
  padding: 9px 14px;
  grid-template-columns: minmax(0, 0.9fr) 22px minmax(150px, 1fr);
  align-items: center;
  gap: 9px;
  border-bottom: 1px solid var(--line-soft);
}

.smart-form-map-row:last-child { border-bottom: 0; }
.smart-form-map-row > span:first-child { display: grid; min-width: 0; gap: 2px; }
.smart-form-map-row small { color: var(--teal); font-size: 9px; font-weight: 700; text-transform: uppercase; }
.smart-form-map-row strong { overflow: hidden; color: var(--ink-2); font-size: 12px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.smart-form-map-arrow { display: grid; place-items: center; color: #a1aaa7; }

.smart-form-mini-actions { display: flex; align-items: center; gap: 9px; }
.smart-form-mini-actions button { padding: 0; border: 0; background: transparent; color: var(--teal); cursor: pointer; font-size: 11px; }
.smart-form-search { display: flex; height: 42px; padding: 0 13px; align-items: center; gap: 8px; border-bottom: 1px solid var(--line-soft); color: var(--muted); }
.smart-form-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--ink); font: inherit; font-size: 12px; }
.smart-form-record-list { min-height: 396px; }

.smart-form-record-row {
  display: grid;
  min-width: 0;
  min-height: 56px;
  padding: 8px 13px;
  grid-template-columns: 18px 54px minmax(0, 1fr) auto;
  align-items: center;
  gap: 9px;
  border-bottom: 1px solid var(--line-soft);
  cursor: pointer;
}

.smart-form-record-row:hover,
.smart-form-record-row.selected { background: #f7faf9; }
.smart-form-record-type { display: inline-block; padding: 3px 5px; border-radius: 4px; background: #eef3f1; color: #52645f; font-size: 10px; text-align: center; }
.smart-form-record-copy { display: grid; min-width: 0; gap: 3px; }
.smart-form-record-copy strong { overflow: hidden; color: var(--ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.smart-form-record-copy small { overflow: hidden; color: var(--muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.smart-form-record-files { color: var(--muted); font-size: 10px; white-space: nowrap; }
.smart-form-record-panel .pagination { min-height: 52px; margin: 0; padding: 8px 12px; border-top: 1px solid var(--line-soft); }
.smart-form-record-panel .pagination-status { display: none; }
.smart-form-profile-source { display: grid; grid-template-rows: auto minmax(0,1fr); }
.smart-form-profile-source-body { display: grid; min-height: 396px; padding: 34px; place-items: center; align-content: center; gap: 8px; color: var(--muted); text-align: center; }
.smart-form-profile-source-body > .icon { width: 30px; height: 30px; margin-bottom: 4px; color: var(--teal); }
.smart-form-profile-source-body strong { color: var(--ink); font-size: 14px; }
.smart-form-profile-source-body span { max-width: 360px; color: var(--muted); font-size: 11px; line-height: 1.6; }
.smart-form-profile-source-body .btn { margin-top: 7px; }

.smart-form-preview {
  min-width: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  overflow: hidden;
}

.smart-form-preview-table { width: 100%; overflow-x: auto; }
.smart-form-preview-table table { width: 100%; min-width: 620px; border-collapse: collapse; table-layout: fixed; }
.smart-form-preview-table th,
.smart-form-preview-table td { padding: 9px 10px; border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); overflow: hidden; color: var(--ink-2); font-size: 11px; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.smart-form-preview-table th { background: #f0f5f3; color: #3d5e56; font-weight: 650; }
.smart-form-preview-empty { display: grid; min-height: 120px; padding: 24px; place-items: center; color: var(--muted); font-size: 12px; text-align: center; }

.smart-form-preview-head .smart-form-review-actions { display: flex; align-items: center; gap: 9px; }
.smart-form-review-actions small { display: block; }
.smart-form-review-actions small b { color: var(--teal-dark); font-variant-numeric: tabular-nums; }
.smart-form-section-fields { padding: 14px; border-bottom: 1px solid var(--line-soft); background: #fbfcfc; }
.smart-form-section-fields-head { display: flex; margin-bottom: 10px; align-items: center; justify-content: space-between; gap: 12px; }
.smart-form-section-fields-head > div { display: grid; gap: 2px; }
.smart-form-section-fields-head strong { color: var(--ink); font-size: 13px; }
.smart-form-section-fields-head span { color: var(--muted); font-size: 10px; line-height: 1.5; }
.smart-form-section-fields section { display: grid; grid-template-columns: 150px minmax(0, 1fr); padding: 10px 0; align-items: start; gap: 12px; border-top: 1px solid var(--line-soft); }
.smart-form-section-fields section:first-of-type { border-top: 0; }
.smart-form-section-fields section > div:first-child { display: grid; gap: 2px; }
.smart-form-section-fields section > div:first-child strong { color: var(--ink-2); font-size: 12px; }
.smart-form-section-fields section > div:first-child small { color: var(--muted); font-size: 9px; line-height: 1.45; }
.smart-form-section-field-options { display: flex; flex-wrap: wrap; gap: 6px; }
.smart-form-section-field-options label { display: inline-flex; min-height: 30px; padding: 0 10px; align-items: center; gap: 6px; border: 1px solid #d8e1de; border-radius: 5px; background: #fff; color: var(--ink-2); cursor: pointer; font-size: 11px; }
.smart-form-section-field-options label:hover { border-color: #aac9c0; }
.smart-form-section-field-options label.selected { border-color: #8fbbb0; background: #edf7f3; color: var(--teal-dark); }
.smart-form-section-field-options input { width: 13px; height: 13px; accent-color: var(--teal); }
.smart-form-review-table { max-height: 620px; overflow: auto; }
.smart-form-review-table table { width: max-content; min-width: 100%; table-layout: auto; }
.smart-form-review-table th { position: sticky; z-index: 2; top: 0; min-width: 190px; padding: 8px 9px; }
.smart-form-review-table th > span,
.smart-form-review-table th > small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.smart-form-review-table th > small { margin-top: 3px; color: #72817c; font-size: 9px; font-weight: 500; }
.smart-form-review-table td { width: 220px; min-width: 220px; padding: 5px; overflow: visible; }
.smart-form-review-table .smart-form-review-index { z-index: 3; left: 0; width: 42px; min-width: 42px; color: var(--muted); text-align: center; font-variant-numeric: tabular-nums; }
.smart-form-review-table tbody .smart-form-review-index { position: sticky; z-index: 1; background: #fafcfb; font-size: 10px; }
.smart-form-review-table textarea {
  display: block;
  width: 100%;
  min-height: 40px;
  padding: 8px 9px;
  resize: vertical;
  border: 1px solid transparent;
  border-radius: 5px;
  outline: none;
  background: transparent;
  color: var(--ink-2);
  font: inherit;
  font-size: 11px;
  line-height: 1.45;
}
.smart-form-review-table textarea:hover { border-color: #d4dfdb; background: #fff; }
.smart-form-review-table textarea:focus { border-color: #6eaa9f; background: #fff; box-shadow: 0 0 0 2px rgba(23, 118, 104, 0.1); }
.smart-form-review-table textarea.edited { border-color: #b8d5cb; background: #f4faf7; }
.smart-form-review-table td.is-empty textarea { color: var(--muted); background: #fbfcfc; }
.smart-form-review-table td.is-manual textarea { border-style: dashed; }
.smart-form-review-table.word-prose { max-height: none; overflow-x: hidden; }
.smart-form-review-table.word-prose table { width: 100%; min-width: 0; table-layout: fixed; }
.smart-form-review-table.word-prose th { min-width: 0; vertical-align: top; white-space: normal; }
.smart-form-review-table.word-prose th:first-child { width: 190px; }
.smart-form-review-table.word-prose thead th:last-child { width: auto; }
.smart-form-review-table.word-prose th > span,
.smart-form-review-table.word-prose th > small { overflow: visible; text-overflow: clip; white-space: normal; }
.smart-form-review-table.word-prose td { width: auto; min-width: 0; padding: 9px; }
.smart-form-review-table.word-prose textarea { min-height: 118px; padding: 12px 13px; border-color: #e0e7e4; background: #fff; font-size: 13px; line-height: 1.65; }

.smart-form-footer {
  position: sticky;
  z-index: 4;
  bottom: 12px;
  display: flex;
  min-width: 0;
  padding: 11px 12px 11px 15px;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border: 1px solid #cfdad6;
  border-radius: var(--radius);
  background: rgba(255, 255, 255, 0.96);
  box-shadow: 0 10px 28px rgba(20, 39, 33, 0.14);
  backdrop-filter: blur(14px);
}

.smart-form-footer > div { display: flex; min-width: 0; align-items: center; gap: 7px; color: var(--muted); font-size: 11px; }
.smart-form-footer > div .icon { flex: 0 0 auto; color: var(--teal); }

@media (max-width: 1020px) {
  .smart-form-workspace { grid-template-columns: 1fr; }
  .smart-form-mapping-list { max-height: 430px; }
  .smart-form-record-list { min-height: 320px; }
}

@media (max-width: 760px) {
  .smart-form-heading { align-items: flex-start; }
  .smart-form-heading h1 { max-width: 72vw; overflow: hidden; font-size: 21px; text-overflow: ellipsis; white-space: nowrap; }
  .smart-form-local-badge { display: none; }
  .smart-form-upload { min-height: 300px; padding: 34px 18px; }
  .smart-form-empty-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .smart-form-empty-grid > div:nth-child(2) { border-right: 0; }
  .smart-form-empty-grid > div:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .smart-form-scopebar { flex-wrap: wrap; gap: 9px 12px; }
  .smart-form-scope-group { width: 100%; align-items: flex-start; flex-direction: column; }
  .smart-form-scope-group .segmented { width: 100%; }
  .smart-form-scope-group .segmented label { flex: 1; }
  .smart-form-scope-group .segmented span { padding-inline: 6px; text-align: center; }
  .smart-form-complete-toggle { margin-left: 0; }
  .smart-form-count { margin-left: auto; }
  .smart-form-sheet-rules { grid-template-columns: 1fr 1fr; }
  .smart-form-sheet-rules label:first-child { grid-column: 1 / -1; }
  .smart-form-map-row { grid-template-columns: minmax(0, 0.85fr) 16px minmax(126px, 1fr); padding-inline: 10px; gap: 5px; }
  .smart-form-auto-summary { grid-template-columns: 34px minmax(0, 1fr); padding: 14px 12px; }
  .smart-form-auto-summary .btn { grid-column: 1 / -1; width: 100%; justify-content: center; }
  .smart-form-record-row { grid-template-columns: 18px 48px minmax(0, 1fr); }
  .smart-form-record-files { display: none; }
  .smart-form-preview-head { align-items: flex-start; }
  .smart-form-preview-head > div:first-child { padding-top: 4px; }
  .smart-form-review-actions small { display: none; }
  .smart-form-preview-table table { min-width: 560px; }
  .smart-form-section-fields section { grid-template-columns: 1fr; gap: 7px; }
  .smart-form-review-table.word-prose table { min-width: 0; }
  .smart-form-review-table.word-prose thead { display: none; }
  .smart-form-review-table.word-prose tr { display: grid; }
  .smart-form-review-table.word-prose th,
  .smart-form-review-table.word-prose td { display: block; width: 100%; border-right: 0; }
  .smart-form-review-table.word-prose th { position: static; padding: 10px 12px 4px; background: #f7faf9; }
  .smart-form-review-table.word-prose td { padding: 6px 10px 12px; background: #f7faf9; }
  .smart-form-review-table.word-prose textarea { min-height: 150px; }
  .smart-form-footer { position: static; bottom: auto; }
  .smart-form-footer > div { display: none; }
  .smart-form-footer .btn { width: 100%; justify-content: center; }
}

.project-results-panel { min-width: 0; }
.project-identity-toolbar { min-height: 48px; padding: 0 17px; background: #fff; }
.project-identity-toolbar .project-identity-tabs { width: auto; min-height: 48px; padding: 0; gap: 22px; background: transparent; }
.project-toolbar { flex-wrap: wrap; }
.project-toolbar .toolbar-tabs { width: 100%; }
.project-toolbar .toolbar-spacer { display: none; }
.project-identity-tab { position: relative; width: auto; min-width: 0; height: 48px; padding: 0; border-radius: 0; display: inline-flex; align-items: center; justify-content: center; gap: 7px; }
.project-identity-tab.active { color: #1d1d1f; background: transparent; box-shadow: none; }
.project-identity-tab.active::after { content: ""; position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: #0071e3; }
.project-identity-count { min-width: 19px; height: 18px; padding: 0 5px; border-radius: 9px; display: inline-grid; place-items: center; color: #76817d; background: #e8e8ed; font-size: 9px; font-weight: 650; font-variant-numeric: tabular-nums; }
.project-identity-tab.active .project-identity-count { color: var(--teal-dark); }
.project-results-table { min-width: 1195px; }
.project-results-table th { color: #79797e; background: #fafafd; font-size: 11px; }
.project-results-table td { height: 78px; }
.project-results-table .project-col-title { width: 230px; }
.project-results-table .project-col-owner { width: 80px; }
.project-results-table .project-col-identity { width: 92px; }
.project-results-table .project-col-type { width: 68px; }
.project-results-table .project-col-level { width: 72px; }
.project-results-table .project-col-money,
.project-results-table .project-col-topic-money,
.project-results-table .project-col-received { width: 88px; }
.project-results-table .project-col-source { width: 118px; }
.project-results-table .project-col-undertaking { width: 112px; }
.project-results-table .project-col-period { width: 96px; }
.project-results-table .project-col-lifecycle { width: 102px; }
.project-results-table .project-col-files { width: 86px; }
.project-results-table .record-title { color: #262628; font-size: 14px; font-weight: 650; line-height: 1.4; }
.project-results-table .record-meta.project-establishment-code { color: #66666b; font-family: "SFMono-Regular", Consolas, monospace; font-size: 10px; }
.project-results-table .cell-primary { overflow: hidden; color: #3a3a3c; font-size: 12px; font-weight: 550; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.project-results-table .cell-secondary { overflow: hidden; margin-top: 4px; color: #8a8a8f; font-size: 10px; line-height: 1.35; text-overflow: ellipsis; white-space: nowrap; }
.teaching-results-table { min-width: 1065px; }
.teaching-results-table .teaching-col-title { width: 240px; }
.teaching-results-table .teaching-col-owner { width: 92px; }
.teaching-results-table .teaching-col-identity { width: 78px; }
.teaching-results-table .teaching-col-year { width: 66px; }
.teaching-results-table .teaching-col-level { width: 86px; }
.teaching-results-table .teaching-col-progress { width: 92px; }
.teaching-results-table .teaching-col-status { width: 100px; }
.teaching-results-table .teaching-col-files { width: 105px; }
.course-data-table { min-width: 860px; }
.course-data-table .course-col-title { width: 220px; }
.course-data-table .course-col-level { width: 105px; }
.course-data-table .course-col-term { width: 130px; }
.course-data-table .course-col-students { width: 78px; }
.course-data-table .course-col-hours { width: 110px; }
.course-data-table .course-col-evaluation { width: 115px; }
.course-data-table .cell-primary.numeric { font-variant-numeric: tabular-nums; }
.course-row-actions { display: inline-flex; align-items: center; gap: 4px; margin-right: 6px; }
.course-data-table .col-action { width: 176px; }
.course-row-link { min-height: 28px; display: inline-flex; align-items: center; gap: 4px; padding: 0 6px; color: #28667d; border: 1px solid #d5e4e9; background: #f5fafb; border-radius: 4px; font-size: 10px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.course-row-link:hover { color: #174e67; border-color: #9fc4cf; background: #edf7f9; }
.course-workspace-page { max-width: 1280px; margin: 0 auto; padding: 28px 0 64px; }
.course-workspace-page .workbench-page-head { align-items: flex-end; margin-bottom: 24px; }
.course-workspace-page .workbench-page-head h1 { margin: 5px 0 8px; max-width: 820px; }
.course-workspace-page .workbench-page-head p { max-width: 760px; }
.course-workspace-head-actions { display: flex; align-items: center; gap: 8px; flex-shrink: 0; }
.course-workspace-grid { display: grid; grid-template-columns: minmax(280px, .8fr) minmax(0, 1.6fr); gap: 16px; align-items: start; }
.course-workspace-panel { padding: 20px; border: 1px solid var(--line-soft); border-radius: 7px; background: #fff; box-shadow: 0 4px 15px rgba(25, 51, 63, .04); }
.course-workspace-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--line-soft); }
.course-workspace-panel-head > div { display: grid; gap: 3px; }
.course-workspace-panel-head span { color: #6b8791; font-size: 10px; font-weight: 800; letter-spacing: .08em; }
.course-workspace-panel-head h2 { margin: 0; color: var(--ink); font-size: 20px; }
.course-workspace-status { color: #26735d !important; background: #e9f6ef; padding: 4px 7px; border-radius: 4px; letter-spacing: 0 !important; }
.course-workspace-panel-head > strong { color: #28667d; font-size: 22px; font-variant-numeric: tabular-nums; }
.course-workspace-meta { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.course-workspace-meta div { padding: 13px 0; border-bottom: 1px solid #eef2f3; }
.course-workspace-meta dt { color: #708189; font-size: 11px; }
.course-workspace-meta dd { margin: 4px 0 0; color: #1d3038; font-size: 13px; font-weight: 700; overflow-wrap: anywhere; }
.course-roster-summary { padding: 12px 0; color: #667a82; font-size: 12px; }
.course-roster-table-wrap { overflow-x: auto; }
.course-roster-table { width: 100%; min-width: 680px; border-collapse: collapse; font-size: 12px; }
.course-roster-table th { padding: 10px 8px; color: #60737b; background: #f7fafb; text-align: left; font-size: 10px; font-weight: 800; white-space: nowrap; }
.course-roster-table td { padding: 10px 8px; color: #263b43; border-bottom: 1px solid #eef2f3; white-space: nowrap; }
.course-roster-table td:last-child { color: #2c7b61; }
.course-roster-empty { padding: 54px 16px; color: #6c7c82; text-align: center; font-size: 13px; }
@media (max-width: 900px) {
  .course-workspace-page { padding: 20px 0 44px; }
  .course-workspace-page .workbench-page-head { align-items: stretch; flex-direction: column; }
  .course-workspace-head-actions { flex-wrap: wrap; }
  .course-workspace-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
  .course-row-actions { margin: 0 0 6px; }
  .course-workspace-meta { grid-template-columns: 1fr; }
  .course-workspace-panel { padding: 15px; }
}
@media (max-width: 1100px) {
  .table-panel .course-data-table td.col-action { position: static; width: auto !important; min-height: 0; padding: 8px 4px 0; display: flex; align-items: center; gap: 6px; grid-column: 1 / -1; }
  .table-panel .course-data-table td.col-action::before { display: block; content: "课程入口"; }
  .table-panel .course-data-table td.col-action .row-action { margin-left: auto; }
}
.course-level-badge { min-height: 23px; padding: 0 7px; border-radius: 5px; display: inline-flex; align-items: center; color: #25654f; background: #e9f5ef; font-size: 10px; font-weight: 650; white-space: nowrap; }
.course-level-badge.graduate { color: #315f8a; background: #e9f2fb; }
.award-data-table { min-width: 930px; }
.award-data-table .col-award-level { width: 118px; }
.project-identity-badge { width: max-content; min-width: 42px; height: 24px; padding: 0 8px; border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; color: #25654f; background: #e9f5ef; font-size: 10px; font-weight: 680; white-space: nowrap; }
.project-identity-badge.participant { color: #266b56; background: #e8f4ef; }
.project-results-table .project-col-money .cell-primary,
.project-results-table .project-col-topic-money .cell-primary,
.project-results-table .project-col-received .cell-primary { font-variant-numeric: tabular-nums; }
.project-type-chip { min-height: 22px; padding: 0 7px; border-radius: 5px; display: inline-flex; align-items: center; color: #765b15; background: #fff4d8; font-size: 10px; font-weight: 650; white-space: nowrap; }
.project-type-chip.horizontal { color: #295f93; background: #eaf3fc; }
.project-lifecycle-badges { display: flex; flex-wrap: wrap; gap: 4px; }
.project-phase-chip,
.project-status-chip { min-height: 20px; padding: 0 6px; border-radius: 4px; display: inline-flex; align-items: center; color: #346254; background: #eaf5f0; font-size: 10px; font-weight: 650; white-space: nowrap; }
.project-phase-chip.pipeline { color: #805d20; background: #fff3d9; }
.project-status-chip.active { color: #2d6397; background: #e9f2fb; }
.project-status-chip.completed { color: #346254; background: #eaf5f0; }
.project-status-chip.terminated { color: #9a4747; background: #faeaea; }
.project-file-state { display: inline-flex; align-items: center; gap: 4px; color: #25654f; font-size: 10px; white-space: nowrap; }
.project-file-state svg { width: 12px; height: 12px; }
.project-col-files.missing .project-file-state { color: #9a681b; }

@media (min-width: 781px) and (max-width: 1430px) {
  .table-panel .data-table-wrap { overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scrollbar-gutter: stable; }
  .table-panel .project-results-table { width: 1195px; min-width: 1195px; display: table; table-layout: fixed; }
  .table-panel .project-results-table thead { display: table-header-group; }
  .table-panel .project-results-table tbody { display: table-row-group; }
  .table-panel .project-results-table tbody tr { position: static; min-width: 0; padding: 0; display: table-row; border-bottom: 1px solid var(--line); background: #fff; }
  .table-panel .project-results-table td { width: auto; min-width: 0; height: 72px; min-height: 0; padding: 7px 5px; overflow: hidden; border-bottom: 1px solid var(--line); display: table-cell; vertical-align: middle; }
  .table-panel .project-results-table td::before { display: none !important; content: none !important; }
  .table-panel .project-results-table .col-check,
  .table-panel .project-results-table .col-action { position: static; width: 32px !important; min-height: 0; padding: 7px 4px; display: table-cell; }
  .table-panel .project-results-table .col-action { width: 38px !important; }
  .table-panel .project-results-table .project-col-title { min-height: 0; padding-bottom: 7px; border-bottom: 1px solid var(--line); }
  .table-panel .project-results-table .record-title,
  .table-panel .project-results-table .record-meta,
  .table-panel .project-results-table .cell-primary,
  .table-panel .project-results-table .cell-secondary { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
}
.bulk-delete-records { display: grid; gap: 7px; margin-top: 12px; }
.bulk-delete-records .confirm-record { margin: 0; }
.project-result-empty { min-height: 84px; display: flex; align-items: center; justify-content: center; gap: 7px; color: #91989b; font-size: 10px; border-top: 1px solid var(--line-soft); }
.project-order-note { display: inline-flex; align-items: center; gap: 5px; color: #7e878c; font-size: 9px; }
.project-order-note svg { width: 13px; height: 13px; }

.data-table-wrap { width: 100%; overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.paper-data-table { min-width: 1195px; }
.patent-data-table { min-width: 1170px; }
.data-table th { height: 39px; background: #fafbfb; color: #78847f; font-size: 10px; font-weight: 650; text-align: left; padding: 0 10px; border-bottom: 1px solid var(--line); white-space: nowrap; }
.data-table td { height: 61px; padding: 8px 10px; border-bottom: 1px solid var(--line-soft); vertical-align: middle; }
.data-table tbody tr { transition: background .12s ease; }
.data-table tbody tr:hover { background: #f8fbfa; }
.col-check { width: 42px; text-align: center !important; }
.col-type { width: 80px; }
.col-title { width: 34%; min-width: 250px; }
.col-person { width: 13%; min-width: 110px; }
.col-paper-unit { width: 150px; }
.col-paper-identity { width: 88px; }
.col-paper-type { width: 82px; }
.col-paper-category { width: 138px; }
.col-patent-type { width: 132px; }
.col-patent-stage { width: 92px; }
.col-patent-transfer { width: 112px; }
.col-teaching-level { width: 92px; }
.col-progress { width: 92px; }
.col-influence-module { width: 112px; }
.col-academic-category { width: 112px; }
.col-academic-level { width: 132px; }
.col-year { width: 75px; }
.col-status { width: 100px; }
.col-files { width: 105px; }
.col-updated { width: 98px; }
.col-action { width: 50px; text-align: center !important; }
.check-input { width: 15px; height: 15px; accent-color: var(--teal); cursor: pointer; }
.type-badge { display: inline-flex; align-items: center; height: 24px; padding: 0 8px; border-radius: 4px; font-size: 10px; font-weight: 700; }
.type-paper { color: var(--teal-dark); background: var(--teal-soft); }
.type-book { color: #725033; background: #f4ede6; }
.type-patent { color: #9b4b37; background: var(--coral-soft); }
.type-project { color: #3d6894; background: var(--blue-soft); }
.type-teaching { color: #684d91; background: #f0ebf8; }
.type-course { color: #28667d; background: #e7f2f6; }
.type-training { color: #87465e; background: #f7eaf0; }
.type-award { color: #90661f; background: var(--gold-soft); }
.type-academic { color: #435887; background: #e9eef8; }
.type-influence { color: #126d75; background: #e5f5f5; }
.type-activity { color: #315f55; background: #e9f2ef; }
.patent-transfer-state { display: grid; gap: 2px; color: #737c79; font-size: 10px; line-height: 1.3; }
.patent-transfer-state strong { font-size: 10px; font-weight: 680; }
.patent-transfer-state small { color: #477566; font-size: 9px; font-variant-numeric: tabular-nums; }
.patent-transfer-state.yes strong { color: #26705a; }
.patent-transfer-state.no strong { color: #596560; }
.patent-transfer-state.pending strong { color: #a16b27; }
.record-title { font-size: 12px; font-weight: 650; color: #24312d; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.record-title:hover { color: var(--teal); }
.record-meta { margin-top: 3px; color: #8a9692; font-size: 9px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.record-creator-meta { min-width: 0; margin-top: 4px; display: flex; align-items: center; gap: 4px; overflow: hidden; color: #788580; font-size: 8px; line-height: 1.35; white-space: nowrap; }
.record-creator-meta > span { overflow: hidden; text-overflow: ellipsis; }
.record-creator-meta .icon { width: 11px; height: 11px; flex: 0 0 auto; color: #6e817a; }
.record-access { display: inline-flex; align-items: center; gap: 3px; color: #798781; }
.record-access.public { color: #267264; }
.record-access.lab { color: #4d6f91; }
.record-access .icon { width: 10px; height: 10px; }
.cell-primary { font-size: 11px; color: #3b4944; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cell-secondary { font-size: 9px; color: #8a9692; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.status { display: inline-flex; align-items: center; gap: 5px; font-size: 10px; color: #56635f; white-space: nowrap; }
.status-dot { width: 6px; height: 6px; border-radius: 50%; background: #91a09b; }
.status-complete .status-dot { background: #3d9b75; }
.status-pending .status-dot { background: #d09139; }
.status-draft .status-dot { background: #8f9a97; }
.file-state { display: flex; align-items: center; gap: 6px; color: #53615c; font-size: 10px; }
.file-state.missing { color: var(--coral); }
.activity-gallery-panel { overflow: hidden; }
.activity-toolbar { flex-wrap: wrap; }
.activity-toolbar .toolbar-spacer { min-width: 18px; }
.activity-select-row { min-height: 42px; padding: 0 18px; display: flex; align-items: center; border-bottom: 1px solid var(--line-soft); background: #fafbfb; }
.activity-select-row label { display: inline-flex; align-items: center; gap: 8px; color: #59645f; font-size: 10px; cursor: pointer; }
.activity-gallery { padding: 16px 18px 20px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.activity-card { min-width: 0; position: relative; overflow: hidden; border: 1px solid rgba(0,0,0,.09); border-radius: 7px; background: #fff; box-shadow: 0 3px 14px rgba(22,32,28,.055); transition: transform .15s ease, box-shadow .15s ease, border-color .15s ease; }
.activity-card:hover { transform: translateY(-1px); border-color: rgba(49,95,85,.24); box-shadow: 0 8px 24px rgba(22,32,28,.09); }
.activity-card-check { width: 30px; height: 30px; position: absolute; z-index: 2; top: 9px; left: 9px; display: grid; place-items: center; border-radius: 6px; background: rgba(255,255,255,.93); box-shadow: 0 2px 10px rgba(0,0,0,.14); cursor: pointer; }
.activity-card-main { width: 100%; padding: 0; display: grid; border: 0; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.activity-card-media { aspect-ratio: 16 / 10; position: relative; overflow: hidden; display: grid; place-items: center; background: #eef1f0; }
.activity-card-image { width: 100%; height: 100%; display: block; object-fit: cover; }
.activity-card-placeholder { width: 100%; height: 100%; display: grid; place-items: center; align-content: center; gap: 7px; color: #7c8984; background: #eef2f1; font-size: 9px; }
.activity-card-placeholder .icon { width: 28px; height: 28px; color: #5e776f; }
.activity-photo-count { min-height: 25px; padding: 0 8px; position: absolute; right: 8px; bottom: 8px; display: inline-flex; align-items: center; gap: 5px; border-radius: 5px; color: #fff; background: rgba(28,34,32,.76); backdrop-filter: blur(8px); font-size: 9px; font-weight: 650; }
.activity-card-body { min-width: 0; min-height: 142px; padding: 13px 14px 14px; display: grid; align-content: start; gap: 6px; }
.activity-card-topline { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.activity-card-topline > b { color: #34685c; font-size: 9px; font-weight: 700; }
.activity-card-body > strong { overflow: hidden; color: #252b29; font-size: 13px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.activity-card-body > span:not(.activity-card-topline) { min-width: 0; display: flex; align-items: center; gap: 6px; overflow: hidden; color: #65716c; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.activity-card-body > span .icon { width: 13px; height: 13px; flex: 0 0 auto; color: #71827c; }
.activity-card-body > small { margin-top: 2px; overflow: hidden; color: #8a9490; font-size: 8px; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.activity-card-body > .record-creator-meta { margin-top: 0; color: #74817c; }
.activity-batch-open { color: #075f9f; border-color: rgba(0,113,227,.2); background: #f1f7ff; }
.activity-link-review-open { color: #315f55; border-color: rgba(49,95,85,.2); background: #f0f7f4; }
.activity-link-review-open > span { min-width: 18px; height: 18px; padding: 0 5px; display: inline-grid; place-items: center; border-radius: 5px; color: #fff; background: #317561; font-size: 8px; font-weight: 720; }
.activity-card-link-pending { min-height: 22px; padding: 0 6px; display: inline-flex; align-items: center; gap: 4px; border-radius: 5px; color: #8b5a12; background: #fff2dc; font-size: 8px; font-weight: 700; white-space: nowrap; }
.activity-card-link-pending .icon { width: 11px; height: 11px; }
.activity-batch-modal { width: min(1180px,100%) !important; }
.activity-batch-body { display: grid; gap: 18px; background: #f7f8fa; }
.activity-batch-actions { min-height: 42px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.activity-batch-summary { margin-left: auto; color: #64706c; font-size: 10px; font-weight: 620; }
.activity-batch-drop { min-height: 270px; background: #fff; }
.activity-batch-groups { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.activity-batch-group { min-width: 0; padding: 14px; border: 1px solid rgba(0,0,0,.09); border-radius: 8px; background: #fff; box-shadow: 0 3px 12px rgba(22,32,28,.035); }
.activity-batch-group-head { min-height: 30px; margin-bottom: 12px; display: grid; grid-template-columns: 25px minmax(0,1fr) auto 28px; align-items: center; gap: 8px; }
.activity-batch-group-head > span { width: 25px; height: 25px; display: grid; place-items: center; border-radius: 50%; color: #075f9f; background: #eaf4ff; font-size: 9px; font-weight: 720; }
.activity-batch-group-head > strong { overflow: hidden; color: #303936; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.activity-batch-group-head > small { color: #71807a; font-size: 9px; white-space: nowrap; }
.activity-batch-group-head .icon-button { width: 28px; height: 28px; color: #8d9793; }
.activity-batch-group-head .icon-button:hover:not(:disabled) { color: var(--danger); background: #fff2ef; }
.activity-batch-group-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 12px; }
.activity-batch-target-mode { padding: 9px 10px; border: 1px solid #d8e3df; border-radius: 6px; background: #f7faf9; }
.activity-batch-group-fields .form-field > small { color: #71807a; font-size: 8px; line-height: 1.5; }
.activity-batch-group-fields [data-activity-batch-existing-record] { min-height: 38px; }
.activity-batch-photo-head { display: flex; align-items: baseline; gap: 9px; padding-top: 2px; }
.activity-batch-photo-head strong { color: #303936; font-size: 12px; }
.activity-batch-photo-head span { color: var(--muted); font-size: 9px; }
.activity-batch-photos { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 11px; }
.activity-batch-photo { min-width: 0; overflow: hidden; border: 1px solid rgba(0,0,0,.09); border-radius: 8px; background: #fff; }
.activity-batch-photo.activity-cover-selected { border-color: rgba(0,113,227,.42); box-shadow: inset 0 0 0 1px rgba(0,113,227,.08); }
.activity-batch-photo-preview { aspect-ratio: 4 / 3; position: relative; overflow: hidden; display: grid; place-items: center; color: #71807a; background: #e9edeb; }
.activity-batch-photo-preview img { width: 100%; height: 100%; display: block; object-fit: cover; }
.activity-batch-photo-preview > span .icon { width: 30px; height: 30px; }
.activity-batch-photo-preview .icon-button { width: 28px; height: 28px; position: absolute; top: 7px; right: 7px; color: #fff; background: rgba(25,30,28,.68); backdrop-filter: blur(6px); }
.activity-batch-cover-choice { min-height: 28px; padding: 0 8px; position: absolute; left: 7px; bottom: 7px; display: inline-flex; align-items: center; gap: 5px; border: 0; border-radius: 5px; color: #fff; background: rgba(25,30,28,.68); backdrop-filter: blur(6px); font: inherit; font-size: 8px; font-weight: 680; cursor: pointer; }
.activity-batch-cover-choice:hover, .activity-batch-cover-choice.active { color: #fff; background: #0071e3; }
.activity-batch-cover-choice.active .icon { fill: currentColor; }
.activity-batch-photo-copy { min-width: 0; padding: 10px 10px 7px; display: grid; gap: 3px; }
.activity-batch-photo-copy strong { overflow: hidden; color: #35403c; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.activity-batch-photo-copy small { overflow: hidden; color: #87918d; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.activity-batch-photo > label { padding: 0 10px 10px; display: grid; gap: 4px; }
.activity-batch-photo > label > span { color: #6d7974; font-size: 8px; font-weight: 620; }
.activity-batch-photo .field-select { height: 33px; padding-inline: 8px; font-size: 9px; }
.paper-toolbar { flex-wrap: wrap; }
.paper-toolbar .toolbar-spacer { min-width: 20px; }
.paper-field-badge { display: block; max-width: 100%; padding: 0; border-radius: 0; font-size: 11px; line-height: 1.5; font-weight: 400; letter-spacing: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; background: transparent; }
.paper-field-badge.identity-first { color: #126d5a; background: transparent; }
.paper-field-badge.identity-corresponding { color: #37689b; background: transparent; }
.paper-field-badge.identity-other { color: #6f6f74; background: transparent; }
.paper-field-badge.category-jcr1 { color: #885514; background: transparent; }
.paper-field-badge.category-ccfa { color: #7d3c56; background: transparent; }
.paper-field-badge.category-other { color: #62666a; background: transparent; }
.row-action { width: 30px; height: 30px; border: 0; background: transparent; border-radius: 5px; color: #84908c; cursor: pointer; display: grid; place-items: center; margin: auto; }
.row-action:hover { background: #edf2f0; color: var(--teal); }

.empty-state { min-height: 270px; display: grid; place-items: center; text-align: center; padding: 40px; }
.empty-icon { width: 46px; height: 46px; border-radius: 8px; background: var(--teal-soft); color: var(--teal); display: grid; place-items: center; margin: 0 auto 12px; }
.empty-title { font-weight: 680; }
.empty-copy { color: var(--muted); font-size: 11px; margin: 4px 0 14px; }
.table-footer { min-height: 50px; padding: 8px 15px; display: flex; align-items: center; gap: 12px; border-top: 0; color: var(--muted); font-size: 10px; }
.pagination { min-width: 0; margin-left: auto; display: flex; align-items: center; justify-content: flex-end; gap: 9px; }
.pagination-status { flex: 0 0 auto; color: #7a8581; white-space: nowrap; }
.pagination-controls { min-width: 0; display: flex; align-items: center; gap: 4px; }
.page-ellipsis { width: 20px; height: 29px; display: grid; place-items: center; color: #8a9491; user-select: none; }
.page-button { width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid var(--line); background: #fff; border-radius: 5px; cursor: pointer; color: #66736f; font-size: 10px; }
.page-button.active { color: #fff; background: var(--teal); border-color: var(--teal); }
.page-button:disabled { opacity: .42; cursor: default; }

.attachment-summary { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; margin-bottom: 14px; }
.compact-stat { padding: 16px 18px; display: flex; align-items: center; gap: 12px; }
.compact-stat-value { font-weight: 730; font-size: 20px; line-height: 1.1; }
.compact-stat-label { color: var(--muted); font-size: 10px; margin-top: 3px; }
.attachment-category-index { padding: 11px 17px; display: flex; align-items: center; gap: 7px; overflow-x: auto; border-bottom: 1px solid var(--line-soft); scrollbar-width: thin; }
.attachment-category-index button { min-height: 31px; padding: 0 10px; display: inline-flex; align-items: center; gap: 7px; flex: 0 0 auto; border: 1px solid var(--line); border-radius: 6px; color: #55605c; background: #fff; font: inherit; font-size: 9px; font-weight: 620; letter-spacing: 0; cursor: pointer; }
.attachment-category-index button:hover { border-color: #aebfba; color: var(--teal); background: #f7faf9; }
.attachment-category-index button.active { border-color: #83b7ac; color: var(--teal-dark); background: var(--teal-soft); box-shadow: inset 0 0 0 1px rgba(23,118,104,.06); }
.attachment-category-index button:focus-visible { outline: 2px solid rgba(23,118,104,.2); outline-offset: 2px; }
.attachment-category-index b { min-width: 18px; height: 18px; padding: 0 5px; display: inline-grid; place-items: center; border-radius: 9px; color: #66716d; background: #edf1ef; font-size: 8px; }
.attachment-category-index button.active b { color: var(--teal-dark); background: rgba(23,118,104,.11); }
.attachment-groups { padding: 0 17px 12px; }
.attachment-category { scroll-margin-top: 76px; border-bottom: 1px solid var(--line); }
.attachment-category:last-child { border-bottom: 0; }
.attachment-category-head { min-height: 72px; padding: 14px 0 9px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.attachment-category-icon { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 7px; color: #176f5b; background: #eaf4f1; }
.attachment-category-head h2 { margin: 0; color: #303734; font-size: 12px; line-height: 1.45; letter-spacing: 0; }
.attachment-category-head p { margin: 2px 0 0; color: var(--muted); font-size: 8px; line-height: 1.45; }
.attachment-category-summary { display: grid; justify-items: end; gap: 2px; }
.attachment-category-summary strong { color: #39413e; font-size: 10px; }
.attachment-category-summary span { color: var(--muted); font-size: 8px; }
.attachment-kind-summary { padding: 0 0 9px 44px; display: flex; flex-wrap: wrap; gap: 5px; }
.attachment-kind-summary span { min-height: 22px; padding: 0 7px; display: inline-flex; align-items: center; gap: 5px; border-radius: 5px; color: #606a66; background: #f1f4f3; font-size: 8px; }
.attachment-kind-summary b { color: #176f5b; font-size: 8px; }
.attachment-list { padding: 0 0 5px; }
.attachment-row { display: grid; grid-template-columns: 34px minmax(0,1.5fr) minmax(100px,.7fr) 90px 100px 34px; align-items: center; gap: 10px; min-height: 58px; border-bottom: 1px solid var(--line-soft); }
.attachment-row:last-child { border-bottom: 0; }
.attachment-kind-label { min-width: 0; overflow: hidden; color: #53605b; font-size: 9px; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.file-icon { width: 31px; height: 31px; border-radius: 5px; display: grid; place-items: center; background: #eef3f1; color: #65736e; }
.file-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 620; font-size: 11px; }
.file-meta { color: var(--muted); font-size: 9px; margin-top: 2px; }

.overlay { position: fixed; inset: 0; z-index: 100; background: rgba(15,25,22,.42); backdrop-filter: blur(2px); display: flex; align-items: center; justify-content: center; padding: 22px; animation: fade-in .15s ease; }
.modal { width: min(760px,100%); max-height: calc(100vh - 44px); background: #fff; border-radius: 8px; box-shadow: var(--shadow); overflow: hidden; display: flex; flex-direction: column; animation: modal-in .18s ease; }
.modal.modal-lg { width: min(920px,100%); }
.modal.modal-xl { width: min(1080px,100%); }
.modal.modal-sm { width: min(520px,100%); }
.modal-head { min-height: 62px; padding: 0 20px; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 12px; }
.modal-title { font-size: 16px; font-weight: 720; }
.modal-subtitle { color: var(--muted); font-size: 10px; margin-top: 2px; }
.modal-close { margin-left: auto; }
.modal-body { padding: 20px; overflow-y: auto; overscroll-behavior: contain; }
.modal-foot { min-height: 64px; padding: 12px 20px; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; align-items: center; gap: 8px; background: #fafbfb; }
.modal-foot-note { margin-right: auto; color: var(--muted); font-size: 10px; }

.segmented { display: grid; grid-template-columns: repeat(4,1fr); gap: 7px; margin-bottom: 20px; }
.form-type-segments { grid-template-columns: repeat(4,minmax(0,1fr)); }
.segment { min-height: 54px; border: 1px solid var(--line); border-radius: 6px; background: #fff; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; color: #66736f; transition: .15s ease; }
.segment:hover { border-color: #aac5bd; }
.segment.active { background: var(--teal-soft); color: var(--teal-dark); border-color: #83b7ac; box-shadow: inset 0 0 0 1px rgba(23,118,104,.06); }
.segment span { font-weight: 650; font-size: 12px; }
.form-section { margin-top: 19px; padding-top: 18px; border-top: 1px solid var(--line-soft); }
.form-section:first-of-type { margin-top: 0; padding-top: 0; border-top: 0; }
.form-section-title { display: flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; margin-bottom: 12px; }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 13px 15px; }
.form-field.span-2 { grid-column: 1 / -1; }
.field-label { display: flex; align-items: center; gap: 4px; color: #4b5854; font-size: 10px; font-weight: 650; margin-bottom: 6px; }
.required { color: var(--coral); }
.field-input, .field-select, .field-textarea { width: 100%; border: 1px solid #d9e1de; border-radius: 5px; background: #fff; transition: .15s ease; }
.field-input, .field-select { height: 37px; padding: 0 10px; }
.field-textarea { min-height: 74px; padding: 9px 10px; resize: vertical; }
.field-input:focus, .field-select:focus, .field-textarea:focus { border-color: #84b6ad; box-shadow: 0 0 0 3px rgba(23,118,104,.07); outline: 0; }
.field-hint { color: #96a09d; font-size: 9px; margin-top: 4px; }
.influence-role-field { min-width: 0; margin: 0; padding: 0; border: 0; }
.influence-role-field .field-label { padding: 0; }
.influence-role-options { display: flex; flex-wrap: wrap; gap: 7px; }
.influence-role-option { min-height: 34px; position: relative; display: inline-flex; align-items: center; cursor: pointer; }
.influence-role-option input { position: absolute; opacity: 0; pointer-events: none; }
.influence-role-option span { height: 32px; padding: 0 11px; border: 1px solid #d7e0dd; border-radius: 5px; display: inline-flex; align-items: center; color: #5d6965; background: #fff; font-size: 10px; font-weight: 620; transition: .15s ease; }
.influence-role-option:hover span { border-color: #9cbeb6; }
.influence-role-option input:focus-visible + span { outline: 2px solid rgba(23,118,104,.22); outline-offset: 2px; }
.influence-role-option input:checked + span { border-color: #78aa9f; color: #155f53; background: #edf7f4; box-shadow: inset 0 0 0 1px rgba(23,118,104,.05); }
.influence-role-other { margin-top: 8px; }
.influence-years-control { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px; }
.influence-current-option { height: 37px; position: relative; display: inline-flex; align-items: center; cursor: pointer; }
.influence-current-option input { position: absolute; opacity: 0; pointer-events: none; }
.influence-current-option span { height: 37px; padding: 0 12px; border: 1px solid #d7e0dd; border-radius: 7px; display: inline-flex; align-items: center; gap: 6px; color: #5d6965; background: #fff; font-size: 10px; font-weight: 650; white-space: nowrap; transition: .15s ease; }
.influence-current-option:hover span { border-color: #9cbeb6; }
.influence-current-option input:focus-visible + span { outline: 2px solid rgba(23,118,104,.22); outline-offset: 2px; }
.influence-current-option input:checked + span { border-color: #78aa9f; color: #155f53; background: #edf7f4; box-shadow: inset 0 0 0 1px rgba(23,118,104,.05); }
.award-entries-field { display: grid; gap: 10px; }
.award-entries-heading { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.award-entries-heading > span { min-width: 0; display: grid; gap: 2px; }
.award-entries-heading strong { color: #404a47; font-size: 11px; }
.award-entries-heading small { color: var(--muted); font-size: 9px; font-weight: 400; }
.award-entry-list { display: grid; gap: 10px; }
.award-entry-card { padding: 12px; border: 1px solid #dce4e1; border-radius: 7px; background: #fafcfb; }
.award-entry-card-head { min-height: 30px; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.award-entry-card-head strong { color: #3f4946; font-size: 10px; }
.award-entry-card-head .icon-button { margin-left: auto; color: #8b9692; }
.award-entry-card-head .icon-button:hover { color: var(--danger); background: #fff1ee; }
.award-entry-order { width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; color: #0066cc; background: #e9f3ff; font-size: 9px; font-weight: 720; }
.award-entry-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px 13px; }
.award-entry-people-head { grid-column: 1 / -1; margin-top: 2px; padding-top: 11px; border-top: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.award-entry-people-head > span { min-width: 0; display: grid; gap: 2px; }
.award-entry-people-head strong { color: #3f4946; font-size: 10px; }
.award-entry-people-head small { color: var(--muted); font-size: 8px; }
.award-entry-people-head > div { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.award-entry-people-head .btn { min-height: 28px; padding: 0 8px; }
.award-entry-grid .field-textarea { min-height: 68px; }
.award-level-list { display: flex; flex-wrap: wrap; gap: 3px; }
.award-level-list > span:not(.cell-secondary) { min-height: 20px; padding: 2px 5px; border-radius: 4px; display: inline-flex; align-items: center; color: #765719; background: #f8f0dc; font-size: 8px; line-height: 1.25; }
.award-record-meta { display: grid; gap: 2px; overflow: visible; line-height: 1.4; text-overflow: clip; white-space: normal; }
.award-record-count { color: #8a9692; }
.award-record-name-list { display: grid; gap: 1px; color: #687571; }
.award-record-name-list > span { display: block; overflow-wrap: anywhere; }
.award-detail-block { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--line-soft); }
.award-detail-heading { margin-bottom: 9px; display: flex; align-items: center; justify-content: space-between; }
.award-detail-heading strong { color: #3b4642; font-size: 11px; }
.award-detail-heading span { color: var(--muted); font-size: 9px; }
.award-detail-list { display: grid; gap: 8px; }
.award-detail-card { padding: 10px 11px; border: 1px solid var(--line); border-radius: 6px; background: #fbfcfc; }
.award-detail-card-head { display: grid; grid-template-columns: 23px minmax(0,1fr) auto; align-items: center; gap: 7px; }
.award-detail-card-head > span { width: 23px; height: 23px; border-radius: 50%; display: grid; place-items: center; color: #0066cc; background: #eaf3ff; font-size: 8px; font-weight: 720; }
.award-detail-card-head strong { overflow: hidden; color: #35403c; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.award-detail-card-head b { color: #765719; font-size: 8px; font-weight: 680; }
.award-detail-card dl { margin: 9px 0 0 30px; display: grid; grid-template-columns: 1.3fr .7fr .7fr; gap: 8px; }
.award-detail-card dl > div { min-width: 0; }
.award-detail-card dt { margin-bottom: 2px; color: var(--muted); font-size: 8px; }
.award-detail-card dd { margin: 0; overflow-wrap: anywhere; color: #46514d; font-size: 9px; }
.award-detail-people { margin: 10px 0 0 30px; padding-top: 9px; border-top: 1px solid var(--line-soft); display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.award-detail-people > div { min-width: 0; }
.award-detail-people dt { margin-bottom: 2px; color: var(--muted); font-size: 8px; }
.award-detail-people dd { margin: 0; overflow-wrap: anywhere; color: #46514d; font-size: 9px; line-height: 1.5; }
.influence-value-list, .influence-year-list { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; }
.influence-value-chip, .influence-year-list > span:not(.cell-secondary) { min-height: 22px; padding: 3px 7px; border-radius: 4px; display: inline-flex; align-items: center; color: #31685f; background: #edf5f3; font-size: 9px; font-weight: 630; line-height: 1.25; }
.influence-year-list > span:not(.cell-secondary) { color: #59666f; background: #f0f3f5; font-variant-numeric: tabular-nums; }

.drop-zone { min-height: 112px; border: 1.5px dashed #b9cac5; border-radius: 6px; background: #f8fbfa; display: grid; place-items: center; text-align: center; padding: 16px; cursor: pointer; transition: .15s ease; }
.drop-zone:hover, .drop-zone.dragging { border-color: var(--teal); background: #f0f8f5; }
.drop-zone-icon { color: var(--teal); margin-bottom: 7px; }
.drop-zone-title { font-size: 11px; font-weight: 680; }
.drop-zone-copy { margin-top: 3px; color: var(--muted); font-size: 9px; }
.form-attachment-drop-zone { cursor: default; }
.form-attachment-actions { margin-top: 12px; display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px; }
.student-personal-material-section { background: #fbfcfc; }
.student-personal-material-privacy { margin-bottom: 10px; padding: 8px 10px; display: flex; align-items: flex-start; gap: 7px; border-left: 3px solid #3f8b79; color: #52625d; background: #f0f7f4; font-size: 9px; line-height: 1.6; }
.student-personal-material-privacy .icon { flex: 0 0 auto; margin-top: 1px; color: #287461; }
.student-material-drop-zone { border-color: #a9c9bf; background: #f6faf8; }
.student-material-drop-zone .drop-zone-icon { color: #287461; }
.field-hint-recognized { color: #18705c !important; font-weight: 650; }
.mobile-upload-panel { min-height: 88px; margin-top: 10px; padding: 14px; display: grid; grid-template-columns: 148px minmax(0,1fr) auto; align-items: center; gap: 16px; border: 1px solid #c9ddd6; border-radius: 8px; background: #f6fbf9; }
.mobile-upload-panel.loading, .mobile-upload-panel.error { grid-template-columns: 34px minmax(0,1fr) auto; min-height: 76px; }
.mobile-upload-panel.loading > .icon-lg { color: var(--teal); }
.mobile-upload-panel.error { border-color: #ead2cd; background: #fff8f6; }
.mobile-upload-panel.error > .icon-lg { color: var(--coral); }
.mobile-upload-panel > div > strong { display: block; color: #2f3935; font-size: 11px; }
.mobile-upload-panel > div > span { display: block; margin-top: 4px; color: var(--muted); font-size: 9px; line-height: 1.55; }
.mobile-upload-qr { width: 148px; height: 148px; padding: 8px; display: grid; place-items: center; border: 1px solid #d8e3df; border-radius: 7px; background: #fff; }
.mobile-upload-qr svg { width: 100%; height: 100%; display: block; }
.mobile-upload-copy { min-width: 0; }
.mobile-upload-copy strong { font-size: 13px !important; }
.mobile-upload-copy span { max-width: 390px; font-size: 10px !important; }
.mobile-upload-copy small { margin-top: 10px; display: flex; align-items: center; gap: 5px; color: #477265; font-size: 9px; }
.mobile-upload-actions { display: grid; gap: 7px; }
@media (max-width: 640px) {
  .influence-years-control { grid-template-columns: 1fr; }
  .influence-current-option, .influence-current-option span { width: 100%; }
  .influence-current-option span { justify-content: center; }
  .form-attachment-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .form-attachment-actions .btn { width: 100%; }
  .mobile-upload-panel, .mobile-upload-panel.loading, .mobile-upload-panel.error { grid-template-columns: 1fr; justify-items: center; text-align: center; }
  .mobile-upload-copy small { justify-content: center; }
  .mobile-upload-actions { width: 100%; grid-template-columns: 1fr 1fr; }
}
.upload-list { display: grid; gap: 7px; margin-top: 10px; }
.upload-item { min-height: 44px; padding: 6px 8px; display: flex; align-items: center; gap: 9px; border: 1px solid var(--line); border-radius: 5px; background: #fff; }
.upload-item.previewing { border-color: rgba(0,113,227,.38); background: #f6faff; box-shadow: inset 3px 0 0 #0071e3; }
.upload-item.activity-cover-selected { border-color: rgba(0,113,227,.32); background: #f6faff; }
.upload-item-name { min-width: 0; flex: 1; font-size: 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.upload-item-preview-trigger { padding: 0; border: 0; color: #37433f; background: transparent; text-align: left; cursor: pointer; }
.upload-item-preview-trigger:hover { color: #0066cc; text-decoration: underline; text-underline-offset: 2px; }
.upload-item-size { color: var(--muted); font-size: 9px; }
.activity-cover-choice { min-height: 29px; padding: 0 8px; display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; border: 1px solid rgba(0,0,0,.1); border-radius: 5px; color: #66726e; background: #fff; font: inherit; font-size: 8px; font-weight: 650; cursor: pointer; }
.activity-cover-choice:hover { color: #0066cc; border-color: rgba(0,113,227,.3); background: #f3f8ff; }
.activity-cover-choice.active { color: #fff; border-color: #0071e3; background: #0071e3; }
.activity-cover-choice.active .icon { fill: currentColor; }
.influence-activity-link { margin-top: 12px; padding: 12px; border: 1px solid #d9e2df; border-radius: 7px; display: grid; gap: 11px; background: #f8faf9; }
.influence-activity-link.enabled { border-color: rgba(49,117,97,.34); background: #f3f8f6; }
.influence-activity-link.existing { grid-template-columns: 28px minmax(0,1fr); align-items: center; gap: 9px; color: #246452; background: #f0f7f4; }
.influence-activity-link.existing > .icon { width: 20px; height: 20px; }
.influence-activity-link.existing > span { min-width: 0; display: grid; gap: 3px; }
.influence-activity-link.existing strong { font-size: 10px; }
.influence-activity-link.existing small { overflow: hidden; color: #668078; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.influence-activity-toggle { min-width: 0; display: grid; grid-template-columns: 18px 30px minmax(0,1fr); align-items: center; gap: 9px; cursor: pointer; }
.influence-activity-toggle > input { width: 16px; height: 16px; margin: 0; accent-color: #317561; }
.influence-activity-toggle > span:nth-of-type(1) { width: 30px; height: 30px; border-radius: 6px; display: grid; place-items: center; color: #315f55; background: #e5f1ed; }
.influence-activity-toggle > span:last-child { min-width: 0; display: grid; gap: 3px; }
.influence-activity-toggle strong { color: #2d3935; font-size: 10px; font-weight: 700; }
.influence-activity-toggle small { color: #74817c; font-size: 8px; line-height: 1.45; }
.influence-activity-fields { padding-top: 11px; border-top: 1px solid #dce6e2; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 12px; }
.influence-activity-note { display: flex; align-items: center; gap: 6px; color: #71807a; font-size: 8px; line-height: 1.5; }
.influence-activity-note .icon { width: 13px; height: 13px; flex: 0 0 auto; }
@media (max-width: 620px) {
  .influence-activity-fields { grid-template-columns: 1fr; }
  .influence-activity-fields .span-2 { grid-column: auto; }
  .influence-activity-toggle { grid-template-columns: 18px 28px minmax(0,1fr); gap: 7px; }
  .influence-activity-toggle > span:nth-of-type(1) { width: 28px; height: 28px; }
}
.preview-file, .remove-file { width: 28px; height: 28px; flex: 0 0 28px; border: 0; border-radius: 5px; background: transparent; color: #899590; cursor: pointer; display: grid; place-items: center; }
.preview-file:hover { color: #0066cc; background: #edf5ff; }
.remove-file:hover { color: var(--danger); }

.achievement-form-workspace { min-height: 0; flex: 1; display: grid; grid-template-columns: minmax(0,1fr); overflow: hidden; }
.achievement-form-workspace > .modal-body { min-height: 0; }
.achievement-form-modal.has-attachment-preview { width: min(1480px,100%); height: calc(100vh - 32px); max-height: calc(100vh - 32px); }
.achievement-form-modal.has-attachment-preview .achievement-form-workspace { grid-template-columns: minmax(520px,.92fr) minmax(440px,1.08fr); }
.attachment-preview-pane { min-width: 0; min-height: 0; border-left: 1px solid var(--line); display: flex; flex-direction: column; overflow: hidden; background: #f3f4f6; }
.attachment-preview-head { min-height: 56px; padding: 8px 12px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 30px minmax(0,1fr) 32px 32px; align-items: center; gap: 7px; background: rgba(255,255,255,.94); }
.attachment-preview-head > span:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.attachment-preview-head strong { overflow: hidden; color: #303538; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.attachment-preview-head small { color: var(--muted); font-size: 8px; }
.attachment-preview-file-icon { width: 30px; height: 30px; border-radius: 6px; display: grid; place-items: center; color: #50605b; background: #edf1f0; }
.attachment-preview-body { min-height: 0; flex: 1; position: relative; overflow: auto; display: flex; flex-direction: column; }
.attachment-preview-frame { width: 100%; height: 100%; min-height: 560px; flex: 1; border: 0; background: #fff; }
.attachment-preview-image-wrap, .attachment-preview-video-wrap { min-height: 100%; padding: 22px; display: grid; place-items: center; }
.attachment-preview-image { max-width: 100%; max-height: 100%; object-fit: contain; background: #fff; box-shadow: 0 8px 28px rgba(0,0,0,.12); }
.attachment-preview-video { max-width: 100%; max-height: 100%; background: #111; }
.attachment-preview-text { min-height: 100%; margin: 0; padding: 22px; overflow: auto; color: #303538; background: #fff; font: 10px/1.7 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; overflow-wrap: anywhere; }
.attachment-preview-state { min-height: 100%; padding: 30px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 9px; color: #62706b; text-align: center; }
.attachment-preview-state .icon-lg { color: #0071e3; }
.attachment-preview-state .spin { animation: spin .8s linear infinite; }
.attachment-preview-state strong { color: #303538; font-size: 12px; }
.attachment-preview-state span { max-width: 330px; color: var(--muted); font-size: 9px; line-height: 1.55; }
.attachment-preview-state.error .icon-lg { color: var(--danger); }
.attachment-preview-state.unsupported { min-height: 240px; }
.attachment-preview-recognized { margin: 0 16px 16px; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; background: #fff; }
.attachment-preview-recognized > div { padding: 8px 10px; border-bottom: 1px solid var(--line-soft); color: #56615d; font-size: 9px; font-weight: 680; }
.attachment-preview-recognized pre { max-height: 300px; margin: 0; padding: 10px; overflow: auto; color: #5b6461; font: 9px/1.6 ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre-wrap; }

@media (max-width: 1050px) {
  .achievement-form-modal.has-attachment-preview .achievement-form-workspace { grid-template-columns: minmax(440px,1fr) minmax(360px,.9fr); }
  .attachment-preview-frame { min-height: 480px; }
}

@media (max-width: 760px) {
  .achievement-form-modal.has-attachment-preview { height: calc(100vh - 20px); max-height: calc(100vh - 20px); }
  .achievement-form-modal.has-attachment-preview .achievement-form-workspace { display: flex; flex-direction: column; overflow-y: auto; }
  .achievement-form-modal.has-attachment-preview .achievement-form-workspace > .modal-body { flex: 0 0 auto; overflow: visible; }
  .attachment-preview-pane { min-height: 62vh; flex: 0 0 62vh; border-top: 1px solid var(--line); border-left: 0; }
  .attachment-preview-frame { min-height: 0; }
  .upload-item { flex-wrap: wrap; }
  .upload-item-size { margin-left: 40px; }
  .upload-item .filter-select { margin-left: auto; }
  .award-entries-heading { align-items: flex-start; }
  .award-entries-heading .btn { flex: 0 0 auto; }
  .award-entry-grid { grid-template-columns: 1fr; }
  .award-entry-grid .span-2 { grid-column: auto; }
  .award-entry-people-head { align-items: flex-start; flex-direction: column; }
  .award-entry-people-head > div { justify-content: flex-start; }
  .award-detail-card-head { grid-template-columns: 23px minmax(0,1fr); }
  .award-detail-card-head b { grid-column: 2; }
  .award-detail-card dl { margin-left: 30px; grid-template-columns: 1fr; }
  .award-detail-people { margin-left: 30px; grid-template-columns: 1fr; }
}

.drawer-overlay { position: fixed; inset: 0; z-index: 90; background: rgba(15,25,22,.3); animation: fade-in .15s ease; }
.drawer { position: fixed; inset: 0 0 0 auto; width: min(560px, 96vw); z-index: 91; background: #fff; box-shadow: -16px 0 40px rgba(20,39,33,.15); display: flex; flex-direction: column; animation: drawer-in .2s ease; }
.drawer-head { padding: 18px 20px; border-bottom: 1px solid var(--line); }
.drawer-head-top { display: flex; align-items: center; gap: 9px; }
.drawer-title { margin: 10px 0 0; font-size: 18px; line-height: 1.45; }
.drawer-body { overflow-y: auto; padding: 0 20px 30px; }
.drawer-section { padding: 18px 0; border-bottom: 1px solid var(--line-soft); }
.drawer-section:last-child { border-bottom: 0; }
.drawer-section-title { margin-bottom: 12px; font-weight: 700; font-size: 12px; }
.detail-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 20px; }
.detail-item.span-2 { grid-column: 1/-1; }
.detail-label { color: var(--muted); font-size: 9px; margin-bottom: 3px; }
.detail-value { min-height: 17px; color: #35423e; font-size: 11px; word-break: break-word; }
.detail-value:empty { border-bottom: 1px dashed rgba(29, 29, 31, 0.14); }
.drawer-attachment { display: flex; align-items: center; gap: 10px; padding: 9px; border: 1px solid var(--line); border-radius: 6px; margin-top: 7px; }
.drawer-attachment-info { flex: 1; min-width: 0; }
.activity-detail-gallery { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.activity-detail-photo { position: relative; min-width: 0; padding: 0; aspect-ratio: 4 / 3; overflow: hidden; border: 1px solid #dce3e0; border-radius: 6px; background: #edf1ef; }
.activity-detail-photo-open { position: absolute; inset: 0; width: 100%; height: 100%; padding: 0; border: 0; background: transparent; cursor: zoom-in; }
.activity-detail-photo-order { position: absolute; z-index: 2; top: 6px; right: 6px; display: flex; gap: 3px; }
.activity-detail-photo-order .icon-button { width: 25px; height: 25px; color: #34433e; background: rgba(255,255,255,.9); box-shadow: 0 2px 7px rgba(15,23,20,.16); }
.activity-detail-photo-order .icon-button:hover:not(:disabled) { color: #fff; background: #0071e3; }
.activity-detail-photo-order .icon-button:disabled { opacity: .38; cursor: default; }
.activity-detail-photo img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .18s ease; }
.activity-detail-photo-open:hover img { transform: scale(1.025); }
.activity-detail-photo-index { position: absolute; right: 6px; bottom: 6px; min-width: 21px; height: 21px; padding: 0 5px; display: grid; place-items: center; border-radius: 4px; background: rgba(15,23,20,.74); color: #fff; font-size: 8px; font-weight: 700; }
.activity-detail-cover { position: absolute; top: 6px; left: 6px; min-height: 22px; padding: 0 6px; display: inline-flex; align-items: center; gap: 3px; border-radius: 4px; background: rgba(255,255,255,.92); color: #8a6414; font-size: 8px; font-weight: 700; }
.activity-detail-cover svg { width: 11px; height: 11px; }
.activity-detail-files { margin-top: 12px; padding-top: 5px; border-top: 1px solid var(--line-soft); }
.activity-relationship-heading { min-height: 31px; margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.activity-relationship-heading .drawer-section-title { margin-bottom: 0; }
.activity-relationship-list, .activity-related-photo-list { display: grid; gap: 7px; }
.activity-relationship-row, .activity-related-photo { width: 100%; min-width: 0; padding: 8px; border: 1px solid var(--line); border-radius: 7px; display: grid; grid-template-columns: 30px minmax(0,1fr) 18px; align-items: center; gap: 9px; color: inherit; background: #fff; text-align: left; cursor: pointer; }
.activity-relationship-row:hover, .activity-related-photo:hover { border-color: rgba(0,113,227,.27); background: #f8fbff; }
.activity-relationship-row > span:first-child { width: 30px; height: 30px; border-radius: 6px; display: grid; place-items: center; color: #356d60; background: #edf6f2; }
.activity-relationship-row > span:nth-child(2), .activity-related-photo > span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.activity-relationship-row strong, .activity-related-photo strong { overflow: hidden; color: #303936; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.activity-relationship-row small, .activity-related-photo small { overflow: hidden; color: #7c8984; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.activity-relationship-row > b, .activity-related-photo > b { color: #8d9793; }
.activity-related-photo { grid-template-columns: 68px minmax(0,1fr) 18px; padding: 6px; }
.activity-related-photo-cover { width: 68px; aspect-ratio: 16 / 10; overflow: hidden; border-radius: 5px; display: grid; place-items: center; color: #74817c; background: #edf1ef; }
.activity-related-photo-cover img, .activity-related-photo-cover .activity-card-placeholder { width: 100%; height: 100%; object-fit: cover; }
.activity-related-photo-cover .activity-card-placeholder { gap: 2px; font-size: 0; }
.activity-related-photo-cover .activity-card-placeholder .icon { width: 19px; height: 19px; }

.activity-link-review-modal { width: min(1060px,100%); }
.activity-link-review-body { display: grid; gap: 14px; background: #f7f8fa; }
.activity-link-activity-summary { min-width: 0; padding: 11px; border: 1px solid rgba(0,0,0,.08); border-radius: 8px; display: grid; grid-template-columns: 150px minmax(0,1fr); align-items: center; gap: 13px; background: #fff; }
.activity-link-activity-cover { aspect-ratio: 16 / 9; overflow: hidden; border-radius: 6px; display: grid; place-items: center; color: #74817c; background: #edf1ef; }
.activity-link-activity-cover img, .activity-link-activity-cover .activity-card-placeholder { width: 100%; height: 100%; object-fit: cover; }
.activity-link-activity-cover .activity-card-placeholder { font-size: 8px; }
.activity-link-activity-summary > div:last-child { min-width: 0; display: grid; gap: 6px; }
.activity-link-activity-summary label { color: #6f7a76; font-size: 8px; font-weight: 680; }
.activity-link-activity-summary .field-select { width: 100%; min-width: 0; }
.activity-link-activity-summary p { margin: 0; overflow: hidden; color: #7f8a86; font-size: 8.5px; text-overflow: ellipsis; white-space: nowrap; }
.activity-link-tabs { min-height: 37px; padding: 3px; border: 1px solid rgba(0,0,0,.075); border-radius: 7px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3px; background: #eceeed; }
.activity-link-tabs button { min-width: 0; border: 0; border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; color: #65706c; background: transparent; font: inherit; font-size: 9px; font-weight: 650; cursor: pointer; }
.activity-link-tabs button.active { color: #1f5e51; background: #fff; box-shadow: 0 1px 5px rgba(24,35,31,.08); }
.activity-link-tabs span { min-width: 18px; height: 18px; padding: 0 5px; display: inline-grid; place-items: center; border-radius: 5px; color: #65706c; background: rgba(0,0,0,.055); font-size: 7.5px; }
.activity-link-tabs button.active span { color: #1f5e51; background: #e8f3ef; }
.activity-link-search { min-height: 39px; padding: 3px 4px 3px 10px; border: 1px solid rgba(0,0,0,.1); border-radius: 7px; display: grid; grid-template-columns: 18px minmax(0,1fr) auto auto; align-items: center; gap: 6px; background: #fff; }
.activity-link-search > span { color: #78847f; }
.activity-link-search input { width: 100%; min-width: 0; height: 31px; border: 0; outline: 0; color: #2e3734; background: transparent; font: inherit; font-size: 9.5px; }
.activity-link-search .icon-button { width: 31px; height: 31px; }
.activity-link-readonly { min-height: 39px; padding: 9px 11px; border-radius: 7px; display: flex; align-items: center; gap: 7px; color: #686e78; background: #eef1f5; font-size: 8.5px; }
.activity-link-bulk-bar { min-height: 42px; padding: 6px 8px 6px 11px; border: 1px solid rgba(49,95,85,.13); border-radius: 7px; display: flex; align-items: center; gap: 10px; background: #f0f6f4; }
.activity-link-bulk-bar > label { display: inline-flex; align-items: center; gap: 7px; color: #3f514b; font-size: 8.5px; font-weight: 650; cursor: pointer; }
.activity-link-bulk-bar > span { margin-left: auto; color: #687670; font-size: 8.5px; }
.activity-link-bulk-bar .btn { color: #80531a; border-color: rgba(159,104,35,.2); background: #fff7e9; }
.activity-link-list { display: grid; gap: 8px; }
.activity-link-item { min-width: 0; padding: 10px; position: relative; border: 1px solid rgba(0,0,0,.08); border-radius: 8px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 8px 12px; background: #fff; }
.activity-link-item.selectable.selected { border-color: rgba(49,117,97,.38); background: #f6fbf9; box-shadow: inset 0 0 0 1px rgba(49,117,97,.05); }
.activity-link-check { width: 25px; height: 32px; position: absolute; z-index: 2; top: 10px; left: 10px; display: grid; place-items: center; cursor: pointer; }
.activity-link-item.selectable .activity-link-item-main { padding-left: 30px; }
.activity-link-item-main { min-width: 0; padding: 0; border: 0; display: grid; grid-template-columns: 32px minmax(0,1fr) auto 16px; align-items: center; gap: 9px; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.activity-link-type { width: 32px; height: 32px; border-radius: 6px; display: grid; place-items: center; color: #326b5e; background: #eaf4f0; }
.activity-link-copy { min-width: 0; display: grid; gap: 3px; }
.activity-link-copy strong, .activity-link-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.activity-link-copy strong { color: #29322f; font-size: 10px; }
.activity-link-copy small { color: #7c8783; font-size: 8px; }
.activity-link-confidence { min-height: 23px; padding: 0 7px; border-radius: 5px; display: inline-flex; align-items: center; color: #855b1c; background: #fff1d8; font-size: 7.5px; font-weight: 700; white-space: nowrap; }
.activity-link-confidence.high { color: #246552; background: #e7f4ee; }
.activity-link-open { color: #8f9995; }
.activity-link-reasons { grid-column: 1; min-width: 0; padding-left: 41px; display: flex; flex-wrap: wrap; gap: 5px; }
.activity-link-item.selectable .activity-link-reasons { padding-left: 71px; }
.activity-link-reasons span { min-height: 22px; padding: 0 6px; border-radius: 5px; display: inline-flex; align-items: center; gap: 4px; color: #5d6c66; background: #f0f3f2; font-size: 7.5px; }
.activity-link-reasons .icon { width: 10px; height: 10px; color: #40806e; }
.activity-link-actions { grid-column: 2; grid-row: 1 / 3; display: flex; align-items: center; gap: 6px; }
.activity-link-empty { min-height: 180px; padding: 24px; display: grid; place-items: center; align-content: center; gap: 7px; color: #8a9490; text-align: center; }
.activity-link-empty .icon-lg { width: 30px; height: 30px; color: #648078; }
.activity-link-empty strong { color: #4f5e59; font-size: 11px; }
.activity-link-empty span { font-size: 8.5px; }
.activity-viewer-overlay { padding: 18px; background: rgba(5,8,7,.86); backdrop-filter: blur(10px); }
.activity-viewer-modal { width: min(1180px,96vw); height: min(860px,calc(100vh - 36px)); overflow: hidden; display: flex; flex-direction: column; background: #101412; color: #f5f7f6; box-shadow: 0 30px 90px rgba(0,0,0,.48); animation: modal-in .18s ease; }
.activity-viewer-head { min-height: 62px; padding: 10px 14px 10px 18px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid rgba(255,255,255,.1); }
.activity-viewer-head > div:first-child { min-width: 0; display: grid; gap: 3px; }
.activity-viewer-head strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 13px; }
.activity-viewer-head span { color: #aeb9b5; font-size: 9px; }
.activity-viewer-head-actions { display: flex; gap: 6px; }
.activity-viewer-head .icon-button { color: #fff; border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.08); }
.activity-viewer-main { flex: 1; min-height: 0; display: grid; grid-template-columns: 52px minmax(0,1fr) 52px; align-items: stretch; }
.activity-viewer-stage { min-width: 0; min-height: 0; margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; background: #080b0a; }
.activity-viewer-stage img { width: 100%; min-height: 0; flex: 1; object-fit: contain; }
.activity-viewer-stage figcaption { width: 100%; min-height: 54px; padding: 8px 12px; display: flex; align-items: center; justify-content: space-between; gap: 14px; background: #151a18; }
.activity-viewer-stage figcaption strong { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.activity-viewer-stage figcaption span { flex: 0 0 auto; color: #9ba7a2; font-size: 9px; }
.activity-viewer-nav { border: 0; background: transparent; color: #dfe6e3; cursor: pointer; }
.activity-viewer-nav:hover { background: rgba(255,255,255,.06); color: #fff; }
.activity-viewer-nav svg { width: 26px; height: 26px; }
.activity-viewer-strip { flex: 0 0 92px; padding: 10px 14px; display: flex; gap: 8px; overflow-x: auto; border-top: 1px solid rgba(255,255,255,.1); background: #151a18; }
.activity-viewer-strip button { position: relative; width: 88px; flex: 0 0 88px; padding: 0; overflow: hidden; border: 2px solid transparent; border-radius: 5px; background: #252c29; opacity: .66; cursor: pointer; }
.activity-viewer-strip button.active { border-color: #64b89d; opacity: 1; }
.activity-viewer-strip img { display: block; width: 100%; height: 100%; object-fit: cover; }
.activity-viewer-strip span { position: absolute; right: 3px; bottom: 3px; min-width: 18px; height: 18px; padding: 0 4px; display: grid; place-items: center; border-radius: 3px; background: rgba(0,0,0,.68); color: #fff; font-size: 8px; }
.external-managed-note { display: inline-flex; align-items: center; gap: 6px; color: #176a5c; font-size: 9px; font-weight: 620; }
.drawer-foot { margin-top: auto; min-height: 64px; padding: 12px 20px; background: #fafbfb; border-top: 1px solid var(--line); display: flex; align-items: center; gap: 8px; }

.import-options { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin-top: 15px; }
.import-archive-entry { min-height: 58px; margin-top: 12px; padding: 9px 10px; display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 9px; border: 1px solid #d8e5e1; border-radius: 7px; background: #f7faf9; }
.import-archive-entry > span:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.import-archive-entry strong { color: #30383c; font-size: 10px; }
.import-archive-entry small { color: var(--muted); font-size: 8px; line-height: 1.45; }
.option-card { border: 1px solid var(--line); border-radius: 6px; padding: 12px; display: flex; gap: 9px; align-items: flex-start; }
.option-card input { accent-color: var(--teal); margin-top: 2px; }
.option-title { font-size: 11px; font-weight: 680; }
.option-copy { color: var(--muted); font-size: 9px; margin-top: 2px; }
.import-result { margin-top: 14px; padding: 12px; background: var(--teal-soft); color: var(--teal-dark); border-radius: 6px; display: flex; align-items: center; gap: 9px; font-size: 11px; }

.modal.modal-lg.export-modal { width: min(1120px,calc(100vw - 36px)); }
.export-layout { display: grid; grid-template-columns: minmax(500px,1.25fr) minmax(360px,.95fr); gap: 20px; }
.export-block { border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.export-block-title { height: 40px; padding: 0 12px; background: #f7f9f8; border-bottom: 1px solid var(--line); display: flex; align-items: center; font-size: 11px; font-weight: 700; }
.scope-list { padding: 10px 16px; }
.scope-option { display: flex; align-items: flex-start; gap: 10px; padding: 10px 0; cursor: pointer; }
.scope-option input { accent-color: var(--teal); margin-top: 2px; }
.scope-option > span { min-width: 0; }
.scope-title { font-size: 11px; font-weight: 650; line-height: 1.4; }
.scope-copy { margin-top: 3px; color: var(--muted); font-size: 9.5px; line-height: 1.55; }
.field-picker { padding: 10px 12px; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; max-height: 224px; overflow-y: auto; }
.field-check { display: flex; align-items: center; gap: 7px; font-size: 10px; min-width: 0; }
.field-check input { accent-color: var(--teal); }
.selected-fields { margin-top: 13px; }
.selected-fields-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 7px; font-size: 10px; font-weight: 700; }
.field-order { min-height: 44px; display: flex; flex-wrap: wrap; gap: 6px; padding: 8px; background: #f7f9f8; border: 1px solid var(--line); border-radius: 6px; }
.field-chip { display: inline-flex; height: 27px; align-items: center; gap: 5px; padding: 0 8px; border: 1px solid #d3dedb; border-radius: 4px; background: #fff; color: #47544f; font-size: 9px; cursor: grab; user-select: none; }
.field-chip.dragging { opacity: .45; }
.export-preview { margin-top: 13px; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; }
.preview-table-wrap { overflow-x: auto; max-height: 150px; }
.preview-table { border-collapse: collapse; min-width: 100%; font-size: 9px; }
.preview-table th { background: #1c5d52; color: #fff; text-align: left; padding: 7px 9px; white-space: nowrap; }
.preview-table td { padding: 6px 9px; border-bottom: 1px solid var(--line-soft); white-space: nowrap; max-width: 170px; overflow: hidden; text-overflow: ellipsis; }

.confirm-copy { color: #596662; font-size: 12px; margin: 5px 0 0; }
.confirm-record { margin-top: 12px; padding: 10px; border-radius: 5px; background: #f7f9f8; font-size: 11px; font-weight: 650; }

.toast-root, #toast-root { position: fixed; z-index: 200; right: 22px; top: 82px; display: grid; gap: 8px; pointer-events: none; }
.toast { min-width: 270px; max-width: 380px; min-height: 48px; padding: 10px 13px; border-radius: 6px; background: #1f2c28; color: #fff; box-shadow: var(--shadow); display: flex; align-items: center; gap: 9px; animation: toast-in .2s ease; }
.toast.success .toast-icon { color: #77c5a6; }
.toast.error .toast-icon { color: #f0a38e; }
.toast-copy { min-width: 0; }
.toast-title { font-size: 11px; font-weight: 700; }
.toast-message { color: #b8c5c0; font-size: 9px; margin-top: 1px; }

.loading-screen { min-height: 100vh; display: grid; place-items: center; color: var(--teal); }
.loading-mark { width: 42px; height: 42px; border: 3px solid #d8eae5; border-top-color: var(--teal); border-radius: 50%; animation: spin .8s linear infinite; }
.mobile-backdrop { display: none; }

@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes modal-in { from { opacity: 0; transform: translateY(8px) scale(.99); } to { opacity: 1; transform: none; } }
@keyframes drawer-in { from { transform: translateX(26px); opacity: .6; } to { transform: none; opacity: 1; } }
@keyframes toast-in { from { transform: translateY(-8px); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes spin { to { transform: rotate(360deg); } }

@media (max-width: 1100px) {
  .influence-module-nav { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .external-summary-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .metrics-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .analytics-grid { grid-template-columns: 1fr; }
  .distribution { grid-template-columns: 150px 1fr; }
  .col-updated { display: none; }
  .export-layout { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  :root { --sidebar-w: 236px; }
  .app-shell { display: block; }
  .sidebar { transform: translateX(-100%); transition: transform .2s ease; }
  .sidebar.open { transform: none; }
  .mobile-backdrop { position: fixed; inset: 0; background: rgba(12,20,17,.38); z-index: 19; display: block; }
  .main-shell { width: 100%; }
  .topbar { height: 59px; padding: 0 15px; gap: 10px; }
  .icon-button.mobile-menu { display: grid; }
  .global-search { width: auto; flex: 1; }
  .global-search input { padding-right: 10px; }
  .search-key, .profile-copy, .topbar .notification-button { display: none; }
  .main-content { padding: 18px 15px 32px; }
  .page-head { align-items: flex-start; flex-wrap: wrap; margin-bottom: 17px; }
  .page-title { font-size: 21px; }
  .page-actions { width: 100%; margin-left: 0; }
  .page-actions .btn { flex: 1; }
  .external-library-head .page-actions { display: grid; grid-template-columns: 1fr 1fr; }
  .external-summary-grid { gap: 8px; }
  .external-summary-grid section { min-height: 72px; padding: 11px; }
  .external-folder-drop { grid-template-columns: 32px minmax(0,1fr); }
  .external-folder-drop .btn { display: none; }
  .external-library-toolbar { flex-wrap: wrap; }
  .external-library-toolbar .toolbar-tabs { width: 100%; }
  .influence-module-nav { margin-top: -3px; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
  .influence-module-card { min-height: 74px; padding: 10px; }
  .influence-module-card:first-child { grid-column: 1 / -1; }
  .metrics-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
  .metric-card { min-height: 102px; padding: 14px; }
  .metric-number { font-size: 23px; }
  .analytics-grid { gap: 9px; }
  .trend-chart { height: 200px; padding-left: 40px; }
  .chart-grid { left: 40px; }
  .distribution { grid-template-columns: 126px 1fr; gap: 10px; }
  .donut { width: 116px; height: 116px; }
  .table-toolbar { flex-wrap: wrap; }
  .toolbar-tabs { order: 1; width: 100%; }
  .tab-button { flex: 1; }
  .toolbar-spacer { display: none; }
  .filter-select { flex: 1; min-width: 120px; }
  .data-table { min-width: 720px; }
  .attachment-summary { grid-template-columns: 1fr; gap: 8px; }
  .attachment-panel-head { height: auto; padding: 11px 12px; display: grid; grid-template-columns: minmax(0,1fr); gap: 3px; }
  .attachment-panel-head .panel-caption { margin-left: 0; line-height: 1.45; }
  .attachment-panel-head .panel-actions { width: 100%; margin: 7px 0 0; display: grid; grid-template-columns: 1fr 1fr; }
  .attachment-category-index { padding: 9px 12px; }
  .attachment-groups { padding: 0 12px 9px; }
  .attachment-category-head { grid-template-columns: 32px minmax(0,1fr) auto; }
  .attachment-category-icon { width: 32px; height: 32px; }
  .attachment-kind-summary { padding-left: 42px; }
  .attachment-row { grid-template-columns: 34px minmax(0,1fr) 70px 34px; }
  .attachment-row > :nth-child(3), .attachment-row > :nth-child(4) { display: none; }
  .modal-body { padding: 16px; }
  .segmented, .form-type-segments { grid-template-columns: repeat(2,1fr); }
  .form-grid { grid-template-columns: 1fr; }
  .form-field.span-2 { grid-column: auto; }
  .import-options { grid-template-columns: 1fr; }
  .import-archive-entry { grid-template-columns: 30px minmax(0,1fr); }
  .import-archive-entry .btn { grid-column: 1/-1; width: 100%; justify-content: center; }
  .detail-grid { grid-template-columns: 1fr; }
  .detail-item.span-2 { grid-column: auto; }
  .field-picker { grid-template-columns: 1fr; }
  .export-modal .modal-foot { min-height: 104px; flex-wrap: wrap; padding: 10px 14px; }
  .export-modal .modal-foot-note { width: 100%; flex: 1 0 100%; margin-right: 0; line-height: 1.4; white-space: normal; }
  .export-modal .modal-foot .btn { min-width: 0; flex: 1 1 calc(50% - 4px); justify-content: center; }
  .overlay { padding: 10px; align-items: flex-end; }
  .modal { max-height: calc(100vh - 20px); border-radius: 8px 8px 0 0; }
  #toast-root { left: 14px; right: 14px; top: 70px; }
  .toast { min-width: 0; max-width: none; width: 100%; }
}

/* Student cultivation registry */
.training-results-panel { min-width: 0; }
.training-data-table { min-width: 1320px; }
.training-data-table .student-col-name { width: 150px; }
.training-data-table .student-col-nationality { width: 86px; }
.training-data-table .student-col-category { width: 105px; }
.training-data-table .student-col-cohort { width: 100px; }
.training-data-table .student-col-destination { width: 210px; }
.training-data-table .student-col-current { width: 185px; }
.training-data-table .student-col-awards { width: 205px; }
.training-data-table .student-col-files { width: 105px; }
.student-nationality { min-height: 24px; padding: 0 8px; border-radius: 4px; display: inline-flex; align-items: center; color: #2e675c; background: #e7f2ef; font-size: 9px; font-weight: 650; white-space: nowrap; }
.student-nationality.pending { color: #91641d; background: #fff4df; }
.student-award-summary { min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.student-award-summary span { max-width: 154px; padding: 3px 6px; overflow: hidden; border-radius: 4px; color: #71531d; background: #f8efd9; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.student-award-summary small { color: #8f7851; font-size: 8px; }
.student-award-empty { color: #9aa29f; font-size: 9px; }
.student-degree-path { white-space: normal; line-height: 1.45; overflow-wrap: anywhere; }
.training-degree-field .influence-role-options { margin-bottom: 2px; }
.training-stage-field { display: grid; gap: 9px; }
.training-stage-heading > span { min-width: 0; display: grid; gap: 2px; }
.training-stage-heading strong { color: #404a47; font-size: 11px; }
.training-stage-heading small { color: var(--muted); font-size: 9px; font-weight: 400; }
.training-stage-list { display: grid; gap: 8px; }
.training-stage-row { min-width: 0; padding: 10px 11px; border: 1px solid #dce4e1; border-radius: 7px; background: #fafcfb; display: grid; grid-template-columns: 105px repeat(2,minmax(0,1fr)); align-items: end; gap: 11px; }
.training-stage-degree { min-height: 37px; display: grid; align-content: center; gap: 2px; }
.training-stage-degree span { color: #155f53; font-size: 11px; font-weight: 700; }
.training-stage-degree small { color: var(--muted); font-size: 8px; }
.training-stage-row .form-field { min-width: 0; }
.training-stage-empty { min-height: 46px; padding: 11px 12px; border: 1px dashed #ccd9d5; border-radius: 7px; display: flex; align-items: center; gap: 8px; color: var(--muted); background: #fafcfb; font-size: 10px; }
.student-stage-summary { min-width: 0; display: grid; gap: 4px; }
.student-stage-summary > span { min-width: 0; display: grid; gap: 1px; }
.student-stage-summary b { color: #35443f; font-size: 9px; font-weight: 680; }
.student-stage-summary small { color: var(--muted); font-size: 8px; line-height: 1.35; white-space: normal; }
.student-destination-field { display: grid; gap: 9px; }
.student-destination-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.student-destination-heading > span { min-width: 0; display: grid; gap: 2px; }
.student-destination-heading strong { color: #404a47; font-size: 11px; }
.student-destination-heading small { color: var(--muted); font-size: 9px; font-weight: 400; }
.student-destination-list { display: grid; gap: 8px; }
.student-destination-row { min-width: 0; padding: 10px 11px; border: 1px solid #dce4e1; border-radius: 7px; background: #fafcfb; display: grid; grid-template-columns: 120px 130px minmax(150px,1fr) minmax(150px,1fr); align-items: end; gap: 10px; }
.student-destination-row-head { grid-column: 1 / -1; display: grid; grid-template-columns: 24px minmax(0,1fr) 28px; align-items: center; gap: 7px; }
.student-destination-row-head > span { width: 22px; height: 22px; border-radius: 4px; display: grid; place-items: center; color: #176759; background: #e4f1ed; font-size: 9px; font-weight: 700; }
.student-destination-row-head strong { color: #3c4945; font-size: 10px; }
.student-destination-row-head .icon-button { width: 28px; height: 28px; color: #8f5a55; }
.student-destination-empty { min-height: 48px; padding: 11px 12px; border: 1px dashed #ccd9d5; border-radius: 7px; display: flex; align-items: center; gap: 8px; color: var(--muted); background: #fafcfb; font-size: 9px; }
.student-destination-summary { min-width: 0; display: grid; gap: 2px; }
.student-destination-summary b { overflow: hidden; color: #35443f; font-size: 9px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.student-destination-summary small { color: var(--muted); font-size: 8px; line-height: 1.35; white-space: normal; }
.student-destination-timeline { margin: 0; padding: 1px 0 1px 8px; list-style: none; display: grid; }
.student-destination-timeline li { position: relative; min-height: 68px; padding: 0 0 15px 23px; border-left: 1px solid #d8e3df; }
.student-destination-timeline li:last-child { min-height: 48px; padding-bottom: 0; border-left-color: transparent; }
.student-destination-dot { position: absolute; top: 2px; left: -5px; width: 9px; height: 9px; border: 2px solid #fff; border-radius: 50%; background: #91aaa3; box-shadow: 0 0 0 1px #c9d8d3; }
.student-destination-timeline li.latest .student-destination-dot { background: #16705f; box-shadow: 0 0 0 2px #dceee9; }
.student-destination-time { margin-bottom: 3px; color: #6c7d77; font-size: 8px; font-weight: 650; }
.student-destination-timeline strong { color: #293b36; font-size: 10px; }
.student-destination-timeline p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.45; }

@media (max-width: 620px) {
  .training-stage-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .training-stage-degree { grid-column: 1 / -1; min-height: 28px; }
  .student-destination-heading { align-items: flex-start; }
  .student-destination-row { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .student-destination-main, .student-destination-detail { grid-column: 1 / -1; }
}

.student-import-modal .modal-body { padding-top: 16px; }
.student-import-stats { margin-top: 13px; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.student-import-stats span { min-height: 54px; padding: 9px 11px; border-right: 1px solid var(--line-soft); display: grid; align-content: center; gap: 2px; color: var(--muted); font-size: 8px; }
.student-import-stats span:last-child { border-right: 0; }
.student-import-stats strong { color: var(--text); font-size: 16px; line-height: 1; }
.student-import-stats .warning strong { color: #9a681e; }
.student-import-preview { margin-top: 13px; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.student-import-preview-head { min-height: 40px; padding: 0 12px; display: flex; align-items: center; justify-content: space-between; background: #f8faf9; }
.student-import-preview-head strong { font-size: 10px; }
.student-import-preview-head span { color: var(--muted); font-size: 8px; }
.student-import-table { width: 100%; min-width: 760px; border-collapse: collapse; table-layout: fixed; }
.student-import-table th, .student-import-table td { height: 38px; padding: 6px 9px; border-top: 1px solid var(--line-soft); text-align: left; font-size: 8px; vertical-align: middle; }
.student-import-table th { color: #79837f; background: #fbfcfc; font-weight: 650; white-space: nowrap; }
.student-import-table td { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.student-import-table th:nth-child(1) { width: 84px; }.student-import-table th:nth-child(2) { width: 78px; }.student-import-table th:nth-child(3) { width: 98px; }.student-import-table th:nth-child(4) { width: 116px; }.student-import-table th:nth-child(5) { width: 220px; }

.student-linked-awards { display: grid; gap: 8px; }
.student-linked-award { border: 1px solid var(--line-soft); border-radius: 7px; overflow: hidden; background: #fbfcfc; }
.student-linked-award > button, .student-linked-award.pending > div { width: 100%; min-height: 58px; padding: 9px 11px; border: 0; display: grid; grid-template-columns: 28px minmax(0,1fr) auto; align-items: center; gap: 9px; color: inherit; background: transparent; text-align: left; }
.student-linked-award > button { cursor: pointer; }
.student-linked-award > button:hover { background: #f4f8f6; }
.student-linked-award > button > span:first-child, .student-linked-award.pending > div > span:first-child { width: 28px; height: 28px; border-radius: 5px; display: grid; place-items: center; color: #9a6c1e; background: #f7ecd3; }
.student-linked-award > button > span:nth-child(2), .student-linked-award.pending > div > span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.student-linked-award strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.student-linked-award small { color: var(--muted); font-size: 8px; }
.student-linked-award b { display: inline-flex; align-items: center; gap: 3px; color: #67746f; font-size: 8px; font-weight: 600; white-space: nowrap; }
.student-linked-award.pending { border-style: dashed; }
.student-linked-award.pending > div > span:first-child { color: #8c7653; background: #f2eee6; }
.student-award-files { padding: 0 10px 9px 47px; display: flex; flex-wrap: wrap; gap: 5px; }
.student-award-files button { max-width: 100%; min-height: 27px; padding: 0 7px; border: 1px solid var(--line); border-radius: 4px; display: inline-flex; align-items: center; gap: 4px; overflow: hidden; color: #46635c; background: #fff; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; cursor: pointer; }

.relation-picker-section .form-section-title { display: flex; align-items: center; gap: 6px; }
.relation-picker-section .form-section-title b { margin-left: auto; color: var(--muted); font-size: 8px; font-weight: 600; }
.relation-picker-search { min-height: 38px; padding: 0 7px 0 11px; border: 1px solid var(--line); border-radius: 7px; display: grid; grid-template-columns: 18px minmax(0,1fr) 30px; align-items: center; gap: 6px; background: #fff; }
.relation-picker-search > .icon { color: var(--muted); }
.relation-picker-search input { min-width: 0; height: 36px; border: 0; outline: 0; color: var(--ink); background: transparent; font: inherit; font-size: 10px; }
.relation-picker-list { max-height: min(42vh,420px); margin-top: 8px; padding-right: 3px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 6px; overflow-y: auto; overscroll-behavior: contain; scrollbar-gutter: stable; }
.relation-picker-item { min-width: 0; min-height: 52px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 7px; display: grid; grid-template-columns: 16px 26px minmax(0,1fr); align-items: center; gap: 8px; background: #fff; cursor: pointer; }
.relation-picker-item:hover { border-color: #a7c5bd; background: #f8fbfa; }
.relation-picker-item.selected { border-color: #79aa9e; background: #f0f8f5; }
.relation-picker-item > input { width: 14px; height: 14px; margin: 0; accent-color: var(--teal); }
.relation-picker-item > span:nth-of-type(1) { width: 26px; height: 26px; border-radius: 5px; display: grid; place-items: center; color: var(--teal-dark); background: var(--teal-soft); }
.relation-picker-item > span:last-child { min-width: 0; display: grid; gap: 3px; }
.relation-picker-item strong, .relation-picker-item small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.relation-picker-item strong { color: var(--ink); font-size: 9px; font-weight: 650; }
.relation-picker-item small { color: var(--muted); font-size: 8px; }
.relation-picker-empty { min-height: 52px; margin-top: 8px; border: 1px dashed var(--line); border-radius: 7px; display: flex; align-items: center; justify-content: center; gap: 6px; color: var(--muted); font-size: 9px; }
.achievement-student-list { display: grid; gap: 7px; }
.achievement-student-row { width: 100%; min-height: 52px; padding: 8px 10px; border: 1px solid var(--line-soft); border-radius: 7px; display: grid; grid-template-columns: 28px minmax(0,1fr) 18px; align-items: center; gap: 8px; color: inherit; background: #fbfcfc; text-align: left; cursor: pointer; }
.achievement-student-row:hover { border-color: #b1cbc4; background: #f4f8f6; }
.achievement-student-row > span:first-child { width: 28px; height: 28px; border-radius: 5px; display: grid; place-items: center; color: var(--teal-dark); background: var(--teal-soft); }
.achievement-student-row > span:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.achievement-student-row strong, .achievement-student-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.achievement-student-row strong { color: var(--ink); font-size: 9px; }
.achievement-student-row small { color: var(--muted); font-size: 8px; }
.achievement-student-row b { color: var(--muted); }

@media (max-width: 700px) {
  .relation-picker-list { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .student-import-modal .modal-foot { flex-wrap: wrap; }
  .student-import-modal .modal-foot-note { flex: 1 0 100%; min-width: 0; margin-right: 0; white-space: normal; }
  .student-import-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .student-import-stats span:nth-child(even) { border-right: 0; }
  .student-import-stats span:nth-child(-n+4) { border-bottom: 1px solid var(--line-soft); }
  .student-import-stats span:last-child { grid-column: 1/-1; }
  .student-linked-award > button, .student-linked-award.pending > div { grid-template-columns: 28px minmax(0,1fr); }
  .student-linked-award b { grid-column: 2; }
  .student-award-files { padding-left: 11px; }
}

@media (max-width: 420px) {
  .influence-module-nav { grid-template-columns: 1fr; }
  .influence-module-card:first-child { grid-column: auto; }
  .external-summary-grid strong { font-size: 18px; }
  .external-folder-drop small { white-space: normal; }
  .metrics-grid { grid-template-columns: 1fr; }
  .metric-card { min-height: 91px; }
  .distribution { grid-template-columns: 112px 1fr; padding: 14px; }
  .donut { width: 104px; height: 104px; }
  .profile { display: none; }
}

/* Per-platform administrator assignments */
.platform-admin-note {
  min-height: 42px;
  margin-bottom: 12px;
  padding: 9px 11px;
  border: 1px solid #cfe4dd;
  border-radius: 7px;
  display: flex;
  align-items: center;
  gap: 7px;
  color: #35665c;
  background: #f0f8f5;
  font-size: 9px;
  line-height: 1.55;
}
.platform-admin-list { border: 1px solid var(--line-soft); border-radius: 7px; overflow: hidden; }
.platform-admin-row {
  min-height: 78px;
  padding: 10px 11px;
  border-bottom: 1px solid var(--line-soft);
  display: grid;
  grid-template-columns: 38px minmax(150px, 1fr) minmax(150px, .85fr) minmax(180px, 220px) 88px;
  align-items: center;
  gap: 10px;
  background: #fff;
}
.platform-admin-row:last-child { border-bottom: 0; }
.platform-admin-icon { width: 36px; height: 36px; border-radius: 7px; display: grid; place-items: center; color: #426c76; background: #edf4f5; }
.platform-admin-copy { min-width: 0; display: grid; gap: 3px; }
.platform-admin-copy strong { color: #343a38; font-size: 10px; }
.platform-admin-copy small { overflow: hidden; color: #858e8b; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.platform-admin-current { min-width: 0; display: flex; align-items: center; gap: 8px; }
.platform-admin-current > span:last-child:not(.platform-admin-unassigned) { min-width: 0; display: grid; gap: 2px; }
.platform-admin-current strong,
.platform-admin-current small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.platform-admin-current strong { color: #3b4140; font-size: 9px; }
.platform-admin-current small { color: #8b9290; font-size: 7px; }
.platform-admin-unassigned { min-height: 28px; display: inline-flex; align-items: center; gap: 5px; color: #8a8f8d; font-size: 8px; }
.platform-admin-select { min-width: 0; display: grid; gap: 3px; }
.platform-admin-select > span { color: #858b89; font-size: 7px; }
.platform-admin-select .field-select { width: 100%; min-width: 0; height: 34px; font-size: 9px; }
.platform-admin-row > .btn { width: 88px; padding-inline: 8px; }

@media (max-width: 1120px) {
  .platform-admin-row { grid-template-columns: 38px minmax(160px, 1fr) minmax(160px, 1fr) 88px; }
  .platform-admin-current { grid-column: 2; grid-row: 2; }
  .platform-admin-select { grid-column: 3; grid-row: 1 / 3; }
  .platform-admin-row > .btn { grid-column: 4; grid-row: 1 / 3; }
}

@media (max-width: 760px) {
  .platform-admin-row { padding: 13px; grid-template-columns: 36px minmax(0, 1fr); gap: 9px 10px; }
  .platform-admin-copy { grid-column: 2; }
  .platform-admin-copy small { overflow: visible; white-space: normal; }
  .platform-admin-current { grid-column: 1 / -1; grid-row: auto; }
  .platform-admin-select { grid-column: 1 / -1; grid-row: auto; }
  .platform-admin-row > .btn { grid-column: 1 / -1; grid-row: auto; width: 100%; }
}

/* Homepage traffic analytics */
.traffic-analytics-page { width: 100%; max-width: 1320px; margin: 0 auto; }
.traffic-page-head { min-height: 94px; margin-bottom: 16px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.traffic-page-head > div:first-child > span { color: #287467; font-size: 9px; font-weight: 760; }
.traffic-page-head h1 { margin: 4px 0 5px; color: #202123; font-size: 29px; line-height: 1.2; }
.traffic-page-head p { margin: 0; color: #727277; font-size: 12px; }
.traffic-head-actions { display: flex; align-items: center; gap: 9px; }
.traffic-head-actions .segmented { flex: 0 0 auto; }
.traffic-view-tabs { min-height: 45px; margin: -2px 0 18px; border-bottom: 1px solid var(--line); display: flex; align-items: stretch; gap: 24px; }
.traffic-view-tabs button { min-height: 45px; margin-bottom: -1px; padding: 0 2px; border: 0; border-bottom: 2px solid transparent; display: inline-flex; align-items: center; justify-content: center; gap: 6px; color: #747b79; background: transparent; font-size: 10px; font-weight: 650; cursor: pointer; }
.traffic-view-tabs button:hover { color: #345f58; }
.traffic-view-tabs button.active { border-bottom-color: #287467; color: #225f55; }
.traffic-scope { margin-bottom: 26px; }
.traffic-scope + .traffic-scope { padding-top: 26px; border-top: 1px solid var(--line); }
.traffic-scope-head { min-height: 66px; margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.traffic-scope-head > div:first-child { min-width: 0; }
.traffic-scope-head > div:first-child > span { color: #287467; font-size: 8px; font-weight: 760; }
.traffic-scope-head h2 { margin: 3px 0 4px; color: #303332; font-size: 18px; line-height: 1.25; }
.traffic-scope-head p { margin: 0; color: #858b89; font-size: 9px; }
.traffic-period-controls { display: flex; align-items: center; justify-content: flex-end; gap: 10px; }
.traffic-scope-head .segmented { flex: 0 0 auto; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 6px; margin-bottom: 0; }
.traffic-history-picker { display: flex; align-items: center; gap: 6px; color: #777f7c; font-size: 8px; white-space: nowrap; }
.traffic-history-picker select { min-width: 112px; height: 30px; padding: 0 25px 0 9px; border: 1px solid #ccd5d2; border-radius: 6px; outline: 0; color: #394541; background: #fff; font: inherit; font-size: 9px; cursor: pointer; }
.traffic-history-picker select:focus { border-color: #78a99f; box-shadow: 0 0 0 3px rgba(40,116,103,.08); }
.traffic-metrics { margin-bottom: 14px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.traffic-metrics section { min-height: 106px; padding: 16px 17px; border: 1px solid var(--line); border-radius: 8px; display: grid; align-content: center; background: #fff; box-shadow: var(--shadow-sm); }
.traffic-metrics span { color: #747a78; font-size: 9px; font-weight: 650; }
.traffic-metrics strong { margin-top: 4px; color: #282b2a; font-size: 28px; line-height: 1.1; font-variant-numeric: tabular-nums; }
.traffic-metrics small { margin-top: 5px; color: #8b908e; font-size: 8px; }
.traffic-map-layout { margin-bottom: 14px; display: grid; grid-template-columns: minmax(0,1fr) 290px; align-items: stretch; gap: 14px; }
.traffic-panel { min-width: 0; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; background: #fff; box-shadow: var(--shadow-sm); }
.traffic-panel > header { min-height: 58px; padding: 11px 15px; border-bottom: 1px solid var(--line-soft); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.traffic-panel > header > div:first-child { min-width: 0; display: grid; gap: 2px; }
.traffic-panel > header strong { color: #343837; font-size: 11px; }
.traffic-panel > header span { color: #838a87; font-size: 8px; }
.traffic-map-panel > header > span { display: inline-flex; align-items: center; gap: 5px; white-space: nowrap; }
.traffic-map { width: 100%; aspect-ratio: 900 / 430; min-height: 310px; display: grid; place-items: center; overflow: hidden; background: #f8fafb; }
.traffic-map svg { width: 100%; height: 100%; display: block; }
.traffic-map-sphere { fill: #f1f6f7; stroke: #bfd0d3; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.traffic-map-land { fill: #dce7e3; stroke: none; pointer-events: none; }
.traffic-map-graticule { fill: none; stroke: #cedadd; stroke-width: .7; stroke-dasharray: 2 4; vector-effect: non-scaling-stroke; }
.traffic-map-country-points circle { fill: rgba(52,126,177,.7); stroke: #fff; stroke-width: 1.8; vector-effect: non-scaling-stroke; cursor: pointer; transition: fill .15s ease, transform .15s ease; }
.traffic-map-country-points circle:hover { fill: #236da4; }
.traffic-map-points circle { fill: rgba(224,87,59,.68); stroke: #fff; stroke-width: 1.4; vector-effect: non-scaling-stroke; cursor: pointer; }
.traffic-map-points circle:hover { fill: #d95036; }
.traffic-map-loading { min-height: 260px; display: grid; place-items: center; align-content: center; gap: 8px; color: #7f8986; font-size: 9px; }
.traffic-map-loading.error { color: #a35445; }
.traffic-map-panel > footer { min-height: 39px; padding: 7px 15px; border-top: 1px solid var(--line-soft); display: flex; align-items: center; gap: 7px; color: #8a908e; font-size: 8px; }
.traffic-map-panel > footer a { color: #647b91; }
.traffic-map-panel > footer b { margin-left: auto; color: #667b7f; font-size: 7px; font-weight: 650; white-space: nowrap; }
.traffic-map-panel > footer a:first-of-type { margin-left: 0; }
.traffic-map-scale { width: 78px; height: 16px; background: radial-gradient(circle at 9px 10px,rgba(52,126,177,.7) 0 3px,transparent 3.5px),radial-gradient(circle at 36px 9px,rgba(52,126,177,.7) 0 5px,transparent 5.5px),radial-gradient(circle at 68px 8px,rgba(52,126,177,.7) 0 8px,transparent 8.5px); }
.traffic-region-panel > div { display: grid; }
.traffic-region-panel > header { align-items: flex-start; }
.traffic-region-key { flex: 0 0 auto; display: grid; justify-items: end; gap: 2px; }
.traffic-region-key span { color: #747d7a !important; font-size: 7px !important; line-height: 1.3; white-space: nowrap; }
.traffic-region-row { min-height: 49px; padding: 7px 12px; border-bottom: 1px solid var(--line-soft); display: grid; grid-template-columns: 22px minmax(0,1fr) auto; align-items: center; gap: 8px; }
.traffic-region-row:last-child { border-bottom: 0; }
.traffic-region-row > b { color: #a0a5a3; font-size: 8px; font-variant-numeric: tabular-nums; }
.traffic-region-row > span { min-width: 0; display: grid; gap: 2px; }
.traffic-region-row strong,.traffic-region-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.traffic-region-row strong { color: #444947; font-size: 9px; }
.traffic-region-row > span small { color: #949997; font-size: 7px; }
.traffic-region-row > span small b { color: #6d7774; font-weight: 700; font-variant-numeric: tabular-nums; }
.traffic-region-row em { min-width: 54px; display: grid; justify-items: end; gap: 1px; color: #2f6e64; font-style: normal; text-align: right; }
.traffic-region-row em strong { color: #2f6e64; font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; }
.traffic-region-row em small { color: #73817d; font-size: 7px; font-style: normal; font-weight: 500; white-space: nowrap; }
.traffic-lower-grid { margin-bottom: 14px; display: grid; grid-template-columns: minmax(0,1.25fr) minmax(330px,.75fr); gap: 14px; }
.traffic-trend-panel,.traffic-pages-panel { min-height: 300px; }
.traffic-legend { display: flex !important; grid-auto-flow: column; gap: 10px !important; }
.traffic-legend span { display: inline-flex; align-items: center; gap: 4px; }
.traffic-legend i { width: 7px; height: 7px; display: inline-block; }
.traffic-legend i.views { background: #397fba; }
.traffic-legend i.visitors { background: #83b9ae; }
.traffic-trend-chart { height: 236px; padding: 17px 15px 11px; display: flex; align-items: stretch; gap: 3px; }
.traffic-trend-column { min-width: 0; flex: 1 1 0; display: grid; grid-template-rows: 1fr 18px; align-items: end; }
.traffic-trend-column > div { position: relative; height: 100%; display: flex; align-items: flex-end; justify-content: center; gap: 1px; border-bottom: 1px solid #dfe5e3; }
.traffic-trend-column i { width: min(44%,8px); min-height: 0; display: block; }
.traffic-trend-column i.views { background: #397fba; }
.traffic-trend-column i.visitors { background: #83b9ae; }
.traffic-trend-column > span { overflow: visible; color: #989d9b; font-size: 7px; text-align: center; white-space: nowrap; }
.traffic-page-row { min-height: 52px; padding: 7px 13px; border-bottom: 1px solid var(--line-soft); display: grid; grid-template-columns: 20px minmax(0,1fr) auto; align-items: center; gap: 0 8px; }
.traffic-page-row:last-child { border-bottom: 0; }
.traffic-page-row > b { color: #9aa09d; font-size: 8px; }
.traffic-page-row > span { min-width: 0; display: grid; gap: 1px; }
.traffic-page-row > span strong,.traffic-page-row > span small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.traffic-page-row > span strong { color: #444947; font-size: 9px; }
.traffic-page-row > span small { color: #969b99; font-size: 7px; }
.traffic-page-row > em { color: #3e6660; font-size: 12px; font-style: normal; font-weight: 700; font-variant-numeric: tabular-nums; }
.traffic-page-row > em small { margin-left: 2px; color: #929895; font-size: 7px; }
.traffic-page-row > i { grid-column: 2 / 4; height: 2px; margin-top: 5px; overflow: hidden; background: #edf0ef; }
.traffic-page-row > i span { height: 100%; display: block; background: #659c92; }
.traffic-empty { min-height: 180px; padding: 20px; display: grid; place-items: center; color: #8c9390; font-size: 9px; text-align: center; }
.traffic-privacy { min-height: 42px; padding: 9px 12px; border: 1px solid #d9e6e1; border-radius: 7px; display: flex; align-items: center; gap: 7px; color: #45665f; background: #f4f9f7; font-size: 8px; }
.traffic-privacy small { margin-left: auto; color: #7f8b87; }

@media (max-width: 1120px) {
  .traffic-map-layout { grid-template-columns: 1fr; }
  .traffic-region-panel > div { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .traffic-region-row:nth-child(odd) { border-right: 1px solid var(--line-soft); }
  .traffic-lower-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
  .traffic-page-head { align-items: flex-start; flex-direction: column; }
  .traffic-page-head h1 { font-size: 24px; }
  .traffic-head-actions { width: 100%; justify-content: space-between; }
  .traffic-view-tabs { width: 100%; gap: 0; }
  .traffic-view-tabs button { flex: 1 1 50%; padding-inline: 6px; }
  .traffic-scope-head { min-height: 0; align-items: flex-start; flex-direction: column; }
  .traffic-period-controls { width: 100%; align-items: stretch; flex-direction: column; }
  .traffic-scope-head .segmented { width: 100%; }
  .traffic-scope-head .segmented button { flex: 1 1 0; }
  .traffic-history-picker { justify-content: space-between; }
  .traffic-history-picker select { min-width: 150px; }
  .traffic-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .traffic-metrics section { min-height: 94px; padding: 13px; }
  .traffic-metrics strong { font-size: 24px; }
  .traffic-map { min-height: 0; aspect-ratio: 1.28; }
  .traffic-map-panel > header { align-items: flex-start; }
  .traffic-map-panel > header > span { display: none; }
  .traffic-region-panel > div { grid-template-columns: 1fr; }
  .traffic-region-key { justify-items: start; }
  .traffic-region-row:nth-child(odd) { border-right: 0; }
  .traffic-trend-chart { height: 205px; padding-inline: 9px; }
  .traffic-privacy { align-items: flex-start; flex-wrap: wrap; }
  .traffic-privacy small { width: 100%; margin-left: 21px; }
}

/* Apple-inspired visual refresh */
:root {
  --ink: #1d1d1f;
  --ink-2: #424245;
  --muted: #6e6e73;
  --line: rgba(0, 0, 0, 0.10);
  --line-soft: rgba(0, 0, 0, 0.055);
  --canvas: #f5f5f7;
  --surface: #ffffff;
  --surface-2: #f8f8fa;
  --sidebar: rgba(250, 250, 252, 0.88);
  --sidebar-soft: rgba(0, 113, 227, 0.08);
  --teal: #0071e3;
  --teal-dark: #0058b0;
  --teal-soft: #eaf3ff;
  --coral: #e86f51;
  --coral-soft: #fff0ec;
  --gold: #b77a12;
  --gold-soft: #fff5dc;
  --blue: #477ec0;
  --blue-soft: #eaf2fb;
  --violet: #7769aa;
  --violet-soft: #f0edf8;
  --danger: #c9342f;
  --danger-soft: #fff0ef;
  --shadow: 0 24px 70px rgba(0, 0, 0, 0.16);
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.035), 0 9px 24px rgba(0, 0, 0, 0.045);
  --radius: 8px;
  --sidebar-w: 248px;
}

html { background: var(--canvas); }
body {
  background: var(--canvas);
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display", "Segoe UI", "Microsoft YaHei", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

.sidebar {
  color: var(--ink-2);
  background: var(--sidebar);
  border-right: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 1px 0 0 rgba(255, 255, 255, 0.7);
  backdrop-filter: saturate(180%) blur(28px);
}

.brand {
  height: 96px;
  padding: 19px 22px 17px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.07);
  background: rgba(255, 255, 255, 0.34);
}

.lab-logo {
  display: block;
  width: 100%;
  max-width: 200px;
  height: 56px;
  object-fit: contain;
  object-position: left center;
}

.sidebar-section { padding: 22px 13px 0; }
.sidebar-label { padding: 0 10px 9px; color: #8a8a8f; font-size: 10px; letter-spacing: 0; }
.nav-list { gap: 4px; }
.nav-item {
  height: 42px;
  padding: 0 12px;
  border-radius: 8px;
  color: #535358;
  font-size: 13px;
  font-weight: 520;
}
.nav-item:hover { color: #1d1d1f; background: rgba(0, 0, 0, 0.045); }
.nav-item.active { color: #0066cc; background: rgba(0, 113, 227, 0.105); box-shadow: inset 0 0 0 1px rgba(0, 113, 227, 0.035); }
.nav-item .nav-count { color: #8c8c91; font-variant-numeric: tabular-nums; }
.nav-item.active .nav-count { color: #0066cc; }
.nav-divider { background: rgba(0, 0, 0, 0.07); margin: 12px 10px; }
.sidebar-footer { padding: 14px 14px 18px; }
.storage-card { border-color: rgba(0, 0, 0, 0.08); background: rgba(255, 255, 255, 0.54); box-shadow: 0 1px 1px rgba(0,0,0,.02); }
.storage-head { color: #6e6e73; }
.storage-value { color: #1d1d1f; }
.storage-track { background: rgba(0, 0, 0, 0.075); }
.storage-fill { background: #0071e3; }
.storage-caption { color: #929297; }

.topbar {
  height: 72px;
  padding: 0 34px;
  background: rgba(250, 250, 252, 0.82);
  border-bottom: 1px solid rgba(0, 0, 0, 0.085);
  backdrop-filter: saturate(180%) blur(24px);
}
.global-search { width: min(510px, 43vw); }
.global-search input {
  height: 40px;
  border-color: transparent;
  border-radius: 8px;
  background: rgba(118, 118, 128, 0.095);
  color: #1d1d1f;
}
.global-search input::placeholder { color: #7b7b80; }
.global-search input:focus { background: #fff; border-color: rgba(0, 113, 227, 0.34); box-shadow: 0 0 0 4px rgba(0, 113, 227, 0.09); }
.search-key { color: #88888d; border-color: rgba(0,0,0,.11); background: rgba(255,255,255,.78); }
.icon-button {
  border-color: rgba(0, 0, 0, 0.10);
  border-radius: 8px;
  color: #56565b;
  background: rgba(255, 255, 255, 0.72);
  box-shadow: 0 1px 2px rgba(0,0,0,.025);
}
.icon-button:hover { color: #0066cc; border-color: rgba(0, 113, 227, 0.25); background: #fff; }
.avatar { border-radius: 50%; color: #083672; background: #e5effb; }
.profile-name { color: #262628; font-weight: 600; }

.main-content { padding: 34px 36px 52px; max-width: 1620px; }
.page-head { margin-bottom: 27px; align-items: center; }
.page-title { font-size: 28px; line-height: 1.16; font-weight: 700; }
.page-subtitle { margin-top: 7px; color: #737378; font-size: 12px; }
.page-actions { gap: 10px; }

.btn {
  min-height: 39px;
  border-color: rgba(0, 0, 0, 0.11);
  border-radius: 8px;
  background: rgba(255, 255, 255, 0.88);
  color: #303033;
  font-weight: 600;
  box-shadow: 0 1px 2px rgba(0,0,0,.025);
}
.btn:hover { background: #fff; border-color: rgba(0,0,0,.18); box-shadow: 0 3px 10px rgba(0,0,0,.05); }
.btn-primary { color: #fff; background: #0071e3; border-color: #0071e3; box-shadow: 0 5px 14px rgba(0, 113, 227, 0.20); }
.btn-primary:hover { color: #fff; background: #0067d2; border-color: #0067d2; box-shadow: 0 7px 18px rgba(0, 113, 227, 0.24); }
.btn-subtle { color: #0066cc; background: #edf5ff; border-color: #d7e8fb; }
.btn-sm { min-height: 33px; }

.metrics-grid { gap: 16px; margin-bottom: 16px; }
.metric-card {
  min-height: 126px;
  padding: 20px 21px;
  border-color: rgba(0, 0, 0, 0.085);
  background: rgba(255, 255, 255, 0.92);
  box-shadow: var(--shadow-sm);
  transition: transform .2s ease, box-shadow .2s ease;
}
.metric-card:hover { transform: translateY(-1px); box-shadow: 0 2px 4px rgba(0,0,0,.04), 0 14px 30px rgba(0,0,0,.06); }
.metric-top { color: #6e6e73; }
.metric-icon { width: 34px; height: 34px; border-radius: 8px; }
.metric-icon.teal { color: #0071e3; background: #eaf3ff; }
.metric-value { margin-top: 9px; }
.metric-number { font-size: 31px; font-weight: 700; }
.metric-foot { color: #85858a; }

.analytics-grid { gap: 16px; margin-bottom: 16px; }
.panel {
  border-color: rgba(0, 0, 0, 0.085);
  background: rgba(255, 255, 255, 0.94);
  box-shadow: var(--shadow-sm);
}
.panel-head { min-height: 58px; padding: 0 19px; border-bottom-color: rgba(0,0,0,.06); }
.panel-title { color: #28282b; font-size: 14px; font-weight: 650; }
.panel-caption { color: #838388; }
.trend-chart { height: 230px; padding-top: 24px; }
.chart-grid-line { border-top: 1px solid rgba(0, 0, 0, 0.065); }
.bar.primary { background: #1887e8; }
.bar.secondary { background: #cfe4f8; }
.donut::after { background: #fff; }

.table-toolbar { min-height: 62px; padding: 11px 17px; }
.toolbar-tabs { background: rgba(118, 118, 128, 0.09); border-radius: 8px; }
.tab-button { height: 31px; border-radius: 6px; }
.tab-button.active { color: #1d1d1f; box-shadow: 0 1px 4px rgba(0,0,0,.12); }
.filter-select { height: 35px; border-color: rgba(0,0,0,.11); border-radius: 7px; background-color: #fff; }
.selection-bar { color: #075ca9; background: #edf5ff; border-bottom-color: #d4e7fb; }
.data-table th { height: 43px; color: #79797e; background: #fafafd; border-bottom-color: rgba(0,0,0,.075); }
.data-table td { height: 66px; border-bottom-color: rgba(0,0,0,.055); }
.data-table tbody tr:hover { background: #f6f9fd; }
.record-title { color: #262628; font-weight: 620; }
.record-title:hover { color: #0066cc; }
.type-badge { height: 25px; border-radius: 6px; }
.type-paper { color: #006563; background: #e6f5f3; }
.type-book { color: #725033; background: #f4ede6; }
.type-personal { color: #365779; background: #eaf1f7; }
.type-project { color: #34689d; background: #e9f2fb; }
.type-teaching { color: #684d91; background: #f0ebf8; }
.type-course { color: #28667d; background: #e7f2f6; }
.type-training { color: #87465e; background: #f7eaf0; }
.type-academic { color: #435887; background: #e9eef8; }
.type-influence { color: #126d75; background: #e5f5f5; }
.type-activity { color: #315f55; background: #e9f2ef; }
.status-complete .status-dot { background: #2fa36b; }
.file-state.missing { color: #d4583d; }
.table-footer { min-height: 54px; }
.page-button { border-color: rgba(0,0,0,.1); border-radius: 7px; }
.page-button.active { background: #0071e3; border-color: #0071e3; }

.overlay { background: rgba(0, 0, 0, 0.30); backdrop-filter: blur(8px); }
.modal { border: 1px solid rgba(255,255,255,.7); background: rgba(255,255,255,.97); box-shadow: 0 30px 90px rgba(0,0,0,.24); }
.modal-head { min-height: 68px; padding: 0 22px; }
.modal-title { font-size: 17px; font-weight: 680; }
.modal-body { padding: 22px; }
.modal-foot { min-height: 68px; background: rgba(248,248,250,.9); }
.segment { min-height: 58px; border-color: rgba(0,0,0,.1); border-radius: 8px; }
.segment.active { color: #0058b0; background: #edf5ff; border-color: rgba(0,113,227,.35); }
.field-input, .field-select, .field-textarea { border-color: rgba(0,0,0,.12); border-radius: 7px; background: rgba(255,255,255,.9); }
.field-input:focus, .field-select:focus, .field-textarea:focus { border-color: rgba(0,113,227,.48); box-shadow: 0 0 0 4px rgba(0,113,227,.08); }
.drop-zone { border-color: rgba(0,113,227,.3); border-radius: 8px; background: #f7fbff; }
.drop-zone:hover, .drop-zone.dragging { border-color: #0071e3; background: #eff7ff; }
.drop-zone-icon { color: #0071e3; }
.drawer { box-shadow: -24px 0 70px rgba(0,0,0,.18); }
.field-chip { border-radius: 6px; }
.toast { border: 1px solid rgba(255,255,255,.12); border-radius: 8px; background: rgba(29,29,31,.94); backdrop-filter: blur(18px); }

@media (max-width: 760px) {
  .sidebar { background: rgba(250,250,252,.97); }
  .brand { height: 88px; padding-top: 16px; }
  .lab-logo { height: 52px; }
  .topbar { height: 62px; padding: 0 15px; }
  .main-content { padding: 22px 15px 38px; }
  .page-head { margin-bottom: 20px; }
  .page-title { font-size: 25px; }
  .metrics-grid { gap: 10px; }
  .metric-card { min-height: 112px; padding: 16px; }
  .metric-number { font-size: 27px; }
  .analytics-grid { gap: 10px; }
  .trend-chart { height: 210px; }
  .grouped-trend-chart { padding-left: 38px; padding-right: 10px; }
  .grouped-trend-chart .chart-grid { left: 38px; right: 10px; }
  .grouped-trend-chart .chart-legend { right: 7px; gap: 1px; }
  .legend-series { padding-inline: 4px; font-size: 8px; }
  .bar-cluster { gap: 3px; }
  .bar-cluster .bar { width: min(14px,28%); }
  .analytics-focus-panel { min-height: 0; }
  .panel-head { min-height: 55px; }
  .table-footer { align-items: flex-start; flex-wrap: wrap; }
  .table-footer > span:first-child { padding-top: 8px; }
  .table-footer .project-order-note { margin-left: auto; padding-top: 6px; }
  .pagination { width: 100%; margin-left: 0; justify-content: space-between; }
  .pagination-controls { overflow-x: auto; scrollbar-width: none; }
  .pagination-controls::-webkit-scrollbar { display: none; }
}

@media (max-width: 420px) {
  .metrics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metric-card { min-height: 118px; }
  .metric-top { align-items: flex-start; }
  .metric-icon { width: 31px; height: 31px; }
  .metric-number { font-size: 26px; }
  .metric-foot { line-height: 1.35; }
  .analytics-focus-metrics > div { min-height: 88px; padding-inline: 6px; }
  .analytics-focus-metrics strong { font-size: 18px; }
}

.smart-body { min-height: 390px; }
.unified-import-drop { min-height: 104px; padding: 18px 20px; border: 1px dashed rgba(0,113,227,.34); border-radius: 8px; display: grid; grid-template-columns: 42px minmax(0,1fr) auto; align-items: center; gap: 14px; background: #f7faff; cursor: pointer; transition: border-color .15s ease, background .15s ease; }
.unified-import-drop:hover, .unified-import-drop.dragging { border-color: rgba(0,113,227,.7); background: #f0f7ff; }
.unified-import-icon { width: 42px; height: 42px; border-radius: 7px; display: grid; place-items: center; color: #0066cc; background: #e5f2ff; }
.unified-import-drop > span:nth-child(2) { min-width: 0; display: grid; gap: 4px; }
.unified-import-drop strong { color: #29292c; font-size: 12px; }
.unified-import-drop small { color: #7a7a80; font-size: 9px; }
.intake-method-grid { margin-top: 13px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.intake-method-grid > button { min-height: 92px; padding: 12px; border: 1px solid rgba(0,0,0,.09); border-radius: 8px; display: grid; grid-template-columns: 30px minmax(0,1fr); grid-template-rows: auto auto; align-content: center; column-gap: 10px; color: inherit; background: #fff; text-align: left; cursor: pointer; transition: border-color .15s ease, background .15s ease, box-shadow .15s ease; }
.intake-method-grid > button:hover { border-color: rgba(0,113,227,.28); background: #f8fbff; box-shadow: 0 5px 16px rgba(0,0,0,.045); }
.intake-method-grid > button > span { width: 30px; height: 30px; grid-row: 1/3; border-radius: 6px; display: grid; place-items: center; color: #0066cc; background: #edf5ff; }
.intake-method-grid strong { align-self: end; color: #303033; font-size: 10px; }
.intake-method-grid small { align-self: start; margin-top: 3px; overflow: hidden; color: #85858a; font-size: 8px; line-height: 1.45; }
.unified-project-route { min-height: 42px; margin-top: 12px; padding: 5px 7px 5px 11px; border: 1px solid rgba(0,0,0,.07); border-radius: 7px; display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #717176; background: #fafafa; font-size: 9px; }
.unified-project-route > span { display: inline-flex; align-items: center; gap: 6px; }
.smart-method-back { min-height: 29px; margin-bottom: 12px; padding: 0; border: 0; display: inline-flex; align-items: center; gap: 5px; color: #0066cc; background: transparent; font: inherit; font-size: 9px; font-weight: 620; cursor: pointer; }
.smart-segments { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 16px; }
.smart-input-tabs { width: fit-content; margin: 0 auto 14px; padding: 3px; display: flex; gap: 2px; border: 1px solid rgba(0,0,0,.08); border-radius: 8px; background: #f1f2f4; }
.smart-input-tab { min-height: 31px; padding: 0 13px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 0; border-radius: 6px; background: transparent; color: #6d6d72; font: inherit; font-size: 10px; font-weight: 620; cursor: pointer; }
.smart-input-tab.active { color: #1d1d1f; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.09); }
.smart-drop-zone { min-height: 168px; background: #f7faff; }
.smart-drop-zone.has-error { border-color: rgba(201, 52, 47, 0.30); background: #fff8f7; }
.smart-error { margin-top: 9px; color: var(--danger); font-size: 10px; }
.smart-url-panel { min-height: 168px; padding: 22px; display: grid; align-content: center; justify-items: center; border: 1px solid rgba(0,113,227,.20); border-radius: 8px; background: #f7faff; text-align: center; }
.smart-url-panel.has-error { border-color: rgba(201,52,47,.30); background: #fff8f7; }
.smart-url-icon { margin-bottom: 9px; color: #0071e3; }
.smart-url-copy { display: grid; gap: 4px; }
.smart-url-copy strong { color: #29292c; font-size: 12px; }
.smart-url-copy span { color: #7a7a80; font-size: 9px; }
.smart-url-row { width: min(570px, 100%); margin-top: 14px; display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 8px; }
.smart-url-input { min-width: 0; background: #fff; }
.smart-file-card {
  min-height: 62px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  gap: 11px;
  border: 1px solid rgba(0,0,0,.09);
  border-radius: 8px;
  background: #fafafd;
}
.smart-file-card > div:nth-child(2) { flex: 1; min-width: 0; }
.smart-ready { display: inline-flex; align-items: center; gap: 5px; color: #158156; font-size: 10px; font-weight: 650; }
.smart-processing { min-height: 235px; display: grid; justify-items: center; align-content: center; padding: 26px; }
.smart-orbit { width: 54px; height: 54px; display: grid; place-items: center; color: #0071e3; border: 1px solid #cfe3f9; border-radius: 50%; background: #edf6ff; animation: smart-pulse 1.8s ease-in-out infinite; }
.smart-stage { margin-top: 15px; color: #29292c; font-size: 13px; font-weight: 650; }
.smart-progress { width: min(360px, 80%); height: 5px; margin-top: 13px; overflow: hidden; border-radius: 4px; background: rgba(0,0,0,.07); }
.smart-progress span { display: block; height: 100%; border-radius: inherit; background: #0071e3; transition: width .22s ease; }
.smart-progress-label { margin-top: 6px; color: #8a8a8f; font-size: 9px; font-variant-numeric: tabular-nums; }
.smart-result-head { min-height: 56px; margin-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.smart-result-head > div { display: flex; align-items: center; gap: 9px; }
.smart-result-head strong { font-size: 12px; }
.smart-source { display: inline-flex; align-items: center; gap: 5px; color: #737378; font-size: 9px; }
.smart-result-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid rgba(0,0,0,.085); border-radius: 8px; overflow: hidden; }
.smart-result-item { min-height: 59px; padding: 10px 12px; border-right: 1px solid rgba(0,0,0,.055); border-bottom: 1px solid rgba(0,0,0,.055); background: #fff; }
.smart-result-item:nth-child(even) { border-right: 0; }
.smart-result-item.span-2 { grid-column: 1/-1; border-right: 0; }
.smart-result-item span { display: block; margin-bottom: 4px; color: #85858a; font-size: 9px; }
.smart-result-item strong { display: block; color: #303033; font-size: 11px; font-weight: 580; line-height: 1.5; word-break: break-word; }
.citation-box { margin-top: 14px; padding: 13px 14px; border: 1px solid #cee2f8; border-radius: 8px; background: #f5faff; }
.citation-head { min-height: 30px; display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #255988; font-size: 10px; font-weight: 680; }
.citation-head > span { display: inline-flex; align-items: center; gap: 6px; }
.citation-text { padding-top: 7px; color: #333338; font-size: 11px; line-height: 1.7; word-break: break-word; }
.citation-actions { min-height: 45px; margin-top: 10px; padding: 0 11px; display: flex; align-items: center; justify-content: space-between; border: 1px solid #d6e7fa; border-radius: 7px; background: #f6faff; color: #255988; font-size: 10px; font-weight: 650; }
.citation-actions > span { display: inline-flex; align-items: center; gap: 6px; }
.smart-attachment-note { min-height: 39px; margin: 11px 0; padding: 9px 11px; display: flex; align-items: center; gap: 7px; border: 1px solid #cce8dc; border-radius: 7px; background: #f3faf7; color: #167653; font-size: 10px; font-weight: 620; }
.smart-review-note { margin-top: 13px; display: flex; align-items: center; gap: 6px; color: #737378; font-size: 9px; }
.detail-link { display: inline-flex; align-items: center; gap: 5px; color: #0066cc; word-break: break-all; }
.detail-link:hover { text-decoration: underline; }
.resume-result-head { min-height: 48px; margin-top: 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.resume-result-head > div { display: flex; align-items: center; gap: 8px; }
.resume-result-head strong { font-size: 12px; }
.resume-result-head span { color: #7a7a80; font-size: 9px; }
.resume-result-summary { margin: -2px 0 8px; display: flex; flex-wrap: wrap; gap: 6px; }
.resume-result-summary > span { min-height: 25px; padding: 0 8px; display: inline-flex; align-items: center; gap: 5px; border: 1px solid rgba(0,0,0,.075); border-radius: 6px; background: #f7f8f9; color: #72777a; font-size: 8px; }
.resume-result-summary strong { color: #2d353a; font-size: 10px; }
.resume-result-list { max-height: 370px; overflow-y: auto; border: 1px solid rgba(0,0,0,.09); border-radius: 8px; background: #fff; }
.resume-result-item { min-height: 62px; padding: 9px 11px; display: grid; grid-template-columns: 18px 50px minmax(0,1fr) 56px; align-items: center; gap: 9px; border-bottom: 1px solid rgba(0,0,0,.06); cursor: pointer; }
.resume-result-item:last-child { border-bottom: 0; }
.resume-result-item:hover { background: #f8fbff; }
.resume-result-item input { accent-color: #0071e3; }
.resume-result-main { min-width: 0; display: grid; gap: 3px; }
.resume-result-main strong { overflow: hidden; color: #303033; font-size: 10px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.resume-result-main > span { overflow: hidden; color: #85858a; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }

.resume-builder { min-width: 0; }
.resume-builder-tabs { display: none; }
.resume-builder-layout { height: calc(100vh - 190px); min-height: 640px; display: grid; grid-template-columns: minmax(300px,1fr) minmax(270px,.82fr) minmax(360px,1.18fr); overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #fff; box-shadow: var(--shadow-sm); }
.resume-builder-pane { min-width: 0; min-height: 0; overflow: hidden; border-right: 1px solid var(--line-soft); background: #fff; }
.resume-builder-pane:last-child { border-right: 0; }
.resume-builder-pane-head { min-height: 57px; padding: 0 15px; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line-soft); }
.resume-builder-pane-head > div { display: grid; gap: 2px; }
.resume-builder-pane-head strong { color: #30363a; font-size: 11px; }
.resume-builder-pane-head span { color: #899095; font-size: 8px; }
.resume-profile-pane { overflow-y: auto; }
.resume-profile-form { padding: 15px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 11px; }
.resume-profile-form .form-field { min-width: 0; margin: 0; }
.resume-profile-form .span-2 { grid-column: 1/-1; }
.resume-profile-form .field-textarea { min-height: 78px; resize: vertical; }
.profile-form-section-title { display: flex; min-width: 0; padding: 9px 0 7px; align-items: baseline; justify-content: space-between; border-bottom: 1px solid var(--line-soft); gap: 12px; }
.profile-form-section-title:first-child { padding-top: 1px; }
.profile-form-section-title strong { color: var(--ink); font-size: 11px; }
.profile-form-section-title span { color: var(--muted); font-size: 8px; text-align: right; }
.personal-profile-page { max-width: 960px; margin: 0 auto; }
.personal-profile-actions { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.personal-profile-panel { border-top: 1px solid var(--line); background: #fff; }
.personal-profile-heading { display: flex; align-items: center; gap: 11px; padding: 18px 20px 6px; }
.personal-profile-heading > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: var(--primary); background: #eef6f3; }
.personal-profile-heading > div { display: grid; gap: 2px; }
.personal-profile-heading strong { color: #252a2f; font-size: 14px; }
.personal-profile-heading small { color: var(--muted); font-size: 10px; }
.personal-profile-form { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px 16px; padding: 18px 20px 24px; }
.personal-profile-form .span-2 { grid-column: 1/-1; }
.personal-profile-form .field-textarea { min-height: 108px; resize: vertical; }
.personal-team-panel { margin-top: 12px; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: #fff; box-shadow: var(--shadow-sm); }
.personal-team-head { min-height: 64px; padding: 11px 14px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 10px; }
.personal-team-head > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 6px; color: #315f88; background: #edf3f8; }
.personal-team-head > div { min-width: 0; display: grid; gap: 2px; }
.personal-team-head strong { color: var(--ink); font-size: 11px; }
.personal-team-head small { color: var(--muted); font-size: 8px; }
.personal-team-memberships { padding: 0 14px 12px 58px; display: flex; flex-wrap: wrap; gap: 6px; }
.personal-team-memberships > span { min-height: 27px; padding: 4px 8px; border: 1px solid #dce8e4; border-radius: 5px; display: inline-flex; align-items: center; gap: 7px; color: #315e55; background: #f3f8f6; font-size: 9px; font-weight: 650; }
.personal-team-memberships small { color: #76847f; font-size: 7px; font-weight: 500; }
.personal-team-pending { margin: 0 14px 12px 58px; min-height: 28px; display: flex; align-items: center; gap: 6px; color: #806120; font-size: 8px; }
.teams-page { max-width: 1080px; margin: 0 auto; }
.team-summary-strip { margin-bottom: 12px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: #fff; box-shadow: var(--shadow-sm); }
.team-summary-strip > div { min-height: 68px; padding: 12px 15px; border-right: 1px solid var(--line-soft); display: grid; align-content: center; gap: 3px; }
.team-summary-strip > div:last-child { border-right: 0; }
.team-summary-strip span { color: var(--muted); font-size: 8px; }
.team-summary-strip strong { color: var(--ink); font-size: 20px; font-variant-numeric: tabular-nums; }
.team-create-panel { margin-bottom: 12px; border: 1px solid #cfded9; border-radius: 7px; background: #fff; box-shadow: var(--shadow-sm); }
.team-section-head { min-height: 52px; padding: 10px 14px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line-soft); }
.team-section-head > div { min-width: 0; display: grid; gap: 2px; }
.team-section-head strong { color: var(--ink); font-size: 11px; }
.team-section-head span { color: var(--muted); font-size: 8px; }
.team-create-fields { padding: 14px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.team-create-fields .span-2 { grid-column: 1/-1; }
.team-create-fields .field-textarea { min-height: 72px; resize: vertical; }
.team-create-actions { padding: 0 14px 14px; display: flex; justify-content: flex-end; gap: 6px; }
.team-directory { border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: #fff; box-shadow: var(--shadow-sm); }
.team-directory-card { border-bottom: 1px solid var(--line); background: #fff; }
.team-directory-card:last-child { border-bottom: 0; }
.team-directory-card > header { min-height: 92px; padding: 15px; display: grid; grid-template-columns: 38px minmax(0,1fr) auto; align-items: start; gap: 11px; }
.team-directory-card.joined > header { background: #fbfdfc; }
.team-mark { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 6px; color: #376b61; background: #eaf3f0; }
.team-directory-card header > div { min-width: 0; }
.team-directory-card header > div > div { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.team-directory-card h2 { margin: 0; color: var(--ink); font-size: 13px; letter-spacing: 0; }
.team-directory-card p { margin: 5px 0 3px; overflow-wrap: anywhere; color: var(--muted); font-size: 8px; line-height: 1.5; }
.team-directory-card header small { color: #8a9591; font-size: 7.5px; }
.team-primary-tag { padding: 2px 5px; border-radius: 4px; color: #315f88; background: #eaf2f8; font-size: 7px; font-weight: 700; }
.team-card-status { min-width: 62px; padding: 5px 7px; border-radius: 4px; color: #747e7a; background: #eef1f0; font-size: 8px; font-weight: 700; text-align: center; }
.team-card-status.approved { color: #216a5c; background: #e7f3ef; }
.team-card-status.pending { color: #84621f; background: #fff2d8; }
.team-card-status.rejected { color: #934d4d; background: #f9eaea; }
.team-card-stats { min-height: 38px; padding: 0 15px 0 64px; border-top: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); display: flex; align-items: center; flex-wrap: wrap; gap: 14px; color: var(--muted); background: #fafbfb; font-size: 8px; }
.team-card-stats strong { color: var(--ink-2); font-size: 10px; }
.team-card-stats .pending, .team-card-stats .pending strong { color: #8a611d; }
.team-join-row { padding: 12px 15px 12px 64px; display: grid; grid-template-columns: minmax(220px,360px) auto; align-items: end; gap: 8px; }
.team-join-row .btn { min-height: 37px; }
.team-join-row.primary { grid-template-columns: minmax(0,1fr) auto; }
.team-join-fields { min-width: 0; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; }
.team-join-verification-note { grid-column: 1/-1; min-height: 28px; padding: 5px 8px; display: flex; align-items: center; gap: 6px; color: #547069; background: #f0f6f4; font-size: 7.5px; line-height: 1.45; }
.team-join-verification-note .icon { flex: 0 0 auto; color: #2e7768; }
.team-application-state { min-height: 45px; padding: 0 15px 0 64px; display: flex; align-items: center; gap: 7px; color: #806120; background: #fffdf7; font-size: 8px; }
.team-application-state.pending-review { line-height: 1.55; }
.team-application-state.approved { color: #24695d; background: #f7fbfa; }
.team-admin-section { border-top: 1px solid var(--line-soft); }
.team-subhead { min-height: 42px; padding: 8px 15px 8px 64px; display: flex; align-items: center; justify-content: space-between; gap: 8px; background: #fafbfb; }
.team-subhead strong { color: var(--ink-2); font-size: 9px; }
.team-subhead span { color: var(--muted); font-size: 7.5px; }
.team-request-list, .team-member-list { padding-left: 64px; }
.team-request-row, .team-member-row { min-height: 56px; padding: 8px 15px 8px 0; border-top: 1px solid var(--line-soft); display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 9px; }
.team-request-row:first-child, .team-member-row:first-child { border-top: 0; }
.team-request-avatar { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: #315e55; background: #e7f1ee; font-size: 9px; font-weight: 700; }
.team-request-row > div:nth-child(2), .team-member-row > div:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.team-request-row strong, .team-member-row strong { color: var(--ink-2); font-size: 9px; }
.team-request-row small, .team-member-row small { overflow: hidden; color: var(--muted); font-size: 7.5px; text-overflow: ellipsis; white-space: nowrap; }
.team-request-row .team-request-identity { margin-top: 2px; display: flex; align-items: center; gap: 4px; color: #8a611d; white-space: normal; }
.team-request-row > div:last-child { display: flex; gap: 5px; }
.team-owner-fixed { color: #63736e; font-size: 8px; }
.team-empty-row { min-height: 46px; padding-left: 64px; display: flex; align-items: center; color: var(--muted); font-size: 8px; }
.team-empty-directory { min-height: 180px; display: grid; place-items: center; align-content: center; gap: 8px; color: var(--muted); }
.team-empty-directory > .icon { width: 30px; height: 30px; }
.team-empty-directory strong { font-size: 10px; }
.personal-collaboration-panel { border-top: 1px solid var(--line); background: #fff; }
.personal-collaboration-head { min-height: 68px; padding: 12px 20px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 11px; }
.personal-collaboration-head > span { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 50%; color: #225f85; background: #edf5fa; }
.personal-collaboration-head > div { min-width: 0; display: grid; gap: 3px; }
.personal-collaboration-head strong { color: #252a2f; font-size: 14px; }
.personal-collaboration-head small { color: var(--muted); font-size: 10px; }
.personal-collaboration-body { padding: 0 20px 18px 65px; }
.personal-collaborator-list { border: 1px solid var(--line-soft); border-radius: 7px; overflow: hidden; }
.personal-collaborator-row { min-height: 58px; padding: 8px 10px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 9px; border-top: 1px solid var(--line-soft); }
.personal-collaborator-row:first-child { border-top: 0; }
.personal-collaborator-row > div:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.personal-collaborator-row strong { color: #28302d; font-size: 10px; }
.personal-collaborator-row small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.personal-collaboration-empty { min-height: 54px; padding: 8px 10px; display: flex; align-items: center; gap: 9px; border: 1px dashed #cfdad6; border-radius: 7px; color: #60716b; background: #fafcfb; }
.personal-collaboration-empty > span { color: #3c7b6d; }
.personal-collaboration-empty > div { display: grid; gap: 2px; }
.personal-collaboration-empty strong { color: #35423e; font-size: 10px; }
.personal-collaboration-empty small { color: var(--muted); font-size: 8px; }
.personal-collaboration-safety { margin-top: 8px; display: flex; align-items: center; gap: 5px; color: #688078; font-size: 8px; }
.personal-documents-panel { margin-top: 16px; border-top: 1px solid var(--line); background: #fff; }
.personal-documents-head { min-height: 62px; padding: 10px 20px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-bottom: 1px solid var(--line-soft); }
.personal-documents-head > div { min-width: 0; display: flex; align-items: center; gap: 11px; }
.personal-documents-head > div > span { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: #365779; background: #eaf1f7; }
.personal-documents-head > div > div { min-width: 0; display: grid; gap: 2px; }
.personal-documents-head strong { color: #252a2f; font-size: 13px; }
.personal-documents-head small { color: var(--muted); font-size: 9px; }
.personal-documents-privacy { min-height: 38px; padding: 8px 20px; display: flex; align-items: center; gap: 8px; color: #49645f; background: #f4f8f7; border-bottom: 1px solid #e4ece9; font-size: 9px; line-height: 1.5; }
.personal-documents-privacy .icon { flex: 0 0 auto; color: var(--teal); }
.personal-photo-section,
.personal-document-section { min-width: 0; }
.personal-document-section { border-top: 1px solid var(--line-soft); }
.personal-material-subhead { min-height: 58px; padding: 10px 20px; display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.personal-material-subhead > div:first-child { display: grid; min-width: 0; gap: 3px; }
.personal-material-subhead strong { color: #30363a; font-size: 12px; }
.personal-material-subhead span { color: var(--muted); font-size: 9px; line-height: 1.45; }
.personal-photo-upload-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 7px; }
.personal-photo-grid { display: grid; padding: 0 20px 18px; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; }
.personal-photo-item { position: relative; min-width: 0; overflow: hidden; border: 1px solid #dfe6e3; border-radius: 7px; background: #fff; }
.personal-photo-preview { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: #eef2f1; }
.personal-photo-preview img { width: 100%; height: 100%; display: block; object-fit: cover; }
.personal-photo-preview > span { position: absolute; left: 8px; bottom: 8px; min-height: 22px; padding: 0 7px; display: inline-flex; align-items: center; border-radius: 4px; color: #fff; background: rgba(27, 39, 35, 0.72); font-size: 9px; font-weight: 650; backdrop-filter: blur(8px); }
.personal-photo-copy { padding: 10px; display: grid; min-width: 0; gap: 4px; }
.personal-photo-copy strong,
.personal-photo-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.personal-photo-copy strong { color: #30363a; font-size: 10px; }
.personal-photo-copy small { color: var(--muted); font-size: 8px; }
.personal-photo-copy .filter-select { width: 100%; height: 31px; margin-top: 3px; }
.personal-photo-actions { position: absolute; z-index: 2; top: 7px; right: 7px; display: flex; gap: 5px; }
.personal-photo-actions .icon-button { width: 29px; height: 29px; border-color: rgba(255,255,255,.72); color: #2f4d45; background: rgba(255,255,255,.9); backdrop-filter: blur(8px); }
.personal-photo-actions .icon-button.remove { color: #954d46; }
.personal-photo-empty { min-height: 116px; margin: 0 20px 18px; padding: 20px; display: flex; align-items: center; justify-content: center; gap: 12px; border: 1px dashed #cfdbd7; border-radius: 7px; color: var(--muted); background: #fafcfb; text-align: left; }
.personal-photo-empty > span { width: 38px; height: 38px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: var(--teal); background: #e7f2ee; }
.personal-photo-empty > div { display: grid; max-width: 440px; gap: 3px; }
.personal-photo-empty strong { color: #4c5854; font-size: 11px; }
.personal-photo-empty small { font-size: 9px; line-height: 1.55; }
.personal-photo-item.image-unavailable .personal-photo-preview { display: grid; place-items: center; }
.personal-photo-item.image-unavailable .personal-photo-preview::before { content: "照片预览暂不可用"; color: var(--muted); font-size: 9px; }
.personal-photo-item.image-unavailable .personal-photo-preview img { display: none; }
.personal-document-list { display: grid; }
.personal-document-item { min-width: 0; min-height: 62px; padding: 9px 20px; display: grid; grid-template-columns: 32px minmax(0,1fr) 150px 30px 30px; align-items: center; gap: 9px; border-bottom: 1px solid var(--line-soft); }
.personal-document-item:last-child { border-bottom: 0; }
.personal-document-item .file-icon { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 6px; color: #46627c; background: #edf2f6; }
.personal-document-name { min-width: 0; display: grid; gap: 3px; }
.personal-document-name strong, .personal-document-name small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.personal-document-name strong { color: #30363a; font-size: 10px; font-weight: 620; }
.personal-document-name small { color: var(--muted); font-size: 8px; }
.personal-document-item .filter-select { width: 100%; height: 31px; }
.personal-document-item .icon-button { width: 29px; height: 29px; }
.personal-document-item .icon-button.remove { color: #9b554d; }
.personal-documents-empty { min-height: 112px; padding: 20px; display: flex; align-items: center; justify-content: center; gap: 12px; color: var(--muted); }
.personal-documents-empty > span { width: 38px; height: 38px; display: grid; place-items: center; color: #798b99; background: #f0f3f5; border-radius: 50%; }
.personal-documents-empty > div { display: grid; gap: 3px; }
.personal-documents-empty strong { color: #555e64; font-size: 11px; }
.personal-documents-empty small { font-size: 9px; }
.field-input[readonly], .field-textarea[readonly], .auto-field { color: #5e6865; background: #f3f5f4; cursor: default; }
.form-profile-alert { display: flex; align-items: center; gap: 9px; margin-top: 13px; padding: 10px 12px; border: 1px solid #e6d49f; border-radius: 6px; color: #745e25; background: #fffbef; font-size: 10px; }
.form-profile-alert > span { flex: 1; }
.title-collision-inline { min-height: 38px; margin-top: 10px; padding: 8px 10px; display: flex; align-items: center; gap: 7px; border: 1px solid #e8cf91; border-radius: 5px; color: #76591d; background: #fff9e8; font-size: 9px; line-height: 1.5; }
.title-collision-inline[hidden] { display: none; }
.title-collision-inline .icon { flex: 0 0 auto; color: #a97a1f; }
.title-collision-confirm { padding: 14px 18px; border-bottom: 1px solid #e8cf91; background: #fffaf0; }
.title-collision-confirm-head { display: grid; grid-template-columns: 34px minmax(0,1fr); gap: 10px; align-items: start; }
.title-collision-confirm-head > span { width: 34px; height: 34px; border-radius: 6px; display: grid; place-items: center; color: #956a16; background: #f8e9bf; }
.title-collision-confirm-head strong { color: #55451f; font-size: 12px; }.title-collision-confirm-head p { margin: 3px 0 0; color: #806c3e; font-size: 9px; line-height: 1.5; }
.title-collision-records { max-height: 160px; margin: 11px 0; border: 1px solid #eadcb7; border-radius: 6px; overflow-y: auto; background: #fff; }
.title-collision-records > div { min-height: 53px; padding: 8px 10px; display: grid; grid-template-columns: 70px minmax(0,1fr) auto; align-items: center; gap: 9px; border-bottom: 1px solid #f0e8d3; }
.title-collision-records > div:last-child { border-bottom: 0; }.title-collision-records p { min-width: 0; margin: 0; display: grid; gap: 2px; }.title-collision-records p strong { overflow: hidden; color: #3e4542; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.title-collision-records p small { overflow: hidden; color: #828a87; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.title-collision-records b { color: #8b651b; font-size: 8px; white-space: nowrap; }
.title-collision-actions { display: flex; justify-content: flex-end; gap: 6px; }
.claim-suggestions { margin-top: 16px; border-top: 1px solid var(--line); background: #fff; }
.claim-suggestions-head { min-height: 52px; padding: 8px 20px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid var(--line); }
.claim-suggestions-head > div { display: grid; gap: 2px; }
.claim-suggestions-head strong { color: #252a2f; font-size: 13px; }
.claim-suggestions-head span { color: var(--muted); font-size: 10px; }
.claim-suggestion-list { display: grid; }
.claim-suggestion-row { min-width: 0; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 11px; min-height: 62px; padding: 8px 20px; border-bottom: 1px solid var(--line); }
.claim-suggestion-row:last-child { border-bottom: 0; }
.claim-suggestion-type { width: 32px; height: 32px; display: grid; place-items: center; border-radius: 6px; }
.claim-suggestion-row > div { min-width: 0; display: grid; gap: 3px; }
.claim-suggestion-row strong { overflow: hidden; color: #303438; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.claim-suggestion-row small { color: var(--muted); font-size: 9px; }
.claim-suggestions-empty { min-height: 78px; display: flex; align-items: center; justify-content: center; gap: 7px; color: var(--muted); font-size: 10px; }
.claim-show-more { width: 100%; min-height: 38px; justify-content: center; border: 0; border-top: 1px solid var(--line); border-radius: 0; color: var(--primary); }
.claim-suggestion-actions { display: flex !important; grid-auto-flow: column; align-items: center; gap: 7px !important; }
.personal-achievements { margin-top: 16px; border-top: 1px solid var(--line); background: #fff; }
.personal-achievement-list { display: grid; }
.personal-achievement-row { min-width: 0; min-height: 62px; padding: 8px 20px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 11px; border-bottom: 1px solid var(--line); }
.personal-achievement-row:last-child { border-bottom: 0; }
.personal-achievement-row > div { min-width: 0; display: grid; gap: 3px; }
.personal-achievement-row strong { overflow: hidden; color: #303438; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.personal-achievement-row small { color: var(--muted); font-size: 9px; }
.personal-achievement-owner { color: #68727b; font-size: 9px; }
.profile-display-toggle { min-width: 78px; height: 30px; padding: 0 10px 0 7px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 1px solid #d9dfe3; border-radius: 16px; color: #6d747a; background: #fff; font: inherit; font-size: 9px; cursor: pointer; }
.profile-display-toggle > span { width: 20px; height: 12px; position: relative; border-radius: 7px; background: #c7cdd1; transition: background .18s ease; }
.profile-display-toggle > span::after { content: ""; width: 8px; height: 8px; position: absolute; top: 2px; left: 2px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.18); transition: transform .18s ease; }
.profile-display-toggle.active { border-color: #b9d7cd; color: #176e5c; background: #f3faf7; }
.profile-display-toggle.active > span { background: var(--primary); }
.profile-display-toggle.active > span::after { transform: translateX(8px); }
.claim-prompt-overlay { background: rgba(20,24,27,.34); backdrop-filter: blur(10px); }
.claim-prompt-modal { width: min(560px,calc(100vw - 32px)); overflow: hidden; }
.claim-prompt-progress { height: 3px; background: #edf0f1; }
.claim-prompt-progress span { height: 100%; display: block; background: var(--primary); transition: width .2s ease; }
.claim-prompt-body { padding: 25px 28px 22px; }
.claim-prompt-kicker { display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 9px; color: #4f585f; font-size: 10px; }
.claim-prompt-kicker small { color: var(--muted); font-size: 9px; }
.claim-prompt-body h2 { margin: 18px 0 7px; color: #202427; font-size: 21px; line-height: 1.35; letter-spacing: 0; }
.claim-prompt-source { margin: 0; color: #727a80; font-size: 10px; line-height: 1.55; }
.claim-prompt-details { margin: 20px 0 0; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.claim-prompt-details > div { min-width: 0; padding: 11px 12px; border: 1px solid #e7eaec; border-radius: 6px; background: #fafbfb; }
.claim-prompt-details dt { margin-bottom: 4px; color: #8a9196; font-size: 8px; }
.claim-prompt-details dd { margin: 0; overflow-wrap: anywhere; color: #343a3e; font-size: 10px; line-height: 1.45; }
.claim-prompt-note { margin-top: 18px; padding: 11px 12px; border-left: 3px solid #8eb8ab; color: #5f6d68; background: #f4f8f6; font-size: 9px; line-height: 1.55; }
.claim-prompt-actions { display: grid; grid-template-columns: auto 1fr auto auto; gap: 8px; }
.resume-sections-pane { overflow-y: auto; background: #fafbfb; }
.resume-range-controls { padding: 14px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; border-bottom: 1px solid var(--line-soft); }
.resume-range-controls label { min-width: 0; display: grid; gap: 5px; }
.resume-range-controls label > span { color: #677176; font-size: 8px; font-weight: 650; }
.resume-range-controls .filter-select { width: 100%; }
.resume-setting-toggles { padding: 4px 14px 10px; display: grid; gap: 2px; border-bottom: 1px solid var(--line-soft); }
.resume-setting-toggles label { min-height: 38px; display: flex; align-items: center; gap: 8px; color: #535d62; font-size: 9px; cursor: pointer; }
.resume-setting-toggles input, .resume-section-row input { accent-color: var(--teal); }
.resume-section-list { padding: 9px 11px 14px; display: grid; gap: 7px; }
.resume-section-row { min-height: 58px; padding: 8px 8px 8px 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border: 1px solid #e2e6e6; border-radius: 7px; background: #fff; opacity: .64; }
.resume-section-row.enabled { border-color: #cbded9; background: #f7fbfa; opacity: 1; }
.resume-section-row > label { min-width: 0; display: flex; align-items: center; gap: 9px; cursor: pointer; }
.resume-section-row > label > span:nth-child(3) { min-width: 0; display: grid; gap: 3px; }
.resume-section-row strong, .resume-section-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.resume-section-row strong { color: #3d464a; font-size: 10px; }
.resume-section-row small { color: #8b9397; font-size: 8px; }
.resume-section-row > div { display: flex; gap: 3px; }
.resume-section-row .icon-button { width: 27px; height: 27px; }
.resume-section-icon { width: 29px; height: 29px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 6px; color: #fff; }
.resume-section-icon.type-paper { background: #2f8f7d; }.resume-section-icon.type-book { background: #8a623e; }.resume-section-icon.type-patent { background: #df765a; }.resume-section-icon.type-project { background: #4a78a8; }.resume-section-icon.type-teaching { background: #7659a6; }.resume-section-icon.type-course { background: #327b94; }.resume-section-icon.type-training { background: #9a5f73; }.resume-section-icon.type-award { background: #c38b27; }.resume-section-icon.type-academic { background: #566b9f; }.resume-section-icon.type-influence { background: #16838c; }
.resume-preview-pane { background: #eef0f1; }
.resume-preview-pane .resume-builder-pane-head { background: #fff; }
.resume-preview-scroll { height: calc(100% - 57px); padding: 24px; overflow: auto; }
.resume-sheet { width: min(100%,680px); min-height: 880px; margin: 0 auto; padding: 48px 52px 56px; border: 1px solid #d6dadd; background: #fff; box-shadow: 0 9px 24px rgba(0,0,0,.10); color: #252a2e; }
.resume-sheet-identity { padding-bottom: 10px; display: grid; gap: 4px; }
.resume-sheet-identity h2 { margin: 0; color: #0b2545; font-size: 25px; line-height: 1.15; }
.resume-sheet-identity strong { color: #4a5965; font-size: 11px; }
.resume-sheet-identity span { color: #5c6871; font-size: 9px; }
.resume-sheet-identity small { color: #7c858c; font-size: 8px; }
.resume-sheet section { margin-top: 20px; }
.resume-sheet h3 { margin: 0 0 9px; display: flex; align-items: baseline; justify-content: space-between; color: #2e74b5; font-size: 13px; }
.resume-sheet h3 span { color: #87929b; font-size: 8px; font-weight: 560; }
.resume-sheet p { margin: 0; color: #384146; font-size: 8.5px; line-height: 1.65; white-space: pre-line; }
.resume-sheet .resume-preview-line { margin-bottom: 4px; padding-left: 12px; position: relative; }
.resume-sheet .resume-preview-line::before { content: ""; width: 3px; height: 3px; position: absolute; left: 1px; top: 7px; border-radius: 50%; background: #657b8a; }
.resume-sheet ol { margin: 0; padding-left: 20px; }
.resume-sheet li { margin-bottom: 6px; padding-left: 3px; color: #384146; font-size: 8px; line-height: 1.55; overflow-wrap: anywhere; }
.resume-preview-more { display: block; margin-top: 7px; color: #89939a; font-size: 7px; }
.match-confidence { justify-self: end; color: #8a6d3b; font-size: 9px; font-weight: 650; white-space: nowrap; }
.match-confidence.high { color: #16805a; }
.match-confidence.medium { color: #9a6a24; }
.match-confidence.existing { color: #176f84; }
.folder-drop-zone { min-height: 210px; }
.folder-pick-actions { margin-top: 14px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; }
.folder-match-processing { min-height: 250px; padding: 34px 24px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 9px; text-align: center; }
.folder-match-processing > strong { color: #30383c; font-size: 12px; }
.folder-match-processing > span, .folder-match-processing > small { color: var(--muted); font-size: 9px; }
.folder-match-processing .smart-progress { width: min(100%, 420px); margin: 4px 0; }
.folder-match-summary { min-height: 58px; padding: 10px 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid #d8e5e1; border-radius: 8px; background: #f7faf9; }
.folder-match-summary > div { min-width: 0; display: grid; gap: 3px; }
.folder-match-summary > div:last-child { display: flex; flex: 0 0 auto; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; }
.folder-match-summary strong { overflow: hidden; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.folder-match-summary span { color: var(--muted); font-size: 9px; }
.folder-match-summary small { color: #657277; font-size: 8px; }
.folder-save-progress { margin-top: 10px; padding: 9px 11px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 6px 12px; border: 1px solid #cfe2de; border-radius: 8px; background: #f3f9f7; color: #48645e; font-size: 9px; }
.folder-save-progress .smart-progress { grid-column: 1/-1; margin: 0; }
.folder-match-list { max-height: 480px; margin-top: 12px; overflow-y: auto; overflow-anchor: none; border: 1px solid rgba(0,0,0,.09); border-radius: 8px; }
.folder-match-row { min-height: 68px; padding: 8px 10px; display: grid; grid-template-columns: 32px minmax(120px,.8fr) minmax(230px,1.6fr) 90px 96px 30px; align-items: center; gap: 9px; border-bottom: 1px solid rgba(0,0,0,.06); }
.folder-match-row:last-child { border-bottom: 0; }
.folder-file-info { min-width: 0; display: grid; gap: 3px; }
.folder-file-info strong, .folder-file-info span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.folder-file-info .folder-match-evidence { overflow: hidden; color: #457261; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.folder-file-info .folder-highlight-evidence { display: flex; align-items: center; gap: 4px; color: #866515; font-size: 8px; }
.folder-highlight-evidence .icon { width: 11px; height: 11px; flex: 0 0 auto; }
.folder-recognition-edited { display: flex; align-items: center; gap: 4px; color: #176a5c; font-size: 8px; }
.folder-recognition-edited .icon { width: 11px; height: 11px; flex: 0 0 auto; }
.folder-recognition-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.folder-recognition-actions button { min-height: 20px; padding: 0; display: inline-flex; align-items: center; gap: 3px; border: 0; color: #436d7b; background: transparent; font: inherit; font-size: 8px; cursor: pointer; }
.folder-recognition-actions button:hover { color: #075f87; text-decoration: underline; }
.folder-recognition-actions button:disabled { opacity: .5; cursor: default; text-decoration: none; }
.folder-recognition-actions .icon { width: 11px; height: 11px; flex: 0 0 auto; }
.folder-metadata-sync { min-width: 0; display: flex; align-items: center; gap: 5px; color: #176a5c; font-size: 8px; cursor: pointer; }
.folder-metadata-sync input { flex: 0 0 auto; margin: 0; accent-color: var(--teal); }
.folder-metadata-sync > span { min-width: 0; display: flex; align-items: center; gap: 4px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.folder-metadata-sync .icon { flex: 0 0 auto; }
.folder-metadata-sync.has-correction { color: #986522; }
.folder-match-row.unmatched { background: #fffaf1; }
.folder-match-row.unmatched .folder-match-evidence { color: #976f2c; }
.folder-match-row.pending-review { align-items: start; background: #fffaf1; }
.folder-record-select.needs-review { border-color: #d6b875; background: #fffdf6; box-shadow: 0 0 0 2px rgba(214,184,117,.12); }
.folder-match-row.has-conflict { align-items: start; background: #fffdf8; }
.folder-match-row.failed { background: #fff6f4; }
.folder-match-error { display: flex; align-items: center; gap: 4px; overflow: hidden; color: #b34235; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.folder-match-error .icon { flex: 0 0 auto; }
.folder-file-info strong { font-size: 10px; }
.folder-file-info span { color: var(--muted); font-size: 8px; }
.folder-record-select { min-width: 0; }
.folder-record-choice { width: 100%; min-width: 0; min-height: 42px; padding: 6px 8px; display: grid; grid-template-columns: 24px minmax(0,1fr) 14px; align-items: center; gap: 7px; border: 1px solid #d4dfdc; border-radius: 7px; outline: 0; color: #35413e; background: #fff; font: inherit; text-align: left; cursor: pointer; }
.folder-record-choice:hover { border-color: #8eb7ae; background: #f8fbfa; }
.folder-record-choice:focus-visible { border-color: #4b9b89; box-shadow: 0 0 0 3px rgba(36,131,111,.13); }
.folder-record-choice.needs-review { border-color: #d6b875; background: #fffdf6; box-shadow: 0 0 0 2px rgba(214,184,117,.12); }
.folder-record-choice.empty { border-style: dashed; color: #876b37; background: #fffdf8; }
.folder-record-choice > span:first-child { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; border-radius: 6px; color: #287665; background: #edf7f4; }
.folder-record-choice > .icon { width: 12px; height: 12px; color: #87928f; }
.folder-record-choice-copy { min-width: 0; display: grid; gap: 2px; }
.folder-record-choice-copy strong, .folder-record-choice-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.folder-record-choice-copy strong { color: #35413e; font-size: 9px; font-weight: 680; }
.folder-record-choice-copy small { color: #77817e; font-size: 7.5px; }
.folder-kind-select { min-width: 0; }
.folder-match-review { min-width: 0; display: grid; justify-items: center; gap: 4px; }
.match-review-button { min-height: 24px; padding: 3px 6px; display: inline-flex; align-items: center; justify-content: center; gap: 3px; border: 1px solid #d6b875; border-radius: 6px; color: #7a561b; background: #fff8e9; font: inherit; font-size: 8px; font-weight: 650; cursor: pointer; white-space: nowrap; }
.match-review-button:hover { border-color: #bf913c; background: #fff1d1; }
.match-review-button .icon { width: 12px; height: 12px; }
.match-create-button { min-height: 24px; padding: 3px 6px; display: inline-flex; align-items: center; justify-content: center; gap: 3px; border: 1px solid #9fcac0; border-radius: 6px; color: #176a5c; background: #f1f8f6; font: inherit; font-size: 8px; font-weight: 650; cursor: pointer; white-space: nowrap; }
.match-create-button:hover { border-color: #66aa99; background: #e5f3ef; }
.match-create-button .icon { width: 12px; height: 12px; }
.folder-recognition-editor { padding: 10px 0 2px; display: grid; grid-column: 2/-1; gap: 8px; border-top: 1px solid #dce5e8; }
.folder-recognition-editor-head, .folder-recognition-editor-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.folder-recognition-editor-head > div { min-width: 0; display: grid; gap: 3px; }
.folder-recognition-editor-head strong { display: flex; align-items: center; gap: 5px; color: #365c69; font-size: 9px; }
.folder-recognition-editor-head strong .icon { width: 13px; height: 13px; flex: 0 0 auto; }
.folder-recognition-editor-head span, .folder-recognition-editor-foot small { color: #718087; font-size: 8px; }
.folder-recognition-editor-head > span { flex: 0 0 auto; font-variant-numeric: tabular-nums; }
.folder-recognition-textarea { min-height: 190px; max-height: 360px; padding: 10px 11px; color: #303a3e; background: #fff; font: 9px/1.65 Consolas,"Microsoft YaHei",sans-serif; letter-spacing: 0; }
.folder-recognition-editor-foot > div { display: flex; flex: 0 0 auto; align-items: center; gap: 6px; }
.folder-pair-review { padding: 9px 0 2px; display: grid; grid-column: 2/-1; gap: 8px; border-top: 1px solid #eadfca; }
.folder-pair-review-title { display: flex; align-items: center; gap: 5px; color: #76541f; font-size: 9px; font-weight: 700; }
.folder-pair-review-title .icon { flex: 0 0 auto; }
.folder-pair-compare { min-width: 0; display: grid; grid-template-columns: minmax(0,1fr) 22px minmax(0,1fr); align-items: center; gap: 6px; }
.folder-pair-compare > div { min-width: 0; padding: 7px 9px; display: grid; gap: 3px; border: 1px solid #e1e5e3; border-radius: 6px; background: #fff; }
.folder-pair-compare small { color: #8a6a34; font-size: 8px; font-weight: 650; }
.folder-pair-compare strong, .folder-pair-compare span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.folder-pair-compare strong { color: #394246; font-size: 9px; }
.folder-pair-compare span { color: #737d81; font-size: 8px; }
.folder-pair-arrow { display: flex; align-items: center; justify-content: center; color: #aa894f; }
.folder-pair-actions { display: flex; align-items: center; justify-content: flex-end; gap: 6px; }
.folder-pair-actions .btn { min-width: 94px; justify-content: center; }
.folder-conflict-review { padding: 9px 0 2px; display: grid; grid-column: 2/-1; gap: 6px; border-top: 1px solid #eadfca; }
.folder-conflict-title { display: flex; align-items: center; gap: 5px; color: #8a5f1e; font-size: 9px; font-weight: 650; }
.folder-conflict-title .icon { flex: 0 0 auto; }
.folder-conflict-row { min-width: 0; display: grid; grid-template-columns: 90px minmax(0,1fr) minmax(0,1fr); align-items: stretch; gap: 6px; }
.folder-conflict-row > strong { padding: 7px 4px 0 0; color: #4b5255; font-size: 9px; }
.folder-conflict-choice { min-width: 0; padding: 6px 8px; display: flex; align-items: flex-start; gap: 6px; border: 1px solid #dfe4e2; border-radius: 6px; background: #fff; cursor: pointer; }
.folder-conflict-choice:hover { border-color: #b9cbc6; }
.folder-conflict-choice.selected { border-color: #75af9f; background: #f1f8f6; }
.folder-conflict-choice > input[type="radio"] { flex: 0 0 auto; margin: 2px 0 0; accent-color: var(--teal); }
.folder-conflict-choice span { min-width: 0; display: grid; gap: 2px; color: #4a5356; font-size: 8px; font-weight: 650; }
.folder-conflict-choice small { overflow: hidden; color: #737d81; font-size: 8px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.folder-conflict-choice-editable { cursor: default; }
.folder-conflict-edit { min-width: 0; flex: 1 1 auto; display: grid; gap: 5px; }
.folder-conflict-edit > span { display: flex; align-items: baseline; justify-content: space-between; gap: 7px; }
.folder-conflict-edit > span small { color: #788581; }
.folder-conflict-inline-control { width: 100%; min-width: 0; height: 30px; padding: 5px 7px; border: 1px solid #d8e1de; border-radius: 5px; outline: 0; color: #34413e; background: #fff; font: inherit; font-size: 8.5px; line-height: 1.4; letter-spacing: 0; }
.folder-conflict-inline-control:hover { border-color: #9dbdb5; }
.folder-conflict-inline-control:focus { border-color: #4b9b89; box-shadow: 0 0 0 2px rgba(36,131,111,.12); }
.folder-conflict-inline-textarea { height: auto; min-height: 48px; resize: vertical; }
.folder-conflict-choice-editable.selected .folder-conflict-inline-control { border-color: #94bfb4; background: #fff; }
.folder-conflict-inline-control:disabled { color: #7d8784; background: #f4f6f5; cursor: not-allowed; }
.folder-remove-file { width: 28px; height: 28px; color: #788286; }
.folder-remove-file:hover { color: #a9362b; background: #fae8e5; }
.folder-record-picker-layer { position: fixed; inset: 0; z-index: 112; padding: 22px; display: flex; align-items: center; justify-content: center; background: rgba(14,22,20,.44); backdrop-filter: blur(5px); animation: fade-in .12s ease; }
.folder-record-picker-panel { width: min(680px,100%); max-height: min(720px,calc(100vh - 44px)); display: flex; flex-direction: column; overflow: hidden; border: 1px solid rgba(255,255,255,.72); border-radius: 8px; background: rgba(255,255,255,.985); box-shadow: 0 28px 85px rgba(0,0,0,.26); animation: modal-in .16s ease; }
.folder-record-picker-head { min-height: 66px; padding: 0 18px 0 20px; display: flex; align-items: center; gap: 12px; border-bottom: 1px solid #e5e9e7; }
.folder-record-picker-head > div { min-width: 0; display: grid; gap: 3px; }
.folder-record-picker-head strong { color: #27322f; font-size: 15px; font-weight: 700; }
.folder-record-picker-head span { overflow: hidden; color: #6d7874; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.folder-record-picker-head .icon-button { flex: 0 0 auto; margin-left: auto; }
.folder-record-picker-tools { padding: 14px 16px 10px; display: grid; grid-template-columns: minmax(0,1fr) 130px; align-items: center; gap: 8px; }
.folder-record-picker-search { min-width: 0; height: 38px; padding: 0 11px; display: flex; align-items: center; gap: 8px; border: 1px solid #d5dedb; border-radius: 7px; background: #fff; }
.folder-record-picker-search:focus-within { border-color: #4b9b89; box-shadow: 0 0 0 3px rgba(36,131,111,.12); }
.folder-record-picker-search .icon { width: 15px; height: 15px; flex: 0 0 auto; color: #77847f; }
.folder-record-picker-search input { min-width: 0; flex: 1; border: 0; outline: 0; color: #28332f; background: transparent; font: inherit; font-size: 10px; letter-spacing: 0; }
.folder-record-picker-search input::placeholder { color: #9aa29f; }
.folder-record-picker-tools .filter-select { width: 100%; height: 38px; }
.folder-record-picker-summary { min-height: 30px; padding: 0 17px 7px; display: flex; align-items: center; gap: 8px; color: #54645f; font-size: 8.5px; }
.folder-record-picker-summary small { margin-left: auto; color: #89928f; font-size: 8px; }
.folder-record-picker-clear { min-height: 52px; margin: 0 16px 7px; padding: 7px 10px; display: grid; grid-template-columns: 28px minmax(0,1fr) 16px; align-items: center; gap: 8px; border: 1px solid #e0e5e3; border-radius: 7px; color: #68736f; background: #f8faf9; font: inherit; text-align: left; cursor: pointer; }
.folder-record-picker-clear:hover { border-color: #b9c9c5; background: #f3f7f5; }
.folder-record-picker-clear.selected { border-color: #86b6aa; color: #236e5e; background: #eef8f5; }
.folder-record-picker-clear > .icon { width: 15px; height: 15px; justify-self: center; }
.folder-record-picker-clear > span { min-width: 0; display: grid; gap: 2px; }
.folder-record-picker-clear strong { color: #3e4a46; font-size: 9px; }
.folder-record-picker-clear small { overflow: hidden; color: #7b8581; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.folder-record-picker-results { min-height: 130px; overflow-y: auto; overscroll-behavior: contain; border-top: 1px solid #edf0ef; }
.folder-record-picker-result { width: 100%; min-height: 58px; padding: 8px 16px; display: grid; grid-template-columns: 30px minmax(0,1fr) auto 16px; align-items: center; gap: 9px; border: 0; border-bottom: 1px solid #edf0ef; color: #35413d; background: #fff; font: inherit; text-align: left; cursor: pointer; }
.folder-record-picker-result:hover { background: #f5f9f7; }
.folder-record-picker-result.selected { background: #edf8f4; }
.folder-record-picker-result:last-child { border-bottom: 0; }
.folder-record-picker-result > .icon { width: 14px; height: 14px; color: #7d8b86; }
.record-picker-type { width: 30px; height: 30px; display: flex; align-items: center; justify-content: center; border-radius: 7px; }
.record-picker-copy { min-width: 0; display: grid; gap: 3px; }
.record-picker-copy strong, .record-picker-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.record-picker-copy strong { color: #2e3935; font-size: 9.5px; font-weight: 680; }
.record-picker-copy small { color: #78827e; font-size: 8px; }
.record-picker-kind { padding: 3px 6px; border-radius: 5px; color: #62706b; background: #f0f3f2; font-size: 8px; white-space: nowrap; }
.folder-record-picker-empty { min-height: 170px; padding: 26px; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 7px; color: #89938f; text-align: center; }
.folder-record-picker-empty strong { color: #48544f; font-size: 10px; }
.folder-record-picker-empty span { max-width: 340px; font-size: 8.5px; line-height: 1.55; }
.document-workbench { min-width: 0; }
.workbench-page-head { min-height: 68px; margin-bottom: 13px; padding: 0 2px; display: flex; align-items: center; gap: 14px; }
.workbench-page-head h1 { margin: 0; color: #252a2f; font-size: 22px; line-height: 1.2; }
.workbench-page-head p { margin: 4px 0 0; color: var(--muted); font-size: 10px; }
.workbench-head-stats { margin-left: auto; display: flex; align-items: center; gap: 8px; }
.workbench-head-stats > span { min-height: 34px; padding: 0 10px; display: inline-flex; align-items: center; gap: 4px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: #747b7f; font-size: 9px; }
.workbench-head-stats strong { color: #253a4f; font-size: 12px; }
.workbench-head-option { min-height: 34px; padding: 0 10px; display: inline-flex; align-items: center; gap: 6px; border: 1px solid var(--line); border-radius: 6px; background: #fff; color: #555d61; font-size: 10px; cursor: pointer; }
.workbench-head-option input { accent-color: var(--teal); }
.workbench-head-option span { white-space: nowrap; }
.workbench-pane-tabs { display: none; }
.workbench-layout { height: calc(100vh - 190px); min-height: 620px; display: grid; grid-template-columns: minmax(250px,.82fr) minmax(360px,1.28fr) minmax(285px,.9fr); overflow: hidden; border: 1px solid var(--line); border-radius: 7px; background: #fff; box-shadow: var(--shadow-sm); }
.workbench-pane { min-width: 0; min-height: 0; overflow: hidden; }
.source-pane, .sequence-pane { border-right: 1px solid var(--line); }
.workbench-pane-head { min-height: 57px; padding: 0 14px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line-soft); }
.workbench-pane-head > div { min-width: 0; display: grid; gap: 2px; }
.workbench-pane-head strong { color: #2e3438; font-size: 11px; }
.workbench-pane-head span { color: #899095; font-size: 8px; }
.workbench-pane-actions { display: flex !important; align-items: center; gap: 6px !important; }
.workbench-pane-actions .btn { white-space: nowrap; }
.workbench-source-filters { padding: 10px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; border-bottom: 1px solid var(--line-soft); background: #fafbfb; }
.workbench-search { height: 34px; position: relative; grid-column: 1/-1; }
.workbench-search .icon { position: absolute; left: 10px; top: 50%; transform: translateY(-50%); color: #88928f; }
.workbench-search input { width: 100%; height: 100%; padding: 0 10px 0 31px; border: 1px solid #dce2e0; border-radius: 6px; background: #fff; font-size: 10px; }
.workbench-result-list { height: calc(100% - 126px); overflow-y: auto; }
.workbench-result-row { min-height: 84px; position: relative; padding: 11px 44px 10px 12px; border-bottom: 1px solid var(--line-soft); background: #fff; transition: background .15s ease; }
.workbench-result-row:hover { background: #fafcfc; }
.workbench-result-row.selected { background: #f1f8f6; }
.workbench-result-row > div:first-child { display: flex; align-items: center; gap: 7px; }
.workbench-result-row > div:first-child > span { color: #8c9397; font-size: 8px; }
.external-library-tag { padding: 2px 5px; border-radius: 4px; color: #5f4f80; background: #f0edf7; font-size: 7px; font-style: normal; font-weight: 650; }
.workbench-result-row > strong { margin-top: 6px; display: block; overflow: hidden; color: #33383c; font-size: 10px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.workbench-result-row > small { margin-top: 3px; display: block; overflow: hidden; color: #858c90; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.workbench-result-row > .icon-button { width: 27px; height: 27px; position: absolute; right: 11px; top: 29px; }
.workbench-result-row.selected > .icon-button { color: #167a69; border-color: #b8d9d1; background: #e9f5f1; }
.workbench-personal-result { min-height: 0; padding-bottom: 12px; }
.workbench-personal-source-actions { margin-top: 10px; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.workbench-personal-source-actions > span { color: #65736f; font-size: 8px; font-weight: 650; }
.workbench-personal-source-actions > div { display: flex; align-items: center; gap: 4px; }
.workbench-personal-source-actions button { min-height: 24px; padding: 0 7px; border: 1px solid #d6dfdc; border-radius: 5px; color: #56625f; background: #fff; font-size: 7.5px; cursor: pointer; }
.workbench-personal-source-actions button:hover:not(:disabled) { border-color: #98bdb4; color: #176a5c; background: #f3f9f7; }
.workbench-personal-source-actions button:disabled { opacity: .42; cursor: default; }
.workbench-personal-source-list { margin-top: 6px; display: grid; gap: 4px; }
.workbench-personal-source-file { width: 100%; min-width: 0; min-height: 42px; padding: 5px 7px; display: grid; grid-template-columns: 26px minmax(0,1fr) 18px; align-items: center; gap: 7px; border: 1px solid #e1e6e4; border-radius: 6px; color: #58615f; background: #fff; text-align: left; cursor: pointer; }
.workbench-personal-source-file:hover { border-color: #b5cbc5; background: #fafdfc; }
.workbench-personal-source-file.selected { border-color: #9fc9bf; color: #176a5c; background: #edf7f4; }
.workbench-personal-source-file > .file-icon { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 5px; color: #526c79; background: #edf2f4; }
.workbench-personal-source-file > span:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.workbench-personal-source-file strong, .workbench-personal-source-file small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workbench-personal-source-file strong { color: #40504c; font-size: 8px; }
.workbench-personal-source-file small { color: #7e8986; font-size: 7.5px; }
.workbench-personal-source-file > i { display: grid; place-items: center; color: #87918e; font-style: normal; }
.workbench-personal-source-file.selected > i { color: #16806c; }
.workbench-sequence-list { height: calc(100% - 57px); padding: 10px; overflow-y: auto; background: #f7f8f8; }
.workbench-sequence-item { margin-bottom: 9px; overflow: hidden; border: 1px solid #dce2e0; border-radius: 7px; background: #fff; transition: opacity .15s ease, border-color .15s ease; }
.workbench-sequence-item.dragging { opacity: .42; }
.workbench-sequence-item.drag-over { border-color: #36907f; box-shadow: 0 0 0 2px rgba(22,122,105,.08); }
.workbench-section-item { border-color: #bfd0dc; background: #f9fbfc; }
.workbench-section-item.drag-over { border-color: #2d698e; }
.workbench-section-item .workbench-sequence-head { background: #eef4f7; }
.workbench-sequence-head { min-height: 70px; padding: 9px; display: grid; grid-template-columns: 27px 20px minmax(0,1fr) 92px; align-items: center; gap: 7px; }
.sequence-index { color: #2d668d; font-size: 10px; font-weight: 720; }
.sequence-grip { display: grid; place-items: center; color: #9aa09e; cursor: grab; }
.workbench-sequence-head > div:nth-child(3) { min-width: 0; display: grid; gap: 4px; }
.workbench-sequence-head > div:nth-child(3) strong, .workbench-sequence-head > div:nth-child(3) span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workbench-sequence-head > div:nth-child(3) strong { color: #30363a; font-size: 10px; }
.workbench-sequence-head > div:nth-child(3) span { color: #858c90; font-size: 8px; }
.sequence-actions { display: flex; justify-content: flex-end; gap: 3px; }
.sequence-actions .icon-button { width: 27px; height: 27px; }
.sequence-actions .remove:hover { color: var(--danger); border-color: #ecc6c6; background: #fff7f7; }
.workbench-section-editor { padding: 11px 12px 12px; display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 9px; border-top: 1px solid #dce6eb; background: #fff; }
.workbench-section-editor > label { min-width: 0; display: grid; align-content: start; gap: 5px; }
.workbench-section-editor > label > span { color: #65737d; font-size: 8px; font-weight: 650; }
.workbench-section-editor .field-input, .workbench-section-editor .field-textarea { width: 100%; border-color: #d6dfe4; background: #fbfcfd; font-size: 9px; }
.workbench-section-editor .field-input { height: 34px; }
.workbench-section-editor .field-textarea { min-height: 58px; padding: 8px 9px; resize: vertical; line-height: 1.55; }
.workbench-section-fields { grid-column: 1/-1; padding: 9px; display: grid; gap: 8px; border: 1px solid #e0e6e9; border-radius: 6px; background: #fbfcfc; }
.workbench-section-fields > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.workbench-section-fields > div:first-child strong { color: #3d4c57; font-size: 8.5px; }
.workbench-section-fields > div:first-child span { color: #8a949b; font-size: 7px; }
.workbench-section-fields > div:last-child { display: flex; flex-wrap: wrap; gap: 5px; }
.section-field-option { min-height: 27px; padding: 0 8px; display: inline-flex; align-items: center; gap: 5px; border: 1px solid #dce3e6; border-radius: 5px; background: #fff; color: #626c72; font-size: 7.5px; cursor: pointer; }
.section-field-option:has(input:checked) { border-color: #afd0c7; background: #eef8f5; color: #176a5c; }
.section-field-option:has(input:disabled) { cursor: default; }
.section-field-option input { width: 13px; height: 13px; margin: 0; accent-color: var(--teal); }
.workbench-section-preview { grid-column: 1/-1; overflow: hidden; border: 1px solid #e0e6e9; border-radius: 6px; background: #fbfcfc; }
.workbench-section-preview > div:first-child { min-height: 33px; padding: 0 9px; display: flex; align-items: center; justify-content: space-between; gap: 8px; border-bottom: 1px solid #e5eaec; }
.workbench-section-preview > div:first-child strong { color: #3d4c57; font-size: 8.5px; }
.workbench-section-preview > div:first-child span { color: #8a949b; font-size: 7px; }
.workbench-section-table-wrap { max-width: 100%; max-height: 170px; overflow: auto; }
.workbench-section-table-wrap table { width: 100%; border-collapse: collapse; table-layout: fixed; background: #fff; }
.workbench-section-table-wrap th, .workbench-section-table-wrap td { height: 30px; padding: 5px 7px; overflow: hidden; border-right: 1px solid #e9edef; border-bottom: 1px solid #e9edef; color: #515b61; font-size: 7.5px; text-align: left; text-overflow: ellipsis; white-space: nowrap; }
.workbench-section-table-wrap th { position: sticky; top: 0; z-index: 1; color: #526672; font-weight: 680; background: #f1f5f6; }
.workbench-section-table-wrap th:first-child, .workbench-section-table-wrap td:first-child { width: 54px; color: #2d698e; text-align: center; font-weight: 700; }
.workbench-section-table-wrap th:last-child, .workbench-section-table-wrap td:last-child { border-right: 0; }
.workbench-section-table-wrap tbody tr:last-child td { border-bottom: 0; }
.workbench-section-preview > p { margin: 0; padding: 15px 10px; color: #8b9499; font-size: 8px; text-align: center; }
.workbench-file-list { border-top: 1px solid var(--line-soft); background: #fbfcfc; }
.workbench-personal-selection-bar { min-height: 48px; padding: 7px 10px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid var(--line-soft); background: #f3f8f6; }
.workbench-personal-selection-bar > div { min-width: 0; display: flex; align-items: center; gap: 7px; }
.workbench-personal-selection-bar > div:first-child > .icon { flex: 0 0 auto; color: #267765; }
.workbench-personal-selection-bar span { min-width: 0; display: grid; gap: 2px; }
.workbench-personal-selection-bar strong { color: #40534e; font-size: 8.5px; }
.workbench-personal-selection-bar small { color: #7b8985; font-size: 7px; }
.workbench-personal-selection-bar .btn { min-height: 27px; padding-inline: 8px; white-space: nowrap; }
.workbench-file-row { min-height: 43px; padding: 6px 9px 6px 13px; display: grid; grid-template-columns: 16px 27px minmax(0,1fr) 82px; align-items: center; gap: 7px; border-bottom: 1px solid #eef1f0; cursor: pointer; }
.workbench-file-row[draggable="true"] { cursor: grab; }
.workbench-file-row.dragging { opacity: .4; }
.workbench-file-row.drag-over { box-shadow: inset 3px 0 #2f8f7d; background: #eef8f5; }
.workbench-file-row:last-child { border-bottom: 0; }
.workbench-file-row input { accent-color: var(--teal); cursor: pointer; }
.workbench-file-row .file-icon { width: 26px; height: 26px; }
.workbench-file-row > span:nth-child(3) { min-width: 0; display: grid; gap: 2px; }
.workbench-file-row strong, .workbench-file-row small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.workbench-file-row strong { color: #4a5054; font-size: 8.5px; }
.workbench-file-row small { color: #92989b; font-size: 7px; }
.workbench-file-row.personal-document-file small b { color: #397262; font-weight: 680; }
.workbench-file-row .support-badge { justify-self: end; font-style: normal; }
.workbench-no-files { min-height: 43px; display: flex; align-items: center; justify-content: center; gap: 6px; color: #9a8357; font-size: 8px; }
.workbench-empty { min-height: 180px; display: grid; align-content: center; justify-items: center; gap: 7px; color: #91989b; font-size: 9px; }
.workbench-empty.large { min-height: 360px; }
.workbench-empty strong { color: #697074; font-size: 11px; }
.cover-pane { overflow-y: auto; background: #fbfbfc; }
.cover-mode-control, .mini-segmented { padding: 3px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3px; border: 1px solid #e0e3e5; border-radius: 7px; background: #eff1f2; }
.cover-mode-control { margin: 11px 13px; }
.cover-mode-control button, .mini-segmented button { min-height: 28px; padding: 0 7px; border: 0; border-radius: 5px; background: transparent; color: #777e83; font-size: 8px; font-weight: 620; cursor: pointer; }
.cover-mode-control button.active, .mini-segmented button.active { color: #233b55; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
#workbench-cover-preview { padding: 0 13px; }
.workbench-cover-preview { width: min(162px,78%); aspect-ratio: 210/297; position: relative; margin: 4px auto 13px; overflow: hidden; border: 1px solid #d8dcdf; background: #fff; box-shadow: 0 5px 14px rgba(0,0,0,.10); }
.workbench-cover-preview.generated-cover { padding: 13px 12px 11px; }
.preview-logo { height: 27px; display: flex; align-items: center; }
.preview-logo img { max-width: 96px; max-height: 25px; object-fit: contain; object-position: left center; }
.generated-cover > i { width: 29px; height: 3px; position: absolute; left: 12px; top: 49px; background: var(--cover-accent); }
.preview-cover-main { position: absolute; left: 12px; right: 12px; top: 82px; display: grid; gap: 5px; }
.preview-cover-main small { color: #7f8790; font-size: 4px; font-weight: 700; }
.preview-cover-main strong { color: var(--cover-accent); font-size: 12px; line-height: 1.35; word-break: break-word; }
.preview-cover-main span { color: #5f6872; font-size: 7px; line-height: 1.4; }
.preview-cover-foot { position: absolute; left: 12px; right: 12px; bottom: 10px; padding-top: 4px; display: flex; justify-content: space-between; border-top: 1px solid #dfe2e4; color: #697178; font-size: 4px; }
.generated-cover.align-center .preview-logo { justify-content: center; }.generated-cover.align-center .preview-logo img { object-position: center; }.generated-cover.align-center > i { left: 50%; transform: translateX(-50%); }.generated-cover.align-center .preview-cover-main { text-align: center; }.generated-cover.align-center .preview-cover-foot { justify-content: center; gap: 8px; }
.workbench-cover-preview.custom-cover img { width: 100%; height: 100%; display: block; object-fit: contain; }
.workbench-cover-preview.custom-cover:not(:has(img)), .workbench-cover-preview.no-cover { display: grid; align-content: center; justify-items: center; gap: 8px; border-style: dashed; box-shadow: none; color: #8a9296; background: #f6f7f7; }
.workbench-cover-preview.no-cover { background: transparent; }
.workbench-cover-preview strong { font-size: 8px; }
.cover-controls { padding: 0 13px 16px; }
.cover-controls .form-field { margin-bottom: 9px; }
.cover-control-group { margin-top: 10px; display: grid; gap: 6px; }
.cover-control-group > span, .cover-control-row > div > span { color: #676f73; font-size: 8px; font-weight: 650; }
.cover-upload-button { max-width: 100%; overflow: hidden; justify-content: flex-start; text-overflow: ellipsis; }
.cover-upload-button.full { width: 100%; margin-top: 5px; }
.cover-control-row { margin-top: 11px; display: grid; grid-template-columns: minmax(0,1.3fr) minmax(86px,.7fr); gap: 9px; }
.cover-control-row > div { min-width: 0; display: grid; gap: 6px; }
.cover-control-row .mini-segmented { grid-template-columns: repeat(2,minmax(0,1fr)); }
.cover-swatches { min-height: 35px; display: flex; align-items: center; gap: 6px; }
.cover-swatches button { width: 20px; height: 20px; padding: 0; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 0 0 1px #ccd1d3; cursor: pointer; }
.cover-swatches button.active { box-shadow: 0 0 0 2px #69747a; }
.cover-none-note { min-height: 46px; padding: 11px; border: 1px dashed #d7dcde; border-radius: 6px; color: #7f878b; font-size: 8px; line-height: 1.5; }
.workbench-generation { position: fixed; left: calc(var(--sidebar-w) + 30px); right: 30px; bottom: 18px; z-index: 12; padding: 11px 14px; border: 1px solid #cddbd7; border-radius: 7px; background: rgba(255,255,255,.96); box-shadow: 0 8px 24px rgba(0,0,0,.12); }
.workbench-generation > div:first-child { display: flex; justify-content: space-between; gap: 12px; color: #51595d; font-size: 9px; }
.workbench-generation .smart-progress { width: 100%; margin-top: 7px; }
.document-builder-body { min-height: 540px; padding: 0; }
.document-builder-layout { min-height: 540px; display: grid; grid-template-columns: 315px minmax(0, 1fr); }
.document-settings { padding: 20px 22px; border-right: 1px solid rgba(0,0,0,.08); background: #fafafa; }
.document-settings .form-field { margin-bottom: 13px; }
.document-section-title { min-height: 30px; margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; color: #2e2e31; font-size: 11px; font-weight: 680; }
.document-section-title > span:last-child { color: #88888e; font-size: 9px; font-weight: 560; }
.document-options-title { margin-top: 12px; margin-bottom: 3px; }
.document-option { min-height: 58px; position: relative; display: grid; grid-template-columns: 30px minmax(0,1fr) 34px; align-items: center; gap: 9px; border-bottom: 1px solid rgba(0,0,0,.065); cursor: pointer; }
.document-option:last-child { border-bottom: 0; }
.document-option-icon { width: 29px; height: 29px; display: grid; place-items: center; border: 1px solid #d8dde1; border-radius: 7px; background: #fff; color: #4a555d; }
.document-option > span:nth-child(2) { display: grid; gap: 3px; }
.document-option strong { color: #333337; font-size: 10px; font-weight: 650; }
.document-option small { color: #85858b; font-size: 8px; line-height: 1.35; }
.document-option input { position: absolute; opacity: 0; pointer-events: none; }
.toggle-track { width: 32px; height: 18px; position: relative; border-radius: 10px; background: #c9cbd0; transition: background .18s ease; }
.toggle-track::after { content: ""; width: 14px; height: 14px; position: absolute; top: 2px; left: 2px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.18); transition: transform .18s ease; }
.document-option input:checked + .toggle-track { background: #167a69; }
.document-option input:checked + .toggle-track::after { transform: translateX(14px); }
.document-attachment-picker { min-width: 0; padding: 18px 20px 20px; }
.document-picker-head { min-height: 43px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.document-picker-head > div { display: flex; align-items: center; gap: 7px; }
.document-picker-head > div:first-child { display: grid; gap: 3px; }
.document-picker-head strong { color: #303034; font-size: 11px; }
.document-picker-head span { color: #828288; font-size: 9px; }
.document-warning { min-height: 36px; margin-bottom: 10px; padding: 8px 10px; display: flex; align-items: center; gap: 7px; border: 1px solid #ecdcae; border-radius: 7px; background: #fffbef; color: #8a691d; font-size: 9px; }
.document-attachment-list { max-height: 455px; overflow-y: auto; border: 1px solid rgba(0,0,0,.09); border-radius: 8px; background: #fff; }
.document-attachment-row { min-height: 69px; padding: 8px 9px; display: grid; grid-template-columns: 18px 32px minmax(150px,1fr) 116px 64px; align-items: center; gap: 9px; border-bottom: 1px solid rgba(0,0,0,.06); opacity: .62; transition: background .15s ease, opacity .15s ease; }
.document-attachment-row:last-child { border-bottom: 0; }
.document-attachment-row.selected { background: #f8fbfa; opacity: 1; }
.document-attachment-main { min-width: 0; display: grid; gap: 4px; }
.document-attachment-main strong, .document-attachment-main span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.document-attachment-main strong { color: #303034; font-size: 10px; font-weight: 650; }
.document-attachment-main span { color: #818187; font-size: 8px; }
.document-attachment-meta { min-width: 0; display: grid; justify-items: start; gap: 4px; color: #5e5e64; font-size: 9px; }
.support-badge { max-width: 100%; padding: 2px 5px; overflow: hidden; border-radius: 4px; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.support-badge.ready { color: #187158; background: #e9f5f0; }
.support-badge.limited { color: #8a691d; background: #fbf2d9; }
.document-order-actions { display: flex; justify-content: flex-end; gap: 4px; }
.document-order-actions .icon-button { width: 28px; height: 28px; }
.document-generation { padding: 12px 20px 15px; border-top: 1px solid rgba(0,0,0,.08); background: #fbfcfc; }
.document-generation > div:first-child { display: flex; justify-content: space-between; gap: 12px; color: #55555a; font-size: 9px; }
.document-generation .smart-progress { width: 100%; margin-top: 8px; }
@keyframes smart-pulse { 0%,100% { box-shadow: 0 0 0 0 rgba(0,113,227,.12); } 50% { box-shadow: 0 0 0 10px rgba(0,113,227,0); } }

.security-page { width: 100%; max-width: 1280px; margin: 0 auto; }
.security-page-head { min-height: 76px; margin-bottom: 18px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.security-page-head > div { display: grid; gap: 2px; }
.security-page-head > div > span, .security-eyebrow { color: #39796d; font-size: 9px; font-weight: 760; text-transform: uppercase; }
.security-page-head h1 { margin: 0; color: #1c2b27; font-size: 24px; line-height: 1.25; }
.security-page-head p { margin: 0; color: var(--muted); font-size: 11px; }
.security-mode { min-height: 30px; padding: 0 10px; border-radius: 5px; display: inline-flex; align-items: center; gap: 6px; font-size: 9px; font-weight: 700; }
.security-mode.local { color: #8a6322; background: #fbf1d9; }
.security-mode.protected { color: #176b5d; background: #e4f2ee; }
.security-setup { min-height: 500px; border: 1px solid var(--line); border-radius: 8px; display: grid; grid-template-columns: minmax(0,1.1fr) minmax(340px,.9fr); overflow: hidden; background: #fff; box-shadow: var(--shadow-sm); }
.security-setup-copy { padding: 54px; display: flex; flex-direction: column; justify-content: center; background: #f2f6f4; }
.security-setup-copy h2 { max-width: 540px; margin: 8px 0 14px; color: #1a2b26; font-size: 27px; line-height: 1.35; }
.security-setup-copy > p { max-width: 560px; margin: 0; color: #65736e; font-size: 12px; line-height: 1.8; }
.security-protection-list { margin-top: 28px; display: grid; gap: 10px; }
.security-protection-list span { display: flex; align-items: center; gap: 8px; color: #3e5650; font-size: 11px; }
.security-protection-list .icon { color: var(--teal); }
.security-setup-form { padding: 42px 44px; display: flex; flex-direction: column; justify-content: center; gap: 13px; }
.security-setup-form > div:first-child { margin-bottom: 8px; display: grid; gap: 3px; }
.security-setup-form > div:first-child strong { font-size: 16px; }
.security-setup-form > div:first-child span, .security-setup-form > small { color: var(--muted); font-size: 9px; }
.security-primary-action { width: 100%; margin-top: 4px; }
.local-trash-preview { margin-top: 14px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.security-summary { min-height: 75px; margin-bottom: 14px; padding: 10px 14px; border: 1px solid var(--line); border-radius: 7px; display: grid; grid-template-columns: minmax(260px,1.6fr) repeat(3,minmax(95px,.5fr)) auto; align-items: center; gap: 10px; background: #fff; box-shadow: var(--shadow-sm); }
.security-summary > div { min-width: 0; height: 45px; padding: 0 14px; border-right: 1px solid var(--line-soft); display: flex; align-items: center; gap: 10px; }
.security-summary > div:first-child > span { width: 34px; height: 34px; border-radius: 6px; display: grid; place-items: center; color: #9b6d17; background: #fbf1d9; }
.security-summary p { min-width: 0; margin: 0; display: grid; }
.security-summary p strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.security-summary p small, .security-summary > div > span { color: var(--muted); font-size: 9px; }
.security-summary > div:not(:first-child) { display: grid; gap: 0; align-content: center; }
.security-summary > div:not(:first-child) strong { font-size: 18px; line-height: 1.2; }
.security-summary > .security-session-actions { height: auto; padding: 0; border-right: 0; display: flex; gap: 5px; }
.security-summary.external-user { grid-template-columns: minmax(240px,.9fr) minmax(300px,1.35fr) auto; }
.security-summary.external-user .security-external-scope { height: 45px; padding: 0 14px; display: flex; align-items: center; gap: 7px; color: #37685f; background: #f2f8f6; font-size: 9px; font-weight: 650; }
.security-summary.external-user .security-external-scope .icon { flex: 0 0 auto; color: #258271; }
.security-session-actions .btn { padding-inline: 8px; }
.security-console { min-height: 480px; border: 1px solid var(--line); border-radius: 8px; display: grid; grid-template-columns: 176px minmax(0,1fr); overflow: hidden; background: #fff; box-shadow: var(--shadow-sm); }
.security-tabs { padding: 12px 9px; display: flex; flex-direction: column; gap: 4px; border-right: 1px solid var(--line-soft); background: #f7f9f8; }
.security-tabs button { min-height: 39px; padding: 0 10px; border: 0; border-radius: 5px; display: flex; align-items: center; gap: 8px; color: #67746f; background: transparent; font-size: 10px; font-weight: 620; cursor: pointer; text-align: left; }
.security-tabs button:hover { background: #edf2f0; color: #304b43; }
.security-tabs button.active { color: #145e53; background: #e5f1ed; }
.security-tabs button > span { min-width: 18px; height: 18px; margin-left: auto; border-radius: 9px; display: grid; place-items: center; color: #fff; background: var(--coral); font-size: 8px; }
.security-content { min-width: 0; padding: 20px; }
.security-section-head { min-height: 43px; margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.security-section-head > div { display: grid; gap: 2px; }
.security-section-head strong { color: #303b37; font-size: 12px; }
.security-section-head span { color: var(--muted); font-size: 9px; }
.security-account-list, .security-audit-list, .security-trash-list, .security-request-list { border: 1px solid var(--line-soft); border-radius: 7px; overflow: hidden; }
.security-account-row { min-height: 65px; padding: 9px 11px; display: grid; grid-template-columns: 36px minmax(180px,1fr) 62px minmax(120px,auto); align-items: center; gap: 10px; border-bottom: 1px solid var(--line-soft); }
.security-account-row:last-child, .security-audit-row:last-child, .security-trash-row:last-child, .security-request-row:last-child { border-bottom: 0; }
.security-account-row.disabled { opacity: .55; background: #f8f8f8; }
.security-user-avatar { width: 34px; height: 34px; border-radius: 6px; display: grid; place-items: center; color: #17685c; background: #e1f0ec; font-size: 12px; font-weight: 740; }
.security-user-avatar.teacher { color: #35699b; background: #e7f0f8; }
.security-user-avatar.assistant { color: #8c5d18; background: #f8edd8; }
.security-user-avatar.student { color: #854a60; background: #f7e9ef; }
.security-account-main { min-width: 0; display: grid; gap: 3px; }
.security-account-main > div { min-width: 0; display: flex; align-items: center; gap: 6px; }
.security-account-main strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #303936; font-size: 10px; }
.security-account-main > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #89918e; font-size: 8px; }
.security-owner-lock, .security-role-tag, .security-disabled-tag, .security-lab-tag, .security-external-tag { min-height: 20px; padding: 0 6px; border-radius: 4px; display: inline-flex; align-items: center; gap: 3px; font-size: 7px; white-space: nowrap; }
.security-owner-lock { color: #866116; background: #fbf1d9; }.security-role-tag { color: #42665e; background: #edf3f1; }.security-disabled-tag { color: #8c4a4a; background: #f7e8e8; }.security-lab-tag { color: #176b5d; background: #e4f2ee; }.security-external-tag { color: #68706d; background: #eef0ef; }
.security-account-permissions { display: grid; justify-items: center; line-height: 1.15; }
.security-account-permissions strong { font-size: 14px; }.security-account-permissions span, .security-immutable { color: #89918e; font-size: 8px; }
.security-immutable { justify-self: end; }
.security-personal-card { min-height: 160px; padding: 26px; border: 1px solid var(--line); border-radius: 7px; display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 14px; background: #f9fbfa; }
.security-personal-card .security-user-avatar { width: 48px; height: 48px; }
.security-personal-card h3 { margin: 3px 0; font-size: 16px; }.security-personal-card p, .security-personal-card > div > span { margin: 0; color: var(--muted); font-size: 9px; }
.security-permission-badges { grid-column: 1/-1; display: flex; flex-wrap: wrap; gap: 5px; }
.security-permission-badges span { padding: 4px 7px; border-radius: 4px; color: #3d6259; background: #eaf2ef; font-size: 8px; }
.security-matrix-wrap { overflow-x: auto; }
.security-matrix-head { margin-bottom: 8px; }
.security-matrix-note { margin-bottom: 12px; padding: 10px 12px; border-left: 3px solid #4a78a8; color: #62706c; background: #f1f5f8; font-size: 9px; }
.security-matrix-actions { min-width: 680px; margin-bottom: 10px; padding: 9px 10px; display: flex; align-items: center; justify-content: space-between; gap: 14px; border: 1px solid var(--line); background: #fbfcfc; }
.security-matrix-apply { display: flex; align-items: center; gap: 8px; cursor: pointer; }
.security-matrix-apply input { accent-color: var(--teal); }
.security-matrix-apply > span { display: grid; gap: 1px; }
.security-matrix-apply strong { color: #394641; font-size: 9px; }
.security-matrix-apply small { color: var(--muted); font-size: 8px; }
.security-matrix { width: 100%; border-collapse: collapse; min-width: 680px; }
.security-matrix th, .security-matrix td { height: 44px; padding: 7px 10px; border-bottom: 1px solid var(--line-soft); text-align: center; font-size: 9px; }
.security-matrix th:first-child, .security-matrix td:first-child { text-align: left; }
.security-matrix td:first-child { display: grid; gap: 1px; }.security-matrix td:first-child strong { font-size: 9px; }.security-matrix td:first-child small { color: #9aa19f; font-size: 7px; }
.security-matrix td .icon { color: var(--teal); }.security-matrix td > span { color: #b5bcb9; }
.security-matrix-toggle { position: relative; width: 24px; height: 24px; margin: 0 auto; display: grid; place-items: center; cursor: pointer; }
.security-matrix-toggle input { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.security-matrix-toggle > span { width: 20px; height: 20px; display: grid; place-items: center; border: 1px solid #c8d0cd; background: #fff; color: transparent; transition: border-color .15s ease, background-color .15s ease, color .15s ease; }
.security-matrix-toggle .icon { width: 12px; height: 12px; color: inherit !important; }
.security-matrix-toggle input:checked + span { border-color: var(--teal); background: var(--teal); color: #fff; }
.security-matrix-toggle input:focus-visible + span { outline: 2px solid rgba(37, 107, 92, .24); outline-offset: 2px; }
.security-matrix-toggle input:disabled + span { border-color: #b7c8c2; background: #e9f0ed; color: #6c8e82; cursor: not-allowed; }
.security-audit-row { min-height: 55px; padding: 8px 10px; display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 9px; border-bottom: 1px solid var(--line-soft); }
.security-audit-icon { width: 28px; height: 28px; border-radius: 5px; display: grid; place-items: center; color: #4f7169; background: #edf3f1; }
.security-audit-row > div { min-width: 0; display: grid; gap: 2px; }.security-audit-row strong { font-size: 9px; }.security-audit-row span, .security-audit-row small { color: #89918e; font-size: 8px; }
.security-trash-row, .security-request-row { min-height: 61px; padding: 9px 11px; display: grid; grid-template-columns: 70px minmax(0,1fr) auto; align-items: center; gap: 10px; border-bottom: 1px solid var(--line-soft); }
.security-trash-row > div, .security-request-row > div { min-width: 0; display: grid; gap: 2px; }.security-trash-row strong, .security-request-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }.security-trash-row span, .security-request-row span { color: #89918e; font-size: 8px; }
.security-request-row > div:last-child { display: flex; flex-direction: row; gap: 5px; }
.security-empty { min-height: 150px; display: grid; place-items: center; color: #929b97; font-size: 9px; }.security-empty.compact { min-height: 94px; padding: 20px; text-align: center; }
.security-locked { min-height: 280px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; color: #8c9692; }.security-locked > .icon { width: 30px; height: 30px; color: #a5afab; }.security-locked strong { color: #485550; font-size: 11px; }.security-locked span { font-size: 9px; }
.delegation-columns { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.delegation-assurance { min-height: 42px; margin-bottom: 12px; padding: 8px 10px; display: flex; align-items: center; gap: 7px; border: 1px solid #cfe2db; border-radius: 6px; color: #315e53; background: #eff7f4; font-size: 9px; line-height: 1.5; }
.delegation-columns > section { min-width: 0; border: 1px solid var(--line-soft); border-radius: 7px; overflow: hidden; }
.delegation-column-head { min-height: 42px; padding: 0 11px; display: flex; align-items: center; justify-content: space-between; background: #f8faf9; }
.delegation-column-head strong { font-size: 9px; }.delegation-column-head span { color: var(--muted); font-size: 8px; }
.delegation-row { min-height: 63px; padding: 8px 9px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 8px; border-top: 1px solid var(--line-soft); }
.delegation-row > div:nth-child(2) { min-width: 0; display: grid; gap: 2px; }.delegation-row > div:nth-child(2) strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 9px; }.delegation-row > div:nth-child(2) span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #87918d; font-size: 7px; }.delegation-row > div:last-child { display: flex; gap: 3px; }
.delegation-row .icon-button { width: 27px; height: 27px; }.icon-button.danger { color: var(--danger); }.delegation-trust { color: #2f7064; font-size: 8px; }
.public-sync-card { min-height: 82px; margin-top: 14px; padding: 13px 15px; border: 1px solid #d9e5e1; border-radius: 7px; display: grid; grid-template-columns: 32px minmax(0,1fr) auto; align-items: center; gap: 11px; background: #f7faf9; }
.public-sync-card > span { width: 30px; height: 30px; border-radius: 6px; display: grid; place-items: center; color: #2d6e62; background: #e4f1ed; }.public-sync-card > div { min-width: 0; display: grid; gap: 2px; }.public-sync-card strong { font-size: 10px; }.public-sync-card p { margin: 0; color: #75817d; font-size: 8px; }.public-sync-card code { width: max-content; max-width: 100%; margin-top: 3px; padding: 2px 5px; overflow: hidden; color: #435b55; background: #eef3f1; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.security-footnote { min-height: 39px; padding: 0 4px; display: flex; align-items: center; gap: 6px; color: #7e8985; font-size: 8px; }
.identity-mapping-wrap { min-width: 0; }
.identity-mapping-note { min-height: 42px; margin-bottom: 11px; padding: 9px 11px; border-left: 3px solid #4a78a8; display: flex; align-items: center; gap: 7px; color: #536965; background: #f1f5f8; font-size: 9px; line-height: 1.55; }
.identity-mapping-note .icon { flex: 0 0 auto; color: #4a78a8; }
.identity-mapping-summary { margin-bottom: 10px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.identity-mapping-summary > div { min-height: 54px; padding: 9px 11px; display: grid; align-content: center; gap: 2px; border: 1px solid var(--line-soft); background: #f8faf9; }
.identity-mapping-summary strong { color: #2f4640; font-size: 15px; line-height: 1.15; }
.identity-mapping-summary span { color: var(--muted); font-size: 8px; }
.identity-platform-switch { margin-bottom: 8px; padding: 4px; display: flex; gap: 3px; overflow-x: auto; border: 1px solid var(--line-soft); background: #f2f5f4; scrollbar-width: thin; }
.identity-platform-switch button { min-width: max-content; min-height: 34px; padding: 0 10px; border: 0; border-radius: 5px; display: inline-flex; align-items: center; gap: 6px; color: #65716d; background: transparent; font: inherit; font-size: 8px; cursor: pointer; }
.identity-platform-switch button b { min-width: 18px; height: 18px; padding: 0 4px; border-radius: 9px; display: inline-grid; place-items: center; color: #68736f; background: #e2e7e5; font-size: 7px; }
.identity-platform-switch button.active { color: #176b5d; background: #fff; box-shadow: 0 1px 4px rgba(26,58,50,.13); }
.identity-platform-switch button.active b { color: #fff; background: #2b786a; }
.identity-mapping-toolbar { min-height: 48px; margin-bottom: 10px; padding: 7px; display: grid; grid-template-columns: minmax(220px,1fr) 148px 32px; align-items: center; gap: 6px; border: 1px solid var(--line-soft); background: #fbfcfc; }
.identity-mapping-toolbar > label { min-width: 0; min-height: 32px; padding: 0 9px; display: flex; align-items: center; gap: 6px; border: 1px solid var(--line); background: #fff; }
.identity-mapping-toolbar input { width: 100%; min-width: 0; border: 0; outline: 0; color: var(--text); background: transparent; font: inherit; font-size: 9px; }
.identity-mapping-toolbar .field-select { min-height: 32px; font-size: 8px; }
.identity-mapping-table-wrap { overflow-x: visible; border: 1px solid var(--line-soft); border-radius: 7px; }
.identity-mapping-table { width: 100%; min-width: 0; border-collapse: collapse; table-layout: fixed; }
.identity-mapping-table th { height: 33px; padding: 6px; color: #73807c; background: #f7f9f8; font-size: 7px; font-weight: 700; text-align: left; }
.identity-mapping-table td { height: 54px; padding: 6px; border-top: 1px solid var(--line-soft); font-size: 8px; vertical-align: middle; }
.identity-mapping-table th:nth-child(1), .identity-mapping-table td:nth-child(1) { width: 10%; }
.identity-mapping-table th:nth-child(2), .identity-mapping-table td:nth-child(2) { width: 18%; }
.identity-mapping-table th:nth-child(3), .identity-mapping-table td:nth-child(3), .identity-mapping-table th:nth-child(4), .identity-mapping-table td:nth-child(4) { width: 13%; }
.identity-mapping-table th:nth-child(5), .identity-mapping-table td:nth-child(5) { width: 13%; }
.identity-mapping-table th:nth-child(6), .identity-mapping-table td:nth-child(6) { width: 17%; }
.identity-mapping-table th:nth-child(7), .identity-mapping-table td:nth-child(7) { width: 10%; }
.identity-mapping-table th:last-child, .identity-mapping-table td:last-child { width: 40px; text-align: right; }
.identity-platform, .identity-status { min-height: 22px; padding: 0 6px; border-radius: 4px; display: inline-flex; align-items: center; color: #5d6965; background: #eef1f0; font-size: 7px; font-weight: 700; white-space: nowrap; }
.identity-platform.canonical { color: #285f87; background: #e6eff7; }
.identity-status.confirmed { color: #176b5d; background: #e0f0eb; }
.identity-status.proposed { color: #8a641b; background: #faefd5; }
.identity-status.unmapped { color: #7c5a62; background: #f4e9ec; }
.identity-status.ignored { color: #68706d; background: #eceeed; }
.identity-status.access-approved { color: #176b5d; background: #e0f0eb; }
.identity-status.access-pending { color: #8a641b; background: #faefd5; }
.identity-status.access-disabled, .identity-status.access-rejected { color: #9a4444; background: #f8e4e4; }
.identity-status.access-unknown { color: #68706d; background: #eceeed; }
.identity-access { min-width: 0; display: grid; justify-items: start; gap: 3px; }
.identity-access small { max-width: 100%; overflow: hidden; color: #7d8985; font-size: 7px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.identity-time { color: #46534f; font-size: 7px; line-height: 1.4; white-space: normal; }
.identity-time.unsynced { color: #9aa29f; }
.identity-account { min-width: 0; display: grid; gap: 2px; }
.identity-account strong { max-width: 100%; overflow: hidden; color: #303936; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.identity-account span { max-width: 100%; overflow: hidden; color: #8a9490; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.identity-linked-user { display: flex; align-items: center; gap: 7px; }
.identity-linked-user .security-user-avatar { width: 28px; height: 28px; font-size: 9px; }
.identity-linked-user > span:last-child { min-width: 0; display: grid; gap: 1px; }
.identity-linked-user strong { color: #34433e; font-size: 8px; }
.identity-linked-user small { color: #8a9490; font-size: 7px; }
.identity-unlinked { display: inline-flex; align-items: center; gap: 5px; color: #929b97; font-size: 8px; }
.identity-modal-note { margin-bottom: 13px; padding: 9px 10px; display: flex; align-items: center; gap: 7px; color: #506b64; background: #eff6f4; font-size: 8px; line-height: 1.55; }
.maintenance-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.maintenance-card { min-width: 0; border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: #fff; }
.maintenance-card-head { min-height: 68px; padding: 12px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 9px; border-bottom: 1px solid var(--line-soft); background: #f9fbfa; }
.maintenance-card-head > span { width: 34px; height: 34px; border-radius: 6px; display: grid; place-items: center; color: #246d60; background: #e5f1ed; }
.maintenance-card-head > div { min-width: 0; display: grid; gap: 2px; }
.maintenance-card-head strong { color: #33413d; font-size: 10px; }
.maintenance-card-head small { overflow: hidden; color: var(--muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.maintenance-status { min-height: 23px; padding: 0 7px; border-radius: 4px; display: inline-flex; align-items: center; color: #64706c; background: #e9edeb; font-size: 7px; white-space: nowrap; }
.maintenance-status.complete { color: #176557; background: #dff0ea; }.maintenance-status.running { color: #365f89; background: #e4edf6; }.maintenance-status.partial, .maintenance-status.waiting-configuration { color: #8a641b; background: #faefd5; }.maintenance-status.error { color: #984646; background: #f8e4e4; }
.maintenance-stats { padding: 12px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 6px; border-bottom: 1px solid var(--line-soft); }
.maintenance-stats.journal { grid-template-columns: repeat(3,minmax(0,1fr)); }
.maintenance-stats > div { min-width: 0; min-height: 53px; padding: 8px; display: grid; align-content: center; gap: 2px; background: #f6f8f7; }
.maintenance-stats strong { overflow: hidden; color: #2f3e39; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }.maintenance-stats span { color: #7d8884; font-size: 7px; }
.maintenance-details { margin: 0; padding: 6px 12px; }
.maintenance-details > div { min-height: 36px; padding: 7px 0; display: grid; grid-template-columns: 92px minmax(0,1fr); align-items: start; gap: 8px; border-bottom: 1px solid var(--line-soft); }
.maintenance-details > div:last-child { border-bottom: 0; }.maintenance-details dt { color: #7e8985; font-size: 8px; }.maintenance-details dd { min-width: 0; margin: 0; color: #3e4945; font-size: 8px; line-height: 1.5; overflow-wrap: anywhere; }
.maintenance-details code { margin: 0 3px 3px 0; padding: 2px 4px; display: inline-block; color: #415b54; background: #eef3f1; font-size: 7px; }
.maintenance-email { color: #8a641b; }.maintenance-email.success { color: #176557; }.maintenance-email.error { color: #984646; }
.maintenance-actions { min-height: 58px; padding: 10px 12px; display: flex; justify-content: flex-end; gap: 6px; border-top: 1px solid var(--line-soft); background: #fbfcfc; }
.visibility-badge { min-height: 23px; padding: 0 7px; border-radius: 4px; display: inline-flex; align-items: center; gap: 4px; font-size: 8px; font-weight: 650; }.visibility-badge.public { color: #176b5d; background: #e2f1ed; }.visibility-badge.lab { color: #3f6387; background: #e8f0f7; }.visibility-badge.private { color: #6c7471; background: #edf0ef; }
.drawer-readonly-note { min-height: 52px; padding: 0 12px; border: 1px dashed #d6dcda; border-radius: 6px; display: flex; align-items: center; gap: 7px; color: #7b8581; background: #fafbfb; font-size: 9px; }
.security-account-permission-title { margin: 18px 0 9px; display: grid; gap: 2px; }.security-account-permission-title strong { font-size: 10px; }.security-account-permission-title span { color: var(--muted); font-size: 8px; }
.security-account-permission-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid var(--line); border-radius: 7px; overflow: hidden; }
.security-account-permission-grid.single { grid-template-columns: 1fr; }
.security-account-permission-grid label { min-height: 49px; padding: 8px 10px; display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--line-soft); cursor: pointer; }.security-account-permission-grid label:nth-child(odd) { border-right: 1px solid var(--line-soft); }.security-account-permission-grid.single label { border-right: 0; }.security-account-permission-grid input { accent-color: var(--teal); }.security-account-permission-grid label > span { display: grid; gap: 1px; }.security-account-permission-grid strong { font-size: 8px; }.security-account-permission-grid small { color: #969e9b; font-size: 7px; }
.security-account-active { min-height: 42px; margin-top: 12px; display: flex; align-items: center; gap: 8px; font-size: 9px; }.security-account-active input { accent-color: var(--teal); }
.security-lab-member-field { padding: 9px 11px; border: 1px solid #cddfd9; border-radius: 7px; background: #f4f9f7; align-items: flex-start; }
.security-lab-member-field > span { display: grid; gap: 2px; }.security-lab-member-field strong { color: #2c4941; font-size: 9px; }.security-lab-member-field small { color: var(--muted); font-size: 8px; line-height: 1.5; }
.security-roster-counts { display: flex; gap: 6px; }.security-roster-counts span { min-height: 28px; padding: 0 8px; border: 1px solid var(--line); border-radius: 5px; display: inline-flex; align-items: center; gap: 4px; color: var(--muted); font-size: 8px; }.security-roster-counts strong { color: #284b42; font-size: 10px; }
.security-roster-note { margin-bottom: 10px; padding: 9px 11px; border-left: 3px solid #4a78a8; display: flex; align-items: center; gap: 7px; color: #5e6d68; background: #f1f5f8; font-size: 9px; line-height: 1.55; }
.security-roster-row { grid-template-columns: 36px minmax(180px,1fr) minmax(120px,auto) auto; }
.security-roster-status { min-height: 28px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; font-size: 8px; white-space: nowrap; }.security-roster-status.member { color: #176b5d; }.security-roster-status.external { color: #7e8784; }

.homepage-news-panel { overflow: hidden; }
.homepage-news-toolbar { min-height: 54px; padding: 9px 12px; border-bottom: 1px solid var(--line-soft); display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.homepage-news-toolbar .table-tabs { margin: 0; }
.homepage-news-toolbar .table-tabs button span { min-width: 18px; height: 18px; margin-left: 5px; border-radius: 9px; display: inline-grid; place-items: center; color: #64726e; background: #edf1f0; font-size: 8px; }
.homepage-news-toolbar .table-tabs button.active span { color: #fff; background: var(--teal); }
.homepage-news-list { display: grid; }
.homepage-news-row { min-height: 112px; padding: 16px 18px; display: grid; grid-template-columns: 102px minmax(0,1fr) auto; align-items: center; gap: 18px; border-bottom: 1px solid var(--line-soft); background: #fff; }
.homepage-news-row:last-child { border-bottom: 0; }
.homepage-news-date { display: grid; gap: 3px; }.homepage-news-date strong { color: #263b35; font-size: 10px; }.homepage-news-date span { color: var(--muted); font-size: 8px; }
.homepage-news-copy { min-width: 0; display: grid; gap: 4px; }.homepage-news-copy > span { color: #39796d; font-size: 8px; font-weight: 700; }.homepage-news-copy h3 { margin: 0; color: #24322e; font-size: 12px; line-height: 1.45; }.homepage-news-copy p { margin: 0; color: #5f6b67; font-size: 9px; line-height: 1.55; }.homepage-news-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: #929996; font-size: 8px; }
.homepage-news-actions { display: flex; align-items: center; gap: 6px; }
.homepage-news-empty { min-height: 260px; }
.delegation-selected-user { min-height: 38px; margin-top: 8px; padding: 0 10px; border-radius: 5px; display: flex; align-items: center; gap: 6px; color: #47635c; background: #edf4f2; font-size: 8px; }
.delegation-no-account { padding: 12px; display: grid; grid-template-columns: 30px minmax(0,1fr) auto; align-items: center; gap: 8px; border: 1px solid var(--line-soft); border-radius: 6px; background: #f8faf9; }
.delegation-no-account > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: #2e7566; background: #e5f1ed; }
.delegation-no-account > div { display: grid; gap: 2px; }
.delegation-no-account strong { color: #33413d; font-size: 9px; }
.delegation-no-account small { color: var(--muted); font-size: 8px; line-height: 1.45; }
.delegation-safety-note { margin-top: 10px; padding-top: 10px; display: flex; align-items: center; gap: 6px; border-top: 1px solid var(--line-soft); color: #6a7a75; font-size: 8px; }
.security-gate { min-height: 100vh; min-height: 100dvh; display: grid; grid-template-areas: "welcome form"; grid-template-columns: minmax(430px,1.08fr) minmax(460px,.92fr); overflow: hidden; background: #fff; }
.security-login-panel { grid-area: form; width: min(460px,calc(100% - 96px)); margin: auto; padding: 56px 0; display: grid; align-content: center; gap: 24px; }
.security-login-panel.oidc-link-panel { max-height: 100vh; max-height: 100dvh; padding: 28px 0; gap: 14px; overflow-y: auto; }
.security-login-brand { min-width: 0; display: flex; align-items: center; gap: 15px; }
.security-login-brand img { width: 205px; height: 60px; object-fit: contain; object-position: left center; mix-blend-mode: multiply; }
.security-login-brand span { min-width: 0; padding-left: 15px; border-left: 1px solid #dce4e1; display: grid; gap: 3px; }
.security-login-brand strong { color: #273a34; font-size: 12px; line-height: 1.3; white-space: nowrap; }
.security-login-brand small { color: #8a9692; font-size: 8px; line-height: 1.3; white-space: nowrap; }
.security-login-heading { display: grid; gap: 5px; }
.security-login-panel h1 { margin: 0; color: #1b2d28; font-size: 30px; line-height: 1.25; }
.security-login-panel p { margin: 0; color: #6e7c78; font-size: 12px; line-height: 1.7; }
.security-login-panel .security-eyebrow { color: #267a6c; font-size: 9px; font-weight: 750; }
.security-login-panel form { display: grid; gap: 15px; }
.oidc-login-action { display: grid; gap: 7px; }
.oidc-login-action > small { color: #7a8984; font-size: 8px; text-align: center; }
.oidc-login-divider { height: 19px; display: flex; align-items: center; gap: 10px; color: #909995; font-size: 8px; }
.oidc-login-divider::before, .oidc-login-divider::after { height: 1px; flex: 1; background: var(--line); content: ""; }
.security-local-login { width: 100%; color: #405750; background: #f4f7f6; border-color: #d7e0dd; }
.local-login-form { gap: 11px !important; }
.oidc-identity-card { min-height: 67px; padding: 10px 12px; display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 10px; border: 1px solid #cfe1db; background: #f2f8f6; }
.oidc-identity-card > span { width: 34px; height: 34px; display: grid; place-items: center; color: #267466; background: #deeee9; }
.oidc-identity-card > div { min-width: 0; display: grid; gap: 2px; }
.oidc-identity-card strong { overflow: hidden; color: #29423b; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.oidc-identity-card small { overflow: hidden; color: #71817c; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.oidc-identity-card b { min-height: 23px; padding: 0 7px; display: inline-flex; align-items: center; color: #176b5d; background: #dceee8; font-size: 7px; white-space: nowrap; }
.oidc-restart-link { min-height: 34px; padding: 0; display: inline-flex; align-items: center; justify-content: center; gap: 6px; color: #547069; background: transparent; border: 0; font: inherit; font-size: 8px; cursor: pointer; }
.security-login-panel .field-label { color: #475651; font-size: 10px; }
.security-login-panel .field-input { min-height: 46px; padding-inline: 13px; border-color: #d7d7dc; border-radius: 7px; background: #f8f8fa; font-size: 12px; }
.security-login-panel .field-input:focus { border-color: rgba(0,113,227,.52); background: #fff; box-shadow: 0 0 0 4px rgba(0,113,227,.09); }
.security-primary-action { width: 100%; min-height: 46px; margin-top: 3px; justify-content: center; border-radius: 6px; font-size: 12px; }
.security-login-error { padding: 10px 11px; border-radius: 5px; color: #9a4444; background: #fbeaea; font-size: 9px; }
.security-gate-tabs { width: 100%; padding: 4px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 3px; border-radius: 7px; background: #eef2f0; }
.security-gate-tabs button { min-width: 0; min-height: 36px; padding: 0 14px; border: 0; border-radius: 5px; color: #6a7672; background: transparent; font: inherit; font-size: 10px; font-weight: 650; cursor: pointer; }
.security-gate-tabs button.active { color: #0066cc; background: #fff; box-shadow: 0 1px 5px rgba(0,0,0,.12); }
.oidc-link-tabs button { padding-inline: 9px; font-size: 9px; }
.oidc-credential-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.oidc-privacy-note { min-height: 34px; padding: 7px 9px; display: flex; align-items: flex-start; gap: 6px; color: #547069; background: #f1f6f4; font-size: 8px; line-height: 1.55; }
.oidc-privacy-note .icon { flex: 0 0 auto; margin-top: 1px; color: #267466; }
.security-gate-note { min-height: 38px; padding-top: 2px; display: flex; align-items: flex-start; gap: 7px; color: #7b8783; font-size: 9px; line-height: 1.6; }
.security-gate-note .icon { flex: 0 0 auto; margin-top: 2px; color: #397bb7; }
.security-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.session-reauth-modal > form { display: contents; }
.session-reauth-lock { width: 34px; height: 34px; display: grid; place-items: center; border: 1px solid #cbded8; border-radius: 6px; color: #176a5c; background: #eef7f4; }
.session-reauth-notice { margin-bottom: 14px; padding: 10px 11px; display: flex; align-items: flex-start; gap: 7px; border-left: 3px solid #d2a14f; color: #68522c; background: #fff9ee; font-size: 9px; line-height: 1.55; }
.session-reauth-notice .icon { flex: 0 0 auto; margin-top: 1px; color: #a87524; }
.session-reauth-modal .form-field + .form-field { margin-top: 11px; }
.session-reauth-modal .field-input[readonly] { color: #66706d; background: #f4f6f5; }
.session-reauth-modal .security-login-error { margin-top: 11px; }
.security-login-aside { position: relative; grid-area: welcome; min-width: 0; padding: 72px clamp(54px,7vw,112px); border-top: 4px solid #0071e3; display: grid; grid-template-rows: auto 1fr auto; align-items: center; color: #1d1d1f; background: #f1f5fa; }
.security-welcome-mark { width: 56px; height: 56px; border: 1px solid rgba(0,113,227,.17); border-radius: 8px; display: grid; place-items: center; color: #0066cc; background: #e5effb; }
.security-welcome-mark .icon { width: 27px; height: 27px; }
.security-welcome-copy { max-width: 560px; align-self: center; }
.security-welcome-copy > span { color: #0066cc; font-size: 9px; font-weight: 750; }
.security-welcome-copy h2 { margin: 18px 0 17px; color: #1d1d1f; font-size: 38px; line-height: 1.32; white-space: pre-line; }
.security-welcome-copy p { max-width: 500px; margin: 0; color: #65656a; font-size: 14px; line-height: 1.85; }
.security-welcome-footer { align-self: end; padding-top: 24px; border-top: 1px solid rgba(0,0,0,.09); display: grid; gap: 3px; }
.security-welcome-footer strong { color: #414147; font-size: 11px; }
.security-welcome-footer small { color: #86868b; font-size: 9px; }

@media (max-width: 920px) {
  .security-gate { display: block; overflow-y: auto; }
  .security-login-aside { display: none; }
  .security-login-panel { width: min(460px,calc(100% - 48px)); min-height: 100vh; min-height: 100dvh; padding: 42px 0; }
}

.discovery-page { min-width: 0; }
.discovery-person-search { margin-bottom: 12px; padding: 15px 16px; border: 1px solid var(--line); border-left: 3px solid var(--blue); border-radius: 7px; background: var(--surface); box-shadow: var(--shadow-sm); }
.discovery-person-head { margin-bottom: 12px; display: flex; align-items: flex-start; gap: 9px; }
.discovery-person-head > span { width: 30px; height: 30px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 6px; color: var(--blue); background: var(--blue-soft); }
.discovery-person-head h2 { margin: 0; color: var(--ink); font-size: 14px; }
.discovery-person-head p { margin: 3px 0 0; color: var(--muted); font-size: 9px; line-height: 1.5; }
.discovery-person-fields { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)) 120px; align-items: end; gap: 10px; }
.discovery-person-fields .form-field { min-width: 0; }
.discovery-person-fields .field-label b { color: var(--coral); }
.discovery-person-year { grid-column: 5; grid-row: 1; }
.discovery-person-kinds { min-height: 38px; grid-column: 1 / 5; margin: 0; padding: 0; border: 0; display: flex; align-items: center; gap: 14px; }
.discovery-person-kinds legend { float: left; margin-right: 2px; color: var(--muted); font-size: 9px; font-weight: 650; }
.discovery-person-kinds label, .discovery-select-visible { display: inline-flex; align-items: center; gap: 5px; color: var(--ink-2); font-size: 9px; cursor: pointer; }
.discovery-person-kinds input, .discovery-select-visible input, .discovery-candidate-select input { accent-color: var(--teal); }
.discovery-person-submit { grid-column: 5; min-width: 120px; }
.discovery-person-result { margin-top: 11px; padding-top: 10px; border-top: 1px solid var(--line-soft); display: flex; align-items: center; gap: 9px; color: var(--ink-2); font-size: 9px; }
.discovery-person-result > span { display: inline-flex; align-items: center; gap: 5px; font-weight: 650; }
.discovery-person-result > strong { color: var(--muted); font-size: 8px; font-weight: 550; }
.discovery-person-result > .btn { margin-left: auto; }
.discovery-run-state { min-height: 30px; margin-left: auto; padding: 0 10px; display: inline-flex; align-items: center; gap: 7px; border: 1px solid var(--line); border-radius: 6px; color: var(--muted); background: #fff; font-size: 10px; font-weight: 650; }
.discovery-run-state > span { width: 7px; height: 7px; border-radius: 50%; background: #aeb7b4; }
.discovery-run-state.success > span { background: var(--teal); box-shadow: 0 0 0 3px var(--teal-soft); }
.discovery-run-state.running > span { background: var(--blue); animation: discovery-pulse 1.1s ease-in-out infinite; }
.discovery-run-state.error > span, .discovery-run-state.warning > span { background: var(--gold); }
.discovery-run-state.paused > span { background: #8e9794; }
@keyframes discovery-pulse { 50% { opacity: .35; transform: scale(.78); } }
.discovery-summary { margin-bottom: 12px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: var(--surface); box-shadow: var(--shadow-sm); }
.discovery-summary > div { min-height: 86px; padding: 14px 16px; display: grid; grid-template-columns: minmax(0,1fr) auto; align-content: center; gap: 3px 10px; border-right: 1px solid var(--line-soft); }
.discovery-summary > div:last-child { border-right: 0; }
.discovery-summary span { color: var(--muted); font-size: 10px; font-weight: 650; }
.discovery-summary strong { grid-row: 1/3; grid-column: 2; align-self: center; color: var(--ink); font-size: 25px; line-height: 1; }
.discovery-summary strong.discovery-next-run { max-width: 132px; font-size: 12px; line-height: 1.35; text-align: right; }
.discovery-summary small { color: #98a29f; font-size: 9px; }
.discovery-console { min-height: 590px; display: grid; grid-template-columns: 260px minmax(0,1fr); border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: var(--surface); box-shadow: var(--shadow-sm); }
.discovery-settings { padding: 15px; border-right: 1px solid var(--line); background: var(--surface-2); }
.discovery-section-head { margin-bottom: 12px; display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.discovery-section-head h2 { margin: 0; color: var(--ink); font-size: 14px; }
.discovery-section-head p { margin: 3px 0 0; color: var(--muted); font-size: 9px; }
.discovery-toggle-list { margin-bottom: 12px; display: grid; grid-template-columns: 1fr; border: 1px solid var(--line); border-radius: 6px; overflow: hidden; background: #fff; }
.discovery-toggle-list label { min-height: 45px; padding: 8px 10px; display: flex; align-items: center; gap: 9px; border-bottom: 1px solid var(--line-soft); cursor: pointer; }
.discovery-toggle-list label:last-child { border-bottom: 0; }
.discovery-toggle-list input { accent-color: var(--teal); }
.discovery-toggle-list span { min-width: 0; display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.discovery-toggle-list strong { color: var(--ink-2); font-size: 10px; }
.discovery-toggle-list small { color: var(--muted); font-size: 8px; }
.discovery-settings .form-field { margin-bottom: 10px; }
.discovery-settings .field-input { font-size: 10px; }
.discovery-settings textarea.field-input { resize: vertical; line-height: 1.5; }
.discovery-last-error { margin-top: 11px; padding: 9px; display: flex; align-items: flex-start; gap: 7px; border-left: 3px solid var(--gold); color: #765a24; background: #fff8e9; font-size: 9px; line-height: 1.5; }
.discovery-last-error .icon { flex: 0 0 auto; }
.discovery-review { min-width: 0; display: flex; flex-direction: column; }
.discovery-review-head { min-height: 55px; padding: 9px 12px; display: flex; align-items: center; justify-content: space-between; gap: 10px; border-bottom: 1px solid var(--line); }
.discovery-review-tools { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.discovery-tabs, .discovery-kind-tabs { padding: 3px; display: inline-flex; gap: 2px; border-radius: 6px; background: #edf1ef; }
.discovery-tabs button, .discovery-kind-tabs button { min-height: 30px; padding: 0 10px; border: 0; border-radius: 4px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; color: #6e7975; background: transparent; font: inherit; font-size: 9px; font-weight: 650; cursor: pointer; }
.discovery-tabs button span { min-width: 18px; padding: 1px 5px; border-radius: 9px; color: #79847f; background: rgba(255,255,255,.7); font-size: 8px; }
.discovery-tabs button.active, .discovery-kind-tabs button.active { color: var(--teal-dark); background: #fff; box-shadow: 0 1px 4px rgba(19,45,37,.1); }
.discovery-candidate-list { min-height: 0; padding: 4px 14px 16px; overflow: auto; }
.discovery-candidate { min-height: 142px; padding: 16px 0; display: grid; grid-template-columns: 38px minmax(0,1fr) 145px; gap: 12px; border-bottom: 1px solid var(--line-soft); }
.discovery-candidate:last-child { border-bottom: 0; }
.discovery-candidate-leading { display: grid; justify-items: center; align-content: start; gap: 7px; }
.discovery-candidate-select { width: 22px; height: 18px; display: grid; place-items: center; cursor: pointer; }
.discovery-candidate-icon { width: 38px; height: 38px; border-radius: 6px; display: grid; place-items: center; color: var(--blue); background: var(--blue-soft); }
.discovery-candidate-icon.influence { color: #a7604d; background: var(--coral-soft); }
.discovery-candidate-icon.award { color: #976a16; background: var(--gold-soft); }
.discovery-candidate-main { min-width: 0; }
.discovery-candidate-kicker { min-height: 19px; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; color: var(--muted); font-size: 8px; font-weight: 650; }
.discovery-candidate-kicker > span { padding-right: 6px; border-right: 1px solid var(--line); }
.discovery-candidate-kicker > span:last-child { border-right: 0; }
.discovery-candidate-kicker .discovery-confidence { color: #4f766f; }
.discovery-match-badge { min-height: 20px; padding: 3px 6px; border-radius: 4px; display: inline-flex; align-items: center; color: #3d675f; background: #e8f3ef; font-size: 8px; font-weight: 700; }
.discovery-match-badge.new { color: #315f88; background: #e8f1f8; }
.discovery-match-badge.supplement { color: #875f1e; background: #fff2d8; }
.discovery-candidate h3 { margin: 5px 0 7px; color: var(--ink); font-size: 12px; line-height: 1.45; letter-spacing: 0; }
.discovery-candidate-meta { display: flex; flex-wrap: wrap; gap: 4px 10px; color: var(--ink-2); font-size: 9px; line-height: 1.45; }
.discovery-candidate-meta span { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.discovery-evidence { margin-top: 9px; display: flex; align-items: center; flex-wrap: wrap; gap: 5px; }
.discovery-evidence strong { color: var(--muted); font-size: 8px; }
.discovery-evidence span { padding: 3px 6px; border: 1px solid #dce9e5; border-radius: 4px; color: #44625c; background: #f4faf8; font-size: 8px; }
.discovery-match-note { margin-top: 11px; padding: 9px 10px; display: flex; align-items: flex-start; gap: 8px; border-left: 3px solid #7d9fbc; background: #f3f7fa; }
.discovery-match-note.matched { border-left-color: #69a394; background: #f1f7f5; }
.discovery-match-note > .icon { flex: 0 0 auto; margin-top: 1px; color: #567c9d; }
.discovery-match-note.matched > .icon { color: #37766a; }
.discovery-match-note span { min-width: 0; display: grid; gap: 2px; }
.discovery-match-note strong { color: var(--ink-2); font-size: 9px; line-height: 1.45; }
.discovery-match-note small { color: var(--muted); font-size: 8px; line-height: 1.5; }
.discovery-diff-group { margin-top: 9px; border-top: 1px solid var(--line-soft); }
.discovery-diff-title { min-height: 34px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.discovery-diff-title strong { color: var(--ink-2); font-size: 9px; }
.discovery-diff-title span { color: var(--muted); font-size: 8px; }
.discovery-fill-row { min-height: 35px; padding: 6px 8px; display: grid; grid-template-columns: 120px 62px minmax(0,1fr) auto; align-items: center; gap: 8px; border-bottom: 1px solid #e6eeeb; background: #f7faf9; font-size: 8px; }
.discovery-fill-row > span { color: var(--ink-2); font-weight: 650; }
.discovery-fill-row > small { color: #9ba4a1; }
.discovery-fill-row > strong { min-width: 0; overflow-wrap: anywhere; color: #315e56; font-weight: 600; }
.discovery-fill-row > b { display: inline-flex; align-items: center; gap: 3px; color: #397568; font-size: 8px; white-space: nowrap; }
.discovery-conflict-row { min-width: 0; padding: 7px 0; display: grid; grid-template-columns: 110px repeat(2,minmax(0,1fr)); align-items: stretch; gap: 7px; border-bottom: 1px solid var(--line-soft); }
.discovery-conflict-label { align-self: center; color: var(--ink-2); font-size: 8px; font-weight: 650; }
.discovery-conflict-row label { min-width: 0; min-height: 46px; padding: 6px 8px; border: 1px solid var(--line); border-radius: 5px; display: flex; align-items: flex-start; gap: 6px; background: #fff; cursor: pointer; }
.discovery-conflict-row label.selected { border-color: #70a59a; background: #f1f8f6; }
.discovery-conflict-row label:has(input:disabled) { cursor: default; opacity: .78; }
.discovery-conflict-row input { flex: 0 0 auto; margin: 2px 0 0; accent-color: var(--teal); }
.discovery-conflict-row label span { min-width: 0; display: grid; gap: 2px; }
.discovery-conflict-row label small { color: var(--muted); font-size: 7px; }
.discovery-conflict-row label strong { min-width: 0; overflow-wrap: anywhere; color: var(--ink-2); font-size: 8px; line-height: 1.4; }
.discovery-result { margin-top: 11px; padding: 9px 10px; display: flex; align-items: flex-start; gap: 8px; border-left: 3px solid var(--teal); background: #f0f7f5; }
.discovery-result > span { width: 20px; height: 20px; flex: 0 0 auto; display: grid; place-items: center; color: var(--teal-dark); }
.discovery-result > div { min-width: 0; display: grid; gap: 3px; }
.discovery-result strong { color: #2e5f56; font-size: 9px; line-height: 1.45; }
.discovery-result small { overflow-wrap: anywhere; color: var(--muted); font-size: 8px; line-height: 1.45; }
.discovery-candidate-side { display: flex; align-items: flex-end; flex-direction: column; justify-content: space-between; gap: 10px; }
.discovery-review-status { padding: 4px 7px; border-radius: 4px; color: #886622; background: var(--gold-soft); font-size: 8px; font-weight: 700; }
.discovery-review-status.approved { color: var(--teal-dark); background: var(--teal-soft); }
.discovery-review-status.ignored { color: #6d7774; background: #ecefed; }
.discovery-candidate-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 5px; }
.discovery-candidate-actions .btn { min-width: 0; padding-inline: 8px; }

@media (max-width: 1180px) {
  .maintenance-grid { grid-template-columns: 1fr; }
  .discovery-console { grid-template-columns: 230px minmax(0,1fr); }
  .discovery-person-fields { grid-template-columns: repeat(2,minmax(0,1fr)) 120px; }
  .discovery-person-year { grid-column: 3; grid-row: 1; }
  .discovery-person-kinds { grid-column: 1 / 3; }
  .discovery-person-submit { grid-column: 3; }
  .discovery-candidate { grid-template-columns: 34px minmax(0,1fr); }
  .discovery-candidate-side { grid-column: 2; align-items: center; flex-direction: row; }
  .security-summary { grid-template-columns: minmax(220px,1.4fr) repeat(3,minmax(80px,.5fr)); }
  .security-summary > .security-session-actions { grid-column: 1/-1; width: max-content; justify-self: end; }
  .resume-builder-tabs { margin-bottom: 9px; padding: 3px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3px; border: 1px solid var(--line); border-radius: 7px; background: #ecefef; }
  .resume-builder-tabs button { min-height: 34px; border: 0; border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; background: transparent; color: #6d7578; font-size: 10px; font-weight: 620; cursor: pointer; }
  .resume-builder-tabs button.active { color: #245b52; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
  .resume-builder-layout { height: calc(100vh - 245px); min-height: 590px; display: block; }
  .resume-builder-pane { height: 100%; border-right: 0; }
  .resume-builder-layout [data-resume-builder-pane] { display: none; }
  .resume-builder-layout[data-active-pane="profile"] [data-resume-builder-pane="profile"], .resume-builder-layout[data-active-pane="sections"] [data-resume-builder-pane="sections"], .resume-builder-layout[data-active-pane="preview"] [data-resume-builder-pane="preview"] { display: block; }
  .workbench-page-head { flex-wrap: wrap; align-items: center; }
  .workbench-head-stats { margin-left: auto; }
  .workbench-pane-tabs { margin-bottom: 9px; padding: 3px; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 3px; border: 1px solid var(--line); border-radius: 7px; background: #ecefef; }
  .workbench-pane-tabs button { min-height: 34px; border: 0; border-radius: 5px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; background: transparent; color: #6d7578; font-size: 10px; font-weight: 620; cursor: pointer; }
  .workbench-pane-tabs button.active { color: #245b52; background: #fff; box-shadow: 0 1px 4px rgba(0,0,0,.08); }
  .workbench-layout { height: calc(100vh - 245px); min-height: 570px; display: block; }
  .workbench-pane { height: 100%; border-right: 0; }
  .workbench-layout [data-workbench-pane] { display: none; }
  .workbench-layout[data-active-pane="results"] [data-workbench-pane="results"], .workbench-layout[data-active-pane="sequence"] [data-workbench-pane="sequence"], .workbench-layout[data-active-pane="cover"] [data-workbench-pane="cover"] { display: block; }
  .workbench-cover-preview { width: min(190px,55%); }
  .cover-controls { width: min(500px,100%); margin: 0 auto; }
}

@media (max-width: 760px) {
  .maintenance-card-head { grid-template-columns: 32px minmax(0,1fr); }
  .maintenance-card-head > .maintenance-status { grid-column: 2; justify-self: start; }
  .maintenance-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .maintenance-details > div { grid-template-columns: 1fr; gap: 3px; }
  .maintenance-actions { flex-direction: column; }
  .maintenance-actions .btn { width: 100%; justify-content: center; }
  .discovery-run-state { margin-left: 0; }
  .discovery-page .workbench-page-head > .btn { width: auto; flex: 1 1 135px; }
  .discovery-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .discovery-summary > div { min-height: 72px; padding: 11px 12px; }
  .discovery-summary > div:nth-child(2) { border-right: 0; }
  .discovery-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .discovery-summary strong { font-size: 21px; }
  .discovery-console { display: block; min-height: 0; }
  .discovery-settings { border-right: 0; border-bottom: 1px solid var(--line); }
  .discovery-review-head { align-items: stretch; flex-direction: column; }
  .discovery-review-tools { align-items: stretch; justify-content: flex-start; }
  .discovery-tabs, .discovery-kind-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .discovery-kind-tabs { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .discovery-candidate-list { padding-inline: 11px; }
  .discovery-candidate { grid-template-columns: 34px minmax(0,1fr); gap: 10px; }
  .discovery-candidate-side { grid-column: 1/-1; align-items: center; }
  .discovery-candidate-actions { flex: 1; }
  .discovery-fill-row { grid-template-columns: 88px minmax(0,1fr) auto; }
  .discovery-fill-row > small { display: none; }
  .discovery-conflict-row { grid-template-columns: 1fr; }
  .discovery-conflict-label { padding-top: 2px; }
  .discovery-person-fields { display: grid; grid-template-columns: 1fr; }
  .discovery-person-year, .discovery-person-kinds, .discovery-person-submit { grid-column: 1; grid-row: auto; }
  .discovery-person-kinds { min-height: 0; align-items: flex-start; flex-wrap: wrap; }
  .discovery-person-kinds legend { width: 100%; margin-bottom: 4px; }
  .discovery-person-submit { width: 100%; }
  .discovery-person-result { align-items: flex-start; flex-direction: column; }
  .discovery-person-result > .btn { width: 100%; margin-left: 0; }
  .discovery-review-tools { flex-direction: column; }
  .discovery-select-visible { min-height: 28px; }
  .security-page-head { min-height: 56px; margin-bottom: 10px; align-items: flex-start; }
  .security-page-head h1 { font-size: 20px; }
  .security-setup { min-height: 0; grid-template-columns: 1fr; }
  .security-setup-copy { padding: 25px 20px; }
  .security-setup-copy h2 { font-size: 20px; }
  .security-setup-form { padding: 24px 20px; }
  .security-summary { padding: 9px; grid-template-columns: repeat(3,minmax(0,1fr)); }
  .security-summary > div:first-child { grid-column: 1/-1; border-right: 0; border-bottom: 1px solid var(--line-soft); }
  .security-summary > div:not(:first-child) { padding: 0 6px; }
  .security-summary > div:nth-child(4) { border-right: 0; }
  .security-summary > .security-session-actions { width: 100%; }
  .security-session-actions .btn { flex: 1; }
  .security-console { min-height: 0; display: block; }
  .security-tabs { padding: 6px; border-right: 0; border-bottom: 1px solid var(--line-soft); flex-direction: row; overflow-x: auto; }
  .security-tabs button { min-width: max-content; padding-inline: 9px; }
  .security-content { padding: 12px; }
  .security-account-row { grid-template-columns: 34px minmax(0,1fr) auto; }
  .security-roster-row { grid-template-columns: 34px minmax(0,1fr) auto; }
  .security-roster-row .security-roster-status { grid-column: 2; justify-self: start; }
  .security-roster-row > .btn { grid-column: 3; grid-row: 1 / span 2; }
  .security-roster-counts { width: 100%; }
  .homepage-news-row { grid-template-columns: 1fr; gap: 8px; }
  .homepage-news-date { display: flex; gap: 8px; align-items: center; }
  .homepage-news-actions { justify-content: flex-start; }
  .homepage-news-toolbar { align-items: flex-start; }
  .security-account-permissions { display: none; }
  .identity-mapping-summary { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .identity-platform-switch { margin-inline: -4px; }
  .identity-mapping-toolbar { grid-template-columns: 1fr 1fr; }
  .identity-mapping-toolbar > label { grid-column: 1/-1; }
  .identity-mapping-toolbar > .icon-button { justify-self: end; }
  .identity-mapping-table-wrap { overflow: visible; border: 0; border-radius: 0; }
  .identity-mapping-table, .identity-mapping-table tbody { width: 100%; display: block; }
  .identity-mapping-table thead { display: none; }
  .identity-mapping-table tbody { display: grid; gap: 8px; }
  .identity-mapping-table tr { position: relative; padding: 10px 46px 10px 10px; border: 1px solid var(--line-soft); border-radius: 7px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px 12px; background: #fff; }
  .identity-mapping-table td, .identity-mapping-table td:nth-child(n) { width: auto; height: auto; min-width: 0; min-height: 38px; padding: 0; border: 0; display: grid; align-content: start; justify-items: start; gap: 4px; text-align: left; }
  .identity-mapping-table td::before { color: #8b9692; font-size: 7px; font-weight: 650; content: attr(data-label); }
  .identity-mapping-table td:nth-child(2) { grid-column: 1/-1; grid-row: 1; padding-right: 4px; }
  .identity-mapping-table td:nth-child(1) { grid-row: 2; }
  .identity-mapping-table td:nth-child(5) { grid-row: 2; grid-column: 2; }
  .identity-mapping-table td:nth-child(3) { grid-row: 3; }
  .identity-mapping-table td:nth-child(4) { grid-row: 3; grid-column: 2; }
  .identity-mapping-table td:nth-child(6) { grid-column: 1/-1; grid-row: 4; }
  .identity-mapping-table td:nth-child(7) { grid-row: 5; }
  .identity-mapping-table td:nth-child(8) { position: absolute; top: 8px; right: 8px; min-height: 0; }
  .identity-mapping-table td:nth-child(8)::before { display: none; }
  .identity-mapping-table .identity-account strong { font-size: 10px; }
  .identity-mapping-table .identity-time { font-size: 8px; white-space: nowrap; }
  .identity-mapping-table .identity-access small { white-space: normal; }
  .security-immutable { grid-column: 2/-1; justify-self: start; }
  .delegation-columns { grid-template-columns: 1fr; }
  .security-trash-row, .security-request-row { grid-template-columns: 62px minmax(0,1fr); }
  .security-trash-row > .btn, .security-request-row > div:last-child { grid-column: 1/-1; width: 100%; }
  .security-request-row > div:last-child .btn { flex: 1; }
  .public-sync-card { grid-template-columns: 30px minmax(0,1fr); }
  .public-sync-card > .btn { grid-column: 1/-1; width: 100%; }
  .security-account-permission-grid { grid-template-columns: 1fr; }
  .security-account-permission-grid label:nth-child(odd) { border-right: 0; }
  .security-gate { padding: 0; }
  .security-login-panel { width: calc(100% - 32px); min-height: 100vh; min-height: 100dvh; padding: 30px 0; gap: 20px; }
  .security-login-panel.oidc-link-panel { max-height: none; padding: 24px 0; gap: 14px; overflow-y: visible; }
  .security-login-brand { gap: 11px; }
  .security-login-brand img { width: 172px; height: 51px; }
  .security-login-brand span { padding-left: 11px; }
  .security-login-brand strong { font-size: 10px; }
  .security-login-brand small { font-size: 7px; }
  .security-login-panel h1 { font-size: 26px; }
  .security-login-aside { display: none; }
  .oidc-credential-grid { grid-template-columns: 1fr; }
  .security-summary.external-user { grid-template-columns: 1fr; }
  .security-summary.external-user > div:first-child { grid-column: auto; }
  .security-summary.external-user .security-external-scope { border-right: 0; border-bottom: 1px solid var(--line-soft); }
  .page-actions { flex-wrap: wrap; }
  .unified-import-drop { grid-template-columns: 36px minmax(0,1fr); padding: 14px; }
  .unified-import-drop .btn { width: 100%; margin-top: 7px; grid-column: 1/-1; }
  .unified-import-icon { width: 36px; height: 36px; }
  .intake-method-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .unified-project-route { align-items: flex-start; flex-direction: column; padding: 10px; }
  .unified-project-route .btn { width: 100%; }
  .smart-segments { grid-template-columns: repeat(2, 1fr); }
  .smart-result-grid { grid-template-columns: 1fr; }
  .smart-result-item, .smart-result-item:nth-child(even) { border-right: 0; }
  .smart-result-item.span-2 { grid-column: auto; }
  .smart-result-head { align-items: flex-start; flex-direction: column; gap: 4px; }
  .smart-body { min-height: 330px; }
  .smart-url-row { grid-template-columns: 1fr; }
  .smart-url-row .btn { width: 100%; }
  .resume-result-head { align-items: flex-start; }
  .resume-result-item { grid-template-columns: 18px 44px minmax(0,1fr); }
  .resume-result-item > .match-confidence { display: none; }
  .resume-builder .workbench-page-head > .btn { width: 100%; flex: 1 1 100%; }
  .resume-builder-layout { height: calc(100vh - 300px); min-height: 510px; }
  .resume-profile-form { padding: 12px; grid-template-columns: 1fr; }
  .resume-profile-form .span-2 { grid-column: 1; }
  .personal-profile-form { grid-template-columns: 1fr; padding: 14px 12px 20px; }
  .profile-form-section-title { align-items: flex-start; flex-direction: column; gap: 3px; }
  .profile-form-section-title span { text-align: left; }
  .personal-profile-actions { width: 100%; margin-left: 0; flex-wrap: wrap; }
  .personal-profile-actions .btn { min-width: 135px; flex: 1; justify-content: center; }
  .personal-profile-form .span-2 { grid-column: 1; }
  .personal-profile-heading { padding: 14px 12px 4px; }
  .personal-team-head { grid-template-columns: 32px minmax(0,1fr); padding-inline: 12px; }
  .personal-team-head > span { width: 32px; height: 32px; }
  .personal-team-head > .btn { grid-column: 1/-1; width: 100%; justify-content: center; }
  .personal-team-memberships, .personal-team-pending { margin-left: 0; padding: 0 12px 12px; }
  .team-summary-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .team-summary-strip > div:nth-child(2) { border-right: 0; }
  .team-summary-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .team-create-fields { grid-template-columns: 1fr; padding: 12px; }
  .team-create-fields .span-2 { grid-column: 1; }
  .team-create-actions { padding-inline: 12px; }
  .team-directory-card > header { grid-template-columns: 34px minmax(0,1fr); padding: 12px; }
  .team-mark { width: 34px; height: 34px; }
  .team-card-status { grid-column: 2; justify-self: start; }
  .team-card-stats, .team-join-row, .team-application-state, .team-subhead { padding-left: 12px; }
  .team-join-row { grid-template-columns: 1fr; }
  .team-join-row.primary { grid-template-columns: 1fr; }
  .team-join-fields { grid-template-columns: 1fr; }
  .team-join-verification-note { grid-column: 1; }
  .team-join-row .btn { width: 100%; justify-content: center; }
  .team-request-list, .team-member-list { padding-left: 12px; }
  .team-request-row { grid-template-columns: 30px minmax(0,1fr); }
  .team-request-row > div:last-child { grid-column: 1/-1; }
  .team-request-row > div:last-child .btn { flex: 1; }
  .team-member-row { grid-template-columns: 30px minmax(0,1fr); }
  .team-member-row > .btn, .team-member-row > .team-owner-fixed { grid-column: 2; justify-self: start; }
  .team-empty-row { padding-left: 12px; }
  .personal-collaboration-head { padding: 12px; grid-template-columns: 34px minmax(0,1fr); }
  .personal-collaboration-head .btn { grid-column: 1/-1; width: 100%; justify-content: center; }
  .personal-collaboration-body { padding: 0 12px 16px; }
  .delegation-no-account { grid-template-columns: 30px minmax(0,1fr); }
  .delegation-no-account .btn { grid-column: 1/-1; justify-content: center; }
  .personal-documents-head { padding: 10px 12px; align-items: flex-start; }
  .personal-documents-head .btn { flex: 0 0 auto; }
  .personal-documents-privacy { padding: 8px 12px; align-items: flex-start; }
  .personal-material-subhead { padding: 10px 12px; align-items: flex-start; flex-direction: column; }
  .personal-photo-upload-actions { width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .personal-photo-upload-actions .btn { min-width: 0; padding-inline: 5px; justify-content: center; }
  .personal-photo-grid { padding: 0 12px 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .personal-photo-empty { margin: 0 12px 14px; padding: 16px 12px; }
  .personal-document-item { padding: 10px 12px; grid-template-columns: 30px minmax(0,1fr) 30px 30px; }
  .personal-document-item .filter-select { grid-column: 2/-1; grid-row: 2; }
  .claim-suggestions-head { padding: 9px 12px; align-items: flex-start; flex-wrap: wrap; }
  .claim-suggestions-head .btn { width: 100%; justify-content: center; }
  .claim-suggestion-row { padding: 9px 12px; }
  .claim-suggestion-row { grid-template-columns: 34px minmax(0,1fr); }
  .claim-suggestion-actions { grid-column: 2; grid-auto-flow: row; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .claim-suggestion-actions .btn { justify-content: center; }
  .personal-achievement-row { padding: 9px 12px; grid-template-columns: 34px minmax(0,1fr); }
  .personal-achievement-row > .profile-display-toggle, .personal-achievement-row > .personal-achievement-owner { grid-column: 2; justify-self: start; }
  .claim-prompt-body { padding: 20px 16px 18px; }
  .claim-prompt-body h2 { font-size: 17px; }
  .claim-prompt-details { grid-template-columns: 1fr; }
  .claim-prompt-actions { grid-template-columns: 1fr; }
  .claim-prompt-actions > span { display: none; }
  .claim-prompt-actions .btn { width: 100%; justify-content: center; }
  .form-profile-alert { align-items: flex-start; flex-wrap: wrap; }
  .form-profile-alert > span { min-width: calc(100% - 28px); }
  .title-collision-confirm { padding: 12px; }
  .title-collision-records > div { grid-template-columns: 62px minmax(0,1fr); }
  .title-collision-records b { grid-column: 2; }
  .title-collision-actions { flex-direction: column; }
  .title-collision-actions .btn { width: 100%; justify-content: center; }
  .resume-preview-scroll { padding: 10px; }
  .resume-sheet { min-height: 700px; padding: 30px 24px 38px; }
  .resume-sheet-identity h2 { font-size: 21px; }
  .folder-match-row { grid-template-columns: 32px minmax(0,1fr) 88px 30px; }
  .folder-pick-actions { flex-direction: column; }
  .folder-pick-actions .btn { width: 100%; }
  .folder-match-summary { align-items: flex-start; flex-direction: column; }
  .folder-match-summary > div:last-child { width: 100%; }
  .folder-match-summary > div:last-child .btn { flex: 1 1 105px; justify-content: center; }
  .folder-record-select, .folder-record-choice { grid-column: 1/-1; }
  .folder-kind-select { grid-column: 1/-1; width: 100%; }
  .folder-match-review { grid-column: 3; grid-row: 1; }
  .folder-remove-file { grid-column: 4; grid-row: 1; }
  .folder-pair-review { grid-column: 1/-1; }
  .folder-recognition-editor { grid-column: 1/-1; }
  .folder-recognition-editor-head, .folder-recognition-editor-foot { align-items: flex-start; flex-direction: column; }
  .folder-recognition-editor-foot > div { width: 100%; }
  .folder-recognition-editor-foot .btn { flex: 1; justify-content: center; }
  .folder-pair-compare { grid-template-columns: 1fr; }
  .folder-pair-arrow { transform: rotate(90deg); }
  .folder-pair-actions { align-items: stretch; flex-direction: column; }
  .folder-pair-actions .btn { width: 100%; }
  .folder-conflict-review { grid-column: 1/-1; }
  .folder-conflict-row { grid-template-columns: 1fr; }
  .folder-conflict-row > strong { padding-top: 2px; }
  .folder-record-picker-layer { padding: 10px; align-items: stretch; }
  .folder-record-picker-panel { max-height: calc(100vh - 20px); }
  .folder-record-picker-head { min-height: 60px; padding: 0 12px 0 14px; }
  .folder-record-picker-tools { padding: 12px; grid-template-columns: 1fr; }
  .folder-record-picker-summary { padding: 0 12px 7px; align-items: flex-start; flex-direction: column; gap: 2px; }
  .folder-record-picker-summary small { margin-left: 0; }
  .folder-record-picker-clear { margin: 0 12px 7px; }
  .folder-record-picker-result { padding: 8px 12px; grid-template-columns: 30px minmax(0,1fr) 14px; }
  .record-picker-kind { display: none; }
  .modal.modal-xl { width: 100%; }
  .document-builder-body { min-height: 0; }
  .document-builder-layout { min-height: 0; grid-template-columns: 1fr; }
  .document-settings { padding: 16px; border-right: 0; border-bottom: 1px solid rgba(0,0,0,.08); }
  .document-attachment-picker { padding: 14px 12px 16px; }
  .document-picker-head { align-items: center; }
  .document-attachment-list { max-height: 390px; }
  .document-attachment-row { grid-template-columns: 18px 32px minmax(0,1fr) 58px; min-height: 74px; }
  .document-attachment-meta { display: none; }
  .document-order-actions { gap: 2px; }
  .document-order-actions .icon-button { width: 26px; height: 26px; }
  .workbench-page-head { min-height: 0; margin-bottom: 10px; gap: 8px; }
  .workbench-page-head > div:first-child { width: 100%; }
  .workbench-page-head h1 { font-size: 19px; }
  .workbench-head-stats { width: 100%; margin-left: 0; }
  .workbench-head-stats > span { flex: 1; justify-content: center; }
  .workbench-head-option { flex: 1; justify-content: center; }
  .workbench-page-head > .btn { flex: 2 1 150px; }
  .workbench-layout { height: calc(100vh - 325px); min-height: 500px; }
  .workbench-pane-head { padding-inline: 11px; }
  .workbench-pane-actions { gap: 4px !important; }
  .workbench-pane-actions .btn { padding-inline: 7px; }
  .workbench-sequence-list { padding: 7px; }
  .workbench-sequence-head { grid-template-columns: 24px minmax(0,1fr) 88px; }
  .sequence-grip { display: none; }
  .workbench-sequence-head > div:nth-child(3) { grid-column: 2; }
  .sequence-actions { grid-column: 3; }
  .workbench-section-editor { grid-template-columns: 1fr; padding: 9px; }
  .workbench-section-preview { grid-column: 1; }
  .workbench-file-row { grid-template-columns: 16px 27px minmax(0,1fr); }
  .workbench-file-row .support-badge { display: none; }
  .workbench-cover-preview { width: min(174px,68%); }
  .workbench-generation { left: 12px; right: 12px; bottom: 12px; }
  .panel-actions { flex-wrap: wrap; justify-content: flex-end; }
  .selection-bar { flex-wrap: wrap; padding-block: 8px; }
  .selection-copy { flex: 1 1 180px; }
  .activity-detail-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .activity-viewer-overlay { padding: 0; }
  .activity-viewer-modal { width: 100%; height: 100%; max-height: none; }
  .activity-viewer-head { min-height: 58px; padding-inline: 12px 8px; }
  .activity-viewer-main { grid-template-columns: 40px minmax(0,1fr) 40px; }
  .activity-viewer-nav svg { width: 22px; height: 22px; }
  .activity-viewer-stage figcaption { min-height: 50px; padding: 7px 9px; align-items: flex-start; flex-direction: column; justify-content: center; gap: 2px; }
  .activity-viewer-strip { flex-basis: 78px; padding: 8px; }
  .activity-viewer-strip button { width: 72px; flex-basis: 72px; }
}

@media (max-width: 1120px) {
  .activity-gallery { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .activity-batch-photos { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

@media (max-width: 640px) {
  .activity-gallery { padding: 12px; grid-template-columns: 1fr; gap: 10px; }
  .activity-card-body { min-height: 132px; }
  .activity-toolbar .filter-select, .activity-toolbar .btn { flex: 1 1 135px; }
  .activity-toolbar .toolbar-tabs { flex: 1 1 100%; overflow-x: auto; }
  .activity-batch-body { padding: 14px; }
  .activity-batch-actions .btn { flex: 1 1 135px; }
  .activity-batch-summary { width: 100%; margin-left: 0; }
  .activity-batch-groups, .activity-batch-photos { grid-template-columns: 1fr; }
  .activity-batch-group-fields { grid-template-columns: 1fr; }
  .activity-batch-group-fields .span-2 { grid-column: auto; }
  .activity-batch-photo { display: grid; grid-template-columns: 104px minmax(0,1fr); grid-template-rows: auto auto; }
  .activity-batch-photo-preview { grid-row: 1 / 3; aspect-ratio: auto; min-height: 118px; }
  .activity-batch-photo-copy { align-self: end; padding-bottom: 4px; }
  .activity-batch-photo > label { align-self: start; }
  .activity-link-review-body { padding: 14px; }
  .activity-link-activity-summary { grid-template-columns: 92px minmax(0,1fr); padding: 8px; gap: 9px; }
  .activity-link-tabs button { font-size: 8px; gap: 4px; }
  .activity-link-search { grid-template-columns: 18px minmax(0,1fr) auto; }
  .activity-link-search .icon-button { grid-column: 3; }
  .activity-link-search .btn + .icon-button { display: none; }
  .activity-link-item { grid-template-columns: 1fr; }
  .activity-link-item-main { grid-template-columns: 30px minmax(0,1fr) auto; }
  .activity-link-open { display: none; }
  .activity-link-confidence { grid-column: 3; }
  .activity-link-reasons { grid-column: 1; padding-left: 39px; }
  .activity-link-item.selectable .activity-link-reasons { padding-left: 69px; }
  .activity-link-actions { grid-column: 1; grid-row: auto; justify-content: flex-end; }
  .activity-link-bulk-bar { flex-wrap: wrap; }
  .activity-link-bulk-bar > span { margin-left: auto; }
  .activity-link-bulk-bar .btn { flex: 1 1 100%; }
  .activity-relationship-heading { align-items: flex-start; }
}

.topbar .topbar-batch-entry {
  min-height: 36px;
  flex: 0 0 auto;
  color: #0066cc;
  border-color: rgba(0, 113, 227, .2);
  background: rgba(237, 245, 255, .88);
  box-shadow: none;
}

.topbar .topbar-batch-entry:hover {
  color: #005bbd;
  border-color: rgba(0, 113, 227, .32);
  background: #e5f1ff;
}

.training-export-actions {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  flex: 0 0 auto;
}

.training-export-actions [data-action="export-next-month-birthdays"] {
  color: #9a5b10;
  border-color: rgba(183, 122, 18, .24);
  background: #fff8e8;
}

.training-export-actions [data-action="export-next-month-birthdays"]:hover {
  color: #7b4707;
  border-color: rgba(183, 122, 18, .38);
  background: #fff2d2;
}

@media (max-width: 760px) {
  .training-export-actions {
    width: 100%;
  }

  .training-export-actions .btn {
    flex: 1 1 0;
    justify-content: center;
  }

  .topbar .topbar-batch-entry {
    width: 38px;
    min-width: 38px;
    padding: 0;
  }

  .topbar .topbar-batch-entry span {
    display: none;
  }

  .topbar-workbench-title {
    min-width: 0;
  }

  .topbar-workbench-title > div {
    min-width: 0;
  }

  .topbar-workbench-title strong,
  .topbar-workbench-title span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}
/* Unified achievement keywords and tags */
.taxonomy-form-section {
  background: #f7faf9;
}

.taxonomy-section-copy {
  margin: -2px 0 14px;
  color: #65716f;
  font-size: 13px;
  line-height: 1.6;
}

.taxonomy-form-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
}

.taxonomy-field {
  min-width: 0;
  padding: 14px;
  border: 1px solid #dfe7e5;
  border-radius: 8px;
  background: #fff;
}

.taxonomy-field-head,
.taxonomy-field-head > span {
  display: flex;
  align-items: center;
  gap: 7px;
}

.taxonomy-field-head {
  justify-content: space-between;
  margin-bottom: 10px;
}

.taxonomy-field-head strong {
  color: #202827;
  font-size: 13px;
}

.taxonomy-field-head small {
  color: #87918f;
  font-size: 11px;
}

.taxonomy-chip-editor {
  display: flex;
  min-height: 44px;
  padding: 6px;
  align-items: center;
  align-content: flex-start;
  flex-wrap: wrap;
  gap: 6px;
  border: 1px solid #cfd9d6;
  border-radius: 7px;
  background: #fff;
}

.taxonomy-chip-editor:focus-within {
  border-color: #348c7f;
  box-shadow: 0 0 0 3px rgba(52, 140, 127, .12);
}

.taxonomy-chip-editor input {
  flex: 1 1 150px;
  min-width: 120px;
  height: 28px;
  padding: 0 5px;
  border: 0;
  outline: 0;
  color: #26302f;
  font: inherit;
  font-size: 13px;
}

.taxonomy-chip,
.record-taxonomy-chip {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-height: 27px;
  padding: 3px 8px;
  border: 1px solid #cae2dd;
  border-radius: 6px;
  background: #edf7f4;
  color: #286d63;
  font-size: 12px;
  line-height: 1.3;
}

.taxonomy-chip.tag,
.record-taxonomy-chip.tag {
  border-color: #d9dfe8;
  background: #f3f5f8;
  color: #4f5d70;
}

.taxonomy-chip button,
.record-taxonomy-chip {
  border: 0;
  cursor: pointer;
}

.taxonomy-chip button {
  display: inline-grid;
  width: 18px;
  height: 18px;
  padding: 0;
  place-items: center;
  background: transparent;
  color: inherit;
}

.taxonomy-chip button .icon {
  width: 13px;
  height: 13px;
}

.taxonomy-suggestions {
  display: flex;
  margin-top: 8px;
  align-items: center;
  flex-wrap: wrap;
  gap: 5px;
}

.taxonomy-suggestions > span {
  color: #7a8582;
  font-size: 11px;
}

.taxonomy-suggestions button {
  padding: 3px 7px;
  border: 1px solid #e1e6e5;
  border-radius: 5px;
  background: #fafcfc;
  color: #56615f;
  cursor: pointer;
  font-size: 11px;
}

.taxonomy-suggestions button:hover {
  border-color: #9fc8c0;
  color: #24766a;
}

.taxonomy-filter-select {
  max-width: 190px;
}

.record-taxonomy-row {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 10px;
  margin-top: 10px;
  align-items: start;
}

.record-taxonomy-row > span {
  padding-top: 5px;
  color: #7b8684;
  font-size: 12px;
}

.record-taxonomy-row > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.record-taxonomy-row small {
  padding-top: 5px;
  color: #9aa3a1;
}

@media (max-width: 760px) {
  .taxonomy-form-grid {
    grid-template-columns: 1fr;
  }

  .taxonomy-filter-select {
    max-width: none;
  }
}

/* Research foundation workbench */
.research-foundation-page {
  display: grid;
  width: 100%;
  max-width: 1540px;
  min-width: 0;
  margin: 0 auto;
  gap: 12px;
}

.research-foundation-heading {
  display: flex;
  min-width: 0;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
}

.research-foundation-heading h1 {
  margin: 4px 0 0;
  color: var(--ink);
  font-size: 25px;
  font-weight: 680;
  letter-spacing: 0;
}

.research-foundation-stats {
  display: flex;
  align-items: center;
  gap: 7px;
}

.research-foundation-stats span {
  display: flex;
  min-height: 34px;
  padding: 0 11px;
  align-items: center;
  gap: 4px;
  border: 1px solid var(--line);
  border-radius: 6px;
  background: rgba(255, 255, 255, 0.78);
  color: var(--muted);
  font-size: 11px;
}

.research-foundation-stats b {
  color: var(--teal-dark);
  font-size: 15px;
}

.research-brief-panel {
  display: grid;
  padding: 15px 16px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
  box-shadow: 0 8px 28px rgba(32, 55, 49, 0.045);
  gap: 12px;
}

.research-brief-panel > label > span,
.research-brief-controls label > span,
.research-brief-controls > div > span,
.research-draft-panel header label > span {
  display: block;
  margin-bottom: 5px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 600;
}

.research-brief-panel textarea {
  width: 100%;
  min-height: 84px;
  padding: 11px 12px;
  resize: vertical;
  border: 1px solid #dce3e1;
  border-radius: 6px;
  outline: 0;
  background: #fbfcfc;
  color: var(--ink);
  font: inherit;
  font-size: 13px;
  line-height: 1.65;
}

.research-brief-panel textarea:focus,
.research-brief-controls input:focus,
.research-brief-controls select:focus,
.research-draft-panel header input:focus,
.research-catalog-filters > div:focus-within,
#research-foundation-editor:focus {
  border-color: #74aa9f;
  box-shadow: 0 0 0 3px rgba(31, 121, 104, 0.09);
}

.research-brief-controls {
  display: grid;
  grid-template-columns: minmax(272px, 1.3fr) repeat(3, minmax(104px, 0.52fr)) auto;
  align-items: end;
  gap: 9px;
}

.research-brief-controls > div,
.research-brief-controls > label {
  min-width: 0;
}

.research-brief-controls input,
.research-brief-controls select,
.research-draft-panel header input {
  width: 100%;
  height: 35px;
  padding: 0 9px;
  border: 1px solid #dce3e1;
  border-radius: 6px;
  outline: 0;
  background: #fff;
  color: var(--ink);
  font: inherit;
  font-size: 12px;
}

.research-brief-controls .segmented {
  display: flex;
  width: 100%;
  min-height: 35px;
  padding: 3px;
  border-radius: 6px;
  background: #edf2f0;
}

.research-brief-controls .segmented label {
  position: relative;
  flex: 1;
  min-width: 0;
  cursor: pointer;
}

.research-brief-controls .segmented input {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
}

.research-brief-controls .segmented span {
  display: grid;
  height: 29px;
  padding: 0 7px;
  place-items: center;
  border-radius: 5px;
  color: #65726f;
  font-size: 11px;
  white-space: nowrap;
}

.research-brief-controls .segmented label.active span {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 1px 5px rgba(30, 49, 44, 0.11);
  font-weight: 650;
}

.research-brief-controls > .btn {
  height: 35px;
  justify-content: center;
  white-space: nowrap;
}

.research-foundation-workspace {
  display: grid;
  height: calc(100vh - 342px);
  min-height: 540px;
  grid-template-columns: minmax(380px, 0.88fr) minmax(500px, 1.12fr);
  gap: 12px;
}

.research-selection-panel,
.research-draft-panel {
  min-width: 0;
  min-height: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #fff;
}

.research-selection-panel {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr);
}

.research-selection-panel > header {
  display: grid;
  padding: 13px 14px 0;
  border-bottom: 1px solid var(--line-soft);
  gap: 11px;
}

.research-selection-panel > header > div:first-child {
  display: flex;
  min-width: 0;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
}

.research-selection-panel > header strong {
  color: var(--ink);
  font-size: 13px;
}

.research-selection-panel > header span {
  color: var(--muted);
  font-size: 10px;
}

.research-list-tabs {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 18px;
}

.research-list-tabs button {
  display: flex;
  min-height: 34px;
  padding: 0 1px;
  align-items: center;
  gap: 5px;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font-size: 11px;
}

.research-list-tabs button.active {
  border-bottom-color: var(--teal);
  color: var(--ink);
  font-weight: 650;
}

.research-list-tabs b {
  display: grid;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  place-items: center;
  border-radius: 5px;
  background: #edf3f1;
  color: #58716b;
  font-size: 9px;
}

.research-catalog-filters {
  display: grid;
  padding: 9px 10px;
  grid-template-columns: minmax(0, 1fr) 110px;
  border-bottom: 1px solid var(--line-soft);
  gap: 7px;
}

.research-catalog-filters > div {
  display: flex;
  min-width: 0;
  height: 32px;
  padding: 0 8px;
  align-items: center;
  gap: 6px;
  border: 1px solid #dce3e1;
  border-radius: 6px;
  color: var(--muted);
}

.research-catalog-filters input,
.research-catalog-filters select {
  width: 100%;
  min-width: 0;
  height: 32px;
  border: 0;
  outline: 0;
  background: transparent;
  color: var(--ink);
  font: inherit;
  font-size: 11px;
}

.research-catalog-filters select {
  padding: 0 7px;
  border: 1px solid #dce3e1;
  border-radius: 6px;
  background: #fff;
}

.research-result-list {
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.research-result-group + .research-result-group {
  border-top: 8px solid #f4f7f6;
}

.research-result-group > header {
  position: sticky;
  z-index: 2;
  top: 0;
  display: flex;
  min-height: 43px;
  padding: 7px 10px;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line-soft);
  background: rgba(248, 250, 249, 0.97);
  backdrop-filter: blur(10px);
  gap: 10px;
}

.research-result-group > header > div {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 7px;
}

.research-result-group > header strong {
  color: var(--ink);
  font-size: 11px;
}

.research-result-group > header span {
  color: var(--muted);
  font-size: 9px;
}

.research-result-group > header .btn {
  height: 28px;
  padding-inline: 8px;
  font-size: 9px;
  white-space: nowrap;
}

.research-result-group > header .research-group-remove {
  border-color: #e2d8d4;
  color: #875f55;
}

.research-result-group > div > .research-result-row:last-child {
  border-bottom: 0;
}

.research-result-row {
  display: grid;
  min-width: 0;
  padding: 11px 10px;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  align-items: center;
  border-bottom: 1px solid var(--line-soft);
  gap: 9px;
}

.research-result-row:hover,
.research-result-row.selected {
  background: #f7faf9;
}

.research-result-toggle {
  display: grid;
  width: 27px;
  height: 27px;
  padding: 0;
  place-items: center;
  border: 1px solid #cfd8d5;
  border-radius: 6px;
  background: #fff;
  color: #6a7774;
  cursor: pointer;
}

.research-result-row.selected .research-result-toggle {
  border-color: var(--teal);
  background: var(--teal);
  color: #fff;
}

.research-result-main {
  display: grid;
  min-width: 0;
  gap: 3px;
}

.research-result-main > strong,
.research-result-main > small {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.research-result-main > strong {
  color: var(--ink);
  font-size: 12px;
  font-weight: 650;
}

.research-result-main > small {
  color: var(--muted);
  font-size: 10px;
}

.research-result-meta {
  display: flex;
  min-width: 0;
  align-items: center;
  gap: 6px;
}

.research-result-meta > span,
.research-result-meta > b {
  color: var(--muted);
  font-size: 9px;
  font-weight: 550;
}

.research-result-meta > b {
  color: var(--teal-dark);
}

.research-result-meta > b.manual {
  color: #7e6a42;
}

.research-match-reasons {
  display: flex;
  margin-top: 3px;
  min-width: 0;
  overflow: hidden;
  gap: 4px;
}

.research-match-reasons span {
  overflow: hidden;
  padding: 2px 5px;
  border-radius: 4px;
  background: #edf5f2;
  color: #54736b;
  font-size: 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.research-order-actions {
  display: flex;
  gap: 3px;
}

.research-order-actions .icon-button {
  width: 27px;
  height: 27px;
}

.research-draft-panel {
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto;
}

.research-draft-panel > header {
  display: flex;
  min-width: 0;
  min-height: 62px;
  padding: 10px 12px;
  align-items: end;
  justify-content: space-between;
  border-bottom: 1px solid var(--line-soft);
  gap: 12px;
}

.research-draft-panel > header > div {
  display: flex;
  min-width: 0;
  align-items: end;
  gap: 6px;
}

.research-draft-panel > header > div:first-child {
  flex: 1;
}

.research-draft-panel header label {
  min-width: 150px;
  max-width: 310px;
  flex: 1;
}

.research-length-control {
  display: flex;
  height: 35px;
  padding: 3px;
  border-radius: 6px;
  background: #edf2f0;
}

.research-length-control button {
  padding: 0 8px;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--muted);
  cursor: pointer;
  font-size: 10px;
}

.research-length-control button.active {
  background: #fff;
  color: var(--ink);
  box-shadow: 0 1px 4px rgba(30, 49, 44, 0.1);
  font-weight: 650;
}

.research-draft-panel > header .btn {
  height: 35px;
  padding-inline: 10px;
  white-space: nowrap;
}

#research-foundation-editor {
  width: 100%;
  min-width: 0;
  min-height: 0;
  padding: 25px clamp(24px, 5vw, 58px);
  resize: none;
  border: 0;
  outline: 0;
  background: #fff;
  color: #242a29;
  font-family: "Microsoft YaHei", "Noto Sans CJK SC", sans-serif;
  font-size: 13px;
  line-height: 1.85;
}

.research-draft-panel > footer {
  display: flex;
  min-height: 35px;
  padding: 0 12px;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--line-soft);
  background: #fafcfc;
  color: var(--muted);
  font-size: 10px;
}

.research-draft-panel > footer span {
  display: flex;
  align-items: center;
  gap: 5px;
}

.research-draft-panel > footer .icon {
  color: var(--teal);
}

.research-draft-panel > footer.stale {
  background: #fff9ed;
  color: #7b622d;
}

.research-draft-panel > footer.stale .icon {
  color: #b78324;
}

.research-foundation-empty {
  display: grid;
  min-height: 180px;
  padding: 30px;
  place-items: center;
  align-content: center;
  color: var(--muted);
  text-align: center;
  gap: 9px;
}

.research-foundation-empty.initial {
  min-height: 270px;
  border: 1px dashed #cfd9d6;
  border-radius: 7px;
  background: rgba(255, 255, 255, 0.52);
}

.research-foundation-empty .icon {
  width: 24px;
  height: 24px;
  color: #7ba79e;
}

.research-foundation-empty strong {
  color: #5e6b68;
  font-size: 12px;
}

@media (max-width: 1180px) {
  .research-brief-controls {
    grid-template-columns: minmax(250px, 1fr) repeat(3, minmax(92px, 0.42fr)) auto;
  }

  .research-foundation-workspace {
    height: auto;
    min-height: 0;
    grid-template-columns: 1fr;
  }

  .research-selection-panel {
    min-height: 470px;
  }

  .research-result-list {
    max-height: 520px;
  }

  .research-draft-panel {
    min-height: 650px;
  }
}

@media (max-width: 760px) {
  .research-foundation-heading {
    align-items: flex-start;
    flex-direction: column;
    gap: 9px;
  }

  .research-foundation-heading h1 {
    font-size: 20px;
  }

  .research-foundation-stats {
    width: 100%;
  }

  .research-foundation-stats span {
    flex: 1;
    justify-content: center;
  }

  .research-brief-panel {
    padding: 12px;
  }

  .research-brief-controls {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .research-brief-controls > div:first-child,
  .research-brief-controls > .btn {
    grid-column: 1 / -1;
  }

  .research-brief-controls > .btn {
    width: 100%;
  }

  .research-selection-panel {
    min-height: 440px;
  }

  .research-selection-panel > header > div:first-child span {
    display: none;
  }

  .research-list-tabs {
    gap: 12px;
  }

  .research-result-list {
    max-height: 480px;
  }

  .research-result-row {
    grid-template-columns: 28px minmax(0, 1fr) auto;
  }

  .research-draft-panel {
    min-height: 670px;
  }

  .research-draft-panel > header {
    align-items: stretch;
    flex-direction: column;
  }

  .research-draft-panel > header > div:first-child,
  .research-draft-panel > header > div:last-child {
    width: 100%;
  }

  .research-draft-panel header label {
    max-width: none;
  }

  .research-draft-panel > header > div:last-child .btn {
    flex: 1;
    justify-content: center;
  }

  #research-foundation-editor {
    min-height: 520px;
    padding: 21px 17px;
  }

  .research-draft-panel > footer span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
}

@media (max-width: 440px) {
  .research-list-tabs {
    justify-content: space-between;
    gap: 6px;
  }

  .research-list-tabs button {
    gap: 3px;
  }

  .research-catalog-filters {
    grid-template-columns: 1fr;
  }

  .research-order-actions {
    flex-direction: column;
  }

  .research-draft-panel > header > div:last-child {
    flex-wrap: wrap;
  }

  .research-draft-panel > header > div:last-child .btn {
    min-width: 92px;
  }
}

/* Group meeting workspace */
.meeting-workspace-page { min-width: 0; }
.meeting-summary-strip {
  margin-bottom: 14px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: 8px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.76);
}
.meeting-summary-strip > div { min-height: 76px; padding: 14px 17px; border-right: 1px solid var(--line-soft); display: flex; align-items: baseline; gap: 5px; }
.meeting-summary-strip > div:last-child { border-right: 0; }
.meeting-summary-strip span { margin-right: auto; color: var(--muted); font-size: 10px; font-weight: 600; }
.meeting-summary-strip strong { color: var(--ink); font-size: 24px; font-weight: 650; font-variant-numeric: tabular-nums; }
.meeting-summary-strip small { color: var(--muted); font-size: 9px; }
.meeting-table-panel { min-width: 0; overflow: hidden; }
.meeting-toolbar { min-height: 56px; padding: 8px 14px; border-bottom: 1px solid var(--line); display: flex; align-items: center; gap: 9px; }
.meeting-search { width: min(280px, 28vw); height: 34px; padding: 0 10px; border: 1px solid var(--line); border-radius: 7px; display: flex; align-items: center; gap: 7px; background: #fff; }
.meeting-search .icon { color: #8c9290; }
.meeting-search input { width: 100%; min-width: 0; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: 11px; }
.meeting-data-table { min-width: 1040px; }
.meeting-expert-table { min-width: 820px; }
.meeting-col-date { width: 140px; }
.meeting-col-title { width: 34%; }
.meeting-col-speaker { width: 22%; }
.meeting-col-files { width: 125px; }
.meeting-col-attendance { width: 112px; }
.meeting-col-status { width: 105px; }
.meeting-date-cell, .meeting-speaker-cell, .meeting-report-cell { min-width: 0; display: grid; gap: 3px; }
.meeting-date-cell strong { color: #333337; font-size: 12px; font-weight: 620; font-variant-numeric: tabular-nums; }
.meeting-date-cell small, .meeting-speaker-cell small, .meeting-report-cell small { color: #8a8a8f; font-size: 9px; }
.meeting-speaker-cell strong, .meeting-report-cell strong { overflow: hidden; color: #3b3b3e; font-size: 11px; font-weight: 590; text-overflow: ellipsis; white-space: nowrap; }
.meeting-title-button { width: 100%; min-width: 0; padding: 0; border: 0; display: grid; gap: 4px; color: inherit; background: transparent; text-align: left; cursor: pointer; }
.meeting-title-button strong { overflow: hidden; color: #202024; font-size: 12px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.meeting-title-button small { overflow: hidden; color: #818186; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.meeting-title-button:hover strong { color: #0066cc; }
.meeting-title-button.expert strong { font-size: 11px; }
.meeting-material-count { display: inline-grid; grid-template-columns: 18px auto; align-items: center; gap: 0 5px; color: #8a8a8f; }
.meeting-material-count .icon { grid-row: 1 / 3; }
.meeting-material-count strong { color: #5d5d62; font-size: 11px; font-weight: 650; }
.meeting-material-count small { font-size: 8px; }
.meeting-material-count.has-files { color: #176759; }
.meeting-material-count.has-files strong { color: #176759; }
.meeting-material-actions { display: flex; align-items: center; gap: 5px; }
.meeting-material-actions .icon-button { width: 28px; height: 28px; flex: 0 0 28px; color: #276f62; border-color: #cde0da; background: #f1f8f6; }
.meeting-material-actions .icon-button:hover { color: #155f51; border-color: #91bbb1; background: #e5f3ef; }
.meeting-status { width: max-content; min-height: 25px; padding: 0 8px; border-radius: 5px; display: inline-flex; align-items: center; gap: 5px; color: #7b5b20; background: #fff4dd; font-size: 9px; font-weight: 650; white-space: nowrap; }
.meeting-status.completed { color: #276b55; background: #e8f5ef; }
.meeting-status.cancelled { color: #8a5555; background: #f7ecec; }
.meeting-row-actions { text-align: center; white-space: nowrap; }
.meeting-row-actions .icon-button + .icon-button { margin-left: 3px; }
.meeting-attendance-count { width: max-content; min-height: 27px; padding: 0 7px; border-radius: 5px; display: inline-flex; align-items: center; gap: 4px; color: #276b55; background: #e8f5ef; font-size: 9px; white-space: nowrap; }
.meeting-attendance-count.empty { color: #74747a; background: #efeff2; }
.meeting-attendance-count.has-issues { color: #9a4747; background: #f9eaea; }
.meeting-attendance-count strong { font-size: 11px; }
.meeting-attendance-count small { font-size: 8px; }
.meeting-payment { width: max-content; min-height: 24px; padding: 0 7px; border-radius: 5px; display: inline-flex; align-items: center; color: #8a5d1c; background: #fff3dd; font-size: 9px; font-weight: 650; }
.meeting-payment.paid { color: #276b55; background: #e8f5ef; }
.meeting-payment.not-required { color: #66666b; background: #efeff2; }
.meeting-loading { min-height: 280px; display: grid; place-items: center; align-content: center; gap: 9px; color: var(--muted); }
.meeting-loading .icon { animation: spin 1s linear infinite; }
.meeting-table-panel .table-footer > span:last-child { display: inline-flex; align-items: center; gap: 5px; }

.meeting-detail-modal, .meeting-form-modal, .meeting-submission-modal { width: min(1060px, 100%); }
.meeting-detail-modal .modal-head, .meeting-form-modal .modal-head, .meeting-submission-modal .modal-head { min-height: 94px; height: auto; padding-top: 16px; padding-bottom: 15px; align-items: flex-start; flex-shrink: 0; }
.meeting-detail-modal .modal-head > div, .meeting-form-modal .modal-head > div, .meeting-submission-modal .modal-head > div { min-width: 0; }
.meeting-detail-modal .modal-head .eyebrow, .meeting-form-modal .modal-head .eyebrow, .meeting-submission-modal .modal-head .eyebrow { line-height: 1.3; }
.meeting-detail-modal .modal-head h2, .meeting-form-modal .modal-head h2, .meeting-submission-modal .modal-head h2 { margin: 6px 0 0; font-size: 20px; line-height: 1.3; }
.meeting-detail-modal .modal-head p, .meeting-form-modal .modal-head p, .meeting-submission-modal .modal-head p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.meeting-detail-modal .modal-head > .icon-button, .meeting-form-modal .modal-head > .icon-button, .meeting-submission-modal .modal-head > .icon-button { margin-left: auto; flex: 0 0 auto; }
.meeting-online-link { width: max-content; max-width: 100%; margin-top: 7px; display: inline-flex; align-items: center; gap: 5px; color: #0066cc; font-size: 9px; font-weight: 650; text-decoration: none; }
.meeting-online-link:hover { text-decoration: underline; }
.meeting-online-link .icon { flex: 0 0 auto; }
.meeting-detail-body, .meeting-form-body { padding: 0 22px 24px; background: #f7f7f9; }
.meeting-cancellation-banner { min-height: 58px; margin: 14px 0; padding: 11px 13px; border: 1px solid #edc9c6; border-radius: 7px; display: flex; align-items: flex-start; gap: 9px; color: #9a3f3b; background: #fff3f2; }
.meeting-cancellation-banner > .icon { margin-top: 1px; flex: 0 0 auto; }
.meeting-cancellation-banner > div { min-width: 0; display: grid; gap: 3px; }
.meeting-cancellation-banner strong { color: #873832; font-size: 10px; }
.meeting-cancellation-banner span { color: #8a5b57; font-size: 8.5px; line-height: 1.5; overflow-wrap: anywhere; }
.meeting-cancellation-banner.compact { margin-top: 0; }
.meeting-poster-command { min-height: 48px; margin: -3px 0 14px; padding: 8px 10px 8px 12px; border-left: 3px solid #477ec0; display: flex; align-items: center; justify-content: space-between; gap: 12px; background: #f0f5fb; }
.meeting-poster-command > span { display: flex; align-items: center; gap: 7px; color: #365f8c; }
.meeting-poster-command > span > span { min-width: 0; display: grid; gap: 2px; }
.meeting-poster-command strong { color: #334d68; font-size: 9px; }
.meeting-poster-command small { color: #6f8192; font-size: 8px; font-weight: 500; }
.meeting-poster-modal { width: min(900px, 100%); height: min(920px, calc(100vh - 32px)); max-height: calc(100vh - 32px); }
.meeting-poster-body { position: relative; min-height: 0; flex: 1; padding: 18px; display: flex; align-items: center; justify-content: center; overflow: hidden; background: #e8edeb; }
.meeting-poster-send-error { position: absolute; z-index: 2; top: 10px; left: 50%; max-width: calc(100% - 28px); padding: 7px 10px; border: 1px solid #efc8bf; border-radius: 6px; display: flex; align-items: center; gap: 6px; color: #984433; background: rgba(255,244,241,.97); box-shadow: var(--shadow-sm); font-size: 9px; transform: translateX(-50%); }
.meeting-poster-preview { min-width: 0; height: 100%; margin: 0; display: flex; align-items: center; justify-content: center; }
.meeting-poster-preview img { width: auto; max-width: 100%; height: auto; max-height: 100%; display: block; object-fit: contain; background: #fff; box-shadow: 0 16px 45px rgba(21, 42, 36, .2); user-select: none; }
.meeting-poster-loading { min-height: 360px; display: grid; place-items: center; align-content: center; gap: 10px; color: #55716a; }
.meeting-poster-loading .icon { width: 30px; height: 30px; color: #157466; animation: spin 1s linear infinite; }
.meeting-poster-loading strong { color: #35443f; font-size: 11px; }
.meeting-poster-loading.error .icon { color: var(--danger); animation: none; }
.meeting-detail-meta { margin: 0 -22px 18px; padding: 15px 22px; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-bottom: 1px solid var(--line); background: #fff; }
.meeting-detail-meta > div { min-height: 42px; padding: 0 14px; border-right: 1px solid var(--line-soft); display: grid; align-content: center; gap: 4px; }
.meeting-detail-meta > div:first-child { padding-left: 0; }
.meeting-detail-meta > div:last-child { border-right: 0; }
.meeting-detail-meta span { color: var(--muted); font-size: 8px; }
.meeting-detail-meta strong { color: var(--ink); font-size: 11px; font-weight: 620; }
.meeting-detail-section, .meeting-form-section { padding: 18px 0; border-bottom: 1px solid #dedee3; }
.meeting-detail-section:last-child, .meeting-form-section:last-child { border-bottom: 0; }
.meeting-form-section-focused { animation: meeting-form-section-focus 1.4s ease; }
@keyframes meeting-form-section-focus {
  0%, 100% { background: transparent; }
  18%, 72% { background: #eef8f4; box-shadow: 0 0 0 10px #eef8f4; }
}
.meeting-detail-section-head, .meeting-form-section .form-section-title { min-height: 34px; margin: 0 0 11px; padding: 0; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.meeting-detail-section-head h3, .meeting-form-section .form-section-title > span { margin: 0; color: #29292d; font-size: 12px; font-weight: 650; }
.meeting-detail-section-head > span { color: var(--muted); font-size: 9px; }
.meeting-copy-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 22px; }
.meeting-copy-grid > div { min-width: 0; }
.meeting-copy-grid .span-2 { grid-column: 1 / -1; }
.meeting-copy-grid span, .meeting-report-detail > span { color: var(--muted); font-size: 8px; font-weight: 620; }
.meeting-copy-grid p, .meeting-report-detail p { margin: 5px 0 0; color: #444449; font-size: 10px; line-height: 1.75; white-space: pre-wrap; overflow-wrap: anywhere; }
.meeting-presentation-detail-list, .meeting-presentation-form-list { display: grid; gap: 8px; }
.meeting-presentation-detail-list > article { min-height: 68px; padding: 11px 12px; border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 10px; background: #fff; }
.meeting-presentation-detail-list > article > span { color: #0066cc; font-size: 9px; font-weight: 700; }
.meeting-presentation-detail-list article > div { min-width: 0; display: grid; gap: 4px; }
.meeting-presentation-detail-list strong { color: #29292d; font-size: 11px; }
.meeting-presentation-detail-list small { color: var(--muted); font-size: 8px; }
.meeting-presentation-detail-list p { margin: 4px 0 0; color: #55555a; font-size: 9px; line-height: 1.6; white-space: pre-wrap; }
.meeting-presentation-form { padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.meeting-file-list, .meeting-expert-detail-list, .meeting-expert-form-list { display: grid; gap: 9px; }
.meeting-file-row { min-height: 54px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 7px; display: grid; grid-template-columns: 34px minmax(0, 1fr) 32px; align-items: center; gap: 9px; background: #fff; }
.meeting-file-row > div { min-width: 0; display: grid; gap: 3px; }
.meeting-file-row strong { overflow: hidden; color: #343438; font-size: 10px; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.meeting-file-row small { color: var(--muted); font-size: 8px; }
.meeting-file-locked { width: 32px; height: 32px; display: grid; place-items: center; color: #8a8a8f; }
.meeting-section-empty, .meeting-form-files-empty { min-height: 64px; padding: 12px; border: 1px dashed #cfd2d6; border-radius: 7px; display: flex; align-items: center; justify-content: center; gap: 7px; color: #848489; background: rgba(255, 255, 255, 0.6); font-size: 9px; }
.meeting-expert-detail, .meeting-expert-form { padding: 15px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.meeting-expert-heading, .meeting-expert-form-head { margin-bottom: 13px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.meeting-expert-heading { justify-content: flex-start; }
.meeting-expert-heading > span, .meeting-expert-form-head > div > span { width: 30px; height: 30px; border-radius: 6px; display: grid; place-items: center; color: #335f83; background: #eaf3fb; }
.meeting-expert-heading > div { min-width: 0; display: grid; gap: 3px; }
.meeting-expert-heading strong, .meeting-expert-form-head strong { color: #29292d; font-size: 11px; font-weight: 650; }
.meeting-expert-heading small { color: var(--muted); font-size: 8px; }
.meeting-expert-form-head > div { display: flex; align-items: center; gap: 8px; }
.meeting-report-detail { margin-top: 12px; }
.meeting-report-detail strong { margin-top: 5px; display: block; color: #333337; font-size: 11px; font-weight: 620; line-height: 1.55; }
.meeting-sensitive-block { margin-top: 14px; padding: 12px; border-top: 1px solid #d9e4e0; background: #f7faf9; }
.meeting-sensitive-block > div:first-child { display: flex; align-items: center; gap: 6px; color: #276b55; font-size: 9px; font-weight: 650; }
.meeting-sensitive-block dl { margin: 11px 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 18px; }
.meeting-sensitive-block dl > div { min-width: 0; display: grid; grid-template-columns: 80px minmax(0, 1fr); align-items: center; gap: 7px; }
.meeting-sensitive-block dt { color: var(--muted); font-size: 8px; }
.meeting-sensitive-block dd { min-width: 0; margin: 0; display: flex; align-items: center; gap: 5px; color: #333337; font-size: 9px; font-variant-numeric: tabular-nums; }
.meeting-sensitive-block dd > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.meeting-sensitive-block > p { margin: 10px 0 0; color: var(--muted); font-size: 8px; line-height: 1.5; }
.meeting-reveal { width: 26px; height: 26px; flex: 0 0 auto; }
.meeting-sensitive-restricted { min-height: 40px; margin-top: 12px; padding: 9px 11px; border-radius: 6px; display: flex; align-items: center; gap: 7px; color: #6e6e73; background: #f0f0f2; font-size: 8px; }

.meeting-attendance-detail { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 7px; }
.meeting-attendance-detail > span { min-height: 54px; padding: 9px; border: 1px solid var(--line-soft); border-radius: 6px; display: grid; align-content: center; gap: 3px; color: var(--muted); background: #fff; font-size: 8px; text-align: center; }
.meeting-attendance-detail strong { color: #333337; font-size: 17px; font-weight: 650; }
.meeting-attendance-detail .has-issues { color: #9a4747; background: #fff6f5; border-color: #efceca; }
.meeting-attendance-detail .has-issues strong { color: #a33f3a; }
.meeting-attendance-manage { margin-top: 10px; }

.meeting-attendance-modal { width: min(1180px, 100%) !important; }
.meeting-attendance-modal .modal-head { min-height: 94px; height: auto; padding-top: 16px; padding-bottom: 15px; align-items: flex-start; flex-shrink: 0; }
.meeting-attendance-modal .modal-head > div { min-width: 0; flex: 1; }
.meeting-attendance-modal .modal-head .eyebrow { line-height: 1.3; }
.meeting-attendance-modal .modal-head h2 { margin: 6px 0 0; font-size: 20px; line-height: 1.3; }
.meeting-attendance-modal .modal-head p { margin: 5px 0 0; color: var(--muted); font-size: 10px; line-height: 1.5; }
.meeting-attendance-modal .modal-head > .icon-button { margin-left: auto; flex: 0 0 auto; }
.meeting-attendance-body { padding: 0 20px 24px; background: #f6f7f9; }
.meeting-attendance-message { min-height: 40px; margin: 14px 0 0; padding: 9px 11px; border: 1px solid #c8ded4; border-radius: 7px; display: flex; align-items: center; gap: 7px; color: #276b55; background: #eef8f3; font-size: 9px; }
.meeting-attendance-policy { margin: 16px 0 12px; padding: 13px 14px; border-left: 3px solid #0066cc; display: flex; align-items: flex-start; gap: 10px; background: #eef5fc; }
.meeting-attendance-policy > span { width: 30px; height: 30px; border-radius: 6px; display: grid; flex: 0 0 auto; place-items: center; color: #0066cc; background: #fff; }
.meeting-attendance-policy > div { min-width: 0; display: grid; gap: 4px; }
.meeting-attendance-policy strong { color: #273744; font-size: 10px; }
.meeting-attendance-policy p { margin: 0; color: #667784; font-size: 8px; line-height: 1.55; }
.meeting-attendance-stats { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: #fff; }
.meeting-attendance-stats > div { min-height: 62px; padding: 9px; border-right: 1px solid var(--line-soft); display: grid; grid-template-columns: 18px 1fr; align-content: center; align-items: center; gap: 3px 5px; }
.meeting-attendance-stats > div:last-child { border-right: 0; }
.meeting-attendance-stats svg { color: #6d7b85; }
.meeting-attendance-stats span { color: var(--muted); font-size: 8px; }
.meeting-attendance-stats strong { grid-column: 2; color: #29292d; font-size: 18px; font-weight: 650; }
.meeting-attendance-stats .has-issues { background: #fff1f0; }
.meeting-attendance-stats .has-issues svg, .meeting-attendance-stats .has-issues strong { color: #a33f3a; }
.meeting-attendance-toolbar { margin: 12px 0 8px; display: grid; grid-template-columns: minmax(180px, 1fr) 140px auto auto; gap: 8px; }
.meeting-attendance-toolbar > label { min-height: 36px; padding: 0 10px; border: 1px solid var(--line); border-radius: 6px; display: flex; align-items: center; gap: 7px; background: #fff; }
.meeting-attendance-toolbar > label svg { color: #858b90; }
.meeting-attendance-toolbar input { width: 100%; min-width: 0; border: 0; outline: 0; color: var(--ink); background: transparent; font: inherit; font-size: 10px; }
.meeting-attendance-list { border: 1px solid var(--line); border-radius: 7px; overflow: hidden; background: #fff; }
.meeting-attendance-list > header, .meeting-attendance-row { display: grid; grid-template-columns: minmax(135px, .9fr) minmax(260px, 1.45fr) 112px minmax(150px, 1fr) 108px; align-items: center; gap: 8px; }
.meeting-attendance-list > header { min-height: 34px; padding: 0 10px; color: #76767c; background: #f1f2f4; font-size: 8px; font-weight: 650; }
.meeting-attendance-row { min-height: 64px; padding: 8px 10px; border-top: 1px solid var(--line-soft); }
.meeting-attendance-row.inactive { opacity: .62; background: #f8f8f9; }
.meeting-attendance-person { min-width: 0; display: grid; gap: 3px; }
.meeting-attendance-person strong { overflow: hidden; color: #303034; font-size: 10px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.meeting-attendance-person small { overflow: hidden; color: var(--muted); font-size: 8px; line-height: 1.4; text-overflow: ellipsis; white-space: nowrap; }
.meeting-attendance-modes { min-width: 0; padding: 3px; display: grid; grid-template-columns: repeat(4, minmax(48px, 1fr)) 28px; gap: 2px; background: #eceef1; }
.meeting-attendance-modes button { min-width: 0; min-height: 28px; padding: 0 5px; border: 0; color: #67676d; background: transparent; font: inherit; font-size: 8px; font-weight: 600; cursor: pointer; white-space: nowrap; }
.meeting-attendance-modes button[aria-pressed="true"] { color: #fff; background: #1765b3; }
.meeting-attendance-modes button.clear { padding: 0; display: grid; place-items: center; }
.meeting-attendance-modes button.clear svg { width: 13px; height: 13px; }
.meeting-attendance-row > .filter-select, .meeting-attendance-note { width: 100%; min-width: 0; }
.meeting-attendance-outcome { width: max-content; max-width: 100%; min-height: 25px; padding: 0 7px; border-radius: 5px; display: inline-flex; align-items: center; color: #66666b; background: #efeff2; font-size: 8px; font-weight: 650; white-space: nowrap; }
.meeting-attendance-outcome.onsite { color: #276b55; background: #e8f5ef; }
.meeting-attendance-outcome.leave { color: #805d1f; background: #fff3dc; }
.meeting-attendance-outcome.special { color: #315f8a; background: #e9f2fb; }
.meeting-attendance-outcome.issue { color: #9a4747; background: #f9eaea; }
.meeting-attendance-unmatched { margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--line); }
.meeting-attendance-unmatched > div:last-child { display: grid; gap: 6px; }
.meeting-attendance-unmatched article { min-height: 52px; padding: 7px 9px; border: 1px solid #efd5b1; border-radius: 6px; display: grid; grid-template-columns: minmax(160px, 1fr) minmax(220px, .8fr) 32px; align-items: center; gap: 8px; background: #fffaf2; }
.meeting-attendance-unmatched article > div { min-width: 0; display: grid; gap: 3px; }
.meeting-attendance-unmatched strong { color: #4c4538; font-size: 9px; }
.meeting-attendance-unmatched small { color: #8a7a61; font-size: 8px; }

.meeting-form-error { min-height: 42px; margin: 16px 0 0; padding: 10px 12px; border: 1px solid #efcaca; border-radius: 7px; display: flex; align-items: center; gap: 8px; color: #9a3f3b; background: #fff1f0; font-size: 9px; }
.meeting-schedule-locked { min-height: 38px; padding: 8px 10px; border-left: 3px solid #82909a; display: flex; align-items: center; gap: 7px; color: #66737b; background: #f1f4f5; font-size: 8.5px; }
.meeting-schedule-modal, .meeting-cancel-modal { width: min(560px, 100%); }
.meeting-schedule-body { padding: 18px 20px 22px; background: #f7f8f9; }
.meeting-schedule-body .meeting-form-error { margin-top: 0; margin-bottom: 13px; }
.meeting-schedule-current { min-height: 68px; margin-bottom: 15px; padding: 11px 13px; border-left: 3px solid #3c7d6d; display: grid; align-content: center; gap: 4px; background: #eef6f3; }
.meeting-schedule-current span { color: #60716b; font-size: 8px; font-weight: 650; }
.meeting-schedule-current strong { color: #2d3935; font-size: 12px; font-variant-numeric: tabular-nums; }
.meeting-schedule-current small { color: #71817b; font-size: 8px; }
.meeting-schedule-grid { gap: 12px; }
.meeting-cancel-reason { margin-top: 15px; }
.meeting-cancel-reason textarea { min-height: 84px; resize: vertical; }
.meeting-cancel-reason small { color: var(--muted); font-size: 8px; }
.meeting-schedule-foot { flex-wrap: wrap; }
.meeting-schedule-foot .modal-foot-note { min-width: 100%; margin: 0; flex: 1 0 100%; order: -1; }
.meeting-schedule-foot .btn-danger { margin-right: auto; }
.meeting-file-drop { min-height: 92px; padding: 16px; border: 1px dashed #bfcbd5; border-radius: 7px; display: flex; align-items: center; justify-content: center; gap: 12px; color: #5d6c76; background: #fff; cursor: pointer; }
.meeting-file-drop.dragging { border-color: #0071e3; background: #eef6ff; }
.meeting-file-drop > span { width: 36px; height: 36px; border-radius: 7px; display: grid; place-items: center; color: #0066cc; background: #eaf3ff; }
.meeting-file-drop > div { display: grid; gap: 4px; }
.meeting-file-drop strong { color: #343438; font-size: 10px; }
.meeting-file-drop small { color: var(--muted); font-size: 8px; }
.meeting-form-files { margin-top: 10px; display: grid; gap: 7px; }
.meeting-form-files-empty { margin-top: 10px; min-height: 46px; }
.meeting-form-file { min-height: 58px; padding: 7px 9px; border: 1px solid var(--line); border-radius: 7px; display: grid; grid-template-columns: 32px minmax(130px, 1fr) 112px 124px 92px minmax(86px, auto) 32px 32px; align-items: center; gap: 7px; background: #fff; }
.meeting-form-file.conversion-failed { border-color: #e5b9ae; background: #fff8f6; }
.meeting-form-file > div { min-width: 0; display: grid; gap: 3px; }
.meeting-form-file strong { overflow: hidden; color: #333337; font-size: 9px; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.meeting-form-file small { color: var(--muted); font-size: 8px; }
.meeting-finance-form { margin-top: 15px; padding-top: 14px; border-top: 1px solid #dfe5e2; }
.meeting-finance-form > div:first-child { margin-bottom: 11px; display: flex; align-items: center; gap: 6px; color: #276b55; font-size: 9px; font-weight: 650; }
.meeting-finance-form > div:first-child span { margin-left: auto; color: var(--muted); font-size: 8px; font-weight: 450; }
.meeting-file-review-state, .meeting-file-private { color: var(--muted); font-size: 8px; white-space: nowrap; }
.meeting-file-review-state { display: inline-flex; align-items: center; gap: 4px; }
.meeting-file-review-state .icon { flex: 0 0 auto; }
.meeting-file-review-state.approved { color: #276b55; }
.meeting-file-review-state.rejected { color: #9a4747; }
.meeting-file-publish { min-height: 32px; display: inline-flex; align-items: center; gap: 6px; color: #3f4b47; font-size: 8px; white-space: nowrap; cursor: pointer; }
.meeting-file-publish input { accent-color: #0071e3; }
.meeting-file-publish input:disabled + span { color: #aaaab0; }
.meeting-review-source { display: inline-flex; align-items: center; gap: 6px; color: var(--muted); font-size: 9px; }
.meeting-submission-table { min-width: 920px; }
.meeting-submission-kind { width: max-content; min-height: 25px; padding: 0 7px; border-radius: 5px; display: inline-flex; align-items: center; gap: 5px; color: #315f8a; background: #e9f2fb; font-size: 9px; font-weight: 650; white-space: nowrap; }
.meeting-submission-kind.material { color: #6b5521; background: #fff3d9; }
.meeting-submission-body { padding: 0 22px 24px; background: #f7f7f9; }
.meeting-submission-summary { margin: 0 -22px 18px; padding: 14px 22px; display: grid; grid-template-columns: 2fr 1fr 1fr 1.4fr; gap: 0; border-bottom: 1px solid var(--line); background: #fff; }
.meeting-submission-summary > div { min-width: 0; min-height: 44px; padding: 0 13px; border-right: 1px solid var(--line-soft); display: grid; align-content: center; gap: 4px; }
.meeting-submission-summary > div:first-child { padding-left: 0; }
.meeting-submission-summary > div:last-child { border-right: 0; }
.meeting-submission-summary span, .meeting-submission-expert-grid span { color: var(--muted); font-size: 8px; }
.meeting-submission-summary strong, .meeting-submission-expert-grid strong { overflow: hidden; color: #303034; font-size: 10px; font-weight: 620; text-overflow: ellipsis; white-space: nowrap; }
.meeting-submission-sensitive-value { min-width: 0; display: flex; align-items: center; gap: 5px; color: #303034; font-size: 9px; }
.meeting-submission-sensitive-value > span { overflow: hidden; color: #303034; text-overflow: ellipsis; white-space: nowrap; }
.meeting-submission-expert-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 20px; }
.meeting-submission-expert-grid > div { min-width: 0; min-height: 44px; padding: 9px 11px; border-bottom: 1px solid var(--line-soft); display: grid; align-content: center; gap: 4px; background: #fff; }
.meeting-review-decision { margin-top: 18px; padding: 15px; border: 1px solid #ccdcd6; border-radius: 8px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(190px, .8fr); align-items: end; gap: 12px 16px; background: #f8fbfa; }
.meeting-review-decision .span-2 { grid-column: 1 / -1; }
.meeting-review-auto-link { min-height: 54px; padding: 9px 11px; border: 1px solid #c9ddd4; border-radius: 7px; display: grid; align-content: center; gap: 3px; background: #fff; }
.meeting-review-auto-link span, .meeting-review-result span { color: var(--muted); font-size: 8px; font-weight: 650; }
.meeting-review-auto-link strong { overflow: hidden; color: #2d3532; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.meeting-review-auto-link small, .meeting-review-result small { color: #5f756d; font-size: 8px; line-height: 1.45; }
.meeting-review-defaults { min-height: 48px; padding: 9px 11px; border-left: 3px solid #438675; display: flex; align-items: center; gap: 9px; color: #397466; background: #edf7f3; }
.meeting-review-defaults > .icon { flex: 0 0 auto; }
.meeting-review-defaults > div { min-width: 0; display: grid; gap: 3px; }
.meeting-review-defaults strong { color: #315f54; font-size: 9px; }
.meeting-review-defaults small { color: #657b74; font-size: 8px; line-height: 1.45; }
.meeting-review-result { min-height: 62px; margin: 4px -15px -15px; padding: 13px 15px; border-top: 1px solid #cbdcd5; display: flex; align-items: center; gap: 16px; background: #f1f7f5; }
.meeting-review-result > div:first-child { min-width: 0; display: grid; gap: 3px; }
.meeting-review-result > div:first-child strong { color: #2e3935; font-size: 10px; }
.meeting-review-foot { flex-wrap: wrap; }
.meeting-review-foot .modal-foot-note { min-width: 100%; margin: 0; flex: 1 0 100%; }
.meeting-review-foot .btn-danger { margin-left: auto; }
.meeting-review-check { min-height: 44px; display: flex; align-items: center; gap: 9px; cursor: pointer; }
.meeting-review-check input { width: 16px; height: 16px; accent-color: #0071e3; }
.meeting-review-check span { display: grid; gap: 3px; }
.meeting-review-check strong { color: #333337; font-size: 9px; }
.meeting-review-check small { color: var(--muted); font-size: 8px; }

@media (max-width: 920px) {
  .meeting-summary-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .meeting-summary-strip > div:nth-child(2) { border-right: 0; }
  .meeting-summary-strip > div:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .meeting-toolbar { flex-wrap: wrap; }
  .meeting-toolbar .toolbar-tabs { width: 100%; }
  .meeting-search { width: auto; flex: 1 1 260px; }
  .meeting-detail-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .meeting-detail-meta > div:nth-child(2) { border-right: 0; }
  .meeting-detail-meta > div:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .meeting-attendance-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .meeting-attendance-stats > div { border-bottom: 1px solid var(--line-soft); }
  .meeting-attendance-stats > div:nth-child(4) { border-right: 0; }
  .meeting-attendance-stats > div:nth-child(n+5) { border-bottom: 0; }
  .meeting-attendance-list { overflow-x: auto; }
  .meeting-attendance-list > header, .meeting-attendance-row { min-width: 920px; }
}

@media (max-width: 760px) {
  .meeting-summary-strip > div { min-height: 64px; padding: 11px 12px; }
  .meeting-summary-strip strong { font-size: 20px; }
  .meeting-toolbar { padding: 9px; }
  .meeting-search { flex-basis: 100%; width: 100%; }
  .meeting-toolbar .filter-select { min-width: calc(50% - 5px); }
  .meeting-data-table { min-width: 940px; }
  .meeting-expert-table { min-width: 720px; }
  .meeting-detail-body, .meeting-form-body { padding-right: 15px; padding-left: 15px; }
  .meeting-detail-meta { margin-right: -15px; margin-left: -15px; padding-right: 15px; padding-left: 15px; }
  .meeting-copy-grid, .meeting-sensitive-block dl { grid-template-columns: 1fr; }
  .meeting-copy-grid .span-2 { grid-column: auto; }
  .meeting-form-file { grid-template-columns: 30px minmax(0, 1fr) 32px; }
  .meeting-form-file .filter-select { grid-column: 2 / 3; width: 100%; }
  .meeting-form-file [data-meeting-file-kind] { grid-row: 2; }
  .meeting-form-file .meeting-file-presentation { grid-row: 3; }
  .meeting-form-file .meeting-file-review { grid-row: 4; }
  .meeting-form-file .meeting-file-publish, .meeting-form-file .meeting-file-private, .meeting-form-file .meeting-file-review-state { grid-column: 2 / 3; }
  .meeting-form-file > .icon-button { grid-column: 3; }
  .meeting-submission-body { padding-right: 15px; padding-left: 15px; }
  .meeting-submission-summary { margin-right: -15px; margin-left: -15px; padding-right: 15px; padding-left: 15px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .meeting-submission-summary > div:nth-child(2) { border-right: 0; }
  .meeting-submission-summary > div:nth-child(-n+2) { border-bottom: 1px solid var(--line-soft); }
  .meeting-review-decision, .meeting-submission-expert-grid { grid-template-columns: 1fr; }
  .meeting-review-decision .span-2 { grid-column: auto; }
  .meeting-review-result { margin-right: -15px; margin-left: -15px; }
  .meeting-review-foot .btn { min-width: 0; flex: 1; justify-content: center; }
  .meeting-schedule-body { padding-right: 15px; padding-left: 15px; }
  .meeting-schedule-foot .btn { min-width: 0; flex: 1; justify-content: center; }
  .meeting-poster-modal { height: calc(100vh - 20px); max-height: calc(100vh - 20px); }
  .meeting-poster-body { padding: 10px; }
  .meeting-poster-modal .modal-foot-note { display: none; }
  .meeting-poster-modal .modal-foot .btn { min-width: 0; flex: 1; justify-content: center; }
  .meeting-file-drop { align-items: flex-start; justify-content: flex-start; }
  .meeting-form-modal .modal-foot { flex-wrap: wrap; }
  .meeting-form-modal .modal-foot-note { width: 100%; order: -1; white-space: normal; }
  .meeting-attendance-body { padding-right: 12px; padding-left: 12px; }
  .meeting-attendance-toolbar { grid-template-columns: 1fr 130px; }
  .meeting-attendance-toolbar .btn { grid-column: 1 / -1; }
  .meeting-attendance-detail { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .meeting-attendance-unmatched article { grid-template-columns: minmax(0, 1fr) 32px; }
  .meeting-attendance-unmatched article .filter-select { grid-column: 1; grid-row: 2; }
  .meeting-attendance-unmatched article .icon-button { grid-column: 2; grid-row: 1 / 3; }
}

@media (max-width: 430px) {
  .meeting-summary-strip span { max-width: 58px; line-height: 1.35; }
  .meeting-detail-meta { grid-template-columns: 1fr; }
  .meeting-detail-meta > div { padding: 9px 0; border-right: 0; border-bottom: 1px solid var(--line-soft); }
  .meeting-detail-meta > div:last-child { border-bottom: 0; }
  .meeting-sensitive-block dl > div { grid-template-columns: 70px minmax(0, 1fr); }
  .meeting-attendance-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .meeting-attendance-stats > div, .meeting-attendance-stats > div:nth-child(4) { border-right: 1px solid var(--line-soft); border-bottom: 1px solid var(--line-soft); }
  .meeting-attendance-stats > div:nth-child(even) { border-right: 0; }
  .meeting-attendance-stats > div:nth-child(n+5) { border-bottom: 1px solid var(--line-soft); }
  .meeting-attendance-stats > div:last-child { border-bottom: 0; }
  .meeting-attendance-toolbar { grid-template-columns: 1fr; }
  .meeting-attendance-toolbar .btn { grid-column: auto; }
  .meeting-review-foot .modal-foot-note, .meeting-review-foot > [data-action="close-overlay"] { display: none; }
  .meeting-review-foot .btn-danger, .meeting-review-foot .btn-primary { min-height: 40px; flex: 1 1 calc(50% - 4px); }
  .meeting-schedule-foot .modal-foot-note { display: none; }
  .meeting-schedule-foot .btn { min-height: 40px; flex: 1 1 calc(33.333% - 6px); }
  .meeting-poster-command { align-items: stretch; flex-direction: column; }
  .meeting-poster-command .btn { width: 100%; justify-content: center; }
}

/* Unified lab management platform */
.brand-button {
  position: relative;
  width: 100%;
  border: 0;
  color: inherit;
  background: rgba(255, 255, 255, 0.34);
  cursor: pointer;
  text-align: left;
}
.brand-button:hover { background: rgba(255, 255, 255, 0.62); }
.brand-platform-name {
  position: absolute;
  right: 18px;
  bottom: 10px;
  min-height: 18px;
  padding: 1px 6px;
  border: 1px solid rgba(0, 102, 204, 0.14);
  border-radius: 4px;
  color: #365f90;
  background: rgba(234, 243, 255, 0.9);
  font-size: 8px;
  font-weight: 700;
}
.sidebar-business { padding-top: 25px; }
.sidebar-context { padding-bottom: 12px; }
.sidebar-back-nav .nav-item { color: #376a9b; background: rgba(0, 113, 227, 0.055); }
.nav-external-icon { width: 12px; height: 12px; margin-left: auto; color: #929297; }
.nav-count + .nav-external-icon { margin-left: -4px; }
.nav-status-text { margin-left: auto; color: #9a7428; font-size: 8px; }
.notification-count {
  position: absolute;
  top: -5px;
  right: -6px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  border: 2px solid #fafafc;
  border-radius: 9px;
  display: grid;
  place-items: center;
  color: #fff;
  background: #d84b45;
  font-size: 8px;
  font-weight: 750;
  font-variant-numeric: tabular-nums;
}
.topbar-platform-title > .icon { color: #316f67; }

.platform-home-page,
.approval-center-page { width: 100%; max-width: 1280px; margin: 0 auto; }
.platform-home-head {
  min-height: 104px;
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}
.platform-home-head > div:first-child { min-width: 0; }
.platform-home-head > div:first-child > span,
.approval-center-head > div:first-child > span {
  color: #287467;
  font-size: 9px;
  font-weight: 760;
}
.platform-home-head h1,
.approval-center-head h1 { margin: 4px 0 5px; color: #202123; font-size: 29px; line-height: 1.2; }
.platform-home-head p,
.approval-center-head p { margin: 0; color: #727277; font-size: 12px; }
.platform-home-date {
  flex: 0 0 auto;
  min-width: 165px;
  padding-left: 20px;
  border-left: 1px solid var(--line);
  display: grid;
  justify-items: end;
  gap: 3px;
}
.platform-home-date strong { color: #363639; font-size: 12px; }
.platform-home-date span { color: #85858a; font-size: 9px; }
.platform-home-section { margin-bottom: 20px; }
.platform-section-head {
  min-height: 44px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
.platform-section-head h2,
.platform-panel-head h2 { margin: 0; color: #29292c; font-size: 15px; line-height: 1.35; }
.platform-section-head p,
.platform-panel-head p { margin: 3px 0 0; color: #85858a; font-size: 9px; }
.platform-module-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.platform-module-card {
  position: relative;
  min-width: 0;
  min-height: 190px;
  padding: 19px;
  border: 1px solid rgba(0, 0, 0, 0.09);
  border-radius: 8px;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr) 18px;
  grid-template-rows: 46px minmax(61px, auto) 42px;
  align-items: start;
  gap: 10px 12px;
  color: #252528;
  background: #fff;
  box-shadow: 0 1px 2px rgba(0,0,0,.025), 0 10px 26px rgba(0,0,0,.035);
  cursor: pointer;
  text-align: left;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.platform-module-card:hover { transform: translateY(-2px); border-color: rgba(0, 0, 0, 0.16); box-shadow: 0 4px 18px rgba(0,0,0,.075); }
.platform-module-card:disabled { opacity: .48; cursor: not-allowed; transform: none; box-shadow: none; }
.platform-module-card.achievement { border-top: 3px solid #218777; }
.platform-module-card.teaching { border-top: 3px solid #3f7f92; }
.platform-module-card.meeting { border-top: 3px solid #477ec0; }
.platform-module-card.project { border-top: 3px solid #c18a27; }
.platform-module-card.asset { border-top: 3px solid #0071e3; }
.platform-module-card.overleaf { border-top: 3px solid #138a58; }
.platform-module-card.document { border-top: 3px solid #745f9e; }
.platform-module-card.compute { border-top: 3px solid #287f91; }
.platform-module-card.model { border-top: 3px solid #a45b79; }
.platform-module-icon {
  width: 42px;
  height: 42px;
  border-radius: 8px;
  display: grid;
  place-items: center;
}
.platform-module-card.achievement .platform-module-icon { color: #176d60; background: #e5f3ef; }
.platform-module-card.teaching .platform-module-icon { color: #286579; background: #e7f2f5; }
.platform-module-card.meeting .platform-module-icon { color: #356ba7; background: #eaf2fb; }
.platform-module-card.project .platform-module-icon { color: #8a641e; background: #fff3d9; }
.platform-module-card.asset .platform-module-icon { color: #0062c4; background: #e8f2ff; }
.platform-module-card.overleaf .platform-module-icon { color: #0b6841; background: #e8f5ee; }
.platform-module-card.document .platform-module-icon { color: #66538d; background: #f0edf8; }
.platform-module-card.compute .platform-module-icon { color: #176b7a; background: #e7f3f5; }
.platform-module-card.model .platform-module-icon { color: #854764; background: #f7eaf0; }
.platform-module-copy { min-width: 0; padding-top: 1px; display: grid; gap: 5px; }
.platform-module-copy strong { font-size: 15px; }
.platform-module-copy small { color: #747479; font-size: 9px; line-height: 1.55; }
.platform-module-stat { grid-column: 1 / 3; align-self: end; display: flex; align-items: baseline; gap: 7px; }
.platform-module-stat strong { color: #27272a; font-size: 27px; line-height: 1; font-variant-numeric: tabular-nums; }
.platform-module-stat small { color: #85858a; font-size: 9px; }
.platform-module-arrow { grid-column: 3; grid-row: 1; align-self: center; color: #87878c; }
.platform-home-lower { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(330px, .8fr); gap: 16px; }
.platform-approval-panel,
.platform-operations-panel {
  min-width: 0;
  border: 1px solid rgba(0, 0, 0, 0.085);
  border-radius: 8px;
  overflow: hidden;
  background: rgba(255,255,255,.94);
  box-shadow: var(--shadow-sm);
}
.platform-panel-head {
  min-height: 70px;
  padding: 13px 17px;
  border-bottom: 1px solid var(--line-soft);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.platform-panel-head > div:first-child { min-width: 0; display: flex; align-items: center; gap: 11px; }
.platform-panel-icon,
.platform-operation-icon {
  width: 35px;
  height: 35px;
  flex: 0 0 auto;
  border-radius: 7px;
  display: grid;
  place-items: center;
  color: #a65d39;
  background: #fff0e7;
}
.platform-panel-icon.neutral { color: #52636d; background: #edf1f3; }
.platform-approval-summary {
  min-height: 70px;
  padding: 12px 18px;
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: baseline;
  gap: 0 7px;
  background: #fafafa;
}
.platform-approval-summary strong { color: #29292c; font-size: 29px; line-height: 1; font-variant-numeric: tabular-nums; }
.platform-approval-summary > span { color: #55555a; font-size: 10px; font-weight: 650; }
.platform-approval-summary small { justify-self: end; color: #85858a; font-size: 8px; }
.platform-approval-summary small .icon { margin-right: 5px; vertical-align: -3px; }
.platform-approval-list { display: grid; }
.platform-approval-list button,
.platform-operation-list button {
  width: 100%;
  min-height: 53px;
  padding: 8px 17px;
  border: 0;
  border-top: 1px solid var(--line-soft);
  display: flex;
  align-items: center;
  gap: 9px;
  color: #424245;
  background: #fff;
  cursor: pointer;
  text-align: left;
}
.platform-approval-list button:hover,
.platform-operation-list button:hover { background: #f8faf9; }
.platform-approval-list button > span { min-width: 0; margin-right: auto; display: inline-flex; align-items: center; gap: 8px; font-size: 10px; font-weight: 620; }
.platform-approval-list button > span .icon { color: #737e84; }
.platform-approval-list button > strong { min-width: 25px; color: #8a8a8f; font-size: 11px; text-align: center; font-variant-numeric: tabular-nums; }
.platform-approval-list button > strong.pending { min-height: 23px; padding: 3px 8px; border-radius: 12px; color: #a34836; background: #fff0ec; }
.platform-empty-line { min-height: 106px; display: grid; place-items: center; color: #8a8a8f; font-size: 9px; }
.platform-operation-list { display: grid; }
.platform-operation-list button { min-height: 68px; }
.platform-operation-list button:first-child { border-top: 0; }
.platform-operation-icon { width: 34px; height: 34px; color: #486b7a; background: #edf3f5; }
.platform-operation-list button > span:nth-child(2) { min-width: 0; margin-right: auto; display: grid; gap: 2px; }
.platform-operation-list strong { color: #3a3a3d; font-size: 10px; }
.platform-operation-list small { overflow: hidden; color: #86868b; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }

.approval-center-head {
  min-height: 104px;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}
.approval-center-head > div:last-child { display: flex; align-items: center; gap: 10px; }
.approval-total { min-height: 34px; padding: 0 11px; border-radius: 6px; display: inline-flex; align-items: center; gap: 5px; color: #6e554d; background: #fff0ec; font-size: 9px; }
.approval-total strong { color: #9d4432; font-size: 15px; font-variant-numeric: tabular-nums; }
.approval-error { min-height: 38px; margin-bottom: 12px; padding: 8px 11px; border: 1px solid #efc8bf; border-radius: 7px; display: flex; align-items: center; gap: 7px; color: #9b4836; background: #fff4f1; font-size: 9px; }
.approval-console {
  min-height: 540px;
  border: 1px solid var(--line);
  border-radius: 8px;
  display: grid;
  grid-template-columns: 190px minmax(0, 1fr);
  overflow: hidden;
  background: #fff;
  box-shadow: var(--shadow-sm);
}
.approval-tabs { padding: 12px 9px; border-right: 1px solid var(--line-soft); display: flex; flex-direction: column; gap: 4px; background: #f7f9f8; }
.approval-tabs button { min-height: 41px; padding: 0 11px; border: 0; border-radius: 6px; display: flex; align-items: center; gap: 8px; color: #67716e; background: transparent; font-size: 10px; font-weight: 620; cursor: pointer; text-align: left; }
.approval-tabs button:hover { color: #324c45; background: #edf2f0; }
.approval-tabs button.active { color: #155f54; background: #e4f1ed; }
.approval-tabs button > span { min-width: 18px; height: 18px; margin-left: auto; border-radius: 9px; display: grid; place-items: center; color: #fff; background: #d95e4b; font-size: 8px; }
.approval-content { min-width: 0; padding: 20px; }
.approval-queue-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.approval-queue-card {
  min-width: 0;
  min-height: 102px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 7px;
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr) auto 15px;
  align-items: center;
  gap: 11px;
  color: #3f3f42;
  background: #fff;
  cursor: pointer;
  text-align: left;
}
.approval-queue-card:hover { border-color: rgba(0,113,227,.25); background: #fbfdff; }
.approval-queue-card.has-pending { border-left: 3px solid #dd765d; }
.approval-queue-card:disabled { opacity: .46; cursor: not-allowed; }
.approval-queue-icon { width: 38px; height: 38px; border-radius: 7px; display: grid; place-items: center; color: #50677d; background: #edf3f8; }
.approval-queue-card > span:nth-child(2) { min-width: 0; display: grid; gap: 4px; }
.approval-queue-card > span:nth-child(2) strong { font-size: 10px; }
.approval-queue-card > span:nth-child(2) small { color: #85858a; font-size: 8px; line-height: 1.45; }
.approval-queue-card > b { color: #7d7d82; font-size: 22px; font-variant-numeric: tabular-nums; }
.approval-queue-card.has-pending > b { color: #b5503d; }
.homepage-admin-toolbar { min-height: 51px; margin-bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.homepage-admin-toolbar > span { color: #85858a; font-size: 8px; }
.homepage-admin-toolbar .segmented button { gap: 5px; }
.homepage-admin-toolbar .segmented button > span { min-width: 17px; padding: 0 4px; border-radius: 8px; color: #707075; background: rgba(255,255,255,.72); font-size: 7px; }
.homepage-news-list { border: 1px solid var(--line-soft); border-radius: 7px; overflow: hidden; }
.homepage-news-row { min-height: 88px; padding: 11px 12px; border-bottom: 1px solid var(--line-soft); display: grid; grid-template-columns: 72px minmax(0, 1fr) 78px auto; align-items: center; gap: 11px; }
.homepage-news-row:last-child { border-bottom: 0; }
.homepage-news-type { width: max-content; max-width: 72px; padding: 3px 6px; overflow: hidden; border-radius: 4px; color: #536d65; background: #edf3f1; font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }
.homepage-news-row > div:nth-child(2) { min-width: 0; display: grid; gap: 3px; }
.homepage-news-row > div:nth-child(2) strong,
.homepage-news-row > div:nth-child(2) p { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.homepage-news-row > div:nth-child(2) strong { color: #333336; font-size: 10px; }
.homepage-news-row > div:nth-child(2) p { margin: 0; color: #747479; font-size: 8px; }
.homepage-news-row > div:nth-child(2) small { color: #96969b; font-size: 7px; }
.homepage-news-status { min-height: 23px; display: inline-flex; align-items: center; gap: 4px; font-size: 8px; }
.homepage-news-status.pending { color: #93681d; }
.homepage-news-status.published { color: #247161; }
.homepage-news-status.unpublished { color: #77777c; }
.homepage-news-actions { display: flex; gap: 5px; }
.homepage-news-actions .btn { padding-inline: 8px; }
.approval-empty,
.approval-locked,
.approval-loading { min-height: 270px; display: grid; place-items: center; align-content: center; gap: 7px; color: #85858a; text-align: center; }
.approval-empty > .icon,
.approval-locked > .icon { width: 28px; height: 28px; color: #71847e; }
.approval-empty strong,
.approval-locked strong { color: #4e5452; font-size: 10px; }
.approval-empty span,
.approval-locked span { max-width: 390px; font-size: 8px; }
.approval-loading { grid-template-columns: auto auto; min-height: 220px; font-size: 9px; }
.homepage-teaching-head { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.homepage-teaching-head > div { display: grid; gap: 2px; }
.homepage-teaching-head strong { font-size: 11px; }
.homepage-teaching-head span { color: #85858a; font-size: 8px; }
.homepage-teaching-list { border: 1px solid var(--line-soft); border-radius: 7px; overflow: hidden; }
.homepage-teaching-list article { min-height: 78px; padding: 10px 12px; border-bottom: 1px solid var(--line-soft); display: grid; grid-template-columns: 36px minmax(0, 1fr) 60px auto; align-items: center; gap: 10px; }
.homepage-teaching-list article:last-child { border-bottom: 0; }
.homepage-teaching-file { width: 34px; height: 34px; border-radius: 6px; display: grid; place-items: center; color: #536e7e; background: #edf3f6; }
.homepage-teaching-list article > div:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.homepage-teaching-list article > div:nth-child(2) strong,
.homepage-teaching-list article > div:nth-child(2) span,
.homepage-teaching-list article > div:nth-child(2) small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.homepage-teaching-list article > div:nth-child(2) strong { font-size: 10px; }
.homepage-teaching-list article > div:nth-child(2) span { color: #727277; font-size: 8px; }
.homepage-teaching-list article > div:nth-child(2) small { color: #96969b; font-size: 7px; }
.homepage-teaching-status { font-size: 8px; }
.homepage-teaching-status.published { color: #247161; }
.homepage-teaching-status.hidden { color: #77777c; }
.homepage-teaching-status.draft { color: #93681d; }

@media (max-width: 1180px) {
  .platform-module-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .platform-module-card { min-height: 166px; grid-template-rows: 46px minmax(42px, auto) 38px; }
  .platform-home-lower { grid-template-columns: 1fr; }
}

@media (max-width: 860px) {
  .approval-console { grid-template-columns: 1fr; }
  .approval-tabs { border-right: 0; border-bottom: 1px solid var(--line-soft); flex-direction: row; overflow-x: auto; }
  .approval-tabs button { flex: 0 0 auto; }
  .homepage-news-row { grid-template-columns: 70px minmax(0, 1fr) 74px; }
  .homepage-news-actions { grid-column: 2 / 4; justify-content: flex-end; }
}

@media (max-width: 760px) {
  .brand-platform-name { display: none; }
  .platform-home-head,
  .approval-center-head { min-height: 88px; align-items: flex-start; flex-direction: column; gap: 12px; }
  .platform-home-head h1,
  .approval-center-head h1 { font-size: 24px; }
  .platform-home-date { width: 100%; min-width: 0; padding: 10px 0 0; border-top: 1px solid var(--line); border-left: 0; grid-template-columns: 1fr auto; justify-items: start; }
  .platform-home-date span { justify-self: end; }
  .platform-module-grid { grid-template-columns: 1fr; }
  .platform-module-card { min-height: 148px; grid-template-rows: 43px minmax(36px, auto) 34px; }
  .platform-module-stat strong { font-size: 24px; }
  .platform-home-lower { grid-template-columns: minmax(0, 1fr); }
  .platform-panel-head { align-items: flex-start; }
  .platform-approval-summary { grid-template-columns: auto auto; }
  .platform-approval-summary small { grid-column: 1 / -1; justify-self: start; margin-top: 5px; }
  .approval-center-head > div:last-child { width: 100%; justify-content: space-between; }
  .approval-content { padding: 12px; }
  .approval-queue-grid { grid-template-columns: 1fr; }
  .homepage-admin-toolbar { align-items: flex-start; flex-direction: column; }
  .homepage-news-row { grid-template-columns: 1fr auto; padding: 12px; }
  .homepage-news-type { grid-column: 1; }
  .homepage-news-row > div:nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
  .homepage-news-status { grid-column: 2; grid-row: 1; }
  .homepage-news-actions { grid-column: 1 / -1; grid-row: 3; justify-content: flex-start; }
  .homepage-news-row > div:nth-child(2) strong,
  .homepage-news-row > div:nth-child(2) p { overflow: visible; white-space: normal; }
  .homepage-teaching-list article { grid-template-columns: 36px minmax(0, 1fr) auto; }
  .homepage-teaching-status { grid-column: 3; grid-row: 1; }
  .homepage-teaching-list article > div:last-child { grid-column: 2 / 4; }
}

@media (max-width: 420px) {
  .platform-home-head p { line-height: 1.65; }
  .platform-section-head p { max-width: 250px; line-height: 1.5; }
  .platform-module-card { padding: 15px; }
  .platform-panel-head { padding-inline: 13px; }
  .platform-panel-head .btn { padding-inline: 9px; }
  .platform-approval-list button,
  .platform-operation-list button { padding-inline: 13px; }
}

.student-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:24px 0}.student-summary .panel{padding:20px}.student-workspace>.panel{padding:24px}.student-workspace .data-table{min-width:720px}@media(max-width:700px){.student-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.student-workspace>.panel{padding:16px}.student-workspace .workbench-page-head{flex-wrap:wrap}}
