/* IPS CRM Forms - self-contained, no Bootstrap needed. Change colors via the variables below. */
.ips-crm {
	--ips-border: #8b7fd6;
	--ips-text: #1d1a3b;
	--ips-dark: #17133a;
	--ips-green: #5cb85c;
	--ips-green-text: #0f2a12;
	--ips-red: #c0392b;
	--ips-ok: #3c763d;
	color: var(--ips-text);
	font-family: inherit;
	max-width: 1100px;
	margin: 0 auto;
	box-sizing: border-box;
}
.ips-crm *, .ips-crm *::before, .ips-crm *::after { box-sizing: border-box; }
.ips-crm [hidden] { display: none !important; }

.ips-row { display: flex; align-items: flex-start; gap: 24px; margin-bottom: 18px; }
.ips-label { flex: 0 0 26%; text-align: right; font-weight: 700; padding-top: 12px; }
.ips-label-wide { flex-basis: 26%; }
.ips-control { flex: 1 1 auto; min-width: 0; }
.ips-req { color: #e00; margin-left: 2px; }

.ips-crm input[type="text"],
.ips-crm input[type="email"],
.ips-crm textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--ips-border);
	border-radius: 4px;
	background: #fff;
	color: var(--ips-text);
	font: inherit;
	line-height: 1.3;
	box-shadow: none;
}
.ips-crm input:focus, .ips-crm textarea:focus { outline: 2px solid var(--ips-border); outline-offset: 1px; }
.ips-crm textarea { resize: vertical; min-height: 110px; }

.ips-btn {
	display: inline-block;
	padding: 11px 18px;
	border: 1px solid transparent;
	border-radius: 4px;
	font: inherit;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	cursor: pointer;
}
.ips-btn-dark { background: var(--ips-dark); color: #fff; border-color: var(--ips-dark); }
.ips-btn-dark:hover { opacity: .9; }
.ips-btn[disabled], .ips-btn:disabled { opacity: .5; cursor: not-allowed; }
.ips-btn-green { background: var(--ips-green); color: var(--ips-green-text); border-color: #4cae4c; }
.ips-btn-green:hover { filter: brightness(.95); color: var(--ips-green-text); }

.ips-error { color: var(--ips-red); margin-top: 6px; font-size: .9em; }
.ips-link { background: none; border: 0; padding: 0 0 0 10px; color: #a94442; cursor: pointer; text-decoration: underline; font: inherit; }
.ips-radio { margin-right: 14px; font-weight: 600; }
.ips-radio input { margin-right: 4px; }
.ips-fmcsa-msg { margin-top: 8px; font-weight: 600; color: var(--ips-ok); }
.ips-note { font-weight: 600; }

.ips-alert { padding: 10px 14px; text-align: center; font-weight: 700; font-size: .9em; color: #fff; border-radius: 3px; }
.ips-alert-ok { background: var(--ips-ok); }
.ips-alert-err { background: var(--ips-red); }

.ips-table { width: 100%; border-collapse: collapse; background: #fff; }
.ips-table th, .ips-table td { border: 1px solid #ddd; padding: 12px 14px; text-align: left; vertical-align: middle; }
.ips-table th { font-weight: 700; }

@media (max-width: 767px) {
	.ips-row { flex-direction: column; gap: 6px; }
	.ips-label { flex: none; text-align: left; padding-top: 0; }
	.ips-control { width: 100%; }
	.ips-table th, .ips-table td { padding: 10px; }
}

.ips-title { margin: 0 0 24px; }
.ips-title-search { color: #1a0dff; font-size: 1.5em; }
