/* BLD Dosing Calculator v1.0.1 - navy / royal-blue BioLabDirect styling. No external assets. */
.bldc {
	--bldc-navy: #10256f;
	--bldc-navy-2: #0b1e5b;
	--bldc-royal: #1d4ed8;
	--bldc-sky: #3b82f6;
	--bldc-muted: #64748b;
	--bldc-line: #e6ebf5;
	--bldc-bg: #f6f8fc;
	max-width: 880px;
	margin: 0 auto;
	font-family: inherit;
	color: var(--bldc-navy-2);
	box-sizing: border-box;
}
.bldc *, .bldc *::before, .bldc *::after { box-sizing: border-box; }
.bldc [hidden] { display: none !important; }
.bldc-head { text-align: center; margin-bottom: 24px; }
.bldc .bldc-title { color: var(--bldc-navy); font-size: 32px; line-height: 1.2; margin: 0 0 8px; font-weight: 800; }
.bldc-intro { color: var(--bldc-muted); font-size: 16px; line-height: 1.6; margin: 0 auto; max-width: 640px; }
.bldc-card {
	background: #fff;
	border: 1px solid var(--bldc-line);
	border-radius: 14px;
	padding: 28px;
	margin: 0 0 24px;
	box-shadow: 0 6px 24px rgba(16, 37, 111, 0.06);
}
.bldc .bldc-card-title { font-size: 20px; line-height: 1.3; margin: 0 0 20px; color: var(--bldc-navy); font-weight: 700; }
.bldc-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; margin-bottom: 20px; }
.bldc-field { display: flex; flex-direction: column; min-width: 0; }
.bldc .bldc-field > label {
	display: block; margin: 0 0 8px; font-size: 12px; font-weight: 700;
	letter-spacing: .06em; text-transform: uppercase; color: var(--bldc-muted); line-height: 1.4;
}
.bldc .bldc-field select, .bldc .bldc-field input[type="number"] {
	width: 100%; height: 52px; margin: 0;
	border: 1px solid var(--bldc-line); border-radius: 8px;
	padding: 0 14px; font-size: 16px; font-weight: 500; font-family: inherit;
	color: var(--bldc-navy-2); background-color: #fff; outline: none;
	-webkit-appearance: auto; appearance: auto;
}
.bldc .bldc-field select:focus, .bldc .bldc-field input[type="number"]:focus { border-color: var(--bldc-royal); box-shadow: 0 0 0 3px rgba(29, 78, 216, .18); }
.bldc-inline { display: flex; gap: 8px; }
.bldc-inline input { flex: 1 1 auto; min-width: 0; }
.bldc-inline .bldc-unit { flex: 0 0 92px; width: 92px; }
.bldc-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.bldc .bldc-btn {
	display: block; width: 100%; height: 54px; border: 0; border-radius: 8px;
	background: var(--bldc-royal); color: #fff; font-family: inherit;
	font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase;
	cursor: pointer; transition: background .2s ease;
}
.bldc .bldc-btn:hover { background: var(--bldc-navy); }
.bldc-btn:focus-visible { outline: 3px solid rgba(29, 78, 216, .45); outline-offset: 2px; }
.bldc-result {
	margin-top: 20px; border-radius: 12px; padding: 24px;
	background: var(--bldc-navy); color: #fff; text-align: center;
}
.bldc-result-title { font-size: 24px; font-weight: 800; letter-spacing: .02em; margin-bottom: 6px; color: #fff; }
.bldc-result-text { font-size: 15px; line-height: 1.6; margin: 0 0 4px; color: rgba(255,255,255,.92); }
.bldc-result-text strong { color: #fff; font-weight: 800; }
.bldc-result-text.is-invalid { color: #ffd9a6; font-weight: 700; }
.bldc-sub { display: block; margin-top: 6px; font-size: 13px; color: rgba(255,255,255,.75); }
.bldc-syringe { margin-top: 16px; }
.bldc-syringe-box {
	position: relative; width: 100%; height: 80px; overflow: hidden; padding: 0 16px;
	background: #f1f5f9; border: 1.5px solid #cbd5e1; border-radius: 8px;
}
.bldc-syringe-track { position: relative; width: 100%; height: 100%; }
.bldc-syringe-fill { position: absolute; top: 0; left: 0; height: 100%; width: 0; background: var(--bldc-sky); transition: width .3s ease; }
.bldc-syringe-ticks { position: absolute; inset: 0; }
.bldc-tick { position: absolute; width: 1.5px; height: 8px; background: #94a3b8; }
.bldc-tick.is-major { height: 14px; }
.bldc-tick-top { top: 0; }
.bldc-tick-bottom { bottom: 0; }
.bldc-tick-label {
	position: absolute; top: 50%; transform: translate(-50%, -50%);
	font-size: 11px; font-weight: 700; color: #0f172a; pointer-events: none;
}
.bldc-warning {
	margin: 12px 0 0; padding: 10px 12px; border-radius: 8px;
	background: #fff4e5; color: #8a4b00; font-weight: 700; font-size: 14px;
}
.bldc-note { color: var(--bldc-muted); font-size: 14px; line-height: 1.6; margin: -8px 0 16px; }
.bldc-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; border: 1px solid var(--bldc-line); border-radius: 10px; }
.bldc-table-wrap:focus-visible { outline: 3px solid rgba(29, 78, 216, .35); }
.bldc-table { width: 100%; border-collapse: collapse; margin: 0; font-size: 14px; min-width: 560px; }
.bldc-table th, .bldc-table td { padding: 12px 14px; text-align: center; border-bottom: 1px solid var(--bldc-line); }
.bldc-table th { background: var(--bldc-navy); color: #fff; font-weight: 700; font-size: 13px; line-height: 1.35; }
.bldc-table tbody tr:nth-child(even) td { background: var(--bldc-bg); }
.bldc-table tbody tr:last-child td { border-bottom: 0; }
.bldc-disclaimer {
	font-size: 13px; line-height: 1.6; color: var(--bldc-muted);
	border-top: 1px solid var(--bldc-line); padding-top: 16px; margin: 8px 0 0; text-align: center;
}
.bldc-disclaimer strong { color: var(--bldc-navy); }
@media (max-width: 767px) {
	.bldc .bldc-title { font-size: 26px; }
	.bldc-card { padding: 20px 16px; border-radius: 12px; }
	.bldc-grid { grid-template-columns: 1fr; gap: 14px; }
	.bldc-result { padding: 20px 14px; }
	.bldc-result-title { font-size: 21px; }
	.bldc-result-text { font-size: 14px; }
	.bldc-syringe-box { height: 70px; padding: 0 12px; }
	.bldc-tick-label { font-size: 9px; }
}
@media (prefers-reduced-motion: reduce) { .bldc-syringe-fill, .bldc-btn { transition: none; } }
