@charset "UTF-8";
:root {
  --ink: #202923;
  --graphite: #58605a;
  --catalogue-line: #d9ddd5;
  --control-line: #808a81;
  --parchment: #fafaf7;
  --paper: #fff;
  --shelf: #f2f3ee;
  --bookmark: #285343;
  --bookmark-hover: #1c4033;
  --bookmark-wash: #e7eee7;
  --annotation: #a22929;
  --annotation-wash: #fff1ef;
  --review-ink: #785815;
  --review-wash: #f8f0db;
  font:
    15px/1.6 "Segoe UI",
    "Microsoft YaHei",
    system-ui,
    sans-serif;
  color: var(--ink);
  background: var(--parchment);
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  min-height: 100dvh;
  display: flex;
  flex-direction: column;
}
#app { flex: 1; min-width: 0; }
.site-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 12px 20px;
  border-top: 1px solid var(--catalogue-line);
  font-size: 12px;
  color: var(--graphite);
}
.site-footer a { color: inherit; text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
button,
input,
select,
textarea {
  font: inherit;
}
button,
a {
  touch-action: manipulation;
}
button,
.button-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 44px;
  border: 1px solid var(--control-line);
  border-radius: 6px;
  padding: 8px 16px;
  background: var(--paper);
  color: var(--ink);
  font-weight: 600;
  line-height: 1.4;
  text-decoration: none;
  cursor: pointer;
  transition:
    background 160ms,
    border-color 160ms;
}
button:hover,
.button-link:hover {
  background: var(--shelf);
  border-color: var(--bookmark);
}
button:disabled {
  opacity: 0.6;
  cursor: wait;
}
button.primary,
.button-link.primary {
  background: var(--bookmark);
  border-color: var(--bookmark);
  color: white;
}
button.primary:hover,
.button-link.primary:hover {
  background: var(--bookmark-hover);
}
button.quiet {
  background: transparent;
  border-color: transparent;
}
button.quiet:hover {
  background: var(--bookmark-wash);
}
.small {
  font-size: 14px;
  padding: 8px 12px;
}
.danger {
  color: var(--annotation);
}
a {
  color: var(--bookmark);
  text-underline-offset: 4px;
}
a:hover {
  text-decoration-thickness: 2px;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--bookmark);
  outline-offset: 3px;
}
input,
select,
textarea {
  width: 100%;
  min-height: 44px;
  padding: 8px 12px;
  border: 1px solid var(--control-line);
  border-radius: 6px;
  background: var(--paper);
  color: var(--ink);
}
input::placeholder,
textarea::placeholder {
  color: var(--graphite);
  opacity: 1;
}
input[type="file"] {
  padding: 8px;
}
input[type="file"]::file-selector-button {
  font: inherit;
  padding: 8px;
  margin-right: 12px;
  cursor: pointer;
}
textarea {
  resize: vertical;
  min-height: 160px;
  line-height: 1.8;
}
label {
  display: block;
  margin: 20px 0 8px;
  font-weight: 600;
  font-size: 14px;
}
h1,
h2,
h3,
p {
  margin-top: 0;
}
h1 {
  font-size: 28px;
  line-height: 1.4;
  font-weight: 650;
  letter-spacing: -0.5px;
  margin-bottom: 8px;
  overflow-wrap: anywhere;
}
h2 {
  font-size: 18px;
  line-height: 1.5;
  font-weight: 650;
}
h3 {
  font-size: 16px;
  line-height: 1.5;
  font-weight: 650;
}
p {
  margin-bottom: 16px;
}
.muted,
.footnote,
.file-meta {
  color: var(--graphite);
}
.footnote,
.file-meta {
  font-size: 13px;
  line-height: 1.6;
}
.footnote {
  margin-top: 16px;
}
.row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
}
.spread {
  justify-content: space-between;
}
.stack {
  display: grid;
  gap: 24px;
  align-content: start;
  min-width: 0;
}
.icon {
  height: 20px;
  width: 20px;
  flex: 0 0 20px;
  vertical-align: middle;
}
.skip-link {
  position: fixed;
  z-index: 20;
  left: 16px;
  top: -100px;
  background: var(--paper);
  padding: 12px;
}
.skip-link:focus {
  top: 12px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
/* Catalogue navigation shares the paper surface; green signals selection or action. */
.demo-banner {
  background: var(--review-wash);
  color: var(--review-ink);
  padding: 4px 16px;
  font-size: 13px;
  text-align: center;
  border-bottom: 1px solid var(--catalogue-line);
}
.shell {
  display: grid;
  grid-template-columns: 232px minmax(0, 1fr);
  min-height: calc(100dvh - 48px);
}
.sidebar {
  padding: 32px 16px;
  border-right: 1px solid var(--catalogue-line);
  display: flex;
  flex-direction: column;
  position: sticky;
  top: 0;
  height: calc(100dvh - 48px);
  background: var(--parchment);
}
.brand {
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 0 8px 32px;
}
.brand-mark {
  width: 40px;
  height: 44px;
  background: var(--bookmark);
  color: white;
  display: grid;
  place-items: center;
  font-family: "SimSun", serif;
  font-size: 24px;
  border-radius: 4px;
}
.brand-name {
  font-size: 17px;
  font-weight: 650;
}
.brand-en {
  font-size: 11px;
  letter-spacing: 1px;
  color: var(--graphite);
}
.nav-label {
  font-size: 13px;
  color: var(--graphite);
  margin: 24px 12px 8px;
  font-weight: 500;
}
.nav {
  display: grid;
  gap: 4px;
}
.nav button {
  justify-content: flex-start;
  border-color: transparent;
  background: transparent;
  font-weight: 500;
  padding: 12px;
}
.nav button:hover {
  background: var(--shelf);
}
.nav button.active {
  color: var(--bookmark);
  background: var(--bookmark-wash);
  font-weight: 650;
}
.nav-symbol {
  display: flex;
}
.nav-short {
  display: none;
}
.sidebar-bottom {
  margin-top: auto;
  padding: 20px 8px 0;
  border-top: 1px solid var(--catalogue-line);
  color: var(--graphite);
  font-size: 13px;
}
.sidebar-bottom b {
  display: block;
  color: var(--ink);
  margin-bottom: 8px;
  font-weight: 600;
}
.sidebar-bottom p {
  margin-bottom: 0;
}
.main {
  min-width: 0;
}
.topbar {
  min-height: 80px;
  padding: 12px 32px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--catalogue-line);
}
.domain-switch {
  display: flex;
  gap: 4px;
}
.domain-switch button {
  background: transparent;
  border-color: transparent;
  color: var(--graphite);
  padding: 8px 16px;
}
.domain-switch button.selected {
  color: var(--bookmark);
  border-color: var(--bookmark);
  background: var(--bookmark-wash);
}
.user-button {
  border-color: transparent;
  background: transparent;
  padding: 4px 8px;
  text-align: left;
  font-weight: 500;
}
.avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--shelf);
  display: grid;
  place-items: center;
  font-size: 14px;
}
.identity {
  font-size: 14px;
}
.identity small {
  display: block;
  font-size: 12px;
  color: var(--graphite);
}
.content {
  max-width: 1480px;
  margin: auto;
  padding: 32px 32px 48px;
}
.breadcrumb {
  color: var(--graphite);
  font-size: 13px;
  margin-bottom: 16px;
}
.page-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 24px;
  margin-bottom: 24px;
}
.page-heading p {
  color: var(--graphite);
  margin: 0;
  max-width: 680px;
}
.page-heading > button,
.page-heading > a {
  flex-shrink: 0;
}
.scope-strip {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
  padding: 12px 0;
  margin-bottom: 24px;
  border-top: 1px solid var(--catalogue-line);
  border-bottom: 1px solid var(--catalogue-line);
  font-size: 14px;
  color: var(--graphite);
}
.scope-strip b {
  color: var(--ink);
  font-weight: 600;
}
.scope-strip .tag {
  margin-right: 8px;
}
.stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-bottom: 24px;
  border-top: 1px solid var(--catalogue-line);
  border-bottom: 1px solid var(--catalogue-line);
}
.stat {
  padding: 16px 20px;
  border-left: 1px solid var(--catalogue-line);
}
.stat:first-child {
  padding-left: 0;
  border-left: 0;
}
.stat-label,
.stat-foot {
  color: var(--graphite);
  font-size: 13px;
}
.stat-value {
  font-size: 22px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  margin: 4px 0;
  overflow-wrap: anywhere;
}
.section {
  border: 1px solid var(--catalogue-line);
  border-radius: 6px;
  background: var(--paper);
  overflow: hidden;
  min-width: 0;
}
.section-head {
  padding: 16px 20px;
  border-bottom: 1px solid var(--catalogue-line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 12px;
}
.section-head h2 {
  font-size: 16px;
  margin: 0;
}
.section-head h2 .muted {
  font-weight: 400;
  margin-left: 8px;
}
.search-field {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 0;
  font-size: 13px;
  color: var(--graphite);
  font-weight: 500;
}
.search {
  width: 248px;
  max-width: 100%;
  font-size: 14px;
}
.table-wrap {
  overflow-x: auto;
}
table {
  border-collapse: collapse;
  width: 100%;
  font-size: 14px;
}
caption {
  text-align: left;
}
th {
  text-align: left;
  color: var(--graphite);
  font-size: 13px;
  font-weight: 500;
  background: var(--parchment);
  padding: 12px 20px;
  white-space: nowrap;
}
td {
  border-top: 1px solid var(--catalogue-line);
  padding: 16px 20px;
  vertical-align: middle;
}
tbody tr:hover {
  background: var(--parchment);
}
.file-name {
  display: flex;
  gap: 12px;
  align-items: center;
  min-width: 200px;
}
.file-icon {
  height: 40px;
  width: 36px;
  border: 1px solid var(--catalogue-line);
  background: var(--shelf);
  color: var(--graphite);
  border-radius: 3px;
  display: grid;
  place-items: center;
  font-size: 11px;
  flex-shrink: 0;
}
.file-title {
  font-weight: 600;
  font-size: 15px;
  margin-bottom: 4px;
  overflow-wrap: anywhere;
}
.file-meta {
  overflow-wrap: anywhere;
}
.action-cell {
  white-space: nowrap;
}
.file-open {
  color: var(--bookmark);
  text-decoration: underline;
  text-underline-offset: 4px;
}
.tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  border-radius: 4px;
  padding: 4px 8px;
  background: var(--shelf);
  color: var(--graphite);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.5;
  white-space: nowrap;
}
.tag.green {
  background: var(--bookmark-wash);
  color: var(--bookmark);
}
.tag.amber {
  background: var(--review-wash);
  color: var(--review-ink);
}
.tag.red {
  background: var(--annotation-wash);
  color: var(--annotation);
}
.rule-note {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px 0;
  margin-top: 16px;
  color: var(--graphite);
  font-size: 14px;
}
.rule-note > span {
  display: flex;
  color: var(--bookmark);
}
.rule-note strong {
  color: var(--ink);
  font-weight: 600;
}
.empty {
  padding: 40px 24px;
  text-align: center;
  color: var(--graphite);
}
.empty b {
  display: block;
  color: var(--ink);
  font-size: 17px;
  margin-bottom: 8px;
}
.empty p {
  margin-bottom: 16px;
}
.empty p:last-child {
  margin-bottom: 0;
}
.project-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px;
}
.project-card {
  border: 1px solid var(--catalogue-line);
  border-radius: 6px;
  padding: 24px;
  background: var(--paper);
  min-width: 0;
}
.project-top {
  display: flex;
  gap: 8px;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 16px;
}
.project-card h2 {
  overflow-wrap: anywhere;
  margin-bottom: 8px;
}
.project-card p {
  color: var(--graphite);
  font-size: 14px;
  overflow-wrap: anywhere;
}
.project-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  border-top: 1px solid var(--catalogue-line);
  padding-top: 16px;
  color: var(--graphite);
  font-size: 13px;
}
.member-list {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  padding: 16px 20px;
  border-bottom: 1px solid var(--catalogue-line);
}
.member-pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 4px 12px;
  border: 1px solid var(--catalogue-line);
  border-radius: 4px;
  font-size: 14px;
}
.panel {
  padding: 24px;
}
.two-col {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.skill-pre {
  font:
    14px/1.9 "Microsoft YaHei",
    sans-serif;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  margin: 0;
}
.candidate,
.job,
.document-card {
  border-bottom: 1px solid var(--catalogue-line);
  padding: 20px;
  overflow-wrap: anywhere;
}
.candidate:last-child,
.job:last-child,
.document-card:last-child {
  border-bottom: 0;
}
.candidate h3,
.document-card h3 {
  margin: 0;
}
.candidate p,
.job p,
.document-card p {
  font-size: 14px;
  margin: 12px 0;
}
.diff-add {
  color: var(--annotation);
  background: var(--annotation-wash);
  padding: 12px;
  border-left: 2px solid var(--annotation);
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-family: inherit;
  font-size: 14px;
  line-height: 1.8;
}
.version-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--catalogue-line);
  padding: 12px 0;
  font-size: 14px;
  overflow-wrap: anywhere;
}
.version-row:last-child {
  border-bottom: 0;
}
.version-row > div:first-child {
  min-width: 0;
}
.version-row a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
}
.claim {
  border-left: 2px solid var(--catalogue-line);
  padding: 8px 16px;
  font-size: 14px;
  margin: 12px 0;
}
.claim blockquote {
  color: var(--graphite);
  margin: 8px 0;
}
.context-bar {
  margin-bottom: 16px;
}
.back-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 14px;
}
/* Native dialog supplies focus containment and Escape dismissal. */
dialog {
  color: var(--ink);
  border: 1px solid var(--control-line);
  border-radius: 8px;
  padding: 0;
  width: min(800px, calc(100% - 32px));
  max-width: none;
  max-height: 90dvh;
  background: var(--paper);
}
dialog::backdrop {
  background: #20292366;
}
.modal-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 24px;
  border-bottom: 1px solid var(--catalogue-line);
}
.modal-head h2 {
  margin: 0;
  font-size: 19px;
  overflow-wrap: anywhere;
}
.modal-body {
  padding: 20px 24px;
}
.modal-body > :last-child {
  margin-bottom: 0;
}
.modal-footer {
  border-top: 1px solid var(--catalogue-line);
  padding: 16px 24px;
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 12px;
}
.modal-body h3 {
  margin: 24px 0 8px;
}
.form-error {
  color: var(--annotation);
  font-size: 14px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  margin-top: 12px;
}
.form-error:empty {
  display: none;
}
.form-error:focus {
  outline: 2px solid var(--annotation);
  outline-offset: 4px;
}
.editor {
  font-family: Consolas, "Microsoft YaHei", monospace;
  min-height: 320px;
  font-size: 14px;
}
.diff-view {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  max-height: 360px;
  overflow: auto;
  font-size: 14px;
}
.added {
  color: var(--annotation);
}
.removed {
  color: var(--graphite);
  text-decoration: line-through;
}
.checkbox-label {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 44px;
}
.checkbox-label input {
  width: 20px;
  min-height: 20px;
  height: 20px;
  accent-color: var(--bookmark);
}
.account-options {
  display: grid;
  gap: 12px;
}
.warning {
  color: var(--annotation);
  font-size: 14px;
}
.code {
  font:
    13px/1.7 Consolas,
    monospace;
}
#toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--bookmark);
  color: white;
  border-radius: 6px;
  padding: 12px 20px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 160ms;
  max-width: calc(100vw - 32px);
  width: max-content;
  font-size: 14px;
  z-index: 10;
}
#toast.visible {
  opacity: 1;
}
.loading {
  padding: 40px;
  color: var(--graphite);
  max-width: 880px;
}
.loading-lines {
  padding: 24px 0;
  display: grid;
  gap: 16px;
}
.loading-lines span {
  height: 12px;
  background: var(--shelf);
  border-radius: 3px;
}
.loading-lines span:nth-child(2) {
  width: 80%;
}
.loading-lines span:nth-child(3) {
  width: 60%;
}
.login-screen {
  min-height: calc(100dvh - 48px);
  max-width: 1440px;
  margin: auto;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.login-intro {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 48px;
  background: var(--parchment);
  border-right: 1px solid var(--catalogue-line);
}
.login-intro h1 {
  font-size: 32px;
  max-width: 420px;
  margin: 24px 0 16px;
}
.login-intro p {
  color: var(--graphite);
  max-width: 440px;
}
.eyebrow {
  color: var(--bookmark);
  font-size: 14px;
  font-weight: 600;
}
.login-structure {
  display: grid;
  gap: 16px;
  border-top: 1px solid var(--catalogue-line);
  padding-top: 24px;
  margin-top: 32px;
}
.login-structure div {
  color: var(--graphite);
  font-size: 14px;
}
.login-structure b {
  display: block;
  color: var(--ink);
  font-size: 16px;
  margin-bottom: 4px;
}
.login-bottom {
  color: var(--graphite);
  font-size: 13px;
  margin-top: 32px;
}
.login-main {
  display: grid;
  place-items: center;
  padding: 48px;
  background: var(--paper);
}
.login-form {
  max-width: 400px;
  width: 100%;
}
.login-form h2 {
  font-size: 24px;
  margin-bottom: 8px;
}
.login-form .primary {
  width: 100%;
  margin-top: 24px;
}
.demo-roles {
  border-top: 1px solid var(--catalogue-line);
  padding-top: 24px;
  margin-top: 32px;
}
.demo-roles .row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}
.demo-roles button {
  font-size: 14px;
  padding: 8px;
}
@media (min-width: 1440px) {
  .content {
    padding: 40px 48px 48px;
  }
}
@media (max-width: 1100px) {
  .shell {
    grid-template-columns: 208px minmax(0, 1fr);
  }
  .sidebar {
    padding: 24px 12px;
  }
  .brand {
    gap: 8px;
  }
  .brand-en {
    font-size: 10px;
  }
  .topbar {
    padding: 12px 24px;
  }
  .content {
    padding: 24px;
  }
  .two-col,
  .project-grid {
    grid-template-columns: 1fr;
  }
  td,
  th {
    padding: 12px;
  }
  .login-intro,
  .login-main {
    padding: 32px;
  }
}
@media (max-width: 800px) {
  .shell {
    display: block;
  }
  .sidebar {
    height: auto;
    position: static;
    border-right: 0;
    border-bottom: 1px solid var(--catalogue-line);
    padding: 16px;
  }
  .sidebar .brand {
    padding-bottom: 16px;
  }
  .sidebar .nav-label,
  .sidebar-bottom,
  .team-nav {
    display: none;
  }
  .nav {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 4px;
  }
  .nav button {
    justify-content: center;
    padding: 8px 4px;
    gap: 4px;
    font-size: 14px;
  }
  .nav-symbol,
  .nav-long {
    display: none;
  }
  .nav-short {
    display: inline;
  }
  .topbar {
    min-height: 76px;
    padding: 12px 16px;
  }
  .domain-switch button {
    padding: 8px 12px;
  }
  .identity small {
    display: none;
  }
  .content {
    padding: 24px 16px 32px;
  }
  h1 {
    font-size: 25px;
  }
  .section-head {
    padding: 16px;
  }
  .table-wrap {
    overflow: visible;
  }
  table,
  tbody,
  tr,
  td {
    display: block;
    width: 100%;
  }
  thead {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip-path: inset(50%);
  }
  tbody tr {
    padding: 16px;
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    column-gap: 8px;
    border-top: 1px solid var(--catalogue-line);
  }
  tbody tr:first-child {
    border-top: 0;
  }
  td {
    border: 0;
    padding: 4px 0;
    min-width: 0;
  }
  td:first-child {
    grid-column: 1/-1;
    padding-bottom: 8px;
  }
  td:nth-child(3) {
    grid-column: 1;
    grid-row: 3;
    color: var(--graphite);
    font-size: 13px;
  }
  td:nth-child(3) .file-meta {
    display: inline;
    margin-left: 8px;
  }
  td:nth-child(4) {
    grid-column: 1;
    grid-row: 2;
  }
  td:nth-child(2) {
    grid-column: 2;
    grid-row: 2;
    text-align: right;
  }
  td:last-child {
    grid-column: 2;
    grid-row: 3;
    text-align: right;
    width: auto;
  }
  .file-name {
    min-width: 0;
    align-items: flex-start;
  }
  .file-name > div {
    min-width: 0;
  }
  .login-screen {
    display: block;
  }
  .login-intro {
    padding: 24px;
    border-right: 0;
    border-bottom: 1px solid var(--catalogue-line);
  }
  .login-intro .brand {
    padding-bottom: 16px;
  }
  .login-intro h1 {
    margin: 0 0 12px;
    font-size: 26px;
  }
  .login-structure {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 20px;
    padding-top: 20px;
  }
  .login-bottom,
  .login-intro .eyebrow {
    display: none;
  }
  .login-main {
    padding: 32px 24px;
  }
}
@media (max-width: 480px) {
  .demo-banner {
    font-size: 12px;
  }
  .sidebar {
    padding: 12px;
  }
  .brand-mark {
    width: 32px;
    height: 36px;
    font-size: 21px;
  }
  .brand-name {
    font-size: 16px;
  }
  .brand-en {
    font-size: 10px;
  }
  .nav button {
    font-size: 13px;
  }
  .topbar {
    gap: 4px;
    padding: 8px 12px;
  }
  .domain-switch {
    gap: 0;
  }
  .domain-switch button {
    font-size: 14px;
    padding: 8px;
  }
  .user-button {
    gap: 4px;
    padding: 4px;
  }
  .user-button .avatar {
    display: none;
  }
  .identity {
    font-size: 13px;
    max-width: 78px;
    overflow-wrap: anywhere;
  }
  .content {
    padding: 20px 12px 32px;
  }
  .page-heading {
    flex-direction: column;
    gap: 16px;
  }
  .page-heading > button,
  .page-heading > a {
    width: 100%;
  }
  .breadcrumb {
    margin-bottom: 12px;
  }
  .scope-strip {
    font-size: 13px;
    column-gap: 12px;
  }
  .search-field {
    display: block;
    width: 100%;
  }
  .search-field span {
    display: block;
    margin-bottom: 8px;
  }
  .search {
    width: 100%;
  }
  .stats {
    grid-template-columns: 1fr;
  }
  .stat,
  .stat:first-child {
    border-left: 0;
    border-top: 1px solid var(--catalogue-line);
    padding: 12px 0;
  }
  .stat:first-child {
    border-top: 0;
  }
  .stat-value {
    font-size: 20px;
  }
  .project-card,
  .panel,
  .candidate,
  .job,
  .document-card {
    padding: 16px;
  }
  .rule-note {
    font-size: 13px;
  }
  .modal-head,
  .modal-body,
  .modal-footer {
    padding: 16px;
  }
  .modal-footer > button {
    flex: 1 1 auto;
  }
  .version-row {
    flex-wrap: wrap;
  }
  .loading {
    padding: 24px;
  }
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    transition: none !important;
    animation: none !important;
    scroll-behavior: auto !important;
  }
}

/* Compact sign-in and group identity. */
.brand-name {
  overflow-wrap: anywhere;
}
.login-screen.login-compact {
  grid-template-columns: 1fr;
}
.login-compact .login-main {
  background: var(--parchment);
}
.login-compact .brand {
  padding: 0 0 32px;
}

/* Public literature catalogue and independently versioned notes. */
.library-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: end;
  gap: 12px;
  padding: 0 20px 20px;
}
.library-filters label {
  flex: 1 1 135px;
  min-width: 0;
  margin: 0;
  font-size: 13px;
  color: var(--graphite);
}
.library-filters select {
  display: block;
  width: 100%;
  margin-top: 6px;
}
.literature-table {
  table-layout: fixed;
  width: 100%;
}
.literature-table th:first-child {
  width: 30%;
}
.literature-table th:nth-child(2) {
  width: 19%;
}
.literature-table th:nth-child(3) {
  width: 15%;
}
.literature-table th:last-child {
  width: 120px;
}
.literature-table th,
.literature-table td {
  padding-left: 16px;
  padding-right: 16px;
}
.literature-table td {
  overflow-wrap: anywhere;
  vertical-align: top;
}
.paper-authors {
  margin: 6px 0;
  font-size: 13px;
}
.tag-list {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: start;
}
.paper-tag {
  white-space: normal;
  overflow-wrap: anywhere;
}
.form-columns {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 16px;
}
.form-columns > div {
  min-width: 0;
}
.paper-facts {
  margin: 0 0 20px;
}
.paper-facts > div {
  display: grid;
  grid-template-columns: 100px minmax(0, 1fr);
  gap: 12px;
  padding: 6px 0;
}
.paper-facts dt {
  color: var(--graphite);
}
.paper-facts dd {
  margin: 0;
  overflow-wrap: anywhere;
}
.paper-actions {
  margin-top: 20px;
}
.paper-section {
  border-top: 1px solid var(--catalogue-line);
  margin-top: 24px;
  padding-top: 20px;
}
.paper-section h3 {
  margin: 0;
}
.reading-section {
  margin: 22px 0;
}
.reading-section h4 {
  margin: 0 0 8px;
  font-size: 15px;
}
.reading-section p {
  white-space: pre-wrap;
  margin: 0;
  overflow-wrap: anywhere;
  line-height: 1.8;
}
.citation-link {
  display: inline-block;
  padding: 12px 8px;
}
.classification-proposal,
.history-entry {
  padding: 20px 0;
  border-top: 1px solid var(--catalogue-line);
}
.history-entry:first-child {
  border-top: 0;
}
.history-entry h3 {
  font-size: 16px;
}
.history-entry dd {
  margin: 4px 0 16px;
  overflow-wrap: anywhere;
}
.classification-proposal .row {
  margin-top: 12px;
}
summary {
  cursor: pointer;
  min-height: 44px;
  padding: 10px 0;
}
.skill-tabs {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.skill-tabs .selected {
  background: var(--bookmark);
  color: white;
}
.scope-strip .back-link {
  margin-left: auto;
}
.pagination,
.inbox-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 16px 20px;
  border-top: 1px solid var(--catalogue-line);
  flex-wrap: wrap;
}
.pagination {
  font-size: 13px;
  color: var(--graphite);
}
.inbox-row > div {
  min-width: 0;
  overflow-wrap: anywhere;
}
.inbox-row p {
  margin: 6px 0 0;
}
.paper-section .row.spread {
  gap: 12px;
}
#duplicate-choices {
  background: var(--parchment);
  padding: 16px;
}
@media (max-width: 800px) {
  .literature-table {
    min-width: 0;
  }
  .literature-table tbody tr {
    display: flex;
    flex-direction: column;
    gap: 8px;
  }
  .literature-table tbody td {
    display: block;
    width: 100%;
    padding: 0;
    text-align: left;
    grid-column: auto;
    grid-row: auto;
  }
  .literature-table td:nth-child(3) .file-meta {
    display: block;
  }
  .literature-table td[data-label]::before {
    content: attr(data-label);
    display: block;
    font-size: 12px;
    color: var(--graphite);
    margin: 4px 0;
  }
  .literature-table .action-cell {
    margin-top: 8px;
  }
}
@media (max-width: 480px) {
  .library-filters label {
    flex-basis: calc(50% - 12px);
  }
  .form-columns {
    grid-template-columns: 1fr;
    gap: 0;
  }
  .paper-facts > div {
    grid-template-columns: 1fr;
    gap: 2px;
  }
  .skill-tabs {
    flex-direction: column;
  }
  .scope-strip .back-link {
    margin-left: 0;
  }
}

/* Fluid research desk: every control and table fits its available column. */
.shell, .sidebar, .content, .section-head, .page-heading, .topbar,
.row > *, .search-field, .login-form, .account-row > div { min-width: 0; }
button, .button-link, select, input, textarea { max-width: 100%; }
button, .button-link, .tag { overflow-wrap: anywhere; white-space: normal; }
.page-heading { flex-wrap: wrap; align-items: center; }
.page-heading > .row { justify-content: flex-end; }
.content > .section + .section { margin-top: 24px; }
.section > .skill-pre { padding: 20px; }
.section > .history-entry { padding: 20px; }
.section > .version-row { padding: 16px 20px; }
.version-row { flex-wrap: wrap; }
.section-head .search-field { flex: 0 1 380px; }
.section-head input[type="search"] { min-width: 0; }
.table-wrap { overflow: visible; }
table { table-layout: fixed; }
th { white-space: normal; overflow-wrap: anywhere; }
td { overflow-wrap: anywhere; }
.file-name { min-width: 0; }
.file-name > div { min-width: 0; }
.literature-table th:first-child { width: 34%; }
.literature-table th:nth-child(2) { width: 18%; }
.literature-table th:nth-child(3) { width: 14%; }
.literature-table th:nth-child(4) { width: 12%; }
.literature-table th:nth-child(5) { width: 13%; }
.literature-table th:last-child { width: 9%; }
.literature-table th, .literature-table td { padding: 16px 12px; }
.literature-table .action-cell { white-space: normal; }
.literature-table .file-open { padding-inline: 4px; gap: 4px; }
.library-filters { display: grid; grid-template-columns: repeat(auto-fit,minmax(min(160px,100%),1fr)); padding-top: 16px; background: var(--parchment); }
.library-filters label { margin: 0; }
.library-filters select { font-size: 14px; }
.search-hit { display: block; margin-top: 12px; padding: 8px 10px; text-align: left; font-size: 13px; font-weight: 400; line-height: 1.7; background: var(--bookmark-wash); border: 0; width: 100%; }
.account-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 0; border-top: 1px solid var(--catalogue-line); }
.account-row:first-child { border-top: 0; }
.account-row .tag-list { margin-top: 8px; }
.account-row .file-meta { overflow-wrap: anywhere; }
.account-row > button { flex: 0 0 auto; }
.evidence-alert { border: 1px solid var(--review-ink); background: var(--review-wash); color: var(--review-ink); padding: 16px 20px; margin-bottom: 24px; border-radius: 6px; }
.evidence-alert p:last-child { margin: 0; }
.paper-actions { align-items: stretch; }
.paper-actions > button { flex: 0 1 auto; }
@media (max-width: 1279px) {
  .literature-table, .literature-table tbody, .literature-table tr, .literature-table td { display: block; width: 100%; min-width: 0; }
  .literature-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .literature-table tbody tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 24px; padding: 20px; border-top: 1px solid var(--catalogue-line); }
  .literature-table tbody tr:first-child { border-top: 0; }
  .literature-table tbody td { border: 0; padding: 0; text-align: left; grid-column: auto; grid-row: auto; }
  .literature-table tbody td:first-child { grid-column: 1/-1; }
  .literature-table tbody td:nth-child(5) { grid-column: 1; }
  .literature-table tbody td:last-child { grid-column: 2; align-self: end; text-align: right; margin: 0; }
  .literature-table td[data-label]::before { content: attr(data-label); display: block; color: var(--graphite); font-size: 12px; margin-bottom: 4px; }
  .literature-table td:nth-child(3) .file-meta { display: block; margin: 0; }
  .literature-table .file-title { font-size: 16px; }
}
@media (max-width: 600px) {
  .page-heading > .row { width: 100%; justify-content: flex-start; }
  .library-filters { grid-template-columns: repeat(2,minmax(0,1fr)); padding: 16px; gap: 12px; }
  .library-filters label:last-child:nth-child(odd) { grid-column: 1/-1; }
  .section-head .search-field { flex-basis: 100%; display: block; width: 100%; }
  .section-head .search-field input { display: block; margin-top: 8px; }
  .literature-table tbody tr { padding: 16px; gap: 12px; }
  .paper-actions > button { flex: 1 1 120px; }
  .inbox-row > .row, .modal-footer > .row { width: 100%; }
  .account-row { flex-wrap: wrap; }
  .pagination { padding: 16px; }
}
@media (max-width: 380px) {
  .literature-table tbody tr { grid-template-columns: minmax(0,1fr); }
  .literature-table tbody td, .literature-table tbody td:nth-child(5), .literature-table tbody td:last-child { grid-column: 1; text-align: left; }
  .topbar { flex-wrap: wrap; }
  .user-button { margin-left: auto; }
}

/* Skill shelf: a compact file catalogue beside one readable source. */
/* Skill reading: one page scroll; a calm, separate control bar. */
.skill-toolbar { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:16px 24px; margin:0 0 24px; padding:0 0 18px; border-bottom:1px solid var(--catalogue-line); }
.skill-toolbar .skill-tabs { margin:0; gap:4px; }
.skill-toolbar .skill-tabs button { border-color:transparent; background:transparent; padding:9px 13px; }
.skill-toolbar .skill-tabs button.selected { color:var(--bookmark); background:var(--bookmark-wash); border-color:transparent; }
.skill-toolbar-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.skill-toolbar-actions .back-link { margin-right:8px; font-size:13px; }
.skill-toolbar-actions button { font-size:13px; }
.skill-bundle { display:grid; grid-template-columns:minmax(168px,218px) minmax(0,1fr); min-width:0; align-items:start; overflow:visible; }
.skill-file-tree { padding:20px 12px; min-width:0; position:sticky; top:20px; align-self:start; }
.skill-tree-head { padding:0 12px 14px; font-size:12px; color:var(--graphite); letter-spacing:0.06em; }
.skill-file-link { width:100%; justify-content:flex-start; text-align:left; display:flex; background:transparent; border-color:transparent; padding:10px 12px; font-size:13px; font-weight:400; margin-bottom:4px; }
.skill-file-link span { overflow-wrap:anywhere; min-width:0; }
.skill-file-link.selected { color:var(--bookmark); background:var(--bookmark-wash); border-color:transparent; font-weight:650; }
.skill-file-reader { min-width:0; border-left:1px solid var(--catalogue-line); }
.skill-file-reader .section-head { gap:12px; align-items:center; padding:20px 28px; background:transparent; }
.skill-file-reader h2 { font-size:15px; margin:0; }
.skill-file-content { padding:24px 28px 40px; margin:0; min-width:0; }
.skill-link-warnings { border-top:1px solid var(--catalogue-line); padding:12px 28px; color:var(--review-ink); font-size:13px; overflow-wrap:anywhere; }
.skill-file-controls { padding:12px 0 16px; }
.skill-file-controls .row { margin-top:8px; }
.skill-records > summary { padding:18px 20px; font-weight:550; }
.skill-records > .version-row { padding-inline:20px; }
.markdown-body { font:15px/1.85 "Segoe UI","Microsoft YaHei",sans-serif; overflow-wrap:anywhere; min-width:0; color:var(--ink); }
.markdown-body > :first-child { margin-top:0; }
.markdown-body > :last-child { margin-bottom:0; }
.markdown-body h1 { font-size:23px; line-height:1.5; margin:1.8em 0 1em; }
.markdown-body h2 { font-size:19px; line-height:1.6; margin:1.8em 0 0.8em; padding-bottom:8px; border-bottom:1px solid var(--catalogue-line); }
.markdown-body h3 { font-size:16px; margin:1.6em 0 0.6em; }
.markdown-body h4,.markdown-body h5,.markdown-body h6 { font-size:15px; margin:1.4em 0 0.5em; }
.markdown-body p { margin:0.8em 0; }
.markdown-body ul,.markdown-body ol { padding-left:1.65em; margin:0.8em 0; }
.markdown-body li { margin:0.3em 0; }
.markdown-body li p { margin:0.3em 0; }
.markdown-body pre { background:var(--shelf); padding:16px; border:1px solid var(--catalogue-line); border-radius:4px; white-space:pre-wrap; overflow-wrap:anywhere; }
.markdown-body code { font:0.9em/1.7 Consolas,"Microsoft YaHei",monospace; background:var(--shelf); padding:2px 4px; overflow-wrap:anywhere; }
.markdown-body pre code { padding:0; }
.markdown-body blockquote { margin:1em 0; padding:8px 16px; background:var(--shelf); border-left:3px solid var(--bookmark); }
.markdown-body table { display:table; border-collapse:collapse; table-layout:fixed; width:100%; min-width:0; font-size:13px; margin:1em 0; }
.markdown-body thead { display:table-header-group; position:static; width:auto; height:auto; overflow:visible; clip-path:none; }
.markdown-body tbody { display:table-row-group; width:auto; }
.markdown-body tr,.markdown-body tbody tr { display:table-row; width:auto; padding:0; border:0; }
.markdown-body th,.markdown-body td { display:table-cell; width:auto; }
.markdown-body th,.markdown-body td { padding:10px 12px; border:1px solid var(--catalogue-line); vertical-align:top; white-space:normal; overflow-wrap:anywhere; }
.markdown-body th { background:var(--shelf); }
.markdown-body hr { border:0; border-top:1px solid var(--catalogue-line); margin:1.8em 0; }
.markdown-body .katex-display,.markdown-body .katex-display > .katex { white-space:normal; max-width:100%; }
.markdown-body .katex { font-size:1.06em; }
/* A dialog has one body scroll area. Text editors keep their expected native scroll. */
html { scrollbar-gutter:stable; }
html:has(dialog[open]) { overflow:hidden; }
dialog { overflow:hidden; }
#modal-content { display:flex; flex-direction:column; max-height:calc(90dvh - 2px); min-height:0; }
.modal-head,.modal-footer { flex:none; }
.modal-body { min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.modal-body .diff-view { max-height:none; overflow:visible; }
/* Shared literature: horizontal entries, metadata lives in the detail view. */
.literature-list { padding:0 24px; }
.literature-row { display:flex; align-items:flex-start; gap:20px; padding:24px 0; border-bottom:1px solid var(--catalogue-line); }
.literature-row:last-child { border-bottom:0; }
.literature-body { flex:1; min-width:0; }
.literature-title-line { display:flex; align-items:baseline; gap:10px; }
.literature-title-line h3 { font-size:16px; line-height:1.6; margin:0; min-width:0; }
.literature-title { border:0; background:transparent; color:var(--ink); text-align:left; justify-content:flex-start; font-weight:650; padding:0; min-height:32px; line-height:1.6; border-radius:2px; }
.literature-title:hover { color:var(--bookmark); background:transparent; text-decoration:underline; text-underline-offset:4px; }
.literature-row .paper-authors { margin:4px 0 8px; color:var(--graphite); font-size:13px; }
.literature-summary { font-size:14px; color:var(--graphite); margin:8px 0 12px; line-height:1.8; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.literature-tags { gap:6px; margin-top:8px; }
.paper-tag { border:0; padding:3px 8px; border-radius:4px; font-size:12px; line-height:1.6; }
.paper-tag.tag-keyword { background:#e7eee7; color:#285343; }
.paper-tag.tag-branch,.paper-tag.tag-topic { background:#e8edf5; color:#334d77; }
.paper-tag.tag-thread { background:#f5eddd; color:#70551f; }
.paper-tag.tag-method { background:#eee9f6; color:#634382; }
.pin-mark { color:var(--bookmark); font-size:11px; font-weight:650; flex-shrink:0; }
.literature-actions { display:flex; flex-shrink:0; gap:4px; padding-top:0; align-items:center; }
.literature-actions button { font-size:12px; padding:7px 10px; }
.pin-control[aria-pressed="true"] { color:var(--bookmark); }
@media (max-width:1000px) {
  .skill-toolbar-actions { width:100%; justify-content:flex-end; }
  .skill-file-reader .section-head { padding:18px 20px; }
  .skill-file-content { padding:20px; }
}
@media (max-width:760px) {
  .skill-bundle { grid-template-columns:minmax(0,1fr); }
  .skill-file-tree { position:static; padding:16px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px; }
  .skill-tree-head { grid-column:1/-1; padding:0 8px 8px; }
  .skill-file-link { margin:0; }
  .skill-file-reader { border-left:0; border-top:1px solid var(--catalogue-line); }
  .skill-toolbar-actions { justify-content:flex-start; }
  .literature-list { padding:0 16px; }
  .literature-row { gap:12px; }
  .literature-actions { flex-direction:column; }
  .markdown-body h1 { font-size:21px; }
}
@media (max-height:650px) { .skill-file-tree { position:static; } }
@media (max-width:420px) {
  .skill-toolbar { gap:12px; }
  .skill-toolbar .skill-tabs { width:100%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2px; }
  .skill-toolbar .skill-tabs button { padding:8px 4px; font-size:12px; }
  .skill-toolbar-actions { gap:6px; }
  .skill-toolbar-actions .back-link { width:100%; margin:0; }
  .skill-file-content { padding:20px 16px; }
  .literature-row { flex-wrap:wrap; padding:20px 0; gap:8px; }
  .literature-body { flex-basis:100%; }
  .literature-actions { flex-direction:row; width:100%; justify-content:flex-end; }
}

/* Approved A/B: a compact catalogue header and a separate revision workspace. */
/* Project closeout follows the page scroll; only the existing dialog scrolls. */
.project-tabs { display:flex; gap:6px; border-bottom:1px solid var(--catalogue-line); margin:16px 0 22px; }
.project-tabs button { border:0; border-radius:0; background:transparent; color:var(--graphite); padding:12px 18px; min-height:44px; }
.project-tabs button[aria-current="page"] { color:var(--bookmark); box-shadow:inset 0 -3px var(--bookmark); font-weight:650; }
.outcome-heading { flex-wrap:wrap; gap:14px; }
.outcome-heading h2 { margin:0; }
.outcome-summary { max-width:calc(76ch + 40px); padding:12px 20px 20px; }
.outcome-summary pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.outcome-citation,.outcome-sources,.outcome-jobs { margin-left:20px; margin-right:20px; }
.outcome-citation { padding:20px 0; border-top:1px solid var(--catalogue-line); overflow-wrap:anywhere; }
.outcome-citation h3 { font-size:15px; margin:0; flex:1; min-width:0; }
.outcome-citation details { margin-top:12px; }
.outcome-citation blockquote { margin:12px 0; white-space:pre-wrap; }
.outcome-citation .row { flex-wrap:wrap; }
.outcome-sources,.outcome-jobs { border-top:1px solid var(--catalogue-line); padding:16px 0; margin-top:16px; }
.outcome-job { display:flex; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid var(--catalogue-line); }
.outcome-job > div { min-width:0; }
.outcome-warnings { color:#8a4e19; padding:12px 16px 12px 32px; background:#fff5e7; border-radius:5px; overflow-wrap:anywhere; }
.outcome-source-option { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:14px 0; border-bottom:1px solid var(--catalogue-line); }
.outcome-source-option > span { min-width:0; overflow-wrap:anywhere; }
.outcome-source-option small { display:block; color:var(--graphite); margin-top:5px; }
.outcome-source-option select { width:150px; flex-shrink:0; }
.outcome-citation-edit,.outcome-additional-row { padding:16px 0; border-top:1px solid var(--catalogue-line); overflow-wrap:anywhere; }
.outcome-citation-edit select { flex:1; width:100%; min-width:0; }
.outcome-citation-edit input[type="checkbox"],#outcome-on-archive { width:auto; }
.outcome-paper-results { display:grid; gap:8px; margin-top:12px; }
.outcome-paper-results button { text-align:left; white-space:normal; justify-content:flex-start; }
.linked-project { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:10px; }
.linked-project .outcome-warnings { width:100%; }
@media (max-width:600px) {
  .outcome-job,.outcome-source-option { flex-direction:column; align-items:stretch; gap:8px; }
  .outcome-source-option select { width:100%; }
  .outcome-citation-edit .row { flex-wrap:wrap; }
  .outcome-citation-edit .row select { flex-basis:100%; }
}

.library-heading .breadcrumb,.skill-workspace .breadcrumb { margin-bottom:12px; }
.library-heading .page-heading,.skill-workspace .page-heading { margin-bottom:20px; }
.library-heading h1,.skill-workspace .page-heading h1 { font-size:26px; line-height:1.45; }
.library-heading .page-heading > div:first-child { display:flex; align-items:baseline; flex-wrap:wrap; gap:8px 12px; }
.library-heading-count { font-size:13px; color:var(--graphite); }
.library-heading-actions,.skill-heading-actions { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.library-heading-actions .back-link,.skill-heading-actions .back-link { font-size:13px; margin-right:8px; }
.library-heading-actions > .primary,.skill-heading-actions > button { font-size:13px; }
.library-management { position:relative; }
.library-management > summary { cursor:pointer; list-style:none; display:flex; align-items:center; justify-content:center; min-height:44px; padding:8px 12px; border-radius:5px; color:var(--bookmark); font-size:13px; }
.library-management > summary::after { content:"▾"; margin-left:6px; font-size:11px; }
.library-management > summary::-webkit-details-marker { display:none; }
.library-management > summary:hover,.library-management[open] > summary { background:var(--bookmark-wash); }
.library-menu { position:absolute; right:0; top:calc(100% + 6px); z-index:10; display:grid; width:180px; max-width:calc(100vw - 48px); padding:6px; border:1px solid var(--catalogue-line); border-radius:6px; background:var(--paper); box-shadow:0 6px 18px #20292312; }
.library-menu button { justify-content:flex-start; width:100%; }
.library-catalog { overflow:visible; }
.library-searchbar { display:flex; gap:12px; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--catalogue-line); }
.library-searchbar .search-field { flex:1; max-width:480px; }
.library-searchbar .search { width:100%; }
.library-searchbar > button { flex-shrink:0; }
.library-catalog .library-filters { padding:16px 20px; border-bottom:1px solid var(--catalogue-line); background:var(--shelf); }
.library-filters[hidden],.library-active-filters[hidden] { display:none; }
.library-active-filters { display:flex; align-items:center; flex-wrap:wrap; gap:8px; padding:12px 20px; border-bottom:1px solid var(--catalogue-line); }
.filter-chip { min-height:36px; border-color:transparent; padding:5px 10px; background:var(--bookmark-wash); color:var(--bookmark); font-size:12px; text-align:left; }
.filter-chip > span { font-size:16px; margin-left:4px; }
.control-count { display:inline-grid; place-items:center; min-width:20px; min-height:20px; padding:0 5px; background:var(--bookmark-wash); color:var(--bookmark); border-radius:10px; font-size:11px; font-weight:650; }
.skill-workspace .skill-toolbar { padding-bottom:12px; margin-bottom:20px; }
.skill-workspace .skill-tabs { flex-direction:row; flex-wrap:wrap; }
.skill-management-content { display:grid; gap:16px; }
.skill-management-content .section { margin:0; }
.skill-management-content .skill-records > summary { padding:18px 20px; }
.skill-management-content summary > .tag { margin-left:10px; }
.skill-management-content .history-entry { margin:0 20px; }
.skill-management-content .history-entry:last-child { padding-bottom:20px; }
.skill-management-content .skill-records > .empty { padding:20px; }
@media (max-width:760px) {
  .library-heading-actions,.skill-heading-actions { width:100%; justify-content:flex-end; }
  .library-heading h1,.skill-workspace .page-heading h1 { font-size:24px; }
  .library-searchbar,.library-catalog .library-filters,.library-active-filters { padding:14px 16px; }
}
@media (max-width:420px) {
  .library-heading-actions,.skill-heading-actions { justify-content:flex-start; gap:6px; }
  .library-menu { left:0; right:auto; }
  .skill-heading-actions .back-link { margin-right:2px; }
  .skill-workspace .skill-toolbar .skill-tabs { grid-template-columns:repeat(auto-fit,minmax(70px,1fr)); }
  .library-searchbar .search { font-size:13px; }
  .library-searchbar { gap:6px; }
}

/* Individual review of proposed labels. */
.classification-group { border: 0; padding: 0; margin: 16px 0; min-width: 0; }
.classification-group legend { font-weight: 600; font-size: .85rem; margin-bottom: 8px; }
.tag-choice { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border: 1px solid var(--line, #d7ded9); border-radius: 6px; cursor: pointer; font-size: .85rem; max-width: 100%; overflow-wrap: anywhere; }
.tag-choice input { width: 16px; height: 16px; flex: 0 0 16px; margin: 0; accent-color: #285c4c; }
.tag-choice:has(input:not(:checked)) { opacity: .6; background: transparent; }
.tag-choice:focus-within { outline: 2px solid #285c4c; outline-offset: 2px; }
.classification-selection { flex-wrap: wrap; margin: 12px 0; }

/* Compact processing records and dictionary governance. */
.records-search {margin:0 0 1rem;max-width:38rem;}
.records-search input,.tag-picker select {min-width:0;flex:1;}
.records-pager {padding:.65rem 1rem;border-bottom:1px solid var(--catalogue-line);gap:.6rem;}
.records-columns {align-items:start;}
.record-summary {display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;}
.record-evidence {margin:.5rem 0 1rem;}
.record-evidence[open] {border-top:1px solid var(--catalogue-line);padding-top:.65rem;}
.dictionary-tools {margin:.8rem 0;}
.dictionary-entry {padding:.8rem 0;}
.dictionary-entry h3 {margin:0;}
.tag-picker {margin:0 0 .35rem;}
.classification-additions {margin:.7rem 0;}
.classification-additions label {display:block;margin-top:.7rem;}
@media(max-width:700px) {.records-columns {grid-template-columns:1fr;}.records-pager {padding:.65rem 0;}}

.push-diff {white-space:pre-wrap;overflow-wrap:anywhere;padding:1rem;background:var(--shelf);font:12px/1.6 Consolas,monospace;}
/* Paper catalogue and reader: one scroll surface, full text, progressive evidence. */
.literature-row {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 20px;}
.literature-title-line {grid-column:1/-1;display:flex;align-items:baseline;gap:14px;min-width:0;}
.literature-title-line h3 {flex:1;min-width:0;margin:0;}
.literature-source {margin-left:auto;max-width:38%;text-align:right;font-size:12px;line-height:1.65;color:var(--graphite);overflow-wrap:anywhere;}
.literature-title-line > button {flex-shrink:0;}
.literature-body {min-width:0;}
.literature-actions {align-self:end;}
.literature-row .paper-authors {margin:0 0 8px;}
#modal:has(.paper-detail) {width:min(1120px,calc(100vw - 32px));max-height:92dvh;}
#modal-content:has(.paper-detail) {max-height:calc(92dvh - 2px);}
.modal-body:has(> .paper-detail) {padding:0;scroll-behavior:auto;}
.paper-detail {min-width:0;overflow-wrap:anywhere;}
.paper-detail [hidden] {display:none!important;}
.paper-cover {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 20px;align-items:center;padding:16px 28px;background:var(--shelf);border-bottom:1px solid var(--catalogue-line);}
.paper-byline {grid-column:1;display:flex;align-items:baseline;justify-content:space-between;gap:12px 24px;}
.paper-byline p {margin:0;color:var(--graphite);line-height:1.7;}
.paper-byline > span {font-size:13px;text-align:right;flex-shrink:0;max-width:42%;color:var(--graphite);}
.paper-cover-bottom {display:contents;}
.paper-cover-bottom > .tag-list {grid-column:1;}
.paper-cover-bottom > .tag-list:empty {display:none;}
.paper-cover-bottom > .row {grid-column:2;grid-row:1/span 2;}
.paper-cover > .file-meta {grid-column:1/-1;margin:0;}
.paper-cover-bottom .row {flex-shrink:0;flex-wrap:wrap;}
.paper-tabs {position:sticky;top:0;z-index:3;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));background:var(--paper);border-bottom:1px solid var(--catalogue-line);}
.paper-tabs button {border:0;border-radius:0;background:transparent;color:var(--graphite);padding:15px 8px;min-height:48px;font-size:13px;}
.paper-tabs button[aria-selected="true"] {color:var(--bookmark);box-shadow:inset 0 -3px var(--bookmark);font-weight:650;}
.paper-detail [data-paper-panel] {padding:24px 28px 32px;}
.paper-reading-layout {max-width:960px;margin-inline:auto;display:grid;grid-template-columns:154px minmax(0,1fr);gap:30px;align-items:start;}
.paper-outline {position:sticky;top:72px;display:grid;gap:3px;}
.outline-label {font-size:11px;letter-spacing:.08em;color:var(--graphite);padding:0 8px 12px;}
.paper-outline a {display:flex;gap:9px;align-items:baseline;color:var(--graphite);font-size:12px;line-height:1.65;text-decoration:none;padding:8px;border-radius:4px;}
.paper-outline a:hover {background:var(--bookmark-wash);color:var(--bookmark);}
.paper-outline a > span {font:11px/1.7 Consolas,monospace;color:var(--bookmark);}
.paper-reading-content {min-width:0;}
.reader-controls {display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.paper-detail .reader-note-meta {display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px;line-height:1.6;color:var(--graphite);margin:0 0 24px;}
.paper-detail .reading-section {margin:0;padding:24px 0 4px;border-top:1px solid var(--catalogue-line);scroll-margin-top:76px;}
.paper-detail .reading-section h4 {font-size:17px;line-height:1.6;margin:0 0 16px;font-weight:650;}
.paper-detail .reading-section h4 > span {font:12px/1.7 Consolas,monospace;color:var(--bookmark);margin-right:10px;}
.paper-detail .reading-section .markdown-body {font-size:15px;line-height:1.95;}
.paper-detail .reading-section .markdown-body p {margin:0 0 1em;white-space:normal;}
.paper-detail .reading-section .markdown-body li {margin-bottom:.4em;}
.paper-detail .citation-link {min-height:28px;padding:3px 7px;font-size:11px;line-height:1.5;}
.paper-panel-heading {display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:20px;}
.paper-panel-heading h3 {margin:0;font-size:17px;}
.paper-panel-heading h3 > span {font-size:12px;font-weight:400;color:var(--graphite);margin-left:8px;}
.paper-evidence-row {border-top:1px solid var(--catalogue-line);scroll-margin-top:76px;}
.paper-evidence-row:last-child {border-bottom:1px solid var(--catalogue-line);}
.paper-evidence-row > summary {display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:10px;align-items:baseline;cursor:pointer;padding:15px 2px;font-size:14px;line-height:1.7;list-style:none;}
.paper-evidence-row > summary::-webkit-details-marker {display:none;}
.paper-evidence-row > summary::after {content:'＋';color:var(--bookmark);grid-column:3;grid-row:1;}
.paper-evidence-row[open] > summary::after {content:'−';}
.paper-evidence-row > summary > span:first-child {font:12px/1.7 Consolas,monospace;color:var(--bookmark);}
.paper-evidence-row > summary .evidence-location {grid-column:2;font-size:12px;}
.paper-evidence-row blockquote {margin:0 8px 20px 42px;border-left:2px solid var(--bookmark);padding:4px 18px;color:var(--graphite);white-space:pre-wrap;font-size:14px;line-height:1.9;}
.paper-original {margin-top:28px;border-top:1px solid var(--catalogue-line);}
.paper-original > summary {padding:18px 0;cursor:pointer;font-weight:600;}
.paper-original > summary .file-meta {font-weight:400;display:block;margin-top:5px;}
.paper-original > .markdown-body {max-width:84ch;margin:auto;padding:16px 0;font-size:15px;line-height:1.9;}
.paper-facts {margin:0;}
.paper-facts > div {display:grid;grid-template-columns:100px minmax(0,1fr);gap:20px;padding:14px 0;border-bottom:1px solid var(--catalogue-line);}
.paper-facts dt {color:var(--graphite);font-size:13px;}
.paper-facts dd {margin:0;font-size:14px;}
.paper-classification {margin-top:28px;}
.paper-record-group {padding:18px 0;border-top:1px solid var(--catalogue-line);}
.paper-record-group h4 {margin:0 0 12px;font-size:14px;}
.paper-record-group .row {flex-wrap:wrap;}
.paper-storage {margin:4px 0 20px;}
.paper-section {border-top:1px solid var(--catalogue-line);padding:18px 0;margin:0;}
.paper-section > summary {cursor:pointer;font-size:14px;font-weight:600;}
.paper-section h3 {font-size:14px;margin:0 0 12px;}
.paper-delete-area {display:flex;justify-content:flex-end;border-top:1px solid var(--catalogue-line);padding-top:20px;margin-top:12px;}
.reader-empty {padding:40px 0;text-align:center;color:var(--graphite);}
@media(max-width:760px) {
 .literature-title-line {flex-wrap:wrap;gap:6px 12px;}
 .literature-title-line h3 {flex-basis:100%;}
 .literature-source {max-width:calc(100% - 65px);font-size:11px;}
 .paper-reading-layout {grid-template-columns:minmax(0,1fr);gap:20px;}
 .paper-outline {position:static;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px;border-bottom:1px solid var(--catalogue-line);padding-bottom:16px;}
 .outline-label {grid-column:1/-1;padding:0 8px 4px;}
 .paper-cover {padding:16px;}
 .paper-detail [data-paper-panel] {padding:20px 16px 28px;}
 .paper-cover-bottom,.paper-byline {flex-wrap:wrap;}
 .paper-byline > span {max-width:100%;text-align:left;}
 .paper-cover-bottom .row {flex-shrink:1;}
 .literature-actions {width:auto;}
 .paper-facts > div {grid-template-columns:80px minmax(0,1fr);gap:12px;}
}
@media(max-width:440px) {
 #modal:has(.paper-detail) {width:calc(100vw - 16px);max-height:96dvh;}
 #modal-content:has(.paper-detail) {max-height:calc(96dvh - 2px);}
 .paper-tabs {grid-template-columns:repeat(2,minmax(0,1fr));}
 .paper-tabs button {min-height:44px;padding:10px 6px;font-size:12px;}
 .paper-detail .reading-section {scroll-margin-top:104px;}
 .paper-outline {grid-template-columns:repeat(3,minmax(0,1fr));gap:2px;}
 .paper-outline .outline-label {display:none;}
 .paper-outline a {font-size:11px;gap:5px;padding:6px 3px;}
 .paper-evidence-row {scroll-margin-top:104px;}
 .paper-evidence-row blockquote {margin-left:12px;padding-left:12px;}
 .literature-row {grid-template-columns:minmax(0,1fr);gap:8px;}
 .literature-actions {grid-column:1;justify-content:flex-end;}
}

/* Compact sources and a single action row; evidence tab removed by request. */
.literature-row {grid-template-columns:minmax(0,1fr);}
.literature-title-line {align-items:center;gap:12px;}
.literature-title-line .literature-source {max-width:25%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.literature-title-line .literature-actions {display:flex;flex:0 0 auto;flex-direction:row;align-items:center;align-self:center;gap:4px;width:auto;white-space:nowrap;}
.literature-title-line .literature-actions button {min-height:36px;}
.paper-tabs {grid-template-columns:repeat(3,minmax(0,1fr));}
@media(max-width:760px) {
 .literature-title-line {gap:4px 8px;}
 .literature-title-line .literature-source {max-width:calc(100% - 130px);}
 .literature-title-line .literature-actions {margin-left:auto;}
}
@media(max-width:440px) {
 .paper-tabs {grid-template-columns:repeat(3,minmax(0,1fr));}
 .paper-tabs button {font-size:11px;padding:10px 4px;}
 .paper-detail .reading-section {scroll-margin-top:64px;}
}

/* Keep review status beside introduction actions, with one reading scroll area. */
.paper-detail .reader-controls { align-items: center; gap: 8px 12px; }
.paper-detail .reader-controls .reader-note-meta { margin: 0 auto 0 0; flex: 1 1 240px; }

/* Keep source revisions in history, outside the main reading toolbar. */
.paper-detail .reader-controls .reader-note-meta > span:nth-child(2) { display: none; }

/* Account lifecycle and calm review queues; one scroll container per dialog. */
.account-search{display:grid;grid-template-columns:minmax(0,1fr) 124px auto;gap:10px;align-items:center;margin-bottom:20px}
.account-search input,.account-search select{margin:0;min-width:0}
.account-row{gap:16px;align-items:center}.account-row>div{min-width:0;overflow-wrap:anywhere}
.account-cover{padding:4px 0 16px}.account-cover>b{font-size:20px}
.account-permissions{border:1px solid var(--catalogue-line);padding:14px 16px;margin:18px 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.account-permissions legend{font-size:13px;padding:0 6px;color:var(--graphite)}
.account-permissions .checkbox-label{margin:0}.account-delete-area{display:flex;justify-content:flex-end;border-top:1px solid var(--catalogue-line);margin-top:20px;padding-top:16px}
.review-queue{padding:24px}.review-queue-heading{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px}
.review-queue-heading h2{margin:0 0 6px}.review-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:22px 0;border-top:1px solid var(--catalogue-line)}
.review-list-row>div{min-width:0}.review-list-row h3{font-size:15px;line-height:1.6;margin:3px 0 6px;overflow-wrap:anywhere}.review-list-row p{font-size:13px;color:var(--graphite);margin:4px 0 8px;line-height:1.8;overflow-wrap:anywhere}
.review-kind{font-size:11px;color:var(--bookmark);letter-spacing:.03em}.review-context{padding:8px 0 20px;border-bottom:1px solid var(--catalogue-line);margin-bottom:22px}.review-context h3{margin:8px 0;font-size:19px;line-height:1.6;overflow-wrap:anywhere}.review-context p{line-height:1.8;color:var(--graphite)}
.review-proposal{padding:20px;background:var(--canvas,#f7f8f4);border:1px solid var(--catalogue-line);border-radius:8px;margin-bottom:24px}.review-proposal>h3{font-size:14px;margin:0 0 18px}
.review-proposal .markdown-body{font-size:15px;line-height:1.85}.review-notice{font-size:13px;padding:12px 16px;background:#fbf4e5;border-radius:6px;line-height:1.8}
.review-file-change{border-bottom:1px solid var(--catalogue-line);padding:16px 0}.review-file-change>summary{cursor:pointer;font-size:13px;overflow-wrap:anywhere}
.review-diff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;padding:18px 0}.review-diff-grid>section{min-width:0;padding:16px;border:1px solid var(--catalogue-line);border-radius:6px}.review-diff-grid>section:last-child{border-color:#adc2b4;background:#f6faf6}
.review-diff-grid h4{font-size:12px;margin:0 0 16px;color:var(--graphite)}.review-diff-grid .markdown-body{font-size:13px;overflow-wrap:anywhere}
#modal:has(.review-context,.review-diff-grid,.batch-review-list){width:min(1060px,calc(100vw - 40px))}
.skill-sync-status{margin:0 0 18px}.skill-sync-status.sync-error{color:#a64432}
.batch-review-item{padding:20px 0;border-top:1px solid var(--catalogue-line)}.batch-review-item>.checkbox-label{align-items:flex-start;line-height:1.7}.batch-tag-groups{padding-left:28px}.batch-review-item[data-done]{opacity:.65}.batch-item-status{padding-left:28px}
@media(max-width:760px){.review-queue{padding:18px}.review-queue-heading{align-items:flex-start;flex-wrap:wrap}.review-list-row{gap:12px;padding:18px 0}.review-diff-grid{grid-template-columns:minmax(0,1fr);gap:12px}.account-permissions{grid-template-columns:minmax(0,1fr)}#modal:has(.review-context,.review-diff-grid,.batch-review-list){width:calc(100vw - 20px)}}
@media(max-width:440px){.account-search{grid-template-columns:minmax(0,1fr) auto}.account-search input{grid-column:1/-1}.review-list-row{grid-template-columns:minmax(0,1fr)}.review-list-row>button{justify-self:end}.review-proposal{padding:14px}.batch-tag-groups{padding-left:0}}

.account-cover{padding-bottom:4px}.account-cover p{margin:8px 0 0}.account-edit-grid>label{margin-top:14px}.review-context>h3{margin:8px 0}.review-proposal>h3{margin:0 0 18px}#skill-review-note{min-height:90px;margin-top:12px}

.classification-group .tag-choice{margin:0;min-height:36px;padding:6px 9px;line-height:1.5;font-weight:500}
.tag-choice input{min-height:16px;padding:0;border:0}
.batch-tag-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px}
.batch-tag-groups .classification-group{margin:12px 0 0}
@media(max-width:600px){.batch-tag-groups{grid-template-columns:minmax(0,1fr);gap:2px}.classification-group .tag-choice{min-height:40px}}

.batch-review-item>.checkbox-label{margin:0}
