/* ==========================================================================
   Color Align Properties — Tool-specific styles
   Shared Benchling-style framework: tools/common/tbb-sequence-tools.css
   ========================================================================== */

/* ── Sequence input textarea ─────────────────────────────────────────────── */
.tbb-color-align-prop .tbb-cap-seq-input {
	min-height: 160px;
	font-family: var(--tbb-seq-font-mono);
	font-size:   12px;
}

/* ── Starting positions textarea ─────────────────────────────────────────── */
.tbb-color-align-prop .tbb-cap-starts-input {
	min-height: 42px;
	font-family: var(--tbb-seq-font-mono);
	font-size:   13px;
}

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

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

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

.tbb-cap-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;
}

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

/* ── Coloured alignment output container ─────────────────────────────────── */
/*
 * NOTE: this is a <div> (not <pre>) because it receives innerHTML.
 * white-space: pre preserves the newlines and spaces written by the JS.
 */
.tbb-cap-output {
	font-family:   var(--tbb-seq-font-mono);
	font-size:     13px;
	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;
}

/* ── Property colour spans — BACKGROUND mode (default) ──────────────────── */

/* GAVLI — small aliphatic — yellow */
.tbb-cap-output .cap-g {
	background-color: #FFFF00;
	color:            #000;
}

/* FYW — aromatic — lavender */
.tbb-cap-output .cap-f {
	background-color: #CC99FF;
	color:            #000;
}

/* CM — sulphur — light pink */
.tbb-cap-output .cap-c {
	background-color: #FFCCCC;
	color:            #000;
}

/* ST — hydroxyl — amber */
.tbb-cap-output .cap-s {
	background-color: #FFCC33;
	color:            #000;
}

/* KRH — positively charged — cornflower blue */
.tbb-cap-output .cap-k {
	background-color: #6699FF;
	color:            #000;
}

/* DE — negatively charged — coral red */
.tbb-cap-output .cap-d {
	background-color: #FF6666;
	color:            #000;
}

/* NQ — amide — green */
.tbb-cap-output .cap-q {
	background-color: #33CC00;
	color:            #000;
}

/* P — proline — violet */
.tbb-cap-output .cap-p {
	background-color: #CC33FF;
	color:            #000;
}

/* ── Property colour spans — TEXT mode ───────────────────────────────────── */

.tbb-cap-output.tbb-cap-text .cap-g {
	background-color: transparent;
	color:            #CCCC00;
	font-weight:      700;
}

.tbb-cap-output.tbb-cap-text .cap-f {
	background-color: transparent;
	color:            #9966CC;
	font-weight:      700;
}

.tbb-cap-output.tbb-cap-text .cap-c {
	background-color: transparent;
	color:            #CC8888;
	font-weight:      700;
}

.tbb-cap-output.tbb-cap-text .cap-s {
	background-color: transparent;
	color:            #CC9900;
	font-weight:      700;
}

.tbb-cap-output.tbb-cap-text .cap-k {
	background-color: transparent;
	color:            #3366CC;
	font-weight:      700;
}

.tbb-cap-output.tbb-cap-text .cap-d {
	background-color: transparent;
	color:            #CC3333;
	font-weight:      700;
}

.tbb-cap-output.tbb-cap-text .cap-q {
	background-color: transparent;
	color:            #009900;
	font-weight:      700;
}

.tbb-cap-output.tbb-cap-text .cap-p {
	background-color: transparent;
	color:            #9900CC;
	font-weight:      700;
}

/* ── Wider output on large screens ───────────────────────────────────────── */
@media ( min-width: 900px ) {
	.tbb-color-align-prop .tbb-cap-output {
		max-height: 640px;
	}
}
