:root {
  --bg: #ffffff;
  --panel: #fafafa;
  --panel-strong: #f4f4f5;
  --text: #171717;
  --muted: #737373;
  --soft: #a3a3a3;
  --border: #e5e5e5;
  --border-strong: #d4d4d4;
  --accent: #111111;
  --focus-fill: #f4f4f5;
  --focus-gray: #555555;
  --wechat: #1f9d55;
  --danger: #dc2626;
  --warning: #c47a12;
  --blue: #2563eb;
  --radius: 6px;
  --shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
  color-scheme: light;
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "SF Pro Text",
    "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}

/* Personal V1.4.0 */
.project-list-header,
.project-record-filter-head {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 18px;
}

.project-record-filter-head {
  border-bottom: 1px solid var(--border);
  padding: 14px 18px;
}

.record-filter {
  align-items: center;
  display: inline-flex;
  gap: 4px;
}

.record-filter button {
  background: transparent;
  border: 0;
  color: var(--muted);
  cursor: pointer;
  font: inherit;
  padding: 7px 10px;
}

.record-filter button.active {
  background: #efefed;
  color: var(--text);
  font-weight: 700;
}

.archive-readonly-note {
  background: #f4f4f2;
  border-top: 1px solid var(--border);
  color: #60605d;
  margin: 0;
  padding: 12px 18px;
}

.button-link {
  align-items: center;
  display: inline-flex;
  justify-content: center;
  text-decoration: none;
}

.import-workspace {
  display: grid;
  gap: 24px;
}

.module-intro {
  align-items: end;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding: 8px 0 24px;
}

.module-intro h2,
.module-intro p {
  margin: 4px 0 0;
}

.module-intro p {
  color: var(--muted);
  max-width: 760px;
}

.import-dropzone {
  align-items: center;
  border: 1px dashed #bcbcb7;
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr) minmax(240px, 340px) auto;
  padding: 22px;
}

.import-dropzone label {
  display: grid;
  gap: 5px;
}

.import-dropzone label span {
  color: var(--muted);
  font-size: 13px;
}

.import-dropzone input {
  min-width: 0;
}

.import-empty,
.review-empty,
.loading-state {
  border-bottom: 1px solid var(--border);
  border-top: 1px solid var(--border);
  color: var(--muted);
  padding: 34px 4px;
}

.import-empty p,
.review-empty p {
  margin-bottom: 0;
}

.import-preview {
  border: 1px solid var(--border);
}

.import-preview-head {
  align-items: start;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
}

.import-preview-head h3,
.import-preview-head p {
  margin: 3px 0 0;
}

.import-preview-head p,
.import-preview-head span,
.import-batch-id {
  color: var(--muted);
}

.import-counts {
  border-bottom: 1px solid var(--border);
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.import-counts div {
  border-right: 1px solid var(--border);
  display: grid;
  gap: 3px;
  padding: 14px 18px;
}

.import-counts div:last-child {
  border-right: 0;
}

.import-counts strong {
  font-size: 22px;
}

.import-counts span {
  color: var(--muted);
  font-size: 12px;
}

.import-counts .conflict strong,
.import-counts .error strong,
.import-row.conflict .import-action,
.import-row.error .import-action {
  color: #a13e35;
}

.import-row {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: 14px;
  grid-template-columns: 64px minmax(190px, 1fr) 120px minmax(180px, 1fr) auto;
  padding: 14px 18px;
}

.import-row:last-child {
  border-bottom: 0;
}

.import-action {
  color: #555550;
  font-size: 13px;
  font-weight: 750;
}

.import-row > div:nth-child(2) {
  display: grid;
  gap: 4px;
}

.import-row small,
.import-row-meta,
.import-row-message {
  color: var(--muted);
  font-size: 13px;
}

.import-row-actions {
  display: flex;
  gap: 6px;
}

.import-row-actions button,
.import-history-actions button {
  background: transparent;
  border: 1px solid var(--border);
  cursor: pointer;
  padding: 7px 9px;
}

.import-commit-bar {
  align-items: center;
  background: #f7f7f5;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding: 18px 20px;
}

.import-commit-bar > div {
  display: grid;
  gap: 4px;
}

.import-commit-bar span {
  color: var(--muted);
  font-size: 13px;
}

.import-history {
  border-top: 1px solid var(--border);
  padding-top: 20px;
}

.import-history header h3,
.import-history header p {
  margin: 0 0 5px;
}

.import-history header p {
  color: var(--muted);
}

.import-history article {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: 18px;
  grid-template-columns: minmax(0, 1fr) auto auto;
  padding: 14px 0;
}

.import-history article > div:first-child {
  display: grid;
  gap: 3px;
}

.import-history article span {
  color: var(--muted);
  font-size: 13px;
}

.danger-text {
  color: #a13e35;
}

.me-personal-header {
  border-bottom: 1px solid var(--border);
  padding: 8px 0 28px;
}

.me-personal-header h2 {
  font-size: 30px;
  margin: 6px 0;
}

.me-personal-header p {
  color: var(--muted);
  margin: 0;
}

.review-entry-grid {
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  background: var(--border);
  border: 1px solid var(--border);
}

.review-entry {
  background: #fff;
  border: 0;
  cursor: pointer;
  display: grid;
  min-height: 180px;
  padding: 22px;
  text-align: left;
}

.review-entry > span {
  align-items: center;
  background: #ededeb;
  display: inline-flex;
  font-weight: 800;
  height: 34px;
  justify-content: center;
  width: 34px;
}

.review-entry strong {
  align-self: end;
  font-size: 21px;
}

.review-entry small {
  color: var(--muted);
  margin-top: 5px;
}

.review-entry b {
  color: #555550;
  font-size: 13px;
  margin-top: 16px;
}

.me-entry-list.compact {
  margin-top: 0;
}

.review-period-control {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: 10px;
  padding: 16px 0;
}

.review-period-control input {
  border: 1px solid var(--border);
  min-height: 42px;
  padding: 0 12px;
}

.review-candidate-list {
  border-bottom: 1px solid var(--border);
}

.review-candidate {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: 14px;
  grid-template-columns: 24px minmax(220px, 1fr) 100px minmax(200px, 1fr);
  padding: 14px 0;
}

.review-candidate:last-child {
  border-bottom: 0;
}

.review-candidate > div {
  display: grid;
  gap: 4px;
}

.review-candidate small {
  color: var(--muted);
}

.review-candidate select,
.review-candidate input,
.review-text-field input,
.review-text-field textarea {
  border: 1px solid var(--border);
  font: inherit;
  padding: 10px 12px;
}

.review-text-field {
  display: grid;
  gap: 8px;
  padding-top: 18px;
}

.review-text-field span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.review-text-field textarea {
  min-height: 110px;
  resize: vertical;
}

.review-actions {
  display: flex;
  gap: 10px;
  justify-content: flex-end;
  padding-top: 18px;
}

.review-history-list {
  border-top: 1px solid var(--border);
}

.review-history-list > button {
  align-items: center;
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
  display: grid;
  gap: 16px;
  grid-template-columns: 38px minmax(0, 1fr) auto;
  padding: 16px 0;
  text-align: left;
  width: 100%;
}

.review-history-list > button > span {
  align-items: center;
  background: #ededeb;
  display: flex;
  font-weight: 800;
  height: 34px;
  justify-content: center;
}

.review-history-list > button > div {
  display: grid;
  gap: 4px;
}

.review-history-list small,
.review-history-list b {
  color: var(--muted);
}

.handoff-export {
  border-top: 1px solid var(--border);
  margin-top: 20px;
  padding-top: 20px;
}

.handoff-export header h3,
.handoff-export header p {
  margin: 0 0 5px;
}

.handoff-export header p {
  color: var(--muted);
}

.handoff-export-controls {
  align-items: end;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(220px, 1fr) minmax(220px, 1fr) auto;
  margin-top: 16px;
}

.handoff-export-controls label {
  display: grid;
  gap: 6px;
}

.handoff-export-controls label span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.handoff-export-controls select {
  border: 1px solid var(--border);
  font: inherit;
  min-height: 44px;
  padding: 0 12px;
}

@media (max-width: 900px) {
  .module-intro,
  .import-commit-bar {
    align-items: stretch;
    flex-direction: column;
  }

  .import-dropzone,
  .handoff-export-controls {
    grid-template-columns: 1fr;
  }

  .import-row {
    grid-template-columns: 58px minmax(0, 1fr);
  }

  .import-row-meta,
  .import-row-message,
  .import-row-actions {
    grid-column: 2;
  }

  .review-entry-grid {
    grid-template-columns: 1fr;
  }

  .review-entry {
    min-height: 150px;
  }

  .review-candidate {
    grid-template-columns: 24px minmax(0, 1fr);
  }

  .review-candidate select,
  .review-candidate > input:not([type="checkbox"]) {
    grid-column: 2;
  }
}

/* Personal V1.5.1 public beta and unified admin */
.public-beta-body,
.admin-v151-body {
  background: #fafafa;
  color: #171717;
  margin: 0;
}

.public-beta-shell {
  margin: 0 auto;
  max-width: 1040px;
  padding: 28px 24px 56px;
}

.public-beta-header {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  padding-bottom: 22px;
}

.public-beta-header > div {
  display: grid;
  gap: 2px;
}

.public-beta-header strong {
  font-size: 21px;
}

.public-beta-header span,
.page-kicker {
  color: var(--muted);
  font-size: 13px;
}

.public-beta-title {
  max-width: 760px;
  padding: 68px 0 50px;
}

.public-beta-title.compact {
  padding-bottom: 34px;
}

.public-beta-title h1,
.legal-page > h1 {
  font-size: clamp(32px, 5vw, 50px);
  line-height: 1.12;
  margin: 8px 0 18px;
}

.public-beta-title p {
  color: #555;
  font-size: 17px;
  line-height: 1.75;
}

.public-beta-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  margin-top: 28px;
}

.public-beta-columns {
  border-bottom: 1px solid var(--border);
  border-top: 1px solid var(--border);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.public-beta-columns article {
  min-height: 150px;
  padding: 28px 28px 28px 0;
}

.public-beta-columns article:nth-child(odd) {
  border-right: 1px solid var(--border);
}

.public-beta-columns article:nth-child(even) {
  padding-left: 28px;
}

.public-beta-columns article:nth-child(-n + 2) {
  border-bottom: 1px solid var(--border);
}

.public-beta-columns h2,
.public-beta-note h2,
.public-account-card h2 {
  font-size: 19px;
  margin: 0 0 10px;
}

.public-beta-columns p,
.public-beta-note p,
.public-account-card p {
  color: #5f5f5f;
  line-height: 1.7;
  margin: 0;
}

.public-beta-note,
.public-beta-panel,
.beta-application-form,
.public-account-card {
  background: white;
  border: 1px solid var(--border);
  border-radius: 6px;
  margin-top: 30px;
  padding: 28px;
}

.public-beta-panel {
  max-width: 720px;
}

.public-beta-panel h1 {
  font-size: 34px;
  margin: 8px 0 14px;
}

.public-beta-panel p {
  color: #555;
  line-height: 1.7;
}

.beta-application-form {
  display: grid;
  gap: 30px;
}

.beta-application-form > section {
  border-bottom: 1px solid var(--border);
  padding-bottom: 28px;
}

.beta-application-form h2 {
  font-size: 19px;
  margin: 0 0 20px;
}

.beta-form-grid,
.admin-edit-grid {
  display: grid;
  gap: 16px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.beta-application-form .form-field,
.admin-edit-grid .form-field {
  display: grid;
  gap: 7px;
}

.beta-application-form .form-field > span,
.admin-edit-grid .form-field > span {
  color: #666;
  font-size: 13px;
  font-weight: 650;
}

.beta-application-form input,
.beta-application-form select,
.beta-application-form textarea,
.admin-v151-main input,
.admin-v151-main select,
.admin-v151-main textarea {
  background: white;
  border: 1px solid #d5d5d5;
  border-radius: 5px;
  box-sizing: border-box;
  color: #171717;
  font: inherit;
  min-height: 44px;
  padding: 10px 12px;
  width: 100%;
}

.beta-application-form textarea,
.admin-v151-main textarea {
  line-height: 1.55;
  min-height: 110px;
  resize: vertical;
}

.form-field.full {
  grid-column: 1 / -1;
  margin-top: 14px;
}

.beta-checkbox-fieldset {
  border: 0;
  margin: 18px 0;
  padding: 0;
}

.beta-checkbox-fieldset legend {
  color: #666;
  font-size: 13px;
  font-weight: 650;
  margin-bottom: 10px;
}

.beta-checkbox-fieldset label {
  display: inline-flex;
  gap: 7px;
  margin: 0 20px 10px 0;
}

.beta-checkbox-fieldset input,
.consent-row input {
  min-height: 18px;
  width: 18px;
}

.consent-row {
  align-items: flex-start;
  display: flex;
  gap: 10px;
  line-height: 1.55;
  margin: 13px 0;
}

.consent-row.optional {
  color: #555;
}

.form-error,
.admin-warning,
.legal-warning {
  background: #fff4f1;
  border-left: 3px solid #b94d3b;
  color: #8a3023;
  line-height: 1.5;
  padding: 10px 13px;
}

.form-error:empty {
  display: none;
}

.form-help {
  color: var(--muted);
  font-size: 13px;
  margin: -16px 0 0;
}

.public-account-card {
  align-items: center;
  display: flex;
  justify-content: space-between;
}

.public-account-card img {
  aspect-ratio: 1;
  border: 1px solid var(--border);
  height: 128px;
  object-fit: contain;
}

.public-beta-footer {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  padding-top: 32px;
}

.public-beta-footer a,
.public-beta-footer span,
.legal-page footer {
  color: var(--muted);
  font-size: 12px;
}

.legal-page {
  margin: 0 auto;
  max-width: 760px;
  padding: 42px 24px 80px;
}

.legal-page > .page-kicker {
  margin-top: 54px;
}

.legal-markdown {
  line-height: 1.8;
  padding: 22px 0;
}

.legal-markdown h1 {
  font-size: 28px;
}

.legal-markdown h2 {
  font-size: 21px;
  margin-top: 36px;
}

.legal-markdown blockquote {
  border-left: 3px solid #aaa;
  color: #666;
  margin-left: 0;
  padding-left: 16px;
}

.admin-v151-body {
  min-height: 100vh;
}

#adminApp {
  display: grid;
  grid-template-columns: 220px minmax(0, 1fr);
  min-height: 100vh;
}

.admin-v151-sidebar {
  background: #f4f4f2;
  border-right: 1px solid var(--border);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  padding: 26px 18px;
  position: sticky;
  top: 0;
}

.admin-v151-brand {
  display: grid;
  gap: 2px;
  padding: 0 10px 24px;
}

.admin-v151-brand strong {
  font-size: 20px;
}

.admin-v151-brand span {
  color: var(--muted);
  font-size: 12px;
}

.admin-v151-sidebar nav {
  display: grid;
  gap: 4px;
}

.admin-v151-sidebar nav button,
.admin-v151-sidebar-footer button {
  background: transparent;
  border: 0;
  border-radius: 5px;
  color: #555;
  font: inherit;
  padding: 10px 12px;
  text-align: left;
}

.admin-v151-sidebar nav button.active {
  background: #dededb;
  color: #171717;
  font-weight: 750;
}

.admin-v151-sidebar-footer {
  border-top: 1px solid #d9d9d6;
  display: grid;
  gap: 2px;
  margin-top: auto;
  padding-top: 14px;
}

.admin-v151-sidebar-footer a {
  color: #555;
  font-size: 13px;
  padding: 8px 12px;
  text-decoration: none;
}

.admin-v151-main {
  box-sizing: border-box;
  min-width: 0;
  padding: 42px clamp(24px, 4vw, 64px) 72px;
}

.admin-page-header {
  align-items: flex-end;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  margin-bottom: 28px;
  padding-bottom: 24px;
}

.admin-page-header h1 {
  font-size: 34px;
  margin: 5px 0 8px;
}

.admin-page-header p {
  color: var(--muted);
  margin: 0;
}

.admin-filter-bar,
.admin-inline-form {
  align-items: end;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(180px, 1.6fr) repeat(4, minmax(120px, 1fr)) auto;
  margin-bottom: 22px;
}

.admin-invite-field {
  align-self: stretch;
  display: grid;
  gap: 6px;
}

.admin-invite-field > span {
  color: #555;
  font-size: 12px;
  font-weight: 700;
}

.admin-invite-field > small {
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.admin-application-list,
.admin-feedback-list,
.admin-feature-list,
.admin-account-list,
.admin-invite-list,
.admin-legal-list {
  display: grid;
  gap: 12px;
}

.admin-application-card,
.admin-feedback-card,
.admin-v151-section,
.admin-account-list > article,
.admin-invite-list > article,
.admin-feature-list > article,
.admin-legal-editor,
.admin-conflict-list > article {
  background: white;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 20px;
}

.admin-application-card {
  display: grid;
  gap: 20px;
  grid-template-columns: minmax(0, 1.8fr) minmax(220px, 0.7fr);
}

.admin-application-primary h2,
.admin-feedback-message h2 {
  font-size: 20px;
  line-height: 1.45;
  margin: 10px 0 8px;
}

.admin-application-primary p,
.admin-application-meta span,
.admin-feedback-message p {
  color: #666;
  line-height: 1.55;
  margin: 4px 0;
}

.admin-application-meta {
  display: grid;
  gap: 5px;
  justify-items: start;
}

.admin-application-card details {
  border-top: 1px solid var(--border);
  grid-column: 1 / -1;
  padding-top: 14px;
}

.admin-application-card summary,
.admin-legal-editor > summary {
  cursor: pointer;
  font-weight: 750;
}

.admin-application-card details > .admin-edit-grid,
.admin-legal-editor > .admin-edit-grid {
  margin-top: 18px;
}

.admin-row-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 16px;
}

.status-chip {
  background: #eeeeec;
  border-radius: 4px;
  color: #555;
  display: inline-block;
  font-size: 12px;
  padding: 4px 7px;
}

.status-chip.approved,
.status-chip.registered,
.status-chip.active,
.status-chip.done,
.status-chip.published {
  background: #e5f1e7;
  color: #32643a;
}

.status-chip.possible,
.status-chip.needs_reply,
.status-chip.reviewing {
  background: #f5ecd8;
  color: #765e28;
}

.status-chip.paused,
.status-chip.confirmed_risk,
.status-chip.unread {
  background: #f5e3df;
  color: #8a392c;
}

.admin-feedback-card {
  padding: 0;
}

.admin-feedback-card > summary {
  align-items: center;
  cursor: pointer;
  display: grid;
  gap: 12px;
  grid-template-columns: auto minmax(0, 1fr) auto;
  list-style: none;
  padding: 16px 18px;
}

.admin-feedback-card > summary::-webkit-details-marker {
  display: none;
}

.admin-feedback-summary-copy {
  display: grid;
  gap: 4px;
  min-width: 0;
}

.admin-feedback-summary-copy strong {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-feedback-summary-copy small {
  color: var(--muted);
}

.admin-feedback-detail {
  border-top: 1px solid var(--border);
  padding: 14px 18px 16px;
}

.admin-feedback-detail .admin-edit-grid {
  gap: 10px;
  grid-template-columns: minmax(150px, .45fr) minmax(0, 1.55fr);
}

.admin-feedback-detail .form-field.full {
  grid-column: 2;
}

.admin-feedback-detail textarea {
  min-height: 92px;
}

.admin-feedback-tabs {
  align-items: end;
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: 30px;
  margin-bottom: 0;
  overflow-x: auto;
  scrollbar-width: thin;
  white-space: nowrap;
}

.admin-feedback-tabs button {
  background: transparent;
  border: 0;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  color: #777;
  cursor: pointer;
  font: inherit;
  font-size: 16px;
  font-weight: 650;
  padding: 0 0 13px;
}

.admin-feedback-tabs button span {
  color: #999;
  font-size: 13px;
  margin-left: 5px;
}

.admin-feedback-tabs button:hover {
  color: #171717;
}

.admin-feedback-tabs button.active {
  border-bottom-color: #171717;
  color: #171717;
  font-weight: 800;
}

.admin-feedback-tabs button.active span {
  color: #555;
}

.admin-feedback-overview {
  border-bottom: 1px solid var(--border);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 22px;
}

.admin-feedback-overview article {
  border-right: 1px solid var(--border);
  display: grid;
  gap: 4px;
  padding: 18px 20px 18px 0;
}

.admin-feedback-overview article + article {
  padding-left: 20px;
}

.admin-feedback-overview article:last-child {
  border-right: 0;
}

.admin-feedback-overview span,
.admin-feedback-overview small {
  color: var(--muted);
  font-size: 12px;
}

.admin-feedback-overview strong {
  font-size: 24px;
  letter-spacing: 0;
}

.feedback-filters {
  background: #f7f7f5;
  border: 1px solid var(--border);
  border-radius: 6px;
  grid-template-columns: repeat(4, minmax(160px, 1fr));
  padding: 14px;
}

.feedback-filters > input:first-child {
  grid-column: span 2;
}

.feedback-filters .secondary-button,
.feedback-filters .ghost-button {
  align-self: stretch;
}

.admin-feedback-workbench {
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow-x: auto;
}

.admin-feedback-table-head,
.admin-feedback-row-summary {
  align-items: center;
  display: grid;
  gap: 18px;
  grid-template-columns:
    minmax(260px, 2fr)
    minmax(92px, .62fr)
    minmax(130px, .9fr)
    minmax(170px, 1.1fr)
    minmax(180px, 1.2fr)
    minmax(170px, 1.1fr)
    minmax(130px, .8fr)
    24px;
  min-width: 1340px;
}

.admin-feedback-table-head {
  background: #fafaf9;
  border-bottom: 1px solid var(--border);
  color: #666;
  font-size: 12px;
  font-weight: 750;
  padding: 13px 18px;
}

.admin-feedback-row {
  background: white;
  border-bottom: 1px solid var(--border);
}

.admin-feedback-row:last-child {
  border-bottom: 0;
}

.admin-feedback-row > summary {
  cursor: pointer;
  list-style: none;
}

.admin-feedback-row > summary::-webkit-details-marker {
  display: none;
}

.admin-feedback-row-summary {
  min-height: 66px;
  padding: 13px 18px;
}

.admin-feedback-row-summary:hover {
  background: #f8f8f6;
}

.admin-feedback-row[open] > .admin-feedback-row-summary {
  background: #f4f4f1;
}

.admin-feedback-row-summary > span {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-feedback-subject,
.admin-feedback-account,
.admin-feedback-cell-preview {
  display: grid;
  gap: 4px;
}

.admin-feedback-subject strong,
.admin-feedback-cell-preview > span,
.admin-feedback-account > span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.admin-feedback-subject small,
.admin-feedback-account small,
.admin-feedback-cell-preview small {
  color: var(--muted);
  font-size: 11px;
}

.feedback-user-unread {
  color: #8a392c !important;
  font-weight: 700;
}

.admin-feedback-chevron {
  color: #777;
  font-size: 20px;
  text-align: center;
  transition: transform 180ms ease;
}

.admin-feedback-row[open] .admin-feedback-chevron {
  transform: rotate(180deg);
}

.admin-feedback-row .admin-feedback-detail {
  background: #fbfbfa;
  border-top: 1px solid var(--border);
  min-width: 1120px;
  padding: 24px;
}

.admin-feedback-original {
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(300px, 1.6fr) minmax(440px, 1fr);
  margin-bottom: 22px;
  padding-bottom: 22px;
}

.admin-feedback-original span,
.admin-feedback-original dt {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.admin-feedback-original p {
  font-size: 17px;
  line-height: 1.7;
  margin: 8px 0 0;
  white-space: pre-wrap;
}

.admin-feedback-original dl {
  display: grid;
  gap: 14px 22px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin: 0;
}

.admin-feedback-original dl > div {
  display: grid;
  gap: 5px;
}

.admin-feedback-original dd {
  margin: 0;
}

.admin-feedback-editor {
  align-items: start;
  display: grid;
  gap: 14px;
  grid-template-columns: minmax(170px, .45fr) minmax(320px, 1fr) minmax(320px, 1fr);
}

.admin-feedback-editor textarea {
  min-height: 116px;
}

.admin-feedback-actions {
  align-items: center;
  display: flex;
  gap: 14px;
  margin-top: 16px;
}

.admin-feedback-actions small {
  color: var(--muted);
}

.application-closed-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 20px;
}

.permission-template-guide {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin-bottom: 24px;
}

.permission-template-guide article {
  background: #f5f5f3;
  border: 1px solid var(--border);
  border-radius: 6px;
  display: grid;
  gap: 7px;
  padding: 14px;
}

.permission-template-guide span,
.permission-account-list span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.permission-account-list {
  display: grid;
}

.permission-account-list article {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(220px, 1.5fr) minmax(170px, .8fr) minmax(220px, 1fr) auto;
  padding: 14px 0;
}

.permission-account-list article > div {
  display: grid;
  gap: 4px;
}

.technical-settings > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
}

.technical-settings > summary span {
  color: var(--muted);
  font-size: 12px;
}

.technical-settings .admin-feature-list {
  margin-top: 18px;
}

.advanced-application-history {
  border-top: 1px solid var(--border);
  display: grid;
  margin-top: 14px;
}

.advanced-application-history article {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: 18px;
  justify-content: space-between;
  padding: 12px 0;
}

.advanced-application-history article > div {
  display: grid;
  gap: 3px;
}

.advanced-application-history span,
.advanced-application-history small {
  color: var(--muted);
  font-size: 12px;
}

.admin-v151-section {
  margin-bottom: 22px;
}

.admin-v151-section > h2 {
  font-size: 20px;
  margin: 0 0 14px;
}

.admin-account-list > article,
.admin-invite-list > article {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(220px, 1fr) auto auto;
}

.admin-account-list article > div,
.admin-invite-list article > div {
  display: grid;
  gap: 3px;
}

.admin-account-list span,
.admin-invite-list span,
.admin-feature-list span,
.admin-conflict-list span {
  color: #666;
}

.admin-account-list small,
.admin-invite-list small,
.admin-conflict-list small {
  color: #999;
}

.admin-account-list details,
.admin-invite-list details,
.admin-feature-list details {
  grid-column: 1 / -1;
}

.admin-feature-list > article {
  align-items: center;
  display: grid;
  gap: 10px;
  grid-template-columns: minmax(220px, 1.3fr) repeat(3, minmax(140px, 1fr)) minmax(140px, 1fr) auto;
}

.admin-feature-list > article > div {
  display: grid;
  gap: 4px;
}

.admin-content-frame {
  background: white;
  border: 1px solid var(--border);
  border-radius: 6px;
  height: calc(100vh - 170px);
  min-height: 720px;
  width: 100%;
}

.admin-legal-editor > summary {
  align-items: center;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(220px, 1fr) auto auto;
}

.admin-legal-markdown {
  min-height: 360px !important;
}

.admin-conflict-list {
  display: grid;
  gap: 8px;
}

.admin-conflict-list > article {
  align-items: center;
  display: grid;
  grid-template-columns: minmax(180px, 1fr) 2fr auto;
}

.admin-v151-empty,
.admin-loading {
  color: var(--muted);
  padding: 42px 12px;
  text-align: center;
}

.admin-copy-dialog {
  border: 1px solid var(--border);
  border-radius: 6px;
  max-width: 620px;
  padding: 24px;
  width: calc(100% - 48px);
}

.admin-copy-dialog textarea {
  box-sizing: border-box;
  min-height: 110px;
  width: 100%;
}

.admin-copy-dialog form > div {
  display: flex;
  gap: 10px;
  margin-top: 16px;
}

.ghost-button.danger {
  color: #9a3e32;
}

@media (max-width: 980px) {
  #adminApp {
    grid-template-columns: 168px minmax(0, 1fr);
  }

  .admin-v151-main {
    padding-left: 24px;
    padding-right: 24px;
  }

  .admin-filter-bar,
  .admin-inline-form,
  .admin-feature-list > article {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .permission-template-guide,
  .permission-account-list article {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 680px) {
  .public-beta-shell {
    padding: 20px 16px 42px;
  }

  .public-beta-header {
    align-items: flex-start;
    gap: 12px;
  }

  .public-beta-title {
    padding-top: 46px;
  }

  .public-beta-columns,
  .beta-form-grid,
  .admin-edit-grid {
    grid-template-columns: 1fr;
  }

  .public-beta-columns article,
  .public-beta-columns article:nth-child(even) {
    border-bottom: 1px solid var(--border);
    border-right: 0;
    padding: 22px 0;
  }

  .form-field.full {
    grid-column: 1;
  }

  .public-account-card {
    align-items: flex-start;
    gap: 18px;
  }

  .public-account-card img {
    height: 96px;
  }

  #adminApp {
    display: block;
  }

  .admin-v151-sidebar {
    border-bottom: 1px solid var(--border);
    border-right: 0;
    min-height: auto;
    padding: 14px 16px;
    position: static;
  }

  .admin-v151-sidebar nav {
    display: flex;
    overflow-x: auto;
  }

  .admin-v151-sidebar nav button {
    flex: 0 0 auto;
  }

  .admin-v151-sidebar-footer {
    display: none;
  }

  .admin-v151-main {
    padding: 26px 16px 50px;
  }

  .admin-page-header {
    align-items: flex-start;
    display: grid;
    gap: 16px;
  }

  .admin-filter-bar,
  .admin-inline-form,
  .admin-application-card,
  .admin-account-list > article,
  .admin-invite-list > article,
  .admin-feature-list > article {
    grid-template-columns: 1fr;
  }
}

/* Personal V1.5.0 */
.beta-label {
  background: #ececea;
  color: #5f5f5a;
  display: inline-flex;
  font-size: 10px;
  font-weight: 750;
  line-height: 1;
  margin-left: 5px;
  padding: 4px 5px;
  vertical-align: middle;
}

.import-mode-tabs {
  border-bottom: 1px solid var(--border);
  display: flex;
  gap: 24px;
  margin: 24px 0;
}

.import-mode-tabs button {
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  cursor: pointer;
  font: inherit;
  padding: 12px 2px;
}

.import-mode-tabs button.active {
  border-bottom-color: var(--text);
  color: var(--text);
  font-weight: 750;
}

.read-only-note,
.feature-disabled-state,
.post-import-highlight,
.handover-boundary {
  background: #f7f7f5;
  color: #5f5f5a;
  line-height: 1.65;
  margin: 0;
  padding: 14px 16px;
}

.feature-disabled-state {
  display: grid;
  gap: 5px;
  margin-top: 22px;
}

.feature-disabled-state p {
  margin: 0;
}

.post-import-highlight {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
}

.task-import-row .import-row-message {
  display: grid;
  gap: 6px;
}

.validation-message {
  color: #8d3831;
  display: grid;
  gap: 2px;
  margin: 0;
}

.validation-message span {
  font-size: 12px;
}

.import-row-form label.field-error input,
.import-row-form label.field-error select {
  background: #fff8f7;
  border-color: #bd746d;
  box-shadow: 0 0 0 1px #bd746d;
}

.task-import-dependencies {
  border: 1px solid #d8cdb9;
  display: grid;
  gap: 12px;
  grid-column: 1 / -1;
  padding: 14px;
}

.task-import-dependencies legend {
  color: #695d49;
  font-size: 12px;
  font-weight: 750;
  padding: 0 5px;
}

.task-import-dependencies section {
  display: grid;
  gap: 8px;
  grid-template-columns: minmax(120px, .7fr) repeat(3, minmax(140px, 1fr));
}

.task-import-dependencies select,
.task-import-dependencies input {
  min-width: 0;
}

.review-entry.introduction {
  background: #fafafa;
}

.review-help-row {
  display: flex;
  justify-content: flex-end;
  margin-top: 10px;
}

.review-introduction > p {
  color: var(--muted);
  line-height: 1.7;
}

.introduction-flow {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: 12px;
  grid-template-columns: 1fr auto 1fr auto 1fr;
  padding: 28px 0;
}

.introduction-flow span {
  background: #f7f7f5;
  min-height: 72px;
  padding: 16px;
}

.handover-page {
  max-width: 1240px;
}

.handover-boundary {
  margin-top: 18px;
}

.handover-boundary p {
  margin: 4px 0 0;
}

.handover-toolbar {
  align-items: center;
  display: flex;
  justify-content: space-between;
  padding: 18px 0;
}

.handover-toolbar > span {
  color: var(--muted);
  font-size: 12px;
}

.handover-create-form {
  border-bottom: 1px solid var(--border);
  border-top: 1px solid var(--border);
  margin-bottom: 22px;
  padding: 20px 0;
}

.handover-create-form > header,
.handover-detail-head,
.handover-confirm-bar {
  align-items: flex-start;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.handover-create-form > header > div,
.handover-detail-head > div:first-child {
  display: grid;
  gap: 4px;
}

.handover-create-form > header span,
.handover-detail-head span,
.handover-detail-head p,
.handover-confirm-bar span {
  color: var(--muted);
  font-size: 13px;
  margin: 0;
}

.handover-create-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 18px;
}

.handover-create-grid > label,
.handover-meta-form label,
.handover-item form > label {
  display: grid;
  gap: 6px;
}

.handover-create-grid label > span,
.handover-meta-form label > span,
.handover-item form label > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.handover-create-grid input,
.handover-create-grid select,
.handover-meta-form input,
.handover-item input,
.handover-item select,
.handover-item textarea,
.handover-custom-item input {
  border: 1px solid var(--border);
  font: inherit;
  min-height: 42px;
  padding: 9px 11px;
}

.handover-create-grid .full,
.handover-center-choice.full {
  grid-column: 1 / -1;
}

.handover-center-choice {
  border: 1px solid var(--border);
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  padding: 12px;
}

.handover-center-choice legend {
  color: var(--muted);
  padding: 0 5px;
}

.handover-center-choice label {
  align-items: center;
  display: flex;
  gap: 6px;
}

.handover-create-form > footer {
  display: flex;
  justify-content: flex-end;
  padding-top: 18px;
}

.handover-layout {
  display: grid;
  gap: 28px;
  grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
}

.handover-list {
  border-right: 1px solid var(--border);
  min-width: 0;
  padding-right: 18px;
}

.handover-list-item {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: 5px;
  padding: 14px 8px;
  text-align: left;
  width: 100%;
}

.handover-list-item:hover,
.handover-list-item.active {
  background: #f7f7f5;
}

.handover-list-item > span,
.handover-list-item > small {
  color: var(--muted);
  font-size: 12px;
}

.handover-empty {
  color: var(--muted);
  line-height: 1.65;
  padding: 34px 8px;
}

.handover-detail-head {
  border-bottom: 1px solid var(--border);
  padding-bottom: 18px;
}

.handover-detail-head h3 {
  font-size: 24px;
  margin: 0;
}

.handover-detail-head > div:last-child {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.handover-meta-form {
  align-items: end;
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(0, 1fr) minmax(170px, .45fr) auto;
  padding: 18px 0;
}

.handover-dimensions > details {
  border-top: 1px solid var(--border);
}

.handover-dimensions > details > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  padding: 16px 2px;
}

.handover-dimensions > details > summary span {
  color: var(--muted);
}

.handover-item {
  border-top: 1px solid #ededeb;
  padding: 18px 4px;
}

.handover-item.ready {
  background: #fafaf8;
}

.handover-item > header {
  align-items: flex-start;
  display: flex;
  gap: 18px;
  justify-content: space-between;
}

.handover-item > header p {
  color: var(--muted);
  margin: 5px 0 0;
}

.handover-item > header > span {
  border: 1px solid var(--border);
  color: var(--muted);
  flex: none;
  font-size: 11px;
  padding: 4px 6px;
}

.handover-item form {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: 14px;
}

.handover-item form .wide,
.handover-item-actions {
  grid-column: 1 / -1;
}

.handover-item textarea {
  min-height: 76px;
  resize: vertical;
}

.handover-item-actions {
  display: flex;
  gap: 8px;
}

.handover-linked-tasks {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}

.handover-linked-tasks > strong,
.handover-linked-tasks > span,
.handover-linked-tasks > button {
  font-size: 12px;
}

.handover-linked-tasks > button {
  background: #f2f2f0;
  border: 0;
  padding: 6px 8px;
}

.handover-custom-item,
.handover-snapshots {
  border-top: 1px solid var(--border);
  padding: 16px 0;
}

.handover-custom-item summary,
.handover-snapshots summary {
  cursor: pointer;
  font-weight: 750;
}

.handover-custom-item form {
  display: grid;
  gap: 8px;
  grid-template-columns: .7fr 1fr 1.5fr auto;
  margin-top: 12px;
}

.handover-confirm-bar {
  background: #f7f7f5;
  margin-top: 18px;
  padding: 16px;
}

.handover-confirm-bar > div {
  display: grid;
  gap: 4px;
}

.handover-snapshots article {
  border-bottom: 1px solid var(--border);
  padding: 12px 0;
}

.handover-snapshots article > div {
  display: flex;
  justify-content: space-between;
}

.handover-snapshots ul {
  color: var(--muted);
  font-size: 12px;
  margin: 8px 0 0;
  padding-left: 18px;
}

@media (max-width: 900px) {
  .task-import-dependencies section,
  .handover-create-grid,
  .handover-layout,
  .handover-meta-form,
  .handover-item form,
  .handover-custom-item form {
    grid-template-columns: 1fr;
  }

  .task-import-dependencies,
  .handover-create-grid .full,
  .handover-center-choice.full,
  .handover-item form .wide,
  .handover-item-actions {
    grid-column: 1;
  }

  .handover-list {
    border-bottom: 1px solid var(--border);
    border-right: 0;
    display: flex;
    overflow-x: auto;
    padding: 0 0 12px;
  }

  .handover-list-item {
    flex: 0 0 230px;
  }

  .introduction-flow {
    align-items: stretch;
    grid-template-columns: 1fr;
  }

  .introduction-flow b {
    transform: rotate(90deg);
    width: fit-content;
  }
}

.content-admin-body {
  background: #f7f7f5;
  margin: 0;
}

.content-admin {
  margin: 0 auto;
  max-width: 1440px;
  padding: 36px;
}

.content-admin > header {
  border-bottom: 1px solid var(--border);
  margin-bottom: 24px;
}

.content-admin-header {
  align-items: start;
  display: flex;
  gap: 24px;
  justify-content: space-between;
}

.content-admin-header h1 {
  margin: 0 0 8px;
}

.content-admin-header p {
  color: var(--muted);
  margin: 0 0 22px;
}

.content-admin-header .secondary-button {
  flex: 0 0 auto;
}

.admin-login-kicker {
  color: var(--text) !important;
  font-size: 13px;
  font-weight: 750;
  letter-spacing: 0;
  margin-bottom: 4px !important;
}

.content-admin-layout {
  background: #fff;
  border: 1px solid var(--border);
  display: grid;
  grid-template-columns: 300px minmax(0, 1fr);
  min-height: 680px;
}

.content-admin-list {
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
}

.content-admin-list button {
  background: transparent;
  border: 0;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
  display: grid;
  gap: 5px;
  padding: 16px;
  text-align: left;
}

.content-admin-list button.active {
  background: #eeeeeb;
}

.content-admin-list span,
.content-admin-status {
  color: var(--muted);
  font-size: 13px;
}

.content-admin-form {
  padding: 24px;
}

.content-markdown {
  min-height: 360px;
}

@media (max-width: 760px) {
  .content-admin {
    padding: 16px;
  }

  .content-admin-layout {
    grid-template-columns: 1fr;
  }

  .content-admin-list {
    border-bottom: 1px solid var(--border);
    border-right: 0;
    max-height: 240px;
    overflow: auto;
  }

  .content-admin-header {
    align-items: stretch;
    flex-direction: column;
    gap: 0;
  }

  .content-admin-header .secondary-button {
    margin-bottom: 18px;
  }
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-width: 320px;
  background: var(--bg);
  color: var(--text);
}

.site-footer {
  display: flex;
  justify-content: center;
  gap: 12px;
  padding: 28px 12px 8px;
  color: var(--soft);
  font-size: 12px;
}

.site-footer a {
  color: inherit;
  text-decoration: none;
}

.site-footer a:hover {
  color: var(--muted);
  text-decoration: underline;
}

button,
input,
select,
textarea {
  font: inherit;
}

button {
  cursor: pointer;
}

.app-shell {
  display: grid;
  grid-template-columns: 260px minmax(0, 1fr) 330px;
  min-height: 100vh;
}

.app-shell.assistant-collapsed {
  grid-template-columns: 260px minmax(0, 1fr) 66px;
}

.sidebar {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  position: sticky;
  top: 0;
  height: 100vh;
  display: flex;
  flex-direction: column;
  gap: 18px;
  padding: 24px 16px 18px;
  overflow: hidden;
  border-right: 1px solid var(--border);
  background: #fbfbfb;
}

.brand {
  display: flex;
  align-items: center;
  padding: 0 8px 8px;
}

.brand-copy {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.brand-name-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
}

.brand-name {
  font-size: 19px;
  font-weight: 700;
  line-height: 1.15;
}

.environment-label {
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  line-height: 1;
}

.brand-service-name {
  color: var(--muted);
  font-size: 12px;
  font-weight: 500;
  line-height: 1.2;
}

.workspace-notice {
  margin: 0 28px 14px;
  padding: 10px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fafafa;
  color: var(--muted);
  font-size: 12px;
}

.workspace-notice > div {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.workspace-notice strong {
  color: var(--text);
}

.notice-actions {
  flex: none;
  display: flex;
  gap: 8px;
}

.brand-block {
  padding-bottom: 18px;
}

.brand-date {
  padding-left: 8px;
  color: var(--muted);
  font-size: 14px;
}

.nav-section {
  display: grid;
  gap: 4px;
}

.nav-button {
  width: 100%;
  display: grid;
  grid-template-columns: 24px 1fr auto;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 0;
  border-radius: var(--radius);
  background: transparent;
  color: var(--text);
  text-align: left;
}

.nav-button:hover,
.nav-button.active {
  background: var(--panel-strong);
}

.nav-icon {
  color: var(--muted);
  font-size: 14px;
}

.nav-count {
  min-width: 26px;
  padding: 4px 7px;
  border-radius: 999px;
  background: #eeeeee;
  color: var(--muted);
  text-align: center;
  font-size: 12px;
}

.sidebar-divider {
  height: 1px;
  background: var(--border);
  margin: 6px 0;
}

.feedback-card,
.wechat-card,
.profile-card {
  margin-top: 0;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
}

.profile-logout {
  margin-left: auto;
  padding: 4px 6px;
  border: 0;
  background: transparent;
  color: var(--soft);
  font-size: 11px;
}

.profile-logout:hover,
.profile-logout:focus-visible {
  color: var(--text);
}

.feedback-card,
.wechat-card {
  margin-top: 0;
}

.sidebar-bottom {
  display: grid;
  grid-template-rows: auto;
  gap: 0;
  min-height: 0;
  flex: 0 0 auto;
  margin-top: auto;
}

.sidebar-feedback-card,
.profile-card,
.sidebar-account-dock {
  box-sizing: border-box;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}

.sidebar-feedback-card {
  margin: 2px 0 0;
  max-height: min(320px, 42vh);
  overflow-y: auto;
  padding: 12px;
}

.sidebar-feedback-card .feedback-title {
  justify-content: space-between;
}

.feedback-card .feedback-expand-button {
  background: #fff;
  color: var(--muted);
  font-size: 11px;
  font-weight: 600;
  margin: 0;
  padding: 4px;
  width: auto;
}

.sidebar-feedback-card textarea {
  min-height: 72px;
}

.sidebar-account-dock .profile-card {
  padding: 10px 12px;
}

.feedback-drawer-scrim {
  background: rgba(17, 17, 17, 0.22);
  border: 0;
  inset: 0;
  position: fixed;
  z-index: 79;
}

.feedback-drawer {
  background: #fbfbfb;
  border-left: 1px solid var(--border);
  box-shadow: -18px 0 48px rgba(0, 0, 0, 0.12);
  box-sizing: border-box;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr);
  height: 100dvh;
  max-width: calc(100vw - 20px);
  position: fixed;
  right: 0;
  top: 0;
  width: 440px;
  z-index: 80;
  animation: feedbackDrawerIn 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.feedback-drawer > header {
  align-items: flex-start;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  padding: 22px 22px 17px;
}

.feedback-drawer > header span {
  color: var(--muted);
  font-size: 12px;
}

.feedback-drawer > header h2 {
  font-size: 24px;
  margin: 4px 0 0;
}

.feedback-window-actions {
  align-items: center;
  display: flex;
  flex: none;
  gap: 8px;
}

.feedback-window-actions .secondary-button {
  min-height: 34px;
  padding: 6px 10px;
}

.feedback-drawer-scroll {
  min-height: 0;
  overflow-y: auto;
  padding: 18px 22px 40px;
}

.feedback-drawer .feedback-card {
  margin: 0;
  padding: 16px;
}

.feedback-thread-list {
  display: grid;
  gap: 10px;
  margin-top: 22px;
}

.feedback-thread-list h3 {
  font-size: 15px;
  margin: 0 0 2px;
}

.feedback-thread {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 14px;
}

.feedback-thread.unread {
  border-left: 3px solid #555;
}

.feedback-thread-meta {
  align-items: center;
  color: var(--muted);
  display: flex;
  font-size: 11px;
  justify-content: space-between;
}

.feedback-thread > p,
.feedback-thread-replies p {
  line-height: 1.55;
  margin: 8px 0;
  white-space: pre-wrap;
}

.feedback-thread > small {
  color: var(--soft);
}

.feedback-thread-replies {
  border-top: 1px solid var(--border);
  display: grid;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
}

.feedback-thread-replies > div > strong {
  align-items: center;
  color: var(--muted);
  display: flex;
  font-size: 11px;
  justify-content: space-between;
}

@keyframes feedbackDrawerIn {
  from { opacity: 0; transform: translateX(18px); }
  to { opacity: 1; transform: translateX(0); }
}

.sidebar-account-dock {
  display: grid;
  gap: 12px;
  flex: none;
  background: #fbfbfb;
}

.profile-card > div:nth-child(2) {
  min-width: 0;
  overflow: hidden;
}

.profile-card strong {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.sidebar-footer .site-footer {
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 3px 8px;
  padding: 2px 4px 0;
  line-height: 1.45;
}

.feedback-title,
.wechat-title {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--wechat);
  font-weight: 650;
}

.feedback-title {
  color: var(--text);
}

.feedback-help {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.feedback-dot,
.wechat-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
}

.feedback-dot {
  background: var(--focus-gray);
}

.wechat-dot {
  background: var(--wechat);
}

.feedback-card textarea,
.feedback-card input {
  width: 100%;
  margin-top: 10px;
  padding: 9px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  outline: 0;
  background: #fff;
  font: inherit;
}

.feedback-card textarea {
  min-height: 88px;
  resize: vertical;
  line-height: 1.5;
}

.feedback-card button {
  width: 100%;
  margin-top: 10px;
}

.wechat-card p,
.profile-card p {
  margin: 8px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.profile-card {
  margin-top: 0;
  display: flex;
  align-items: center;
  gap: 10px;
}

.avatar {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #111;
  color: #fff;
  font-size: 13px;
}

.main {
  min-width: 0;
  padding: 24px 24px 32px;
}

.topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--border);
}

.title-row {
  display: flex;
  align-items: baseline;
  gap: 16px;
}

h1 {
  margin: 0;
  font-size: 24px;
  letter-spacing: 0;
}

.date-label {
  color: var(--muted);
  font-size: 14px;
}

.search-area {
  position: relative;
  min-width: 260px;
  max-width: 380px;
  flex: 1;
}

.search-box {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
}

.search-box input {
  width: 100%;
  border: 0;
  outline: 0;
  color: var(--text);
}

.search-popover {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  z-index: 20;
  width: min(620px, 82vw);
  max-height: min(620px, 70vh);
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.98);
  box-shadow: var(--shadow);
  animation: softExpand 160ms ease-out;
}

.search-popover-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding: 12px 16px;
  color: var(--muted);
  font-size: 13px;
  border-bottom: 1px solid var(--border);
}

.search-results {
  max-height: calc(min(620px, 70vh) - 46px);
  overflow-y: auto;
  padding: 8px;
}

.search-result {
  width: 100%;
  display: grid;
  grid-template-columns: 30px minmax(0, 1fr);
  gap: 10px;
  padding: 12px;
  border: 0;
  border-radius: 8px;
  background: transparent;
  text-align: left;
}

.search-result:hover,
.search-result:focus-visible {
  background: var(--focus-fill);
  outline: 0;
}

.search-result-content {
  min-width: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text);
  text-align: left;
}

.search-result-content:focus-visible {
  outline: 2px solid var(--border-strong);
  outline-offset: 4px;
}

.search-result-check {
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  align-self: start;
  margin: 1px 0 0 3px;
  padding: 0;
  border: 2px solid var(--muted);
  border-radius: 4px;
  background: #fff;
  color: var(--focus-gray);
  font-size: 15px;
  font-weight: 800;
  line-height: 1;
}

button.search-result-check:hover,
button.search-result-check:focus-visible {
  border-color: var(--text);
  background: var(--focus-fill);
  outline: 0;
}

.search-result-check.completed {
  border-color: transparent;
  background: transparent;
}

.search-result-icon {
  color: var(--muted);
  font-weight: 700;
}

.search-result strong,
.search-result small,
.search-result em {
  display: block;
}

.search-result strong {
  margin-bottom: 4px;
}

.search-result small {
  color: var(--muted);
  font-size: 12px;
}

.search-result em {
  margin-top: 6px;
  color: var(--muted);
  font-size: 13px;
  font-style: normal;
  line-height: 1.45;
}

.search-empty {
  padding: 24px 16px;
  color: var(--muted);
  text-align: center;
}

.capture-panel {
  margin: 22px 0 18px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: start;
  gap: 12px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
}

.capture-text {
  display: grid;
  gap: 8px;
}

.capture-input {
  width: 100%;
  border: 0;
  outline: 0;
  color: var(--text);
  font-size: 17px;
}

.capture-help {
  color: var(--muted);
  font-size: 13px;
}

.capture-boundary {
  margin-top: 4px;
  color: var(--soft);
  font-size: 11px;
}

.capture-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.primary-button,
.secondary-button,
.ghost-button,
.icon-button {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  color: var(--text);
}

.primary-button {
  border-color: #111;
  background: #111;
  color: #fff;
  padding: 10px 14px;
  font-weight: 650;
}

.secondary-button,
.ghost-button {
  padding: 9px 12px;
  font-weight: 560;
}

.danger-button {
  color: var(--danger);
}

.ghost-button {
  border-color: transparent;
  background: transparent;
}

.secondary-button:hover,
.ghost-button:hover,
.icon-button:hover {
  background: var(--panel-strong);
}

.view-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 12px;
}

.view-tabs {
  display: flex;
  gap: 18px;
  overflow-x: auto;
  scrollbar-width: none;
}

.view-tab {
  padding: 8px 0;
  border: 0;
  border-bottom: 2px solid transparent;
  background: transparent;
  color: var(--muted);
  white-space: nowrap;
}

.view-tab.focus-tab {
  padding: 10px 18px;
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  background: var(--focus-fill);
  color: var(--text);
  font-weight: 750;
}

.view-tab.active {
  border-color: #111;
  color: var(--text);
  font-weight: 700;
}

.view-tab.focus-tab.active {
  border-color: var(--border-strong);
  background: var(--focus-fill);
  color: var(--text);
}

.toolbar-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.task-surface {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  overflow: hidden;
}

.task-scroll {
  --field-count: 0;
  overflow-x: auto;
  scrollbar-width: auto;
}

.task-scroll.field-count-0 {
  --field-count: 0;
}

.task-scroll.field-count-1 {
  --field-count: 1;
}

.task-scroll.field-count-2 {
  --field-count: 2;
}

.task-scroll.field-count-3 {
  --field-count: 3;
}

.task-scroll.field-count-4 {
  --field-count: 4;
}

.task-scroll.field-count-5 {
  --field-count: 5;
}

.task-scroll.field-count-6 {
  --field-count: 6;
}

.task-scroll.field-count-7 {
  --field-count: 7;
}

.task-scroll.field-count-8 {
  --field-count: 8;
}

.task-scroll.field-count-9 {
  --field-count: 9;
}

.task-edit-hint {
  min-height: 36px;
  padding: 8px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  border-bottom: 1px solid var(--border);
  background: #fafafa;
  color: var(--muted);
  font-size: 12px;
}

.task-edit-hint button {
  flex: none;
  padding: 3px 6px;
  border: 0;
  background: transparent;
  color: var(--muted);
}

.task-header,
.task-row {
  display: grid;
  grid-template-columns: minmax(230px, 1.55fr) repeat(var(--field-count), minmax(128px, 0.8fr));
  gap: 12px;
  align-items: center;
  min-width: calc(260px + var(--field-count) * 140px);
}

.task-header {
  padding: 12px 16px;
  border-bottom: 1px solid var(--border);
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.task-row {
  min-height: 72px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
}

.task-row:last-child {
  border-bottom: 0;
}

.task-row:hover {
  background: #fcfcfc;
}

.task-row {
  cursor: default;
}

.task-title {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
}

.task-edit-affordance {
  flex: none;
  margin-left: auto;
  padding: 3px 5px;
  border: 0;
  background: transparent;
  color: var(--soft);
  font-size: 11px;
  opacity: 0;
  transition: opacity 140ms ease, color 140ms ease;
}

.task-row:hover .task-edit-affordance,
.task-row:focus-within .task-edit-affordance,
.task-edit-affordance:focus-visible {
  opacity: 1;
}

.task-edit-affordance:hover {
  color: var(--text);
}

@media (hover: none), (pointer: coarse) {
  .task-edit-affordance {
    opacity: 1;
  }
}

.task-check {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  margin-top: 3px;
  border: 1px solid var(--border-strong);
  border-radius: 4px;
  background: #fff;
}

.task-name {
  min-width: 0;
}

.task-name strong {
  display: block;
  overflow: hidden;
  color: var(--text);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.task-name.overdue-task strong {
  color: var(--danger);
}

.task-meta {
  margin-top: 5px;
  color: var(--soft);
  font-size: 12px;
}

.field-cell {
  min-width: 0;
  color: #3f3f46;
  font-size: 13px;
  line-height: 1.45;
}

.field-cell.muted {
  color: var(--soft);
}

.field-cell.danger {
  color: var(--danger);
  font-weight: 650;
}

.status-select {
  width: 100%;
  min-height: 34px;
  padding: 7px 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--panel);
  color: var(--text);
  font-size: 13px;
}

.pill {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  max-width: 100%;
  padding: 4px 8px;
  border: 1px solid var(--border);
  border-radius: 999px;
  background: var(--panel);
  color: var(--muted);
  font-size: 12px;
  white-space: nowrap;
}

.pill.blue {
  border-color: #bfdbfe;
  background: #eff6ff;
  color: var(--blue);
}

.pill.orange {
  border-color: #fed7aa;
  background: #fff7ed;
  color: var(--warning);
}

.pill.red {
  border-color: #fecaca;
  background: #fef2f2;
  color: var(--danger);
}

.pill.green {
  border-color: #bbf7d0;
  background: #f0fdf4;
  color: #15803d;
}

.row-actions {
  display: flex;
  justify-content: flex-end;
  gap: 6px;
}

.icon-button {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
}

.empty-state {
  padding: 58px 20px;
  text-align: center;
  color: var(--muted);
}

.empty-state strong {
  display: block;
  margin-bottom: 8px;
  color: var(--text);
}

.group-heading {
  padding: 12px 16px;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: var(--panel);
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.group-toggle {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  text-align: left;
  transition: background-color 160ms ease, color 160ms ease;
}

.group-toggle:hover,
.group-toggle:focus-visible {
  background: #eeeeef;
  color: var(--text);
  outline: 0;
}

.group-toggle small {
  margin-left: 4px;
  color: var(--soft);
  font-size: 11px;
  font-weight: 650;
}

.group-chevron {
  transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.someday-group.collapsed .group-chevron {
  transform: rotate(-90deg);
}

.someday-group-body:not(:empty) {
  animation: contactBodyIn 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.assistant-panel {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 24px 16px;
  border-left: 1px solid var(--border);
  background: #fbfbfb;
  overflow: auto;
}

.tour-layer {
  background: rgba(0, 0, 0, 0.48);
  inset: 0;
  pointer-events: none;
  position: fixed;
  z-index: 90;
}

.tour-card {
  background: #fff;
  border: 1px solid #c9c9c6;
  border-radius: 6px;
  box-shadow: 0 16px 48px rgba(0, 0, 0, 0.18);
  box-sizing: border-box;
  padding: 18px;
  pointer-events: auto;
  position: fixed;
  z-index: 92;
}

.tour-card > span,
.tour-card > small {
  color: var(--muted);
  font-size: 12px;
}

.tour-card h2 {
  font-size: 20px;
  margin: 6px 0;
}

.tour-card p {
  color: #555;
  line-height: 1.6;
  margin: 0 0 14px;
}

.tour-card > div {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  margin-bottom: 10px;
}

.tour-highlight {
  box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.9), 0 0 0 7px #666 !important;
  position: relative;
  z-index: 91;
}

.message-list.thread-view,
.message-thread-replies {
  display: grid;
  gap: 12px;
}

.message-thread {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 18px;
}

.message-thread.unread {
  border-left: 3px solid #555;
}

.message-thread header,
.message-thread header > div,
.message-thread-replies > div > span {
  display: flex;
  gap: 8px;
  justify-content: space-between;
}

.message-thread header span,
.message-thread header small,
.message-thread time {
  color: var(--muted);
  font-size: 12px;
}

.message-thread blockquote {
  background: #f5f5f3;
  border-left: 2px solid #aaa;
  line-height: 1.55;
  margin: 14px 0;
  padding: 10px 12px;
}

.message-thread-replies {
  border-top: 1px solid var(--border);
  margin: 14px 0;
  padding-top: 14px;
}

.message-thread-replies p {
  line-height: 1.55;
  margin: 7px 0 0;
  white-space: pre-wrap;
}

@media (prefers-reduced-motion: reduce) {
  .feedback-drawer,
  .assistant-overlay,
  .tour-card {
    animation: none !important;
    scroll-behavior: auto !important;
    transition: none !important;
  }
}

.assistant-title {
  margin: 0 0 18px;
  font-size: 18px;
}

.assistant-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.assistant-mini {
  display: flex;
  justify-content: center;
  padding: 24px 10px;
}

.panel-card {
  margin-bottom: 14px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
}

.panel-card h2,
.panel-card h3 {
  margin: 0 0 12px;
  font-size: 15px;
}

.report-preview {
  min-height: 280px;
  max-height: 430px;
  overflow: auto;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  color: #262626;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 12px;
  line-height: 1.75;
  white-space: pre-wrap;
}

.panel-actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  margin-top: 12px;
}

.wechat-form {
  display: grid;
  gap: 10px;
}

.wechat-form textarea {
  width: 100%;
  min-height: 86px;
  resize: vertical;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  outline: 0;
}

.stat-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 8px;
}

.stat {
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: var(--panel);
}

.stat strong {
  display: block;
  margin-bottom: 4px;
  font-size: 20px;
}

.stat span {
  color: var(--muted);
  font-size: 12px;
}

.toast {
  position: fixed;
  left: 50%;
  bottom: 28px;
  z-index: 20;
  min-width: 220px;
  padding: 14px 18px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  background: rgba(244, 244, 245, 0.96);
  box-shadow: var(--shadow);
  color: #404040;
  text-align: center;
  transform: translateX(-50%) translateY(8px);
  opacity: 0;
  pointer-events: none;
  transition: opacity 180ms ease, transform 180ms ease;
}

.toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

.modal-backdrop {
  position: fixed;
  inset: 0;
  z-index: 30;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(15, 15, 15, 0.24);
}

.task-modal {
  width: min(720px, 100%);
  max-height: min(760px, 92vh);
  display: flex;
  flex-direction: column;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow);
}

.modal-header,
.modal-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 18px;
  border-bottom: 1px solid var(--border);
}

.modal-footer {
  border-top: 1px solid var(--border);
  border-bottom: 0;
}

.modal-header h2 {
  margin: 0;
  font-size: 18px;
}

.modal-body {
  overflow: auto;
  padding: 18px;
}

.all-fields-panel {
  display: grid;
  gap: 16px;
  animation: softExpand 180ms ease-out;
  transform-origin: top;
}

.field-group {
  display: grid;
  gap: 10px;
}

.field-group h3 {
  margin: 0;
  color: var(--focus-gray);
  font-size: 13px;
  font-weight: 760;
}

@keyframes softExpand {
  from {
    opacity: 0;
    transform: translateY(-4px) scaleY(0.98);
  }
  to {
    opacity: 1;
    transform: translateY(0) scaleY(1);
  }
}

.form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.form-field {
  display: grid;
  gap: 7px;
}

.form-field.full {
  grid-column: 1 / -1;
}

.admin-check {
  min-height: 44px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #1f1f1f;
}

.admin-check input {
  width: 18px;
  height: 18px;
  margin: 0;
}

.form-field label {
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
}

.form-field input,
.form-field select,
.form-field textarea {
  width: 100%;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  outline: 0;
}

.form-field textarea {
  min-height: 88px;
  resize: vertical;
}

.checkbox-row {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 40px;
}

.checkbox-row input {
  width: 16px;
  height: 16px;
}

.more-toggle {
  margin-top: 14px;
}

.hidden {
  display: none !important;
}

.trial-gate {
  min-height: 100vh;
  display: grid;
  place-items: center;
  padding: 24px;
  background: #fbfbfb;
}

.trial-card {
  width: min(520px, 100%);
  padding: 28px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  box-shadow: var(--shadow);
}

.trial-card h1 {
  margin: 18px 0 10px;
}

.trial-card p {
  margin: 0 0 18px;
  color: var(--muted);
  line-height: 1.7;
}

.trial-form {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  margin-bottom: 10px;
}

.invite-form {
  grid-template-columns: 1fr;
}

.trial-form input {
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  outline: 0;
}

.trial-warning {
  margin-top: 14px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.auth-card {
  width: min(560px, 100%);
}

.auth-tabs {
  display: flex;
  gap: 16px;
  border-bottom: 1px solid var(--border);
}

.auth-tabs button,
.auth-secondary-actions button,
.text-button {
  padding: 10px 0;
  border: 0;
  background: transparent;
  color: var(--muted);
}

.auth-tabs button.active {
  border-bottom: 2px solid var(--text);
  color: var(--text);
  font-weight: 650;
}

.auth-secondary-actions {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.boundary-consent {
  display: grid;
  grid-template-columns: 18px minmax(0, 1fr);
  gap: 9px;
  align-items: start;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.boundary-consent input {
  width: 16px;
  height: 16px;
  padding: 0;
}

.subnav {
  display: flex;
  gap: 18px;
  margin: 20px 0 16px;
  overflow-x: auto;
}

.project-subnav {
  margin-bottom: 28px;
}

.record-module {
  display: grid;
  gap: 14px;
}

.record-workspace {
  min-width: 0;
  view-transition-name: record-workspace;
}

.record-workspace:empty {
  display: none;
}

.record-workspace-enter > * {
  animation: recordWorkspaceIn 260ms cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes recordWorkspaceIn {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

::view-transition-old(record-workspace) {
  animation: recordWorkspaceOut 120ms ease-in both;
}

::view-transition-new(record-workspace) {
  animation: recordWorkspaceIn 260ms cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes recordWorkspaceOut {
  to {
    opacity: 0;
    transform: translateY(3px);
  }
}

.record-create-bar {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 13px 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  color: var(--text);
  text-align: left;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.record-create-bar:hover {
  background: #fafafa;
  border-color: var(--border-strong);
}

.record-create-bar.active {
  border-color: var(--border-strong);
  background: #fafafa;
  box-shadow: inset 3px 0 0 var(--focus-gray);
}

.record-create-icon {
  width: 30px;
  height: 30px;
  flex: 0 0 auto;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--text);
  font-size: 20px;
  line-height: 1;
  transition: background-color 160ms ease, transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.record-create-bar.active .record-create-icon {
  background: #f0f0f0;
  transform: rotate(180deg);
}

.record-create-copy {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 12px;
}

.record-create-copy strong {
  font-size: 14px;
}

.record-create-copy small {
  color: var(--muted);
  font-size: 12px;
}

.project-form-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.project-form h2 {
  margin: 0;
  font-size: 17px;
}

.project-form-head p {
  margin: 5px 0 16px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.record-form-expanded {
  margin: 0;
  padding: 18px;
  animation: recordWorkspaceIn 260ms cubic-bezier(0.22, 1, 0.36, 1);
  transform-origin: top;
}

.record-form-expanded .form-grid {
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  align-items: start;
}

.project-form-actions {
  position: sticky;
  bottom: 0;
  z-index: 2;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 14px;
  padding: 12px 0 2px;
  background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 30%);
}

.project-list {
  align-self: start;
}

.project-list-body {
  overflow: visible;
}

.project-list-header {
  padding: 13px 16px;
  border-bottom: 1px solid var(--border);
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.project-group-title {
  position: sticky;
  top: 0;
  z-index: 1;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  background: var(--focus-fill);
  color: var(--focus-gray);
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  font-size: 18px;
  font-weight: 800;
  letter-spacing: 0;
}

.project-group-title span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 600;
}

.selected-record {
  background: #f7f7f7;
  box-shadow: inset 3px 0 0 var(--focus-gray);
}

.date-field,
.date-field input {
  cursor: pointer;
}

.center-row {
  width: 100%;
  display: grid;
  grid-template-columns: 1fr 1.1fr 1.1fr;
  gap: 14px;
  padding: 14px 16px;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  cursor: pointer;
  text-align: left;
}

.center-row:hover {
  background: #fafafa;
}

.center-row:last-child {
  border-bottom: 0;
}

.center-name {
  display: block;
  color: #111;
  font-size: 20px;
  font-weight: 800;
}

.center-row .field-cell {
  display: grid;
  align-content: center;
  gap: 5px;
}

.center-row .field-cell strong {
  color: var(--text);
  font-size: 13px;
}

.center-row .field-cell small {
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.section-label {
  margin-bottom: 8px;
}

.contact-editor {
  display: grid;
  gap: 10px;
}

.contact-editor-empty {
  padding: 15px;
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.contact-editor-card {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fafafa;
  overflow: hidden;
  interpolate-size: allow-keywords;
}

.contact-editor-card > summary {
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px 14px;
  cursor: pointer;
  list-style: none;
}

.contact-editor-card > summary::-webkit-details-marker {
  display: none;
}

.contact-editor-card > summary > span:first-child {
  min-width: 0;
  display: grid;
  gap: 4px;
}

.contact-editor-card > summary strong {
  font-size: 13px;
}

.contact-editor-card > summary small {
  overflow: hidden;
  color: var(--muted);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.contact-summary-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.contact-chevron {
  color: var(--muted);
  transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.contact-editor-card[open] .contact-chevron {
  transform: rotate(180deg);
}

.contact-editor-body {
  padding: 0 14px 14px;
  border-top: 1px solid var(--border);
  animation: contactBodyIn 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

@keyframes contactBodyIn {
  from { opacity: 0; transform: translateY(-4px); }
  to { opacity: 1; transform: translateY(0); }
}

.contact-field-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 10px;
}

.contact-field-grid .full {
  grid-column: 1 / -1;
}

.contact-field-grid input,
.contact-field-grid select,
.contact-field-grid textarea {
  width: 100%;
  min-width: 0;
  padding: 9px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
}

.contact-field-grid textarea {
  min-height: 72px;
  resize: vertical;
}

.required-mark {
  margin-left: 4px;
  color: var(--muted);
  font-size: 10px;
  font-weight: 500;
}

.contact-add-row {
  width: 100%;
  margin-top: 8px;
  padding: 11px 14px;
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius);
  background: transparent;
  color: var(--muted);
  font-size: 12px;
  text-align: left;
}

.contact-add-row:hover {
  background: #fafafa;
  color: var(--text);
}

.record-detail-panel {
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  animation: recordWorkspaceIn 260ms cubic-bezier(0.22, 1, 0.36, 1);
  transform-origin: top;
}

.record-accordion-item {
  min-width: 0;
}

.record-inline-detail {
  overflow: hidden;
  animation: recordInlineOpen 280ms cubic-bezier(0.22, 1, 0.36, 1);
  transform-origin: top;
}

@keyframes recordInlineOpen {
  from {
    opacity: 0;
    transform: translateY(-8px) scaleY(0.985);
  }
  to {
    opacity: 1;
    transform: translateY(0) scaleY(1);
  }
}

.record-inline-detail .record-detail-panel {
  border: 0;
  border-top: 1px solid var(--border);
  border-radius: 0;
  background: #fcfcfc;
  box-shadow: inset 3px 0 0 var(--focus-gray);
}

.record-inline-detail .record-detail-head {
  justify-content: flex-end;
  padding-bottom: 8px;
  border-bottom: 0;
}

.record-inline-detail .record-detail-head > div:first-child {
  display: none;
}

.record-detail-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--border);
}

.record-detail-eyebrow {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.record-detail-head h2 {
  margin: 5px 0 4px;
  font-size: 20px;
}

.record-detail-head p {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.record-detail-actions {
  display: flex;
  gap: 8px;
}

.record-detail-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  gap: 10px;
  margin-top: 14px;
}

.record-detail-item {
  min-width: 140px;
  max-width: min(320px, 100%);
  flex: 0 1 auto;
  display: grid;
  gap: 5px;
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
}

.record-detail-item.full {
  width: 100%;
  max-width: none;
  flex-basis: 100%;
}

.record-detail-item span {
  color: var(--muted);
  font-size: 11px;
}

.record-detail-item strong {
  color: var(--text);
  font-size: 13px;
  font-weight: 550;
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.record-detail-section {
  margin-top: 18px;
}

.record-detail-section h3 {
  margin: 0 0 10px;
  font-size: 14px;
}

.record-detail-empty {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.contact-detail-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.contact-detail-card {
  padding: 13px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fafafa;
}

.contact-detail-card header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.contact-detail-card header span {
  color: var(--muted);
  font-size: 11px;
}

.contact-detail-card dl,
.contact-detail-card dl div {
  margin: 0;
}

.contact-detail-card dl {
  display: grid;
  gap: 7px;
}

.contact-detail-card dl div {
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  gap: 8px;
  font-size: 12px;
}

.contact-detail-card dt {
  color: var(--muted);
}

.contact-detail-card dd {
  margin: 0;
  overflow-wrap: anywhere;
}

.expanding-select {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  overflow: hidden;
  interpolate-size: allow-keywords;
}

.expanding-select summary {
  min-height: 42px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 12px;
  color: var(--text);
  cursor: pointer;
  list-style: none;
}

.expanding-select summary::-webkit-details-marker {
  display: none;
}

.expanding-select[open] summary {
  border-bottom: 1px solid var(--border);
}

.expanding-select summary span {
  transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

.expanding-select[open] summary span {
  transform: rotate(180deg);
}

.expanding-select-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px;
  padding: 8px;
  background: #fafafa;
  animation: contactBodyIn 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
  .record-workspace-enter > *,
  .record-form-expanded,
  .record-detail-panel,
  .record-inline-detail,
  .contact-editor-body,
  .expanding-select-options {
    animation: none !important;
  }

  .record-create-bar,
  .record-create-icon,
  .contact-chevron,
  .expanding-select summary span {
    transition: none !important;
  }
}

.expanding-select-options button {
  min-height: 36px;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: var(--radius);
  background: transparent;
  color: var(--muted);
  text-align: left;
}

.expanding-select-options button:hover,
.expanding-select-options button.selected {
  border-color: var(--border);
  background: #fff;
  color: var(--text);
}

.project-task-toolbar {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 14px;
}

.project-task-toolbar label {
  min-width: 220px;
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.project-task-toolbar select {
  width: 100%;
  padding: 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  color: var(--text);
}

.project-task-create-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 0 0 12px;
}

.project-task-create-button {
  min-width: 0;
  display: inline-grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  padding: 8px 11px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  color: var(--text);
  text-align: left;
}

.project-task-create-button:hover,
.project-task-create-button:focus-visible {
  border-color: var(--border-strong);
  background: #fafafa;
}

.project-task-create-button > span:first-child {
  color: var(--muted);
  font-size: 19px;
  line-height: 1;
  text-align: center;
}

.project-task-create-button > span:last-child {
  min-width: 0;
  display: grid;
  gap: 1px;
}

.project-task-create-button strong {
  font-size: 13px;
}

.project-task-create-button small {
  overflow: hidden;
  color: var(--muted);
  font-size: 11px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.project-task-overview {
  border: 1px solid var(--border);
  border-radius: var(--radius);
  overflow: hidden;
  background: #fff;
}

.project-task-project + .project-task-project {
  border-top: 10px solid var(--panel-strong);
}

.project-task-project-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  background: var(--focus-fill);
}

.project-task-project-head strong {
  font-size: 17px;
}

.project-task-project-head span {
  color: var(--muted);
  font-size: 12px;
}

.project-task-section-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 16px;
  border-bottom: 1px solid var(--border);
  color: var(--muted);
  font-size: 13px;
}

.project-task-section-title {
  min-width: 0;
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.project-task-section-title > span {
  color: var(--soft);
  font-size: 11px;
}

.project-task-section-title > strong {
  color: var(--muted);
  font-size: 13px;
}

.project-task-section-action {
  flex: none;
  padding: 5px 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  color: var(--muted);
  font-size: 11px;
}

.project-task-section-action:hover,
.project-task-section-action:focus-visible {
  color: var(--text);
  border-color: var(--border-strong);
}

.task-form-error {
  margin-top: 12px;
  padding: 10px 12px;
  border: 1px solid #d5a4a4;
  border-radius: var(--radius);
  background: #fff8f8;
  color: #9e2f2f;
  font-size: 13px;
  line-height: 1.5;
}

.duplicate-task-warning {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 12px;
  padding: 12px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  background: #f7f7f7;
}

.duplicate-task-warning > div:first-child {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.duplicate-task-warning span {
  overflow: hidden;
  color: var(--muted);
  font-size: 12px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.duplicate-task-actions {
  flex: none;
  display: flex;
  gap: 7px;
}

.project-task-row {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(220px, 1fr) 100px minmax(170px, 220px);
  gap: 14px;
  align-items: center;
  padding: 13px 16px;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: #fff;
  color: var(--text);
  text-align: left;
}

.project-task-row:last-child {
  border-bottom: 0;
}

.project-task-row:hover {
  background: #fcfcfc;
}

.project-task-main,
.project-task-date {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.project-task-main small {
  overflow: hidden;
  color: var(--muted);
  text-overflow: ellipsis;
  white-space: nowrap;
}

.project-task-status {
  color: var(--muted);
  font-size: 12px;
}

.project-task-date {
  justify-items: end;
}

.project-task-date small {
  color: var(--soft);
  font-size: 11px;
}

.project-task-date strong {
  font-size: 12px;
}

.project-info-list {
  display: grid;
  align-content: start;
  gap: 10px;
}

.project-info-list .record-accordion-item {
  overflow: hidden;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  transition: border-color 160ms ease, box-shadow 160ms ease;
}

.project-info-list .record-accordion-item:hover,
.project-info-list .record-accordion-item.open {
  border-color: var(--border-strong);
}

.project-info-list .record-accordion-item.open {
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.045);
}

.project-info-card {
  width: 100%;
  padding: 16px;
  border: 0;
  border-radius: 0;
  background: #fff;
  color: var(--text);
  cursor: pointer;
  text-align: left;
}

.project-info-card:hover {
  background: #fafafa;
}

.project-info-card header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 14px;
}

.project-info-card header > div {
  display: flex;
  align-items: baseline;
  gap: 10px;
}

.project-info-card header strong {
  font-size: 18px;
}

.project-info-card header span,
.project-info-card header small {
  color: var(--muted);
  font-size: 12px;
}

.project-info-card h3 {
  margin: 14px 0;
  font-size: 15px;
  line-height: 1.5;
}

.project-info-meta {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 14px;
  color: var(--muted);
  font-size: 12px;
}

.project-info-card p {
  margin: 14px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.6;
}

.square-reader {
  display: grid;
  grid-template-columns: minmax(220px, 300px) minmax(0, 760px);
  align-items: start;
  gap: 14px;
}

.article-list {
  display: grid;
  gap: 10px;
}

.article-list-item {
  display: grid;
  gap: 8px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
  color: var(--text);
  text-align: left;
}

.article-list-item.active {
  border-color: #bdbdbd;
  background: #f6f6f6;
}

.article-list-item span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.article-list-item strong {
  font-size: 16px;
  line-height: 1.45;
}

.article-list-item small {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.article-card {
  padding: 28px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: #fff;
}

.markdown-body {
  color: #333;
  line-height: 1.75;
}

.markdown-body h1,
.markdown-body h2,
.markdown-body h3 {
  margin: 26px 0 10px;
  color: var(--text);
  font-size: 18px;
}

.markdown-body ul {
  padding-left: 22px;
}

.markdown-body blockquote {
  margin: 22px 0 0;
  padding: 12px 14px;
  border-left: 3px solid var(--border-strong);
  background: #fafafa;
  color: var(--muted);
}

.markdown-body a {
  color: var(--blue);
}

.creator-panel {
  margin-top: 30px;
  padding-top: 22px;
  border-top: 1px solid var(--border);
}

.square-promotion {
  display: grid;
  gap: 12px;
  max-width: 680px;
  padding: 10px 0 18px;
}

.square-promotion > span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.square-promotion h1,
.square-promotion h2 {
  font-size: 26px;
  line-height: 1.35;
  margin: 0;
}

.square-promotion p {
  color: #454545;
  line-height: 1.75;
  margin: 0;
  max-width: 62ch;
}

.team-direction {
  display: grid;
  gap: 8px;
  justify-items: start;
}

.team-direction > span,
.section-kicker {
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.team-direction p {
  margin: 0;
}

.account-center {
  display: grid;
  gap: 30px;
  padding-bottom: 60px;
}

.account-band,
.data-center-section,
.danger-section {
  padding: 26px 0;
  border-top: 1px solid var(--border);
}

.account-band {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(320px, 0.9fr);
  gap: 38px;
}

.account-band h2,
.section-heading h2,
.danger-section h2,
.roadmap-page h2 {
  margin: 7px 0;
  font-size: 24px;
  letter-spacing: 0;
}

.account-band p,
.section-heading p,
.danger-section p,
.roadmap-page p {
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

.account-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin: 0;
  background: var(--border);
}

.account-facts div {
  padding: 14px;
  background: #fff;
}

.account-facts dt {
  color: var(--muted);
  font-size: 11px;
}

.account-facts dd {
  margin: 7px 0 0;
  font-weight: 650;
}

.account-inline-form {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 10px;
}

.account-inline-form label,
.danger-confirm-form label {
  min-width: min(280px, 100%);
  display: grid;
  gap: 7px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.account-inline-form input,
.danger-confirm-form input {
  width: 100%;
  padding: 10px 11px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  color: var(--text);
}

.account-disclosure {
  padding-bottom: 20px;
  border-bottom: 1px solid var(--border);
}

.account-disclosure summary {
  margin-bottom: 14px;
  color: var(--muted);
  cursor: pointer;
}

.section-heading {
  display: flex;
  justify-content: space-between;
  gap: 24px;
  align-items: end;
}

.data-action-row {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px 0;
}

.inline-warning {
  padding: 10px 12px;
  background: #f7f7f7;
  color: var(--muted);
  font-size: 12px;
}

.mock-mail-confirmation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fafafa;
}

.mock-mail-confirmation div {
  min-width: 0;
}

.mock-mail-confirmation p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.mock-mail-confirmation button {
  flex: none;
}

.restore-workflow {
  margin-top: 24px;
}

.file-drop {
  display: grid;
  gap: 6px;
  padding: 18px;
  border: 1px dashed var(--border-strong);
  border-radius: var(--radius);
  color: var(--text);
  cursor: pointer;
}

.file-drop small {
  color: var(--muted);
}

.file-drop input {
  margin-top: 8px;
}

.restore-preview {
  margin-top: 14px;
  padding: 18px;
  border: 1px solid var(--border);
  background: #fafafa;
}

.restore-preview h3 {
  margin: 0 0 8px;
}

.danger-section {
  display: grid;
  gap: 18px;
  border-top-color: #efcaca;
}

.danger-confirm-form {
  display: grid;
  gap: 12px;
  max-width: 560px;
}

.danger-button,
.danger-outline-button {
  padding: 10px 14px;
  border-radius: var(--radius);
  font-weight: 650;
}

.danger-button {
  border: 1px solid var(--danger);
  background: var(--danger);
  color: #fff;
}

.danger-outline-button {
  justify-self: start;
  border: 1px solid #e1b4b4;
  background: #fff;
  color: #9f2626;
}

.roadmap-page {
  display: grid;
  gap: 30px;
  padding-top: 18px;
}

.roadmap-columns {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.roadmap-columns section {
  min-width: 0;
  padding: 22px;
  border-right: 1px solid var(--border);
}

.roadmap-columns section:last-child {
  border-right: 0;
}

.roadmap-columns h3 {
  margin: 0 0 14px;
}

.roadmap-columns ul {
  margin: 0;
  padding-left: 18px;
  color: #404040;
  line-height: 1.75;
}

.roadmap-boundary {
  padding: 14px;
  background: #fafafa;
  font-size: 12px;
}


.article-source {
  margin-bottom: 12px;
  color: var(--muted);
  font-size: 13px;
  font-weight: 650;
}

.article-card h2 {
  margin: 0 0 12px;
  font-size: 24px;
  line-height: 1.35;
}

.article-card p {
  margin: 0 0 18px;
  color: #404040;
  line-height: 1.8;
}

.article-points {
  display: grid;
  gap: 8px;
  margin: 0 0 18px;
  padding-left: 18px;
  color: #303030;
  line-height: 1.7;
}

.article-note {
  padding-top: 14px;
  border-top: 1px solid var(--border);
  color: var(--muted) !important;
  font-size: 13px;
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 10px;
  margin-top: 28px;
}

.feature-card {
  display: grid;
  gap: 8px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  color: var(--text);
  text-align: left;
}

.feature-card span {
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.data-export-page {
  width: min(920px, 100%);
  display: grid;
  gap: 28px;
  padding-bottom: 48px;
}

.data-export-header {
  display: grid;
  grid-template-columns: 40px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
}

.back-button {
  width: 40px;
  height: 40px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  color: var(--text);
  font-size: 20px;
  line-height: 1;
}

.back-button:hover {
  background: var(--panel-strong);
}

.data-export-header span {
  color: var(--muted);
  font-size: 13px;
}

.data-export-header h2 {
  margin: 5px 0 8px;
  font-size: 28px;
  letter-spacing: 0;
}

.data-export-header p,
.export-contents p {
  margin: 0;
  color: var(--muted);
  line-height: 1.7;
}

.export-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.export-summary > div {
  min-height: 90px;
  display: grid;
  align-content: center;
  gap: 5px;
  padding: 16px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
}

.export-summary strong {
  font-size: 24px;
}

.export-summary span {
  color: var(--muted);
  font-size: 13px;
}

.export-contents {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(260px, 1.15fr);
  gap: 28px;
  padding: 24px 0;
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.export-contents h3 {
  margin: 0 0 8px;
  font-size: 17px;
}

.export-contents ul {
  display: grid;
  gap: 10px;
  margin: 0;
  padding-left: 20px;
  color: #404040;
  line-height: 1.6;
}

.export-boundary {
  display: flex;
  gap: 12px;
  align-items: baseline;
  padding: 14px 16px;
  border-left: 3px solid var(--border-strong);
  background: var(--panel);
  color: var(--muted);
  line-height: 1.6;
}

.export-boundary strong {
  flex: 0 0 auto;
  color: var(--text);
}

.export-actions {
  display: flex;
  align-items: center;
  gap: 14px;
}

.export-actions .primary-button {
  min-width: 170px;
}

.export-actions .primary-button:disabled {
  cursor: wait;
  opacity: 0.58;
}

.export-actions span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
}

.mobile-tool-button,
.mobile-scrim {
  display: none;
}

.me-home,
.me-subpage {
  max-width: 980px;
  margin: 26px auto 0;
}

.me-account-summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 0;
  border-bottom: 1px solid var(--border);
}

.me-account-summary h2,
.me-subpage h2 {
  margin: 6px 0 8px;
  font-size: 26px;
}

.me-account-summary p,
.me-subpage-header p {
  max-width: 650px;
  margin: 0;
  color: var(--muted);
  line-height: 1.65;
}

.account-state,
.backup-file-type {
  flex: none;
  padding: 6px 9px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  background: var(--panel);
  color: var(--muted);
  font-size: 12px;
  font-weight: 650;
}

.me-data-summary,
.export-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border-bottom: 1px solid var(--border);
}

.me-data-summary > div,
.export-summary > div {
  min-width: 0;
  padding: 22px 18px;
  border-right: 1px solid var(--border);
}

.me-data-summary > div:last-child,
.export-summary > div:last-child {
  border-right: 0;
}

.me-data-summary strong,
.export-summary strong {
  display: block;
  font-size: 24px;
}

.me-data-summary span,
.export-summary span {
  color: var(--muted);
  font-size: 13px;
}

.me-entry-list {
  display: grid;
}

.me-entry {
  min-height: 84px;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 30px;
  align-items: center;
  gap: 16px;
  padding: 16px 8px;
  border: 0;
  border-bottom: 1px solid var(--border);
  background: transparent;
  color: var(--text);
  text-align: left;
}

.me-entry:hover,
.me-entry:focus-visible {
  background: var(--panel);
  outline: 0;
}

.me-entry-marker {
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
  color: var(--muted);
  font-size: 12px;
}

.me-entry strong,
.me-entry small {
  display: block;
}

.me-entry strong {
  margin-bottom: 5px;
  font-size: 16px;
}

.me-entry small,
.me-entry-arrow,
.me-boundary {
  color: var(--muted);
}

.me-boundary {
  padding: 18px 8px;
  font-size: 12px;
  line-height: 1.6;
}

.me-subpage-header,
.data-export-header {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr);
  gap: 14px;
  align-items: start;
  padding-bottom: 22px;
  border-bottom: 1px solid var(--border);
}

.back-button {
  width: 44px;
  height: 44px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  background: #fff;
}

.settings-section,
.settings-form-section,
.backup-kind-card,
.backup-history,
.restore-workflow,
.clear-scope,
.danger-section {
  margin-top: 22px;
}

.settings-section {
  border-top: 1px solid var(--border);
}

.settings-row {
  min-height: 58px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 0;
  border-bottom: 1px solid var(--border);
}

.settings-row span {
  color: var(--muted);
}

.settings-form-section {
  padding-top: 20px;
  border-top: 1px solid var(--border);
}

.backup-kind-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 20px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.backup-kind-card h3 {
  margin: 10px 0 6px;
}

.backup-kind-card p {
  margin: 0;
  color: var(--muted);
  line-height: 1.6;
}

.backup-history {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}

.backup-history > div {
  display: grid;
  gap: 5px;
  padding: 14px 0;
}

.backup-history span {
  color: var(--muted);
  font-size: 12px;
}

.restore-preview {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  background: #fff;
}

.restore-preview > header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.restore-preview h3 {
  margin: 4px 0 0;
}

.restore-count-compare {
  margin: 16px 0;
  border-top: 1px solid var(--border);
}

.restore-count-compare > div {
  display: grid;
  grid-template-columns: minmax(100px, 1fr) 90px 90px;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid var(--border);
}

.restore-count-compare span,
.restore-count-compare > div:first-child {
  color: var(--muted);
}

.restore-detail-group {
  border-bottom: 1px solid var(--border);
}

.restore-detail-group summary {
  min-height: 48px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  cursor: pointer;
  font-weight: 700;
}

.preview-list,
.preview-task-list,
.preview-center-groups,
.preview-counts {
  margin: 0 0 14px;
}

.preview-list {
  padding-left: 20px;
  color: var(--muted);
  line-height: 1.7;
}

.preview-center-groups,
.preview-task-list {
  display: grid;
  gap: 10px;
}

.preview-center-groups > div,
.preview-task-list > div {
  padding: 10px 12px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.preview-task-list strong,
.preview-task-list span {
  display: block;
}

.preview-task-list span {
  margin-top: 3px;
  color: var(--muted);
  font-size: 12px;
}

.preview-counts {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.preview-counts > strong {
  width: 100%;
}

.preview-counts span {
  padding: 5px 8px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
  color: var(--muted);
  font-size: 12px;
}

.replacement-scope {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 16px 0;
}

.replacement-scope > div {
  padding: 13px;
  border: 1px solid var(--border);
  border-radius: var(--radius);
}

.replacement-scope strong,
.replacement-scope span {
  display: block;
}

.replacement-scope span {
  margin-top: 5px;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
}

.risk-checkbox {
  grid-column: 1 / -1;
  display: flex !important;
  align-items: flex-start;
  gap: 10px;
}

.risk-checkbox input {
  width: 18px;
  height: 18px;
  margin-top: 2px;
  flex: none;
}

.pre-action-backup,
.final-danger-action {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  margin-top: 16px;
  padding: 14px;
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  background: var(--panel);
}

.pre-action-backup p,
.final-danger-action span {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}

.clear-scope h3 {
  margin-bottom: 0;
}

.clear-scope .me-data-summary {
  margin-top: 10px;
  border-top: 1px solid var(--border);
}

.data-export-page {
  max-width: 980px;
}

@media (max-width: 1180px) {
  .app-shell,
  .app-shell.assistant-collapsed {
    grid-template-columns: 230px minmax(0, 1fr) 58px;
  }

  .assistant-panel:not(.assistant-mini):not(.assistant-overlay) {
    padding: 24px 8px;
    overflow: hidden;
  }

  .assistant-panel:not(.assistant-mini):not(.assistant-overlay) > .panel-card,
  .assistant-panel:not(.assistant-mini):not(.assistant-overlay) .assistant-title {
    display: none;
  }

  .assistant-panel:not(.assistant-mini):not(.assistant-overlay) .assistant-head {
    justify-content: center;
  }

  .assistant-panel:not(.assistant-mini):not(.assistant-overlay) #toggleAssistant {
    font-size: 0;
  }

  .assistant-panel:not(.assistant-mini):not(.assistant-overlay) #toggleAssistant::after {
    content: "助";
    font-size: 14px;
  }

  .assistant-overlay {
    position: fixed;
    top: 0;
    right: 0;
    z-index: 20;
    width: min(330px, calc(100vw - 58px));
    height: 100vh;
    padding: 24px 16px;
    overflow: auto;
    border-left: 1px solid var(--border);
    background: #fbfbfb;
    box-shadow: -18px 0 40px rgba(0, 0, 0, 0.12);
    animation: assistantDrawerIn 220ms cubic-bezier(0.22, 1, 0.36, 1);
  }

  @keyframes assistantDrawerIn {
    from { opacity: 0; transform: translateX(18px); }
    to { opacity: 1; transform: translateX(0); }
  }

  .square-reader {
    grid-template-columns: 1fr;
  }

  .article-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 860px) {
  .app-shell,
  .app-shell.assistant-collapsed {
    grid-template-columns: 66px minmax(0, 1fr) 54px;
  }

  .sidebar {
    gap: 12px;
    padding: 18px 8px 14px;
  }

  .brand-block,
  .sidebar-divider,
  .sidebar .feedback-card,
  .sidebar-footer,
  .profile-card > div:nth-child(2),
  .profile-logout,
  .nav-button > span:nth-child(2),
  .nav-button > span:nth-child(3) {
    display: none;
  }

  .nav-button {
    grid-template-columns: 1fr;
    justify-items: center;
    padding: 11px 8px;
  }

  .nav-icon {
    color: var(--text);
    font-size: 15px;
  }

  .sidebar-bottom {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    margin-top: auto;
  }

  .profile-card {
    justify-content: center;
    padding: 8px;
    border: 0;
    background: transparent;
  }

  .main {
    padding: 18px 14px 24px;
  }

  .data-export-page {
    gap: 20px;
  }

  .data-export-header {
    grid-template-columns: 36px minmax(0, 1fr);
    gap: 10px;
  }

  .back-button {
    width: 36px;
    height: 36px;
  }

  .data-export-header h2 {
    font-size: 22px;
  }

  .export-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .export-contents {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .export-actions {
    align-items: stretch;
    flex-direction: column;
  }

  .workspace-notice {
    margin: 0 0 12px;
  }

  .topbar,
  .view-toolbar,
  .capture-panel {
    display: grid;
  }

  .capture-panel {
    grid-template-columns: 1fr;
  }

  .capture-actions {
    justify-content: flex-end;
  }

  .search-box {
    min-width: 0;
    max-width: none;
    width: 100%;
  }

  .search-area {
    min-width: 0;
    max-width: none;
    width: 100%;
  }

  .task-surface {
    border: 1px solid var(--border);
    background: #fff;
  }

  .task-header {
    display: grid;
  }

  .task-row {
    margin-bottom: 0;
  }

  .article-list {
    grid-template-columns: 1fr;
  }

  .account-band,
  .roadmap-columns {
    grid-template-columns: 1fr;
  }

  .account-facts {
    grid-template-columns: 1fr;
  }

  .section-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .roadmap-columns section {
    border-right: 0;
    border-bottom: 1px solid var(--border);
  }

  .roadmap-columns section:last-child {
    border-bottom: 0;
  }

  .row-actions {
    justify-content: flex-start;
  }

  .center-row {
    grid-template-columns: 1fr;
  }

  .record-form-expanded .form-grid,
  .contact-field-grid,
  .expanding-select-options,
  .project-task-row,
  .project-info-meta {
    grid-template-columns: 1fr;
  }

  .record-create-copy,
  .record-detail-head {
    display: grid;
  }

  .record-detail-actions {
    justify-content: flex-start;
  }

  .project-task-date {
    justify-items: start;
  }

  .project-task-create-actions,
  .duplicate-task-warning,
  .duplicate-task-actions {
    display: grid;
  }

  .project-task-create-button {
    width: 100%;
  }

  .project-task-section-head {
    align-items: flex-start;
  }

  .trial-form {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 540px) {
  .app-shell,
  .app-shell.assistant-collapsed {
    grid-template-columns: 52px minmax(0, 1fr) 46px;
  }

  .sidebar {
    padding-inline: 5px;
  }

  .assistant-panel,
  .assistant-mini {
    padding-inline: 5px;
  }

  .main {
    padding-inline: 10px;
  }

  .record-detail-item {
    min-width: min(132px, 100%);
  }

  .workspace-notice,
  .task-edit-hint,
  .notice-actions {
    display: grid;
    justify-items: start;
  }

  .task-edit-affordance {
    opacity: 1;
  }
}

@media (max-width: 700px) {
  html,
  body {
    max-width: 100%;
    overflow-x: hidden;
  }

  button,
  input,
  select {
    min-height: 44px;
  }

  .app-shell,
  .app-shell.assistant-collapsed {
    display: block;
    min-height: 100vh;
  }

  .main {
    width: 100%;
    padding: 14px 12px 24px;
  }

  .topbar {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 44px 44px;
    gap: 10px;
    padding-bottom: 14px;
  }

  .topbar .title-row {
    min-width: 0;
    justify-content: center;
  }

  .topbar h1 {
    max-width: 100%;
    overflow: hidden;
    font-size: 20px;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .topbar-help-button {
    grid-column: 3;
    grid-row: 1;
    min-height: 44px;
  }

  #mobileAssistantToggle {
    grid-column: 4;
    grid-row: 1;
  }

  .mobile-tool-button {
    width: 44px;
    height: 44px;
    display: grid;
    place-items: center;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: #fff;
    color: var(--text);
  }

  .topbar .search-area {
    grid-column: 1 / -1;
    grid-row: 2;
  }

  .search-popover {
    position: fixed;
    top: 116px;
    right: 12px;
    left: 12px;
    width: auto;
    max-height: calc(100vh - 132px);
  }

  .sidebar {
    position: fixed;
    inset: 0 auto 0 0;
    z-index: 60;
    width: min(286px, 88vw);
    height: 100dvh;
    gap: 14px;
    padding: 20px 14px;
    overflow-y: auto;
    transform: translateX(-102%);
    transition: transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
    box-shadow: 18px 0 40px rgba(0, 0, 0, 0.12);
  }

  .sidebar.mobile-open {
    transform: translateX(0);
  }

  .sidebar.mobile-open .brand-block,
  .sidebar.mobile-open .sidebar-divider,
  .sidebar.mobile-open .feedback-card,
  .sidebar.mobile-open .sidebar-footer,
  .sidebar.mobile-open .profile-card > div:nth-child(2),
  .sidebar.mobile-open .profile-logout,
  .sidebar.mobile-open .nav-button > span:nth-child(2),
  .sidebar.mobile-open .nav-button > span:nth-child(3) {
    display: initial;
  }

  .sidebar.mobile-open .brand-block,
  .sidebar.mobile-open .feedback-card,
  .sidebar.mobile-open .sidebar-footer {
    display: block;
  }

  .sidebar.mobile-open .sidebar-divider {
    display: block;
  }

  .sidebar.mobile-open .nav-button {
    grid-template-columns: 24px 1fr auto;
    justify-items: initial;
    padding: 10px 12px;
  }

  .sidebar.mobile-open .nav-icon {
    color: var(--muted);
  }

  .sidebar.mobile-open .sidebar-bottom {
    display: grid;
    margin-top: 0;
  }

  .sidebar.mobile-open .profile-card {
    justify-content: flex-start;
    padding: 12px;
    border: 1px solid var(--border);
    background: #fff;
  }

  .mobile-scrim {
    position: fixed;
    inset: 0;
    z-index: 50;
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
    background: rgba(17, 17, 17, 0.28);
  }

  .assistant-panel,
  .assistant-mini {
    display: none;
  }

  .assistant-panel.assistant-overlay {
    position: fixed;
    inset: 0 0 0 auto;
    z-index: 60;
    width: min(340px, 92vw);
    height: 100dvh;
    display: block;
    padding: 20px 14px;
    overflow-y: auto;
  }

  .capture-panel {
    margin-top: 16px;
    padding: 14px;
  }

  .capture-actions,
  .data-action-row,
  .account-inline-form,
  .pre-action-backup,
  .final-danger-action,
  .backup-kind-card {
    align-items: stretch;
    flex-direction: column;
  }

  .capture-actions {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .view-tabs {
    gap: 12px;
    padding-bottom: 3px;
  }

  .view-tab.focus-tab {
    padding-inline: 14px;
  }

  .task-scroll,
  .task-scroll[class*="field-count-"] {
    overflow-x: visible;
  }

  .task-header {
    display: none;
  }

  .task-row {
    min-width: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    padding: 14px;
  }

  .task-title {
    padding-bottom: 10px;
  }

  .task-name strong {
    white-space: normal;
  }

  .task-check {
    width: 22px;
    min-height: 22px;
    height: 22px;
  }

  .task-edit-affordance {
    min-width: 44px;
    min-height: 44px;
    margin-top: -10px;
  }

  .task-row > .field-cell {
    min-height: 42px;
    display: grid;
    grid-template-columns: minmax(92px, 36%) minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    padding: 8px 0;
    border-top: 1px solid var(--border);
    overflow-wrap: anywhere;
  }

  .task-row > .field-cell::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 12px;
    font-weight: 650;
  }

  .status-select {
    width: 100%;
  }

  .modal-backdrop {
    align-items: end;
    padding: 0;
  }

  .task-modal {
    width: 100%;
    max-height: 94dvh;
    border-right: 0;
    border-bottom: 0;
    border-left: 0;
    border-radius: 8px 8px 0 0;
  }

  .modal-footer {
    align-items: stretch;
    flex-direction: column;
  }

  .form-grid,
  .record-form-expanded .form-grid,
  .contact-field-grid {
    grid-template-columns: 1fr;
  }

  .form-field.full,
  .risk-checkbox {
    grid-column: 1;
  }

  .me-home,
  .me-subpage {
    margin-top: 18px;
  }

  .me-account-summary {
    display: grid;
    padding-top: 10px;
  }

  .me-account-summary h2,
  .me-subpage h2 {
    font-size: 22px;
    overflow-wrap: anywhere;
  }

  .account-state {
    justify-self: start;
  }

  .me-data-summary,
  .export-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .me-data-summary > div:nth-child(2),
  .export-summary > div:nth-child(2) {
    border-right: 0;
  }

  .me-data-summary > div:nth-child(-n+2),
  .export-summary > div:nth-child(-n+2) {
    border-bottom: 1px solid var(--border);
  }

  .me-entry {
    grid-template-columns: 46px minmax(0, 1fr) 24px;
    gap: 12px;
  }

  .me-entry-marker {
    width: 42px;
    height: 42px;
  }

  .backup-history,
  .replacement-scope {
    grid-template-columns: 1fr;
  }

  .restore-count-compare > div {
    grid-template-columns: minmax(80px, 1fr) 64px 64px;
    gap: 8px;
  }

  .danger-confirm-form {
    grid-template-columns: 1fr;
  }

  .project-task-toolbar,
  .project-task-create-actions,
  .record-detail-grid {
    grid-template-columns: 1fr;
  }

  .square-reader {
    display: block;
  }

  .article-list {
    margin-bottom: 14px;
  }

  .trial-card {
    width: calc(100% - 24px);
    padding: 22px 18px;
  }

  .trial-form,
  .auth-tabs {
    grid-template-columns: 1fr;
  }
}

/* Personal V1.4.1 */
.import-dropzone {
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.import-dropzone.accept {
  background: #f4f6f2;
  border-color: #7f8e75;
  box-shadow: inset 0 0 0 1px #7f8e75;
}

.import-dropzone.reject {
  background: #fff7f6;
  border-color: #bd746d;
}

.import-selected-file {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.import-selected-file > div {
  display: grid;
  gap: 4px;
  margin-right: auto;
}

.import-selected-file span {
  color: var(--muted);
  font-size: 13px;
}

.import-row-editor {
  grid-column: 2 / -1;
  margin-top: 4px;
}

.import-row-editor > summary,
.import-source-values > summary {
  color: #555550;
  cursor: pointer;
  font-size: 13px;
  font-weight: 700;
}

.import-row-form {
  display: grid;
  gap: 12px;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 14px;
}

.import-row-form > label {
  display: grid;
  gap: 6px;
}

.import-row-form > label span {
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
}

.import-row-form input,
.import-row-form select {
  border: 1px solid var(--border);
  font: inherit;
  min-height: 40px;
  padding: 8px 10px;
}

.import-source-values,
.import-row-form .import-row-actions {
  grid-column: 1 / -1;
}

.import-source-values pre {
  background: #f7f7f5;
  color: #555550;
  font-size: 12px;
  line-height: 1.55;
  overflow: auto;
  padding: 12px;
  white-space: pre-wrap;
}

.import-undo-blockers {
  border-top: 1px solid #e5c7c4;
  padding: 18px 20px;
}

.import-undo-blockers header {
  margin-bottom: 10px;
}

.import-undo-blockers header p {
  color: var(--muted);
  margin: 5px 0 0;
}

.import-undo-blockers article {
  align-items: center;
  border-top: 1px solid var(--border);
  display: flex;
  gap: 18px;
  justify-content: space-between;
  padding: 14px 0;
}

.import-undo-blockers article > div {
  display: grid;
  gap: 4px;
}

.import-undo-blockers article span,
.import-undo-blockers article small {
  color: var(--muted);
  font-size: 12px;
}

.import-undo-blockers article p {
  margin: 0;
}

.review-guide,
.review-experimental-notice,
.review-confirmed-banner {
  border-bottom: 1px solid var(--border);
  padding: 16px 0;
}

.review-guide {
  position: relative;
}

.review-guide > button {
  background: transparent;
  border: 0;
  color: var(--muted);
  cursor: pointer;
  font-size: 20px;
  position: absolute;
  right: 0;
  top: 10px;
}

.review-guide p {
  color: var(--muted);
  margin: 6px 34px 12px 0;
}

.review-guide > div {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.review-guide > div span {
  background: #f7f7f5;
  color: #555550;
  display: grid;
  font-size: 12px;
  gap: 3px;
  padding: 10px;
}

.review-experimental-notice {
  align-items: baseline;
  display: flex;
  gap: 10px;
}

.review-experimental-notice span,
.review-confirmed-banner span {
  color: var(--muted);
  font-size: 13px;
}

.review-confirmed-banner {
  align-items: center;
  background: #f7f7f5;
  display: flex;
  gap: 14px;
  justify-content: space-between;
  padding-left: 14px;
  padding-right: 14px;
}

.review-confirmed-banner > div {
  display: grid;
  gap: 4px;
}

.review-revision-mode {
  margin-left: auto;
}

.review-revision-history {
  border-top: 1px solid var(--border);
  margin-top: 22px;
  padding-top: 14px;
}

.review-revision-history summary {
  cursor: pointer;
  font-weight: 700;
}

.review-revision-history article {
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: 5px;
  padding: 12px 0;
}

.review-revision-history article span,
.review-revision-history article p {
  color: var(--muted);
  font-size: 13px;
  margin: 0;
}

.report-plan-editor {
  border-bottom: 1px solid var(--border);
  margin-bottom: 12px;
  padding-bottom: 12px;
}

.report-plan-editor > summary {
  align-items: center;
  cursor: pointer;
  display: flex;
  font-weight: 700;
  justify-content: space-between;
  padding: 6px 0;
}

.report-progress-note,
.report-plan-list article,
.weekly-fact label {
  display: grid;
  gap: 5px;
}

.report-progress-note span,
.weekly-fact label > span,
.weekly-next-plan > p {
  color: var(--muted);
  font-size: 12px;
}

.report-progress-note textarea {
  min-height: 72px;
}

.report-plan-list {
  display: grid;
  max-height: 360px;
  overflow: auto;
}

.report-plan-list article {
  border-top: 1px solid var(--border);
  grid-template-columns: minmax(0, 1fr) auto;
  padding: 10px 0;
}

.report-plan-search {
  display: grid;
  gap: 6px;
  margin-top: 12px;
}

.report-plan-task-actions {
  display: flex;
  align-items: end;
  gap: 8px;
  flex-wrap: wrap;
}

.report-plan-task-actions > label {
  display: grid;
  gap: 4px;
  flex: 1 1 150px;
}

.report-plan-task-actions > label span {
  color: var(--muted);
  font-size: 12px;
}

.report-plan-list article > label {
  align-items: start;
  display: grid;
  gap: 8px;
  grid-column: 1 / -1;
  grid-template-columns: auto minmax(0, 1fr);
}

.report-plan-list article small,
.weekly-next-plan small {
  color: var(--muted);
  display: block;
  font-size: 11px;
  margin-top: 2px;
}

.report-plan-list article > input {
  min-width: 0;
}

.report-plan-order {
  display: flex;
  gap: 4px;
}

.weekly-fact-list,
.weekly-closure-notes,
.monthly-week-list {
  display: grid;
  gap: 10px;
}

.weekly-fact {
  align-items: end;
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(220px, 1.4fr) minmax(150px, .8fr) minmax(120px, .7fr);
  padding: 14px 0;
}

.weekly-fact > div {
  align-self: center;
  display: grid;
  gap: 4px;
}

.weekly-fact > div small {
  color: var(--muted);
}

.weekly-fact .full {
  grid-column: 1 / -1;
}

.weekly-next-plan {
  border-bottom: 1px solid var(--border);
  padding: 18px 0;
}

.weekly-next-plan h3,
.monthly-week-list h3,
.monthly-priorities h3 {
  margin: 0 0 5px;
}

.weekly-next-plan > div {
  display: grid;
  gap: 8px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.weekly-next-plan label {
  align-items: start;
  border: 1px solid var(--border);
  display: grid;
  gap: 9px;
  grid-template-columns: auto minmax(0, 1fr);
  padding: 10px;
}

.weekly-closure-notes {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  padding: 18px 0;
}

.weekly-output-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 10px 0 18px;
}

.weekly-output-grid article,
.monthly-summary-preview {
  border: 1px solid var(--border);
  padding: 14px;
}

.weekly-output-grid h3,
.monthly-summary-preview h3 {
  margin: 0 0 10px;
}

.weekly-output-grid pre,
.monthly-summary-preview pre {
  font: inherit;
  line-height: 1.65;
  margin: 0;
  min-height: 120px;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}

.weekly-copy-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.monthly-coverage-warning {
  background: #f5f3ed;
  border: 1px solid #ddd8ca;
  border-radius: 6px;
  display: grid;
  gap: 8px;
  padding: 16px;
}

.monthly-coverage-warning p {
  color: var(--muted);
  margin: 0;
}

.monthly-coverage-warning > div {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
}

.monthly-week-list {
  padding: 12px 0 18px;
}

.monthly-week-list article {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
}

.monthly-week-list article > div {
  display: grid;
  gap: 3px;
}

.monthly-week-list small {
  color: var(--muted);
}

.monthly-priorities {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 16px 0;
}

.monthly-priorities h3 {
  grid-column: 1 / -1;
}

@media (max-width: 820px) {
  .weekly-fact,
  .weekly-closure-notes,
  .weekly-output-grid,
  .weekly-next-plan > div,
  .monthly-priorities {
    grid-template-columns: 1fr;
  }

  .monthly-priorities h3 {
    grid-column: auto;
  }
}

.content-admin-categories {
  align-items: center;
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 12px;
}

.content-admin-categories > div {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.content-admin-categories button {
  background: transparent;
  border: 0;
  border-bottom: 2px solid transparent;
  color: var(--muted);
  cursor: pointer;
  font: inherit;
  padding: 10px 12px;
}

.content-admin-categories button.active {
  border-bottom-color: var(--text);
  color: var(--text);
  font-weight: 750;
}

.content-admin-categories span {
  color: var(--soft);
  font-size: 12px;
}

.content-admin-categories > #newContent {
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text);
  flex: 0 0 auto;
}

.content-admin-categories > #newContent:hover {
  background: #f5f5f5;
}

.content-admin-editor {
  min-width: 0;
}

.content-admin-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.content-admin-empty {
  color: var(--muted);
  line-height: 1.6;
  margin: 0;
  padding: 18px 16px;
}

.content-preview {
  border-top: 1px solid var(--border);
  margin: 0 24px;
  max-width: 860px;
  padding: 28px 0;
}

.content-preview .markdown-body {
  max-width: 68ch;
}

.content-preview > span,
.content-preview-summary {
  color: var(--muted);
}

.content-preview h1 {
  font-size: 28px;
  margin: 8px 0 12px;
}

.content-revision-history {
  border-top: 1px solid var(--border);
  margin: 0 24px 24px;
  padding-top: 18px;
}

.content-revision-history > summary {
  cursor: pointer;
  font-weight: 750;
}

.content-revision-history article {
  align-items: center;
  border-bottom: 1px solid var(--border);
  display: grid;
  gap: 12px;
  grid-template-columns: minmax(180px, 0.8fr) minmax(0, 1fr) auto;
  padding: 12px 0;
}

.content-revision-history article > div {
  display: grid;
  gap: 3px;
}

.content-revision-history article span,
.content-revision-history article p {
  color: var(--muted);
  font-size: 12px;
  margin: 0;
}

.confirmation-input-row {
  align-items: stretch;
  display: flex;
  gap: 8px;
}

.confirmation-input-row input {
  min-width: 0;
}

.confirmation-input-row button {
  flex: none;
}

.topbar-help-button {
  background: transparent;
  border: 0;
  color: var(--muted);
  cursor: pointer;
  font: inherit;
  padding: 8px 4px;
}

.topbar-help-button:hover {
  color: var(--text);
}

.auth-tab-label {
  border-bottom: 2px solid var(--text);
  color: var(--text);
  font-weight: 700;
  padding: 10px 0;
}

.invite-loaded-note {
  background: #f7f7f5;
  border: 1px solid var(--border);
  color: var(--muted);
  font-size: 13px;
  padding: 10px 12px;
}

.beta-application-link {
  color: var(--text);
  display: inline-block;
  font-weight: 700;
  margin-top: 14px;
  text-underline-offset: 4px;
}

.onboarding-notice {
  background: #fafafa;
}

.onboarding-copy {
  align-items: baseline;
  display: grid;
  gap: 4px;
  grid-template-columns: auto auto minmax(0, 1fr);
}

.onboarding-progress {
  color: var(--muted);
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  margin-right: 6px;
}

.feedback-history {
  border-top: 1px solid var(--border);
  margin-top: 12px;
  padding-top: 10px;
}

.feedback-history summary {
  color: var(--muted);
  cursor: pointer;
  font-size: 12px;
  font-weight: 700;
}

.feedback-history > div {
  display: grid;
  gap: 10px;
  margin-top: 10px;
}

.feedback-history article {
  border-top: 1px solid var(--border);
  display: grid;
  gap: 5px;
  padding-top: 9px;
}

.feedback-history article > span {
  color: var(--muted);
  font-size: 11px;
}

.feedback-history article p {
  font-size: 12px;
  line-height: 1.5;
  margin: 0;
}

.feedback-history blockquote {
  background: #f7f7f5;
  border-left: 2px solid #777;
  display: grid;
  font-size: 12px;
  gap: 3px;
  margin: 2px 0 0;
  padding: 8px 10px;
}

@media (max-width: 900px) {
  .import-row-editor {
    grid-column: 2;
  }

  .import-row-form {
    grid-template-columns: 1fr;
  }

  .import-source-values,
  .import-row-form .import-row-actions {
    grid-column: 1;
  }

  .review-guide > div {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .onboarding-copy {
    grid-template-columns: auto 1fr;
  }

  .onboarding-copy > span:last-child {
    grid-column: 1 / -1;
  }
}
/* Personal V1.5.2: closed-invite testing and operations close-out */
.beta-interview-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 12px 0;
}

.beta-interview-fields.hidden {
  display: none;
}

.field-error {
  outline: 2px solid #b54b4b;
  outline-offset: 4px;
}

.public-social-link {
  display: flex;
  flex-direction: column;
  gap: 6px;
  color: inherit;
  text-decoration: none;
}

.admin-batch-bar {
  display: grid;
  grid-template-columns: auto minmax(150px, 0.7fr) minmax(170px, 1fr) minmax(220px, 1.3fr) auto;
  align-items: center;
  gap: 10px;
  margin: 0 0 16px;
  padding: 12px 14px;
  border: 1px solid var(--line);
  background: #fafafa;
}

.admin-application-card.dirty {
  border-color: #777;
}

.admin-application-card.dirty::before {
  content: "有未保存修改";
  display: block;
  color: #555;
  font-size: 12px;
  font-weight: 700;
  margin-bottom: 8px;
}

.admin-application-select {
  display: inline-flex;
  align-items: center;
  margin-right: 8px;
}

.admin-application-select input {
  width: 18px;
  height: 18px;
}

.feedback-revision-list {
  margin-top: 14px;
  border-top: 1px solid var(--line);
  padding-top: 12px;
}

.feedback-revision-list article {
  padding: 10px 0;
  border-bottom: 1px solid var(--line);
}

.feedback-revision-list p,
.feedback-revision-list small {
  display: block;
  white-space: pre-wrap;
}

.admin-overview-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 18px;
}

.admin-overview-grid article {
  border: 1px solid var(--line);
  padding: 14px;
  background: #fafafa;
}

.admin-overview-grid span,
.admin-overview-grid small {
  display: block;
  color: var(--muted);
}

.admin-overview-grid strong {
  display: block;
  margin: 8px 0 4px;
  font-size: 19px;
}

.content-admin-embedded .content-admin {
  max-width: none;
  padding: 8px;
}

.onboarding-notice {
  position: relative;
  padding-bottom: 34px;
}

.onboarding-reopen-hint {
  position: absolute;
  left: 18px;
  bottom: 10px;
  color: var(--muted);
}

.tutorial-sections {
  display: grid;
  gap: 12px;
}

.tutorial-sections article {
  border: 1px solid var(--line);
  padding: 20px;
  background: #fff;
}

.tutorial-sections article > span {
  color: var(--muted);
  font-size: 13px;
  font-weight: 700;
}

.tutorial-sections h3 {
  margin: 8px 0 10px;
}

.tutorial-sections ol,
.tutorial-sections p {
  color: #555;
  line-height: 1.7;
}

.messages-toolbar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.message-list {
  border-top: 1px solid var(--line);
}

.message-item {
  padding: 18px 4px;
  border-bottom: 1px solid var(--line);
}

.message-item.unread {
  border-left: 3px solid #666;
  padding-left: 14px;
  background: #fafafa;
}

.message-item > div {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.message-item span {
  color: var(--muted);
  font-size: 13px;
}

.message-item p {
  white-space: pre-wrap;
  line-height: 1.65;
}

.feedback-submit-status {
  color: #666;
  font-size: 12px;
  line-height: 1.5;
}

.feedback-message-link {
  border: 0;
  background: transparent;
  padding: 0;
  text-align: left;
  color: #444;
  font-weight: 700;
  cursor: pointer;
}

.clinical-opus-body {
  margin: 0;
  background: #f7f7f7;
  color: #171717;
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", sans-serif;
}

.clinical-opus-page {
  width: min(1040px, calc(100% - 40px));
  margin: 0 auto;
  padding: 42px 0 80px;
}

.clinical-opus-page h1 {
  max-width: 820px;
  font-size: clamp(30px, 4vw, 48px);
  line-height: 1.12;
  margin: 18px 0;
}

.clinical-opus-lead {
  max-width: 760px;
  color: #555;
  font-size: 18px;
  line-height: 1.7;
}

.clinical-opus-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin: 32px 0;
}

.clinical-opus-grid article,
.clinical-opus-contact {
  border: 1px solid #ddd;
  background: #fff;
  padding: 24px;
}

.clinical-opus-grid h2,
.clinical-opus-contact h2 {
  margin-top: 0;
}

.clinical-opus-grid p,
.clinical-opus-contact p {
  color: #666;
  line-height: 1.65;
}

.clinical-opus-contact form,
.clinical-opus-contact label {
  display: grid;
  gap: 8px;
}

.clinical-opus-contact form {
  gap: 16px;
}

.clinical-opus-contact-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.clinical-opus-form-note {
  color: #666;
  font-size: 13px;
  line-height: 1.6;
  margin: -4px 0 0;
}

.clinical-opus-contact input,
.clinical-opus-contact textarea {
  box-sizing: border-box;
  width: 100%;
  padding: 12px;
  border: 1px solid #ccc;
  font: inherit;
}

.clinical-opus-contact textarea {
  min-height: 150px;
  resize: vertical;
}

@media (max-width: 900px) {
  .admin-batch-bar,
  .admin-overview-grid,
  .beta-interview-fields,
  .clinical-opus-grid {
    grid-template-columns: 1fr;
  }

  .clinical-opus-page {
    width: min(100% - 28px, 1040px);
    padding-top: 24px;
  }

  .clinical-opus-contact-grid {
    grid-template-columns: 1fr;
  }
}
