/* ==========================================================================
   Primer Map — Tool-specific styles
   Shared Benchling-style framework: sms/common/tbb-sequence-tools.css
   ========================================================================== */

/* ── Sequence input textarea ─────────────────────────────────────────────── */
.tbb-primer-map .tbb-pmap-seq-input {
	min-height: 140px;
	font-family: var(--tbb-seq-font-mono);
	font-size:   12px;
}

/* ── Primer input textarea ───────────────────────────────────────────────── */
.tbb-primer-map .tbb-pmap-primer-input {
	min-height: 80px;
	font-family: var(--tbb-seq-font-mono);
	font-size:   12px;
}

/* ── Options row ─────────────────────────────────────────────────────────── */
.tbb-pmap-options {
	display:   flex;
	flex-wrap: wrap;
	gap:       12px 24px;
	margin:    0 0 4px;
}

.tbb-pmap-option {
	display:     flex;
	align-items: center;
	gap:         8px;
	font-size:   13px;
	color:       var(--tbb-seq-text);
}

.tbb-pmap-option label {
	font-weight: 500;
	white-space: nowrap;
}

.tbb-pmap-option select {
	padding:       4px 8px;
	border:        1px solid var(--tbb-seq-border);
	border-radius: 4px;
	background:    var(--tbb-seq-bg);
	color:         var(--tbb-seq-text);
	font-size:     13px;
	cursor:        pointer;
	max-width:     260px;
}

.tbb-pmap-option select:focus {
	outline:        2px solid var(--tbb-seq-accent);
	outline-offset: 1px;
}

/* ── HTML output container (white-space: pre) ────────────────────────────── */
.tbb-pmap-output {
	font-family:   var(--tbb-seq-font-mono);
	font-size:     12px;
	line-height:   1.5;
	white-space:   pre;
	overflow-x:    auto;
	overflow-y:    auto;
	max-height:    560px;
	padding:       0.75rem;
	background:    var(--tbb-seq-bg);
	border:        1px solid var(--tbb-seq-border);
	border-radius: 4px;
	word-break:    normal;
	word-wrap:     normal;
	margin:        0;
}

/* ── Wider output on large screens ───────────────────────────────────────── */
@media ( min-width: 900px ) {
	.tbb-primer-map .tbb-pmap-output {
		max-height: 700px;
	}
}

/* ── Restriction site colors ─────────────────────────────────────────────── */
.pmap-one {
	color: #007700; /* green  — cuts once  */
}
.pmap-two {
	color: #CC7700; /* orange — cuts twice */
}

/* ── Primer match colors ─────────────────────────────────────────────────── */
.pmap-fwd {
	color: #0055AA; /* blue — forward primer */
}
.pmap-rev {
	color: #CC0000; /* red  — reverse primer */
}

/* ── Black-and-white override ────────────────────────────────────────────── */
.tbb-pmap-bw .pmap-one,
.tbb-pmap-bw .pmap-two,
.tbb-pmap-bw .pmap-fwd,
.tbb-pmap-bw .pmap-rev {
	color: inherit;
}

/* ── Primer summary section ──────────────────────────────────────────────── */
.tbb-pmap-summary {
	margin-top: 8px;
}

.tbb-pmap-summary-table {
	width:           100%;
	border-collapse: collapse;
	font-size:       13px;
}

.tbb-pmap-summary-table th,
.tbb-pmap-summary-table td {
	padding:      6px 10px;
	border:       1px solid var(--tbb-seq-border);
	text-align:   left;
	vertical-align: top;
}

.tbb-pmap-summary-table thead th {
	background:  var(--tbb-seq-bg-alt, #f5f5f5);
	font-weight: 600;
}

.tbb-pmap-summary-table code {
	font-family: var(--tbb-seq-font-mono);
	font-size:   11px;
	word-break:  break-all;
}

/* ── Summary row color classes ───────────────────────────────────────────── */
.pmap-fwd-row {
	background: #D6E8FF; /* light blue  — only forward matches */
}
.pmap-rev-row {
	background: #FFE0E0; /* light red   — only reverse matches */
}
.pmap-many {
	background: #F0D6FF; /* light purple — matches on both strands */
}
