html.ui-v2 .tc-list-page,
html.ui-v2 .tc-workspace {
  width: 100%;
  min-width: 0;
}

html.ui-v2 .tc-safety-note,
html.ui-v2 .tc-photo-placeholder,
html.ui-v2 .tc-summary-card,
html.ui-v2 .tc-repeat-card,
html.ui-v2 .tc-route-card {
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-panel);
  background: var(--ui-surface);
}

html.ui-v2 .tc-safety-note {
  margin-bottom: 20px;
  padding: 16px 18px;
  border-left: 4px solid var(--ui-warning);
  background: color-mix(in srgb, var(--ui-warning), transparent 90%);
}

html.ui-v2 .tc-safety-note strong,
html.ui-v2 .tc-photo-placeholder strong {
  display: block;
  margin-bottom: 4px;
}

html.ui-v2 .tc-safety-note p,
html.ui-v2 .tc-photo-placeholder p {
  margin: 0;
  color: var(--ui-text-secondary);
  line-height: 1.5;
}

html.ui-v2 .tc-photo-placeholder {
  margin-top: 20px;
  padding: 16px 18px;
  border-style: dashed;
  background: var(--ui-surface-muted);
}

html.ui-v2 .tc-collection-toolbar,
html.ui-v2 .tc-route-card__header,
html.ui-v2 .tc-repeat-card,
html.ui-v2 .tc-summary-card > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

html.ui-v2 .tc-collection-toolbar {
  margin: 28px 0 12px;
}

html.ui-v2 .tc-collection-toolbar h2,
html.ui-v2 .tc-summary-card h2,
html.ui-v2 .tc-route-card h2,
html.ui-v2 .tc-repeat-card h3 {
  margin: 0;
  font-size: 18px;
}

html.ui-v2 .tc-repeat-list,
html.ui-v2 .tc-route-list {
  display: grid;
  gap: 12px;
}

html.ui-v2 .tc-repeat-card {
  padding: 16px 18px;
}

html.ui-v2 .tc-repeat-card p,
html.ui-v2 .tc-route-card p {
  margin: 6px 0 0;
  color: var(--ui-text-secondary);
}

html.ui-v2 .tc-repeat-card__type {
  display: block;
  margin-bottom: 4px;
  color: var(--ui-text-secondary);
  font-size: 13px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

html.ui-v2 .tc-repeat-card__actions,
html.ui-v2 .tc-route-card__header > div:last-child,
html.ui-v2 .tc-exception-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

html.ui-v2 .tc-warning-text {
  color: var(--ui-warning) !important;
  font-weight: 700;
}

html.ui-v2 .tc-route-card {
  padding: 18px;
}

html.ui-v2 .tc-segment-list {
  display: grid;
  gap: 8px;
  margin: 16px 0;
  padding: 0;
  list-style: none;
}

html.ui-v2 .tc-segment-list li {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 56px;
  padding: 10px 12px;
  border-radius: var(--ui-radius);
  background: var(--ui-surface-muted);
}

html.ui-v2 .tc-segment-list li > div {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

html.ui-v2 .tc-segment-list li > div:first-child {
  flex-direction: column;
  gap: 2px;
}

html.ui-v2 .tc-modal-grid,
html.ui-v2 .tc-handover-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

html.ui-v2 .tc-field--wide {
  grid-column: 1 / -1;
}

html.ui-v2 .tc-summary-card {
  padding: 18px;
}

html.ui-v2 .tc-summary-card p {
  margin: 10px 0 0;
}

html.ui-v2 .tc-summary-card ul {
  display: grid;
  gap: 8px;
  margin: 14px 0 0;
  padding: 0;
  list-style: none;
}

html.ui-v2 .tc-summary-card li {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

html.ui-v2 .tc-error-summary {
  margin-bottom: 22px;
  padding: 18px;
  border: 2px solid var(--ui-danger);
  border-radius: var(--ui-radius-panel);
  background: color-mix(in srgb, var(--ui-danger), transparent 90%);
}

html.ui-v2 .tc-error-summary.is-valid {
  border-color: var(--ui-success);
  background: color-mix(in srgb, var(--ui-success), transparent 90%);
}

html.ui-v2 .tc-error-summary h2 {
  margin: 0 0 12px;
  font-size: 18px;
}

html.ui-v2 .tc-error-summary ul {
  display: grid;
  gap: 6px;
  margin: 0;
  padding-left: 20px;
}

html.ui-v2 .tc-error-summary button {
  min-height: 44px;
  padding: 4px;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
  text-decoration: underline;
  cursor: pointer;
}

html.ui-v2 .tc-handover-actions {
  position: sticky;
  bottom: 12px;
  z-index: 2;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 22px;
  padding: 14px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-panel);
  background: color-mix(in srgb, var(--ui-surface), transparent 4%);
  box-shadow: var(--ui-shadow-panel);
}

html.ui-v2 .tc-handover-actions p {
  flex: 1 1 280px;
  margin: 0;
  color: var(--ui-text-secondary);
  font-size: 14px;
}

@media (max-width: 900px) {
  html.ui-v2 .tc-modal-grid,
  html.ui-v2 .tc-handover-grid {
    grid-template-columns: 1fr;
  }

  html.ui-v2 .tc-field--wide {
    grid-column: auto;
  }
}

@media (max-width: 640px) {
  html.ui-v2 .tc-collection-toolbar,
  html.ui-v2 .tc-repeat-card,
  html.ui-v2 .tc-route-card__header,
  html.ui-v2 .tc-segment-list li,
  html.ui-v2 .tc-handover-actions {
    align-items: stretch;
    flex-direction: column;
  }

  html.ui-v2 .tc-repeat-card__actions,
  html.ui-v2 .tc-route-card__header > div:last-child,
  html.ui-v2 .tc-segment-list li > div:last-child {
    display: grid;
    grid-template-columns: 1fr;
  }

  html.ui-v2 .tc-repeat-card__actions .btn,
  html.ui-v2 .tc-route-card__header .btn,
  html.ui-v2 .tc-segment-list .btn,
  html.ui-v2 .tc-collection-toolbar .btn,
  html.ui-v2 .tc-handover-actions .btn {
    width: 100%;
    min-height: 48px;
  }
}

html.ui-v2 .tc-photo-section,
html.ui-v2 .tc-document-panel {
  margin-top: var(--ui-space-6);
}

html.ui-v2 .tc-photo-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

html.ui-v2 .tc-photo-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-panel);
  background: var(--ui-surface);
}

html.ui-v2 .tc-photo-card:focus,
html.ui-v2 .tc-annotation-stage canvas:focus {
  outline: 3px solid color-mix(in srgb, var(--ui-accent), transparent 25%);
  outline-offset: 3px;
}

html.ui-v2 .tc-photo-card header,
html.ui-v2 .tc-photo-actions,
html.ui-v2 .tc-photo-thumb figcaption > div,
html.ui-v2 .tc-document-panel li {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
}

html.ui-v2 .tc-photo-card header {
  display: grid;
  align-items: flex-start;
  gap: var(--ui-space-2);
}

html.ui-v2 .tc-photo-card header .tc-photo-status {
  justify-self: start;
}

html.ui-v2 .tc-photo-card h3,
html.ui-v2 .tc-photo-card p {
  margin: 0;
}

html.ui-v2 .tc-photo-card header p,
html.ui-v2 .tc-photo-guidance,
html.ui-v2 .tc-photo-upload-status {
  color: var(--ui-text-secondary);
  font-size: var(--font-sm);
  line-height: 1.5;
}

html.ui-v2 .tc-photo-guidance {
  margin-top: var(--ui-space-3) !important;
}

html.ui-v2 .tc-photo-status {
  flex: 0 0 auto;
  padding: var(--ui-space-1) var(--ui-space-2);
  border-radius: 999px;
  background: color-mix(in srgb, var(--ui-warning), transparent 88%);
  color: var(--ui-warning);
  font-size: var(--font-sm);
  font-weight: 700;
}

html.ui-v2 .tc-photo-status--saved {
  background: color-mix(in srgb, var(--ui-success), transparent 88%);
  color: var(--ui-success);
}

html.ui-v2 .tc-photo-status--syncing {
  background: color-mix(in srgb, var(--ui-info), transparent 88%);
  color: var(--ui-info);
}

html.ui-v2 .tc-photo-status--optional {
  background: var(--ui-surface-muted);
  color: var(--ui-text-secondary);
}

html.ui-v2 .tc-photo-thumbnails {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(160px, 100%), 1fr));
  gap: var(--ui-space-2);
  margin: var(--ui-space-3) 0;
}

html.ui-v2 .tc-photo-thumb {
  min-width: 0;
  margin: 0;
  overflow: hidden;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius);
  background: var(--ui-surface-muted);
}

html.ui-v2 .tc-photo-thumb > img,
html.ui-v2 .tc-photo-local-preview {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

html.ui-v2 .tc-photo-thumb figcaption {
  display: grid;
  gap: var(--ui-space-2);
  padding: var(--ui-space-2) var(--ui-space-3);
  border-top: 1px solid var(--ui-border);
  background: var(--ui-surface);
  font-size: var(--font-sm);
}

html.ui-v2 .tc-photo-thumb-actions {
  justify-content: flex-end;
}

html.ui-v2 .tc-photo-thumb-actions .btn {
  min-height: 38px;
  padding: var(--ui-space-1) var(--ui-space-2);
}

html.ui-v2 .tc-photo-delete {
  color: var(--ui-danger);
}

html.ui-v2 .tc-photo-quality-flag {
  color: var(--ui-warning);
  font-weight: 700;
}

html.ui-v2 .tc-photo-actions {
  margin-top: auto;
  padding-top: var(--ui-space-3);
  border-top: 1px solid var(--ui-border);
}

html.ui-v2 .tc-photo-upload-status {
  min-height: 1.5em;
  margin-top: var(--ui-space-2);
}

html.ui-v2 .tc-photo-thumb .btn,
html.ui-v2 .tc-photo-actions .btn {
  min-height: 44px;
}

html.ui-v2 .tc-photo-annotations {
  display: grid !important;
  grid-template-columns: repeat(3, 64px);
}

html.ui-v2 .tc-photo-annotations img {
  width: 64px;
  height: 48px;
  border-radius: var(--ui-radius);
  object-fit: cover;
}

html.ui-v2 .tc-photo-upload-status[data-state="uploading"] { color: var(--ui-warning); }
html.ui-v2 .tc-photo-upload-status[data-state="saved"] { color: var(--ui-success); }
html.ui-v2 .tc-photo-upload-status[data-state="error"] { color: var(--ui-danger); }

html.ui-v2 .tc-document-panel ul {
  display: grid;
  gap: var(--ui-space-2);
  padding: 0;
  list-style: none;
}

html.ui-v2 .tc-document-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

html.ui-v2 .tc-document-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-panel);
  background: var(--ui-surface);
}

html.ui-v2 .tc-document-card header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: var(--ui-space-3);
}

html.ui-v2 .tc-document-card h3,
html.ui-v2 .tc-document-card p {
  margin: 0;
}

html.ui-v2 .tc-document-card header p {
  margin-top: var(--ui-space-1);
  color: var(--ui-text-secondary);
}

html.ui-v2 .tc-document-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--ui-space-2);
  margin-top: auto;
  padding-top: var(--ui-space-3);
}

html.ui-v2 .tc-document-other-heading {
  margin-top: var(--ui-space-5);
}

html.ui-v2 .tc-document-panel li {
  min-height: 52px;
  justify-content: space-between;
  padding: var(--ui-space-2) var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius);
  background: var(--ui-surface);
}

html.ui-v2 .tc-annotation-stage {
  position: relative;
  width: fit-content;
  max-width: 100%;
  margin: var(--ui-space-4) auto;
  touch-action: none;
}

html.ui-v2 .tc-annotation-stage img {
  display: block;
  max-width: 100%;
  max-height: 60vh;
}

html.ui-v2 .tc-annotation-stage canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  cursor: crosshair;
}

html.ui-v2 .visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

@media (max-width: 900px) {
  html.ui-v2 .tc-photo-grid,
  html.ui-v2 .tc-document-grid { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
  html.ui-v2 .tc-photo-actions,
  html.ui-v2 .tc-photo-thumb figcaption > div,
  html.ui-v2 .tc-document-panel li {
    align-items: stretch;
    flex-direction: column;
  }

  html.ui-v2 .tc-photo-actions .btn,
  html.ui-v2 .tc-photo-thumb .btn,
  html.ui-v2 .tc-document-actions .btn,
  html.ui-v2 .tc-document-panel .btn {
    width: 100%;
    min-height: 48px;
  }
}

html.ui-v2 .tc-loading {
  min-height: 140px;
  padding: var(--ui-space-6);
}

html.ui-v2 .tc-list {
  display: grid;
  gap: var(--ui-space-3);
}

html.ui-v2 .tc-list-card {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-5);
  border: 1px solid var(--ui-border);
  background: var(--ui-surface);
  padding: var(--ui-space-5);
}

html.ui-v2 .tc-list-card__main {
  display: grid;
  min-width: 0;
  gap: var(--ui-space-1);
}

html.ui-v2 .tc-list-card__heading,
html.ui-v2 .tc-list-meta,
html.ui-v2 .tc-project-bar > div {
  display: flex;
  min-width: 0;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--ui-space-2) var(--ui-space-4);
}

html.ui-v2 .tc-list-card h2 {
  margin: var(--ui-space-1) 0 0;
  color: var(--ui-text);
  font-size: var(--font-lg);
}

html.ui-v2 .tc-list-card p,
html.ui-v2 .tc-list-meta {
  margin: 0;
  color: var(--ui-text-secondary);
}

html.ui-v2 .tc-list-meta {
  margin-top: var(--ui-space-2);
  font-size: var(--font-sm);
}

html.ui-v2 .tc-project-number {
  color: var(--ui-text-secondary);
  font-size: var(--font-sm);
  font-weight: 700;
}

html.ui-v2 .tc-status {
  display: inline-flex;
  min-height: 28px;
  align-items: center;
  border: 1px solid var(--ui-border);
  border-radius: 999px;
  background: var(--ui-surface-muted);
  color: var(--ui-text-secondary);
  font-size: var(--font-sm);
  font-weight: 700;
  padding: 2px 10px;
}

html.ui-v2 .tc-status--approved,
html.ui-v2 .tc-status--in_progress {
  border-color: color-mix(in srgb, var(--ui-success), transparent 60%);
  background: color-mix(in srgb, var(--ui-success), transparent 90%);
  color: var(--ui-success);
}

html.ui-v2 .tc-status--changes_requested {
  border-color: color-mix(in srgb, var(--ui-warning), transparent 58%);
  background: color-mix(in srgb, var(--ui-warning), transparent 90%);
  color: var(--ui-warning);
}

html.ui-v2 .tc-project-bar {
  position: sticky;
  z-index: 20;
  top: 56px;
  display: flex;
  min-height: 58px;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-4);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-panel);
  background: color-mix(in srgb, var(--ui-surface), transparent 2%);
  box-shadow: var(--ui-shadow-panel);
  padding: var(--ui-space-2) var(--ui-space-4);
}

html.ui-v2 .tc-project-bar span {
  color: var(--ui-text-secondary);
  font-size: var(--font-sm);
}

html.ui-v2 .tc-save-status[data-state="saved"] { color: var(--ui-success); }
html.ui-v2 .tc-save-status[data-state="pending"],
html.ui-v2 .tc-save-status[data-state="saving"] { color: var(--ui-warning); }
html.ui-v2 .tc-save-status[data-state="error"] { color: var(--ui-danger); }

html.ui-v2 .tc-workspace-grid {
  display: grid;
  min-width: 0;
  grid-template-columns: 240px minmax(520px, 740px) minmax(260px, 300px);
  justify-content: center;
  gap: var(--ui-space-5);
  margin-top: var(--ui-space-5);
}

html.ui-v2 .tc-section-sidebar,
html.ui-v2 .tc-completeness {
  min-width: 0;
}

html.ui-v2 .tc-section-nav {
  position: sticky;
  top: 134px;
  display: grid;
  gap: var(--ui-space-1);
}

html.ui-v2 .tc-section-nav button {
  display: grid;
  width: 100%;
  min-height: 52px;
  grid-template-columns: 28px minmax(0, 1fr);
  align-items: center;
  gap: var(--ui-space-2);
  border: 1px solid transparent;
  border-radius: var(--ui-radius-panel);
  background: transparent;
  color: var(--ui-text-secondary);
  padding: var(--ui-space-2);
  text-align: left;
}

html.ui-v2 .tc-section-nav button > span:first-child {
  display: inline-flex;
  width: 28px;
  height: 28px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--ui-border);
  border-radius: 50%;
  background: var(--ui-surface);
  font-size: var(--font-sm);
}

html.ui-v2 .tc-section-nav button small {
  display: block;
  color: var(--ui-text-muted);
}

html.ui-v2 .tc-section-nav button.is-active {
  border-color: var(--ui-border);
  background: var(--ui-surface);
  box-shadow: inset 3px 0 0 var(--ui-accent);
  color: var(--ui-text);
}

html.ui-v2 .tc-section-nav button.is-complete > span:first-child {
  border-color: var(--ui-success);
  background: color-mix(in srgb, var(--ui-success), transparent 90%);
  color: var(--ui-success);
}

html.ui-v2 .tc-section-nav button:disabled {
  cursor: not-allowed;
  opacity: 0.62;
}

html.ui-v2 .tc-content {
  min-width: 0;
}

html.ui-v2 .tc-form-section {
  display: grid;
  gap: var(--ui-space-4);
}

html.ui-v2 .tc-section-heading,
html.ui-v2 .tc-readonly-card,
html.ui-v2 .tc-form,
html.ui-v2 .tc-guidance,
html.ui-v2 .tc-role-list,
html.ui-v2 .tc-party-cards,
html.ui-v2 .tc-completeness details {
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-panel);
  background: var(--ui-surface);
  box-shadow: var(--ui-shadow-panel);
  padding: var(--ui-space-5);
}

html.ui-v2 .tc-section-heading > span {
  color: var(--ui-accent);
  font-size: var(--font-sm);
  font-weight: 700;
}

html.ui-v2 .tc-section-heading h1 {
  margin: var(--ui-space-1) 0;
  color: var(--ui-text);
  font-size: 22px;
}

html.ui-v2 .tc-section-heading p,
html.ui-v2 .tc-guidance p {
  margin: 0;
  color: var(--ui-text-secondary);
  font-size: 16px;
}

html.ui-v2 .tc-readonly-card h2,
html.ui-v2 .tc-role-summary h2,
html.ui-v2 .tc-party-cards h2 {
  margin: 0 0 var(--ui-space-3);
  color: var(--ui-text);
  font-size: var(--font-lg);
}

html.ui-v2 .tc-readonly-card dl {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-3) var(--ui-space-5);
  margin: 0;
}

html.ui-v2 .tc-readonly-card dl > div {
  min-width: 0;
}

html.ui-v2 .tc-readonly-card dt {
  color: var(--ui-text-muted);
  font-size: var(--font-sm);
}

html.ui-v2 .tc-readonly-card dd {
  margin: 2px 0 0;
  overflow-wrap: anywhere;
  color: var(--ui-text);
  font-weight: 600;
}

html.ui-v2 .tc-form {
  display: grid;
  gap: var(--ui-space-5);
}

html.ui-v2 .tc-form-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-4);
}

html.ui-v2 .tc-field,
html.ui-v2 .tc-form .form-group {
  display: grid;
  align-content: start;
  gap: 6px;
}

html.ui-v2 .tc-field label,
html.ui-v2 .tc-form .form-group label,
html.ui-v2 .tc-role-row label {
  color: var(--ui-text);
  font-size: 15px;
  font-weight: 650;
}

html.ui-v2 .tc-field :is(input, select, textarea),
html.ui-v2 .tc-role-controls select,
html.ui-v2 #tc-party-form :is(input, select, textarea),
html.ui-v2 #tc-correction-form :is(input, select, textarea) {
  width: 100%;
  min-height: 48px;
  border: 1px solid var(--ui-border-strong);
  border-radius: var(--ui-radius);
  background: var(--ui-surface);
  color: var(--ui-text);
  font-size: 16px;
  padding: 10px 12px;
}

html.ui-v2 .tc-validation-attempted :is(input, select, textarea)[required]:invalid,
html.ui-v2 .tc-content :is(input, select, textarea)[aria-invalid="true"] {
  border-color: var(--ui-danger);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ui-danger), transparent 82%);
}

html.ui-v2 .tc-field-invalid:is(fieldset, .tc-confirmation, .tc-role-row, .tc-photo-card, .tc-document-card, .tc-repeat-card, .tc-route-card, .tc-collection-toolbar) {
  border-color: var(--ui-danger);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--ui-danger), transparent 86%);
}

html.ui-v2 .tc-field-error {
  display: block;
  flex: 1 0 100%;
  grid-column: 1 / -1;
  margin-top: 4px;
  color: var(--ui-danger);
  font-size: var(--font-sm);
  font-weight: 700;
}

html.ui-v2 .tc-field textarea,
html.ui-v2 #tc-party-form textarea,
html.ui-v2 #tc-correction-form textarea {
  resize: vertical;
}

html.ui-v2 .tc-form fieldset {
  display: grid;
  gap: var(--ui-space-2);
  min-width: 0;
  margin: 0;
  border: 0;
  padding: 0;
}

html.ui-v2 .tc-form legend {
  margin-bottom: var(--ui-space-1);
  color: var(--ui-text);
  font-size: 16px;
  font-weight: 700;
}

html.ui-v2 .tc-choice,
html.ui-v2 .tc-confirmation {
  display: flex;
  min-height: 48px;
  align-items: flex-start;
  gap: var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius);
  padding: var(--ui-space-3);
}

html.ui-v2 .tc-choice input,
html.ui-v2 .tc-confirmation input {
  width: 20px;
  min-width: 20px;
  height: 20px;
  min-height: 20px;
  margin-top: 1px;
}

html.ui-v2 .tc-operator-choices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--ui-space-2);
}

html.ui-v2 .tc-operator-choices button {
  min-height: 52px;
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-panel);
  background: var(--ui-surface);
  color: var(--ui-text);
  padding: var(--ui-space-3);
  text-align: left;
}

html.ui-v2 .tc-operator-choices button:hover {
  border-color: var(--ui-accent);
  background: color-mix(in srgb, var(--ui-accent), transparent 94%);
}

html.ui-v2 .tc-role-list {
  display: grid;
  gap: 0;
  padding-block: var(--ui-space-2);
}

html.ui-v2 .tc-role-row {
  display: grid;
  grid-template-columns: minmax(180px, 0.8fr) minmax(260px, 1.2fr);
  align-items: center;
  gap: var(--ui-space-4);
  border-bottom: 1px solid var(--ui-border-subtle);
  padding: var(--ui-space-3) 0;
}

html.ui-v2 .tc-role-row:last-child {
  border-bottom: 0;
}

html.ui-v2 .tc-role-controls {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: var(--ui-space-2);
}

html.ui-v2 .tc-role-summary {
  display: grid;
  gap: var(--ui-space-2);
  border: 2px solid var(--ui-border);
  border-radius: var(--ui-radius-panel);
  background: var(--ui-surface-muted);
  padding: var(--ui-space-4);
}

html.ui-v2 .tc-role-summary p {
  margin: 0;
}

html.ui-v2 .tc-party-cards {
  display: grid;
  gap: var(--ui-space-2);
}

html.ui-v2 .tc-party-cards article {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--ui-space-3);
  border-top: 1px solid var(--ui-border-subtle);
  padding-top: var(--ui-space-3);
}

html.ui-v2 .tc-party-cards article > div {
  display: grid;
  min-width: 0;
}

html.ui-v2 .tc-party-cards span {
  overflow-wrap: anywhere;
  color: var(--ui-text-secondary);
  font-size: var(--font-sm);
}

html.ui-v2 .tc-completeness {
  position: sticky;
  top: 134px;
  align-self: start;
}

html.ui-v2 .tc-completeness details {
  padding: 0;
}

html.ui-v2 .tc-completeness summary {
  min-height: 48px;
  cursor: pointer;
  font-weight: 700;
  padding: var(--ui-space-4);
}

html.ui-v2 .tc-completeness__body {
  border-top: 1px solid var(--ui-border-subtle);
  padding: var(--ui-space-4);
}

html.ui-v2 .tc-completeness ul {
  display: grid;
  gap: var(--ui-space-2);
  margin: var(--ui-space-3) 0;
  padding-left: 20px;
}

html.ui-v2 .tc-completeness li.is-complete {
  color: var(--ui-success);
}

html.ui-v2 .tc-completeness p,
html.ui-v2 .field-hint {
  color: var(--ui-text-secondary);
  font-size: 14px;
}

html.ui-v2 .tc-mobile-actions {
  display: flex;
  justify-content: flex-end;
}

html.ui-v2 .tc-section-pager {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: var(--ui-space-3);
  margin-top: var(--ui-space-5);
  padding: var(--ui-space-3);
  border: 1px solid var(--ui-border);
  border-radius: var(--ui-radius-panel);
  background: var(--ui-surface);
  box-shadow: var(--ui-shadow-sm);
}

html.ui-v2 .tc-section-pager .btn:first-child {
  justify-self: start;
}

html.ui-v2 .tc-section-pager .btn:last-child {
  justify-self: end;
}

html.ui-v2 .tc-section-pager__progress {
  grid-column: 1 / -1;
  grid-row: 1;
  justify-self: center;
  color: var(--ui-text-secondary);
  font-size: var(--font-sm);
  font-weight: 700;
  white-space: nowrap;
}

html.ui-v2 .tc-content:has(.tc-section-pager) .tc-mobile-actions:has(#tc-registration-next) {
  display: none;
}

@media (max-width: 1240px) {
  html.ui-v2 .tc-workspace-grid {
    grid-template-columns: 220px minmax(500px, 740px);
  }

  html.ui-v2 .tc-completeness {
    position: static;
    grid-column: 2;
  }
}

@media (max-width: 900px) {
  html.ui-v2 .tc-project-bar {
    position: static;
    align-items: flex-start;
    flex-direction: column;
  }

  html.ui-v2 .tc-workspace-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  html.ui-v2 .tc-section-sidebar,
  html.ui-v2 .tc-content,
  html.ui-v2 .tc-completeness {
    grid-column: 1;
  }

  html.ui-v2 .tc-section-nav {
    position: static;
    display: flex;
    overflow-x: auto;
    padding-bottom: var(--ui-space-1);
  }

  html.ui-v2 .tc-section-nav button {
    min-width: 210px;
  }
}

@media (max-width: 640px) {
  html.ui-v2 .tc-list-card,
  html.ui-v2 .tc-party-cards article {
    align-items: stretch;
    flex-direction: column;
  }

  html.ui-v2 .tc-list-card > .btn,
  html.ui-v2 .tc-party-cards .btn {
    width: 100%;
  }

  html.ui-v2 .tc-section-heading,
  html.ui-v2 .tc-readonly-card,
  html.ui-v2 .tc-form,
  html.ui-v2 .tc-guidance,
  html.ui-v2 .tc-role-list,
  html.ui-v2 .tc-party-cards {
    padding: var(--ui-space-4);
  }

  html.ui-v2 .tc-readonly-card dl,
  html.ui-v2 .tc-form-grid,
  html.ui-v2 .tc-operator-choices,
  html.ui-v2 .tc-role-row {
    grid-template-columns: minmax(0, 1fr);
  }

  html.ui-v2 .tc-role-row {
    align-items: stretch;
  }

  html.ui-v2 .tc-mobile-actions {
    position: sticky;
    z-index: 10;
    bottom: 0;
    margin: 0 calc(var(--ui-space-4) * -1) calc(var(--ui-space-4) * -1);
    border-top: 1px solid var(--ui-border);
    background: var(--ui-surface);
    padding: var(--ui-space-3) var(--ui-space-4);
  }

  html.ui-v2 .tc-mobile-actions .btn {
    width: 100%;
    min-height: 48px;
  }

  html.ui-v2 .tc-section-pager {
    position: sticky;
    z-index: 10;
    bottom: 0;
    border-radius: var(--ui-radius-panel) var(--ui-radius-panel) 0 0;
    box-shadow: 0 -8px 24px rgb(15 23 42 / 10%);
  }

  html.ui-v2 .tc-section-pager .btn {
    width: 100%;
    min-height: 48px;
  }
}
.tc-review-notice { margin: 16px; padding: 18px; border: 2px solid var(--color-warning, #d97706); border-radius: 12px; background: #fff8e7; }
.tc-review-notice article, .tc-review-package { margin-top: 12px; padding-top: 12px; border-top: 1px solid #e5e7eb; }
.tc-review-notice li { margin: 12px 0; }
.tc-review-notice li > span, .tc-review-notice li > small, .tc-review-answer { display: block; }
.tc-review-notice textarea { display: block; width: 100%; min-height: 72px; margin: 6px 0; }
.tc-review-page { max-width: 1440px; margin: 0 auto; }
.tc-review-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.tc-review-grid > .card { padding: 22px; }
.tc-review-grid h2 { margin-top: 0; }
.tc-review-guide { grid-column: 1 / -1; }
.tc-review-guide ol { display: grid; gap: 8px; margin: 14px 0; padding-left: 24px; }
.tc-review-guide p { margin-bottom: 0; color: var(--ui-text-muted, #64748b); }
.tc-review-findings dl { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin: 16px 0 0; }
.tc-review-findings dl > div { border-radius: 10px; background: #f8fafc; padding: 10px; }
.tc-review-findings dt { color: var(--ui-text-muted, #64748b); font-size: 13px; }
.tc-review-findings dd { margin: 4px 0 0; font-size: 20px; font-weight: 750; }
.tc-review-grid .tc-form > label { display: grid; gap: 6px; font-weight: 650; }
.tc-review-grid .tc-form > label :is(input, select, textarea) { width: 100%; font-weight: 400; }
.tc-review-issues, .tc-review-products, .tc-review-package ul { display: grid; gap: 8px; padding-left: 20px; }
.tc-review-issues li span, .tc-review-issues li small, .tc-review-products li span, .tc-review-products li small, .tc-review-package li span, .tc-review-package li small { display: block; }
.tc-review-issues li[data-severity="blocking"] strong { color: #b42318; }
.tc-review-package > div { display: flex; justify-content: space-between; gap: 12px; }
.tc-review-release { grid-column: 1 / -1; }
.tc-review-checklist { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin: 16px 0; }
.tc-review-checklist p { margin: 0; border: 1px solid #fecaca; border-radius: 10px; background: #fff7f7; padding: 12px; color: #b42318; font-weight: 650; }
.tc-review-checklist p[data-complete="true"] { border-color: #abefc6; background: #ecfdf3; color: #027a48; }
.tc-snapshot-ok { display: grid; gap: 4px; overflow-wrap: anywhere; }
.tc-review-completeness,
.tc-review-evidence,
.tc-review-all-data { grid-column: 1 / -1; }
.tc-review-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.tc-review-section-heading p { margin: 4px 0 0; color: var(--ui-text-muted, #64748b); }
.tc-review-completeness__score { display: grid; width: 64px; height: 64px; place-items: center; flex: 0 0 auto; border-radius: 50%; background: #fff7ed; color: #b54708; font-size: 18px; font-weight: 800; }
.tc-review-completeness__score[data-complete="true"] { background: #ecfdf3; color: #027a48; }
.tc-review-section-status { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-top: 18px; }
.tc-review-section-status > span { display: flex; min-height: 46px; align-items: center; gap: 8px; border: 1px solid #fecaca; border-radius: 10px; background: #fff7f7; padding: 8px 10px; color: #b42318; }
.tc-review-section-status > span[data-complete="true"] { border-color: #abefc6; background: #ecfdf3; color: #027a48; }
.tc-review-section-status strong { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; background: currentColor; color: #fff; }
.tc-review-completeness__note { margin: 16px 0 0; font-weight: 600; }
.tc-review-evidence-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.tc-review-evidence-grid article { display: grid; grid-template-columns: 132px minmax(0, 1fr); gap: 14px; align-items: start; border: 1px solid var(--ui-border, #e2e8f0); border-radius: 12px; padding: 12px; }
.tc-review-evidence-grid img { width: 132px; height: 100px; border-radius: 8px; object-fit: cover; background: #f1f5f9; }
.tc-review-evidence-grid article > div { display: grid; gap: 6px; min-width: 0; overflow-wrap: anywhere; }
.tc-review-document-link { display: grid; width: 132px; min-height: 100px; place-items: center; border-radius: 8px; background: #f1f5f9; color: var(--ui-primary, #e63312); font-weight: 700; text-align: center; }
.tc-review-all-data { display: grid; gap: 10px; }
.tc-review-all-data > details { border: 1px solid var(--ui-border, #e2e8f0); border-radius: 12px; background: #fff; overflow: hidden; }
.tc-review-all-data > details > summary { cursor: pointer; padding: 16px 18px; font-weight: 750; background: #f8fafc; }
.tc-review-all-data > details[open] > summary { border-bottom: 1px solid var(--ui-border, #e2e8f0); }
.tc-review-detail-body { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; padding: 16px; }
.tc-review-data-section { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.tc-review-data-section > h3, .tc-review-data-section > .tc-review-missing { grid-column: 1 / -1; }
.tc-review-record { min-width: 0; border: 1px solid var(--ui-border, #e2e8f0); border-radius: 10px; padding: 14px; }
.tc-review-record h3 { margin: 0 0 10px; font-size: 15px; }
.tc-review-record dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 16px; margin: 0; }
.tc-review-record dl > div { min-width: 0; }
.tc-review-record dt { color: var(--ui-text-muted, #64748b); font-size: 12px; font-weight: 650; }
.tc-review-record dd { margin: 2px 0 0; overflow-wrap: anywhere; font-weight: 550; }
.tc-review-missing { color: #b42318; font-style: normal; font-weight: 650; }
.tc-review-role-table { display: grid; gap: 8px; }
.tc-review-role-table > div { display: flex; justify-content: space-between; gap: 14px; border-bottom: 1px solid #eef2f6; padding-bottom: 8px; }
@media (max-width: 900px) { .tc-review-grid { grid-template-columns: 1fr; } .tc-review-release { grid-column: auto; } }
@media (max-width: 900px) {
  .tc-review-section-status { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tc-review-evidence-grid, .tc-review-detail-body, .tc-review-data-section { grid-template-columns: 1fr; }
  .tc-review-checklist { grid-template-columns: 1fr; }
  .tc-review-findings dl { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .tc-review-section-status { grid-template-columns: 1fr; }
  .tc-review-evidence-grid article { grid-template-columns: 88px minmax(0, 1fr); }
  .tc-review-evidence-grid img, .tc-review-document-link { width: 88px; height: 76px; min-height: 76px; }
  .tc-review-record dl { grid-template-columns: 1fr; }
}
