.testing-specification-editor { min-width: 0; grid-column: 1 / -1; margin: 12px 0; padding: 12px; border: 1px solid var(--border-color, #d8dee8); border-radius: 8px; }
.testing-specification-editor summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 600; }
.testing-specification-fields { display: grid; gap: 8px; min-width: 0; }
.testing-specification-fields .form-input { width: 100%; min-width: 0; max-width: 100%; box-sizing: border-box; }
.testing-specification-fields input, .testing-specification-fields select, .testing-specification-fields textarea { padding: 10px 12px; border: 1px solid var(--border-color, #d8dee8); border-radius: 8px; background: var(--input-bg, #fff); color: inherit; font: inherit; line-height: 1.5; }
.testing-specification-fields input, .testing-specification-fields select { min-height: 44px; }
.testing-specification-fields input[type=file][hidden] { display: none !important; }
.testing-specification-upload { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; min-width: 0; padding: 12px; border: 1px solid var(--border-color, #d8dee8); border-radius: 10px; background: var(--bg-secondary, #f8f9fa); }
.testing-specification-upload:focus-within { border-color: var(--accent-color, #0066ff); }
.testing-specification-upload-trigger { display: inline-flex; align-items: center; justify-content: center; gap: 8px; flex-shrink: 0; min-height: 44px; padding: 10px 14px; border: 1px solid var(--accent-color, #0066ff); border-radius: 8px; background: var(--input-bg, #fff); color: var(--accent-color, #0066ff); font: inherit; line-height: 1.4; cursor: pointer; }
.testing-specification-upload-trigger:hover:not(:disabled) { background: var(--bg-tertiary, #f1f3f5); }
.testing-specification-upload-trigger:focus-visible { outline: 2px solid var(--accent-color, #0066ff); outline-offset: 3px; }
.testing-specification-upload-trigger:disabled { color: var(--text-muted, #adb5bd); border-color: var(--border-color, #d8dee8); cursor: not-allowed; }
.testing-specification-upload-icon, .testing-specification-upload-icon svg { display: block; width: 18px; height: 18px; }
.testing-specification-file-name { flex: 1 1 120px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--text-secondary, #6c757d); font-size: 14px; }
.testing-specification-file-name[data-i18n] { white-space: normal; overflow-wrap: anywhere; }
.testing-specification-fields textarea { resize: vertical; white-space: pre-wrap; overflow-wrap: anywhere; }
.testing-specification-button { min-height: 44px; padding: 0 10px; border: 0; border-radius: 8px; background: transparent; color: var(--text-secondary, #64748b); cursor: pointer; white-space: nowrap; }
.testing-specification-dialog { margin: auto; width: min(680px, calc(100vw - 24px)); max-height: calc(100dvh - 32px); box-sizing: border-box; overflow: auto; padding: 20px; border: 1px solid var(--border-color, #d8dee8); border-radius: 12px; background: var(--bg-primary, #fff); color: var(--text-primary, #111827); box-shadow: var(--shadow-lg); }
.testing-specification-dialog::backdrop { background: rgb(0 0 0 / 45%); }
.testing-specification-info { white-space: pre-wrap; overflow-wrap: anywhere; }
.testing-specification-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 16px; }
.testing-specification-dialog button, .testing-specification-dialog select { min-height: 44px; }
.testing-specification-dialog [hidden] { display: none !important; }
.projects-settings-grid--specification { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); grid-template-rows: auto; align-items: start; }
.projects-settings-primary { display: grid; gap: 14px; min-width: 0; }
.projects-settings-grid--specification .projects-settings-card { height: auto; }
.projects-settings-grid--specification .projects-settings-card--specification { min-width: 0; }
.projects-settings-card--specification .testing-specification-editor { margin: 0; padding: 0; border: 0; }
.projects-settings-card--specification .testing-specification-editor > summary { margin-bottom: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--border-color, #d8dee8); }
.projects-settings-primary .projects-settings-card--scope .projects-settings-card-head { flex-wrap: wrap; }
.projects-settings-primary .projects-scope-editor { flex: 0 0 auto; min-height: 0; }
.projects-settings-primary #project-edit-scope { flex: 0 0 auto; height: 116px; min-height: 96px; resize: vertical; }
@media (max-width: 960px) { .projects-settings-grid--specification { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .testing-specification-dialog { padding: 14px; } .testing-specification-fields input, .testing-specification-fields select, .testing-specification-fields textarea { font-size: 16px; } }
