/* ==========================================================================
   Window Extractor DNA — Tool-specific styles
   Shared Benchling-style framework: tools/common/tbb-sequence-tools.css
   ========================================================================== */

/* ── Textarea ────────────────────────────────────────────────────────────── */
.tbb-window-extractor-dna .tbb-seq-textarea {
	min-height: 160px;
}

/* ── Output max-height ───────────────────────────────────────────────────── */
@media ( min-width: 900px ) {
	.tbb-window-extractor-dna .tbb-seq-output-pre {
		max-height: 420px;
	}
}

/* ── Parameter grid ──────────────────────────────────────────────────────── */
.tbb-wed-param-grid {
	display:               grid;
	grid-template-columns: 1fr 1fr;
	gap:                   14px 20px;
	margin-top:            14px;
	margin-bottom:         4px;
}

.tbb-wed-param-group {
	display:        flex;
	flex-direction: column;
	gap:            5px;
}

/* Span the anchor + position controls as a single inline row on desktop */
.tbb-wed-param-group--inline {
	grid-column: 1 / -1;
	flex-direction: row;
	align-items:    flex-end;
	flex-wrap:      wrap;
	gap:            10px;
}

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

.tbb-wed-param-hint {
	font-size: 11px;
	color:     var(--tbb-seq-text-muted);
}

.tbb-wed-param-input {
	width:         100px;
	padding:       6px 10px;
	font-size:     13px;
	font-family:   var(--tbb-seq-font-mono);
	color:         var(--tbb-seq-text);
	background:    var(--tbb-seq-bg);
	border:        1px solid var(--tbb-seq-border);
	border-radius: var(--tbb-seq-radius-sm);
	text-align:    right;
	transition:    border-color 120ms ease, box-shadow 120ms ease;
}

.tbb-wed-param-input:focus {
	outline:      none;
	border-color: var(--tbb-seq-primary);
	box-shadow:   0 0 0 3px var(--tbb-seq-primary-light);
}

.tbb-wed-param-select {
	flex:          1 1 auto;
	min-width:     160px;
	max-width:     300px;
	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-wed-param-select:focus {
	outline:      none;
	border-color: var(--tbb-seq-primary);
	box-shadow:   0 0 0 3px var(--tbb-seq-primary-light);
}

/* Inline label within the anchor row */
.tbb-wed-inline-label {
	font-size:   13px;
	font-weight: 600;
	color:       var(--tbb-seq-text);
	white-space: nowrap;
	align-self:  flex-end;
	padding-bottom: 7px;
}

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

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

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

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

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

/* ── Responsive ──────────────────────────────────────────────────────────── */
@media ( max-width: 600px ) {
	.tbb-wed-param-grid          { grid-template-columns: 1fr; gap: 12px; }
	.tbb-wed-param-group--inline { flex-direction: column; align-items: flex-start; }
	.tbb-wed-param-select        { max-width: 100%; }
	.tbb-wed-param-input         { width: 100%; text-align: left; }
	.tbb-wed-inline-label        { padding-bottom: 0; }
}

@media ( prefers-reduced-motion: reduce ) {
	.tbb-wed-param-input,
	.tbb-wed-param-select { transition: none; }
}
