/* ==========================================================================
   Codon Usage — Tool-specific styles
   Shared Benchling-style framework: tools/common/tbb-sequence-tools.css
   ========================================================================== */

/* ── Textarea ────────────────────────────────────────────────────────────── */
.tbb-codon-usage .tbb-seq-textarea {
	min-height: 140px;
}

/* ── Output — taller pre for multi-sequence tables ───────────────────────── */
@media ( min-width: 900px ) {
	.tbb-codon-usage .tbb-seq-output-pre {
		max-height: 540px;
	}
}

/* ── Genetic code selector row ───────────────────────────────────────────── */
.tbb-cu-code-row {
	display:     flex;
	align-items: center;
	gap:         10px;
	margin-top:  14px;
	flex-wrap:   wrap;
}

.tbb-cu-code-label {
	font-size:   13px;
	font-weight: 600;
	color:       var(--tbb-seq-text);
	white-space: nowrap;
}

.tbb-cu-code-select {
	flex:          1 1 auto;
	min-width:     200px;
	max-width:     440px;
	padding:       6px 28px 6px 10px;
	font-size:     13px;
	font-family:   inherit;
	color:         var(--tbb-seq-text);
	background:    var(--tbb-seq-bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236e7781'/%3E%3C/svg%3E") no-repeat right 10px center;
	background-size: 10px 6px;
	border:        1px solid var(--tbb-seq-border);
	border-radius: var(--tbb-seq-radius-sm);
	appearance:    none;
	-webkit-appearance: none;
	cursor:        pointer;
	transition:    border-color 120ms ease, box-shadow 120ms ease;
}

.tbb-cu-code-select:focus {
	outline:      none;
	border-color: var(--tbb-seq-primary);
	box-shadow:   0 0 0 3px var(--tbb-seq-primary-light);
}

/* ── Warnings panel ──────────────────────────────────────────────────────── */
.tbb-cu-warnings {
	padding:       10px 14px;
	background:    var(--tbb-seq-warning-light);
	border:        1px solid #eac54f;
	border-radius: var(--tbb-seq-radius-sm);
}

.tbb-cu-warn-heading {
	font-size:      11px;
	font-weight:    700;
	text-transform: uppercase;
	letter-spacing: .05em;
	color:          #92400e;
	margin-bottom:  8px;
}

.tbb-cu-warn-list {
	display:        flex;
	flex-direction: column;
	gap:            6px;
}

.tbb-cu-warn-item {
	display:     flex;
	align-items: flex-start;
	gap:         8px;
	font-size:   12px;
	color:       #7d5700;
	line-height: 1.45;
}

.tbb-cu-warn-icon {
	flex-shrink: 0;
	margin-top:  1px;
}

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media ( max-width: 600px ) {
	.tbb-cu-code-row    { flex-direction: column; align-items: flex-start; }
	.tbb-cu-code-select { max-width: 100%; }
}

@media ( prefers-reduced-motion: reduce ) {
	.tbb-cu-code-select { transition: none; }
}
