.ft-form,
.settings-form {min-width: 0;}
.ft-form label:not([class]) {color: var(--text-secondary);font-size: var(--font-size-label);font-weight: var(--font-weight-control);margin-bottom: 6px;}
.ft-form textarea.form-control {min-height: calc(var(--control-height) * 2);}
.ft-form textarea.form-control[rows="1"] {min-height: var(--control-height);}
.ft-form .input-group > :not(:last-child) {border-top-right-radius: 0;border-bottom-right-radius: 0;}
.ft-form .input-group > :not(:first-child) {border-top-left-radius: 0;border-bottom-left-radius: 0;}
.ft-form :is(.form-text,.form-section-description,small) {color: var(--text-secondary);font-size: var(--font-size-small);font-weight: var(--font-weight-body);line-height: var(--line-height);overflow-wrap: anywhere;}
.ft-form .field-validation-valid,
.ft-form .validation-summary-valid,
.ft-form [data-error-summary]:empty,
.ft-form [data-dirty-status]:empty {display: none;}
.ft-form :is(.field-validation-error,span.text-danger) {display: block;font-size: var(--font-size-small);line-height: var(--line-height);overflow-wrap: anywhere;}
.ft-form .validation-summary-errors {padding: var(--space-4);margin-bottom: var(--space-4);border: 1px solid var(--danger);border-radius: var(--radius);background: var(--danger-light);color: var(--danger);overflow-wrap: anywhere;}
.ft-form .validation-summary-errors ul {margin: 0;}
.ft-form :is(.form-control,.form-select):is(.input-validation-error,.is-invalid,[aria-invalid="true"]) {border: 2px solid var(--danger);box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 15%, transparent);}
.ft-form .form-required {color: var(--danger);}
.form-section {min-width: 0;padding: var(--space-4);margin: 0;border: 1px solid var(--border);border-radius: var(--radius-lg);background: var(--surface);}
.form-section h2,
.form-section > legend {color: var(--text);font-size: var(--font-size-section);font-weight: var(--font-weight-heading);margin: 0 0 var(--space-3);}
.form-section > legend {float: left;display: flex;align-items: center;gap: var(--space-2);width: 100%;padding: 0;line-height: var(--line-height);}
.form-section > legend + * {clear: both;}
.form-section-header {display: flex;align-items: center;justify-content: space-between;flex-wrap: wrap;gap: var(--space-3);margin-bottom: var(--space-4);}
.form-section-header > div {min-width: 0;}
.form-section-header h2 {margin-bottom: var(--space-1);}
.form-section-header p,
.form-section-description {margin: 0 0 var(--space-3);color: var(--text-secondary);font-size: var(--font-size-small);line-height: var(--line-height);}
.form-section-header p {margin-bottom: 0;}
.form-section-icon {display: grid;place-items: center;flex-shrink: 0;width: 30px;height: 30px;border-radius: var(--radius);color: var(--text-secondary);background: var(--surface-secondary);}
.form-choice-grid,
.check-grid {display: grid;grid-template-columns: repeat(auto-fit,minmax(min(100%,224px),1fr));gap: var(--space-3);}
.form-disclosure > summary {min-height: var(--control-height);padding-block: var(--space-2);color: var(--text);font-size: var(--font-size-section);font-weight: var(--font-weight-control);cursor: pointer;}
.form-disclosure[open] > summary {margin-bottom: var(--space-4);}
.form-media-preview {border: 1px solid var(--border);border-radius: var(--radius-lg);background: var(--surface-secondary);color: var(--text-muted);overflow: hidden;}
.form-upload {position: relative;border: 1px solid var(--border-strong);border-radius: var(--radius);color: var(--text);background: var(--surface-secondary);}
.form-upload > label {display: flex;align-items: center;justify-content: center;gap: var(--space-2);min-height: var(--control-height);padding: var(--space-3);margin: 0;font-size: var(--font-size-label);font-weight: var(--font-weight-control);cursor: pointer;}
.form-upload:hover {background: var(--surface-muted);}
.form-upload:focus-within {outline: 3px solid var(--focus);outline-offset: 3px;}
.form-upload-input {position: absolute;inset: 0;width: 100%;height: 100%;opacity: 0;cursor: pointer;}
.form-upload-status {margin: var(--space-2) 0;color: var(--text-secondary);font-size: var(--font-size-small);overflow-wrap: anywhere;}
.form-upload-status:empty {display: none;}
.form-switch-row .form-label {margin-bottom: 4px;}
.form-switch-row p {margin: 0;color: var(--text-secondary);font-size: var(--font-size-small);}
.form-link-button {padding: 0;min-height: var(--control-height);border: 0;background: transparent;color: var(--primary-hover);font: inherit;font-weight: var(--font-weight-control);cursor: pointer;}
.form-choice,
.check-card {display: flex;align-items: center;gap: var(--space-3);min-height: 44px;padding: var(--space-3);border: 1px solid var(--border);border-radius: var(--radius);background: var(--surface-secondary);color: var(--text);font-size: var(--font-size-label);cursor: pointer;}
.form-choice:has(input:checked),
.check-card:has(input:checked) {border-color: var(--primary);background: var(--primary-light);}
.form-choice :is(input[type="checkbox"],input[type="radio"]),
.check-card input {flex-shrink: 0;margin: 0;}
.form-choice--row {justify-content: space-between;padding: var(--space-3) 0;border: 0;border-bottom: 1px solid var(--border);border-radius: 0;background: transparent;}
.form-choice--row:has(input:checked) {background: transparent;}
.auth-switch {display: flex;align-items: center;gap: var(--space-2);min-height: var(--control-height);padding: var(--space-3);border: 1px solid var(--border);border-radius: var(--radius);background: var(--surface-secondary);}
.auth-switch .form-check-input {float: none;flex-shrink: 0;margin: 0;}
.check-card :is(strong,small) {display: block;}
.check-card small {margin-top: 3px;color: var(--text-secondary);font-size: var(--font-size-small);}
.ft-form .form-check-input[role="switch"] {flex-shrink: 0;width: 2.75rem;height: 1.5rem;border: 1px solid var(--border-strong);border-radius: 2rem;appearance: none;background-color: var(--surface-muted);background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20'%3E%3Ccircle cx='10' cy='10' r='8' fill='%23596779'/%3E%3C/svg%3E");background-position: left center;background-repeat: no-repeat;cursor: pointer;}
.ft-form .form-check-input[role="switch"]:checked {border-color: var(--primary);background-color: var(--check-fill);background-position: right center;background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20'%3E%3Ccircle cx='10' cy='10' r='8' fill='white'/%3E%3C/svg%3E");}
.ft-form input[type="color"].form-control {width: 44px;min-width: 44px;padding: 5px;cursor: pointer;}
.ft-form input[type="color"]::-webkit-color-swatch-wrapper {padding: 0;}
.ft-form input[type="color"]::-webkit-color-swatch {border: 0;border-radius: var(--radius-sm);}
.form-actions,
.record-edit-actions,
.form-action-buttons {display: flex;align-items: center;justify-content: flex-end;flex-wrap: wrap;gap: var(--space-2);min-width: 0;}
.form-actions {margin-top: var(--space-6);padding-top: var(--space-4);border-top: 1px solid var(--border);}
.form-actions--inline {margin-top: 0;padding-top: 0;border-top: 0;}
.form-actions .btn,
.record-edit-actions .btn {white-space: normal;overflow-wrap: anywhere;}
.form-actions--sticky {position: sticky;bottom: var(--space-3);z-index: 10;justify-content: space-between;padding: var(--space-4);border: 1px solid var(--border);border-radius: var(--radius-lg);background: var(--surface);box-shadow: var(--shadow-soft);}
.form-action-status {display: flex;align-items: center;gap: var(--space-2);min-width: 0;color: var(--text-secondary);font-size: var(--font-size-small);}
.form-save-indicator {width: 6px;height: 6px;border-radius: 50%;background: var(--text-muted);flex-shrink: 0;}
.ft-form.is-dirty .form-save-indicator {background: var(--warning);}
.record-edit-header {position: sticky;top: 0;z-index: var(--z-record-actions);display: grid;grid-template-columns: minmax(0,1fr) auto;align-items: center;gap: var(--space-3) var(--space-4);min-width: 0;margin: 0 0 var(--space-4);padding: var(--space-4);border: 1px solid var(--border);border-radius: var(--radius-lg);background: var(--surface);box-shadow: var(--shadow-soft);}
.record-edit-title {grid-column: 1;grid-row: 1;min-width: 0;}
.record-edit-title h1 {margin: 0;color: var(--text);font-size: var(--font-size-section);font-weight: var(--font-weight-heading);white-space: normal;overflow-wrap: anywhere;}
.record-edit-title p,
.record-edit-title > small {margin: 4px 0 0;color: var(--text-secondary);font-size: var(--font-size-small);line-height: var(--line-height);overflow-wrap: anywhere;}
.record-edit-title .eyebrow {margin: 0 0 4px;color: var(--primary-hover);}
.record-edit-title > small {display: block;}
.record-edit-metrics {grid-column: 1;grid-row: 2;display: flex;flex-wrap: wrap;gap: var(--space-2);min-width: 0;}
.record-edit-metric {display: inline-flex;align-items: center;gap: 6px;min-width: 0;min-height: 32px;padding: 4px 8px;border: 1px solid var(--border);border-radius: var(--radius);background: var(--surface-secondary);color: var(--text-secondary);font-size: var(--font-size-small);}
.record-edit-metric i {color: var(--primary);}
.record-edit-metric strong {color: var(--text);font-weight: var(--font-weight-heading);}
.record-edit-metric small {color: var(--text-secondary);font-size: inherit;}
.record-edit-header > .record-edit-actions {grid-column: 2;grid-row: 1 / 3;}
.record-edit-action-note {grid-column: 1 / -1;min-width: 0;margin: 0;color: var(--text-secondary);font-size: var(--font-size-small);line-height: var(--line-height);overflow-wrap: anywhere;}
.record-edit-avatar {width: 48px;height: 48px;object-fit: cover;border-radius: 50%;grid-column: 1;grid-row: 1 / 3;}
.record-edit-header:has(> .record-edit-avatar) {grid-template-columns: auto minmax(0,1fr) auto;}
.record-edit-header:has(> .record-edit-avatar) > .record-edit-title,
.record-edit-header:has(> .record-edit-avatar) > .record-edit-metrics {grid-column: 2;}
.record-edit-header:has(> .record-edit-avatar) > .record-edit-actions {grid-column: 3;}
.record-edit-session {display: flex;align-items: center;gap: var(--space-2);min-width: 0;}
.compact-context {min-width: 0;flex: 1;}
.compact-context .form-select {width: 100%;min-width: 0;}
.ft-edit-workspace--dock .record-edit-header {position: relative;top: auto;box-shadow: none;}
@media screen and (max-width: 767px) {
.record-edit-header {grid-template-columns: minmax(0,1fr);top: var(--topbar-height);}
.record-edit-title,
.record-edit-metrics,
.record-edit-header > .record-edit-actions {grid-column: 1;grid-row: auto;}
.record-edit-header:has(> .record-edit-avatar) {grid-template-columns: auto minmax(0,1fr);}
.record-edit-header:has(> .record-edit-avatar) > .record-edit-actions {grid-column: 1 / -1;}
.record-edit-actions {width: 100%;}
.record-edit-actions > .btn {flex: 1 1 120px;min-width: 0;}
.record-edit-metric {flex: 1 1 auto;}
.form-actions--sticky {flex-direction: column;align-items: stretch;}
.form-actions--sticky .form-action-buttons {width: 100%;}
.form-action-buttons > .btn {flex: 1;}
.ft-edit-workspace--dock {padding-bottom: calc(var(--training-action-height,76px) + 14px);}
.ft-edit-workspace--dock .record-edit-header > .record-edit-actions {position: fixed;inset: auto 0 var(--training-keyboard-inset,0px);z-index: 1035;display: grid;grid-template-columns: minmax(0,1fr) minmax(0,2fr);gap: var(--space-2);padding: 10px max(12px,env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));border-top: 1px solid var(--border);background: var(--surface);box-shadow: var(--shadow-soft);}
.ft-edit-workspace--dock .record-edit-actions .btn {width: 100%;min-height: var(--touch-target);margin: 0;}
}
@media print {
.record-edit-header {position: static;}
.ft-edit-workspace--dock {padding-bottom: 0;}
.ft-edit-workspace--dock .record-edit-actions {display: none;} }
.migration-shell main {max-width: 1100px;margin: 5vh auto;padding: var(--space-6);}
.migration-login main {max-width: 520px;margin-block: 10vh;}
.migration-shell .panel {padding: var(--space-6);border: 1px solid var(--border);border-radius: var(--radius-lg);background: var(--surface);}
.migration-shell .field {margin: var(--space-4) 0;}
.migration-shell label {display: block;}
.migration-shell table {color: inherit;width: 100%;min-width: 580px;}
.migration-shell :is(th,td) {padding: var(--space-3);border-bottom: 1px solid var(--border);vertical-align: top;}
.migration-shell code {color: var(--primary);}
.migration-shell td:last-child {max-width: 420px;overflow-wrap: anywhere;}
.migration-shell .actions {display: flex;flex-wrap: wrap;gap: var(--space-3);margin-top: var(--space-6);}
.migration-shell .message {padding: var(--space-4);border: 1px solid var(--border-strong);border-radius: var(--radius);margin-block: var(--space-4);}
@media (max-width:600px) {
.migration-shell table {min-width: 0;table-layout: fixed;font-size: var(--font-size-small);}
.migration-shell :is(th,td) {padding: 10px 5px;overflow-wrap: anywhere;}
.migration-shell th:first-child {width: 44%;}
.migration-shell th:nth-child(2) {width: 27%;}
.migration-shell code {word-break: break-all;font-size: .75rem;} }
@media screen and (max-height: 500px) {
  .record-edit-header, .form-actions--sticky { position: static; }
  .ft-edit-workspace--dock .record-edit-header > .record-edit-actions { position: static; inset: auto; }
  .ft-edit-workspace--dock { padding-bottom: 0; }
}
/* Keep keyboard-scrolled fields clear of the training action dock. */
.ft-edit-workspace--dock :is(input,select,textarea,button,a[href],summary) {
  scroll-margin-block: calc(var(--training-action-height, 88px) + var(--space-4));
}
