/* Customer support portal — scoped to .cts-portal so theme/page-builder styles don't leak in or out. */

.cts-portal {
	--cts-brand: #071525;
	--cts-accent: #199BFF;
	--cts-navy: #071525;
	--cts-deep: #04101D;
	--cts-blue: #199BFF;
	--cts-blue-ink: #0A67B8;   /* AA text/links on white (5.3:1) */
	--cts-cyan: #42D9E8;
	--cts-white: #FFFFFF;
	--cts-offwhite: #F7FAFD;
	--cts-surface: #F2F6FA;
	--cts-text: #0B1728;
	--cts-text-2: #536273;     /* 5.9:1 on white */
	--cts-border: #DCE6EF;
	--cts-border-strong: #B9C8D6;
	--cts-success: #1BBF83;
	--cts-success-ink: #0B7049;
	--cts-success-bg: #E6F7F0;
	--cts-warning: #F4B740;
	--cts-warning-ink: #7A4D00;
	--cts-warning-bg: #FEF4DF;
	--cts-error: #E55252;
	--cts-error-ink: #B42318;
	--cts-error-bg: #FDECEC;
	--cts-radius: 8px;
	--cts-radius-sm: 6px;
	--cts-focus: 0 0 0 3px #FFFFFF, 0 0 0 5px var(--cts-blue-ink);
	--cts-font: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--cts-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

	color: var(--cts-text);
	font-family: var(--cts-font);
	font-size: 16px;
	line-height: 1.55;
	max-width: 1200px;
	margin: 0 auto;
	text-align: left;
	overflow-wrap: anywhere;
}

.cts-portal *,
.cts-portal *::before,
.cts-portal *::after { box-sizing: border-box; }

.cts-portal p { margin: 0 0 12px; }
.cts-portal ul, .cts-portal ol { margin: 0; padding: 0; list-style: none; }
.cts-portal a { color: var(--cts-blue-ink); text-decoration: underline; text-underline-offset: 2px; }
.cts-portal a:hover { color: var(--cts-navy); }
.cts-portal :focus-visible { outline: none; box-shadow: var(--cts-focus); border-radius: var(--cts-radius-sm); }
.cts-portal h2:focus, .cts-portal h3:focus { outline: none; box-shadow: none; }
.cts-portal img { max-width: 100%; height: auto; }

.cts-sr {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}

.cts-icon { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }

/* ---------- shell */

.cts-portal .cts-shell { background: var(--cts-offwhite); border: 1px solid var(--cts-border); border-radius: 12px; overflow: hidden; }
.cts-portal .cts-main { padding: 28px; }
.cts-portal .cts-loading { color: var(--cts-text-2); padding: 24px 28px; margin: 0; }
.cts-portal .cts-noscript { padding: 16px; }

.cts-portal .cts-header {
	display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;
	background: var(--cts-brand); color: var(--cts-white); padding: 16px 28px;
}
.cts-portal .cts-header__brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.cts-portal .cts-header__logo { max-height: 36px; width: auto; }
.cts-portal .cts-header__title { margin: 0; font-weight: 700; font-size: 17px; line-height: 1.2; color: var(--cts-white); }
.cts-portal .cts-header__company { margin: 2px 0 0; font-size: 13px; color: #C9D6E3; }
.cts-portal .cts-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; }
.cts-portal .cts-nav__link {
	display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 8px 12px;
	color: #DCE6EF; text-decoration: none; border-radius: var(--cts-radius-sm); font-weight: 500; font-size: 15px;
}
.cts-portal .cts-nav__link:hover { color: var(--cts-white); background: rgba(255, 255, 255, .08); }
.cts-portal .cts-nav__link[aria-current="page"] { color: var(--cts-white); box-shadow: inset 0 -2px 0 var(--cts-cyan); border-radius: 0; }
.cts-portal .cts-header :focus-visible { box-shadow: 0 0 0 2px var(--cts-brand), 0 0 0 4px var(--cts-cyan); }

/* ---------- type */

.cts-portal .cts-h2 { margin: 0 0 6px; font-size: 26px; line-height: 1.25; font-weight: 700; color: var(--cts-text); letter-spacing: -0.01em; }
.cts-portal .cts-h3 { margin: 0 0 12px; font-size: 18px; font-weight: 650; color: var(--cts-text); }
.cts-portal .cts-lead { color: var(--cts-text-2); margin: 0 0 20px; max-width: 64ch; }
.cts-portal .cts-mono { font-family: var(--cts-mono); font-size: .92em; white-space: nowrap; }
.cts-portal .cts-pagehead { margin-bottom: 20px; }
.cts-portal .cts-hero { margin-bottom: 24px; }

/* ---------- buttons (explicit resets: themes/Elementor style bare buttons globally) */

.cts-portal .cts-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 10px 18px; margin: 0;
	font: 600 15px/1.2 var(--cts-font); letter-spacing: 0; text-transform: none; text-decoration: none; text-align: center;
	border: 1px solid transparent; border-radius: var(--cts-radius-sm); cursor: pointer;
	background: var(--cts-white); color: var(--cts-text); box-shadow: none;
	transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.cts-portal .cts-btn:disabled { opacity: .55; cursor: not-allowed; }
.cts-portal .cts-btn--primary { background: var(--cts-brand); color: var(--cts-white); }
.cts-portal .cts-btn--primary:hover:not(:disabled) { background: var(--cts-deep); color: var(--cts-white); }
.cts-portal .cts-header .cts-btn--primary { background: var(--cts-white); color: var(--cts-navy); }
.cts-portal .cts-header .cts-btn--primary:hover { background: var(--cts-surface); color: var(--cts-navy); }
.cts-portal .cts-btn--secondary { background: var(--cts-white); color: var(--cts-navy); border-color: var(--cts-border-strong); }
.cts-portal .cts-btn--secondary:hover:not(:disabled) { border-color: var(--cts-navy); color: var(--cts-navy); }
.cts-portal .cts-btn--ghost { background: transparent; color: var(--cts-blue-ink); border-color: transparent; }
.cts-portal .cts-btn--ghost:hover:not(:disabled) { background: var(--cts-surface); color: var(--cts-navy); }
.cts-portal .cts-btn--danger { background: var(--cts-error-ink); color: var(--cts-white); }
.cts-portal .cts-btn--danger:hover { background: #8E1B12; color: var(--cts-white); }
.cts-portal .cts-btn--sm { min-height: 40px; padding: 8px 14px; font-size: 14px; }
.cts-portal .cts-btn--lg { min-height: 48px; padding: 12px 24px; font-size: 16px; }
.cts-portal .cts-iconbtn {
	display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; margin: 0;
	border: 0; border-radius: var(--cts-radius-sm); background: transparent; color: var(--cts-text-2); cursor: pointer;
}
.cts-portal .cts-iconbtn:hover { background: var(--cts-surface); color: var(--cts-error-ink); }

/* ---------- cards */

.cts-portal .cts-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; margin-bottom: 32px; }
.cts-portal .cts-card {
	display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
	background: var(--cts-white); border: 1px solid var(--cts-border); border-radius: var(--cts-radius); padding: 20px;
}
.cts-portal .cts-card--primary { border-color: var(--cts-navy); box-shadow: inset 0 3px 0 var(--cts-blue); }
.cts-portal .cts-card__icon {
	display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px;
	border-radius: var(--cts-radius-sm); background: var(--cts-surface); color: var(--cts-navy); margin-bottom: 4px;
}
.cts-portal .cts-card__title { margin: 0; font-size: 17px; font-weight: 650; color: var(--cts-text); }
.cts-portal .cts-card__text { color: var(--cts-text-2); margin: 0 0 8px; flex: 1; }
.cts-portal .cts-card__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 4px; }
.cts-portal .cts-contact { display: grid; gap: 6px; margin: 0 0 8px; color: var(--cts-text-2); font-size: 15px; }
.cts-portal .cts-contact li { display: flex; align-items: center; gap: 8px; }

.cts-portal .cts-panel { background: var(--cts-white); border: 1px solid var(--cts-border); border-radius: var(--cts-radius); padding: 24px; }
.cts-portal .cts-panel--narrow { max-width: 560px; }
.cts-portal .cts-section { margin-top: 8px; }
.cts-portal .cts-empty { color: var(--cts-text-2); background: var(--cts-white); border: 1px dashed var(--cts-border-strong); border-radius: var(--cts-radius); padding: 24px; text-align: center; }
.cts-portal .cts-empty p { margin-bottom: 12px; }

/* ---------- alerts */

.cts-portal .cts-alert { display: flex; gap: 10px; align-items: flex-start; flex-wrap: wrap; border-radius: var(--cts-radius-sm); padding: 12px 14px; margin: 0 0 16px; border: 1px solid; }
.cts-portal .cts-alert p { margin: 0; }
.cts-portal .cts-alert ul { flex-basis: 100%; list-style: disc; padding-left: 22px; }
.cts-portal .cts-alert--error { background: var(--cts-error-bg); border-color: #F4B4B4; color: var(--cts-error-ink); }
.cts-portal .cts-alert--error a { color: var(--cts-error-ink); }
.cts-portal .cts-alert--success { background: var(--cts-success-bg); border-color: #A8E3CB; color: var(--cts-success-ink); }
.cts-portal .cts-alert--warning { background: var(--cts-warning-bg); border-color: #F6D48E; color: var(--cts-warning-ink); }
.cts-portal .cts-alert__title { font-weight: 650; flex-basis: 100%; }
.cts-portal .cts-alert[hidden] { display: none; }
.cts-portal .cts-error-text { color: var(--cts-error-ink); }

/* ---------- badges */

.cts-portal .cts-badge {
	display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px;
	font-size: 13px; font-weight: 600; line-height: 1.4; white-space: nowrap; border: 1px solid;
}
.cts-portal .cts-badge__shape { width: 8px; height: 8px; flex: none; }
.cts-portal .cts-badge--open { background: #E8F3FF; border-color: #B8DAFB; color: #0A4F8C; }
.cts-portal .cts-badge--open .cts-badge__shape { background: currentColor; border-radius: 50%; }
.cts-portal .cts-badge--pending { background: var(--cts-warning-bg); border-color: #F6D48E; color: var(--cts-warning-ink); }
.cts-portal .cts-badge--pending .cts-badge__shape { border: 2px solid currentColor; border-radius: 50%; }
.cts-portal .cts-badge--resolved { background: var(--cts-success-bg); border-color: #A8E3CB; color: var(--cts-success-ink); }
.cts-portal .cts-badge--resolved .cts-badge__shape { background: currentColor; transform: rotate(45deg); width: 7px; height: 7px; }
.cts-portal .cts-badge--closed { background: var(--cts-surface); border-color: var(--cts-border-strong); color: var(--cts-text-2); }
.cts-portal .cts-badge--closed .cts-badge__shape { background: currentColor; }

.cts-portal .cts-priority { font-size: 14px; font-weight: 500; white-space: nowrap; }
.cts-portal .cts-priority--urgent { color: var(--cts-error-ink); font-weight: 700; }
.cts-portal .cts-priority--high { color: var(--cts-warning-ink); font-weight: 600; }
.cts-portal .cts-priority--low { color: var(--cts-text-2); }

.cts-portal .cts-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--cts-blue); margin-left: 8px; vertical-align: middle; }

/* ---------- toolbar + table */

.cts-portal .cts-toolbar { display: flex; flex-wrap: wrap; gap: 12px; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.cts-portal .cts-segmented { display: inline-flex; flex-wrap: wrap; gap: 4px; background: var(--cts-surface); border: 1px solid var(--cts-border); border-radius: var(--cts-radius); padding: 4px; }
.cts-portal .cts-segmented__btn {
	min-height: 40px; padding: 6px 14px; margin: 0; border: 0; border-radius: var(--cts-radius-sm);
	font: 500 14px/1.2 var(--cts-font); text-transform: none; letter-spacing: 0;
	background: transparent; color: var(--cts-text-2); cursor: pointer;
}
.cts-portal .cts-segmented__btn:hover { color: var(--cts-text); background: rgba(7, 21, 37, .05); }
.cts-portal .cts-segmented__btn[aria-pressed="true"] { background: var(--cts-white); color: var(--cts-navy); font-weight: 650; box-shadow: 0 0 0 1px var(--cts-border-strong); }
.cts-portal .cts-search { position: relative; flex: 1 1 240px; max-width: 360px; }
.cts-portal .cts-search .cts-icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--cts-text-2); }
.cts-portal .cts-search .cts-input { padding-left: 38px; }

.cts-portal .cts-table { width: 100%; border-collapse: separate; border-spacing: 0; background: var(--cts-white); border: 1px solid var(--cts-border); border-radius: var(--cts-radius); overflow: hidden; font-size: 15px; margin: 0; }
.cts-portal .cts-table th { text-align: left; font-size: 12px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; color: var(--cts-text-2); background: var(--cts-surface); padding: 10px 14px; border: 0; border-bottom: 1px solid var(--cts-border); }
.cts-portal .cts-table td { padding: 12px 14px; border: 0; border-bottom: 1px solid var(--cts-border); vertical-align: middle; background: transparent; }
.cts-portal .cts-table tbody tr:last-child td { border-bottom: 0; }
.cts-portal .cts-table tbody tr:hover td { background: var(--cts-offwhite); }
.cts-portal .cts-table tr.is-unread .cts-table__link { font-weight: 700; }
.cts-portal .cts-table__link { color: var(--cts-text); text-decoration: none; font-weight: 550; }
.cts-portal .cts-table__link:hover { color: var(--cts-blue-ink); text-decoration: underline; }
.cts-portal .cts-pager { display: flex; align-items: center; justify-content: center; gap: 12px; margin-top: 16px; color: var(--cts-text-2); }

/* ---------- forms */

.cts-portal .cts-form { display: grid; gap: 18px; }
.cts-portal .cts-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 20px; }
.cts-portal .cts-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.cts-portal .cts-field--wide { grid-column: 1 / -1; }
.cts-portal .cts-label { font-weight: 600; font-size: 15px; color: var(--cts-text); padding: 0; }
.cts-portal .cts-req { color: var(--cts-error-ink); }
.cts-portal .cts-optional { font-weight: 400; color: var(--cts-text-2); font-size: 14px; }
.cts-portal .cts-field__hint { margin: 0; font-size: 14px; color: var(--cts-text-2); }
.cts-portal .cts-field__error { margin: 0; font-size: 14px; color: var(--cts-error-ink); font-weight: 500; }
.cts-portal .cts-field__error::before { content: "! "; font-weight: 700; }
.cts-portal .cts-field__error[hidden] { display: none; }
.cts-portal .cts-input {
	width: 100%; min-height: 44px; padding: 10px 12px; margin: 0;
	font: 400 16px/1.4 var(--cts-font); color: var(--cts-text);
	background: var(--cts-white); border: 1px solid var(--cts-border-strong); border-radius: var(--cts-radius-sm); box-shadow: none;
}
.cts-portal .cts-input:hover { border-color: #8FA3B6; }
.cts-portal .cts-input:focus { outline: none; border-color: var(--cts-blue-ink); box-shadow: 0 0 0 3px rgba(25, 155, 255, .28); }
.cts-portal .cts-input[readonly] { background: var(--cts-surface); color: var(--cts-text-2); }
.cts-portal .cts-input[aria-invalid="true"] { border-color: var(--cts-error-ink); border-width: 2px; }
.cts-portal .cts-textarea { min-height: 140px; resize: vertical; }
.cts-portal select.cts-input { appearance: auto; }
.cts-portal .cts-fieldset { border: 0; margin: 0; padding: 0; min-width: 0; }
.cts-portal .cts-fieldset legend { margin-bottom: 8px; }
.cts-portal .cts-radios { display: flex; flex-wrap: wrap; gap: 8px; }
.cts-portal .cts-radio { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--cts-border-strong); border-radius: var(--cts-radius-sm); background: var(--cts-white); cursor: pointer; font-size: 15px; }
.cts-portal .cts-radio input { width: 18px; height: 18px; margin: 0; accent-color: var(--cts-navy); }
.cts-portal .cts-radio:has(input:checked) { border-color: var(--cts-navy); box-shadow: inset 0 0 0 1px var(--cts-navy); }
.cts-portal .cts-radio:has(input:focus-visible) { box-shadow: var(--cts-focus); }
.cts-portal .cts-form__footer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; }
.cts-portal .cts-form__note { margin: 0; font-size: 14px; color: var(--cts-text-2); }
.cts-portal .cts-form-status { margin: 0; font-size: 15px; }
.cts-portal .cts-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

.cts-portal .cts-dropzone {
	position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px;
	padding: 20px; text-align: center; border: 2px dashed var(--cts-border-strong); border-radius: var(--cts-radius); background: var(--cts-white); color: var(--cts-text-2);
}
.cts-portal .cts-dropzone.is-over { border-color: var(--cts-blue-ink); background: #EEF6FF; }
.cts-portal .cts-dropzone__icon { width: 24px; height: 24px; color: var(--cts-navy); }
.cts-portal .cts-dropzone__text { margin: 0; }
.cts-portal .cts-dropzone__browse { color: var(--cts-blue-ink); text-decoration: underline; cursor: pointer; font-weight: 600; }
.cts-portal .cts-dropzone__input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; }
.cts-portal .cts-dropzone:focus-within { box-shadow: var(--cts-focus); }
.cts-portal .cts-filelist { display: grid; gap: 6px; }
.cts-portal .cts-filelist__item { display: flex; align-items: center; gap: 8px; padding: 4px 4px 4px 12px; background: var(--cts-surface); border-radius: var(--cts-radius-sm); font-size: 14px; }
.cts-portal .cts-filelist__name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cts-portal .cts-filelist__size { color: var(--cts-text-2); }

/* ---------- confirmation */

.cts-portal .cts-confirm { text-align: left; max-width: 640px; }
.cts-portal .cts-confirm__icon { display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 50%; background: var(--cts-success-bg); color: var(--cts-success-ink); margin-bottom: 12px; }
.cts-portal .cts-dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px 24px; margin: 16px 0; }
.cts-portal .cts-dl dt { font-size: 12px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; color: var(--cts-text-2); margin: 0 0 2px; }
.cts-portal .cts-dl dd { margin: 0; font-size: 15px; }
.cts-portal .cts-dl--inline { background: var(--cts-white); border: 1px solid var(--cts-border); border-radius: var(--cts-radius); padding: 16px 20px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }

/* ---------- detail / timeline */

.cts-portal .cts-back { display: inline-flex; align-items: center; gap: 4px; min-height: 44px; margin-bottom: 8px; font-weight: 500; text-decoration: none; }
.cts-portal .cts-detail__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-start; gap: 12px; }
.cts-portal .cts-detail__number { margin: 0 0 4px; color: var(--cts-text-2); font-size: 14px; }
.cts-portal .cts-detail__actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.cts-portal .cts-confirmbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; padding: 6px 8px 6px 14px; background: var(--cts-error-bg); border-radius: var(--cts-radius-sm); }
.cts-portal .cts-confirmbar[hidden] { display: none; }
.cts-portal .cts-timeline { margin: 8px 0 20px; }
.cts-portal .cts-msgs { display: grid; gap: 14px; }
.cts-portal .cts-msg { display: flex; }
.cts-portal .cts-msg--customer { justify-content: flex-end; }
.cts-portal .cts-msg--staff { justify-content: flex-start; }
.cts-portal .cts-msg__bubble { width: min(720px, 88%); border-radius: 12px; padding: 14px 16px; border: 1px solid var(--cts-border); background: var(--cts-white); }
.cts-portal .cts-msg--customer .cts-msg__bubble { background: #EEF6FF; border-color: #C9E2FB; border-bottom-right-radius: 4px; }
.cts-portal .cts-msg--staff .cts-msg__bubble { border-left: 4px solid var(--cts-navy); border-bottom-left-radius: 4px; }
.cts-portal .cts-msg__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-bottom: 6px; font-size: 13px; color: var(--cts-text-2); }
.cts-portal .cts-msg__author { font-weight: 650; color: var(--cts-text); font-size: 14px; }
.cts-portal .cts-msg__role { padding: 1px 8px; border-radius: 999px; background: var(--cts-surface); font-size: 12px; font-weight: 600; }
.cts-portal .cts-msg--staff .cts-msg__role { background: var(--cts-navy); color: var(--cts-white); }
.cts-portal .cts-msg__body { white-space: pre-wrap; margin: 0; }
.cts-portal .cts-msg--system { justify-content: center; }
.cts-portal .cts-msg--system p { margin: 0; font-size: 13px; color: var(--cts-text-2); background: var(--cts-surface); border-radius: 999px; padding: 4px 14px; text-align: center; }
.cts-portal .cts-attachments { display: grid; gap: 6px; margin-top: 10px; }
.cts-portal .cts-attachment { display: flex; align-items: center; gap: 8px; font-size: 14px; min-width: 0; }
.cts-portal .cts-attachment__thumb { width: 48px; height: 48px; object-fit: cover; border-radius: 4px; border: 1px solid var(--cts-border); }
.cts-portal .cts-attachment__link { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cts-portal .cts-attachment__size { color: var(--cts-text-2); white-space: nowrap; }
.cts-portal .cts-composer { display: grid; gap: 10px; background: var(--cts-white); border: 1px solid var(--cts-border); border-radius: var(--cts-radius); padding: 20px; }
.cts-portal .cts-composer__footer { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }

/* ---------- responsive */

/* Client login / create account (inline on the portal page for signed-out visitors) */
.cts-portal .cts-auth { background: var(--cts-white); border: 1px solid var(--cts-border); border-radius: var(--cts-radius); padding: 24px; margin: 0 0 24px; max-width: 560px; box-shadow: 0 1px 2px rgba(7, 21, 37, .04); }
.cts-portal .cts-auth__head { margin-bottom: 16px; }
.cts-portal .cts-auth__head .cts-h3 { margin: 0 0 4px; }
.cts-portal .cts-auth__lead { margin: 0; color: var(--cts-text-2); font-size: 15px; }
.cts-portal .cts-auth__tabs { display: flex; gap: 4px; background: var(--cts-surface); border: 1px solid var(--cts-border); border-radius: var(--cts-radius); padding: 4px; margin: 0 0 20px; }
.cts-portal .cts-auth__tab { flex: 1 1 0; min-height: 40px; border: 0; border-radius: calc(var(--cts-radius) - 2px); background: transparent; color: var(--cts-text-2); font: inherit; font-weight: 600; cursor: pointer; }
.cts-portal .cts-auth__tab:hover { color: var(--cts-text); background: rgba(7, 21, 37, .05); }
.cts-portal .cts-auth__tab[aria-selected="true"] { background: var(--cts-white); color: var(--cts-navy); box-shadow: 0 0 0 1px var(--cts-border-strong); }
.cts-portal .cts-auth__tab:focus-visible { outline: 2px solid var(--cts-blue-ink); outline-offset: 2px; }
.cts-portal .cts-auth__form { display: grid; gap: 14px; }
.cts-portal .cts-auth__alt { margin: 4px 0 0; text-align: center; }
.cts-portal .cts-btn--block { width: 100%; min-height: 46px; }
.cts-portal .cts-check { display: flex; align-items: center; gap: 8px; font-size: 15px; color: var(--cts-text); cursor: pointer; }
.cts-portal .cts-check input { width: 18px; height: 18px; accent-color: var(--cts-navy); }
.cts-portal .cts-linkbtn { background: none; border: 0; padding: 4px; color: var(--cts-blue-ink); font: inherit; font-size: 15px; text-decoration: underline; cursor: pointer; }
.cts-portal .cts-linkbtn:hover { color: var(--cts-navy); }
@media (max-width: 430px) { .cts-portal .cts-auth { padding: 16px; } }

@media (max-width: 900px) {
	.cts-portal .cts-main { padding: 20px; }
	.cts-portal .cts-header { padding: 14px 20px; }
}

@media (max-width: 720px) {
	.cts-portal .cts-grid { grid-template-columns: minmax(0, 1fr); }
	.cts-portal .cts-h2 { font-size: 22px; }
	.cts-portal .cts-search { max-width: none; flex-basis: 100%; }
	.cts-portal .cts-table, .cts-portal .cts-table tbody, .cts-portal .cts-table tr, .cts-portal .cts-table td { display: block; width: 100%; }
	.cts-portal .cts-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
	.cts-portal .cts-table { border: 0; background: transparent; overflow: visible; }
	.cts-portal .cts-table tr { background: var(--cts-white); border: 1px solid var(--cts-border); border-radius: var(--cts-radius); margin-bottom: 10px; padding: 8px 4px; }
	.cts-portal .cts-table td { display: flex; justify-content: space-between; align-items: center; gap: 12px; border: 0; padding: 6px 12px; }
	.cts-portal .cts-table td::before { content: attr(data-label); font-size: 12px; font-weight: 650; text-transform: uppercase; letter-spacing: .04em; color: var(--cts-text-2); flex: none; }
	.cts-portal .cts-table td.cts-table__subject { display: block; font-size: 16px; }
	.cts-portal .cts-table td.cts-table__subject::before { display: none; }
	.cts-portal .cts-msg__bubble { width: 100%; }
}

@media (max-width: 430px) {
	.cts-portal .cts-main { padding: 14px; }
	.cts-portal .cts-header { padding: 12px 14px; }
	.cts-portal .cts-panel, .cts-portal .cts-composer { padding: 16px; }
	.cts-portal .cts-card { padding: 16px; }
	.cts-portal .cts-cards { grid-template-columns: minmax(0, 1fr); }
	.cts-portal .cts-segmented { width: 100%; }
	.cts-portal .cts-segmented__btn { flex: 1 1 auto; padding: 6px 10px; }
	.cts-portal .cts-nav { width: 100%; gap: 4px; }
	.cts-portal .cts-nav__link { padding: 8px 8px; font-size: 14px; }
	.cts-portal .cts-nav .cts-btn--primary { margin-left: auto; }
	.cts-portal .cts-form__footer .cts-btn { width: 100%; }
}

@media (max-width: 340px) {
	.cts-portal { font-size: 15px; }
	.cts-portal .cts-main { padding: 10px; }
	.cts-portal .cts-nav__link span { font-size: 14px; }
	.cts-portal .cts-dl--inline { padding: 12px; }
}

@media (prefers-reduced-motion: reduce) {
	.cts-portal *, .cts-portal *::before, .cts-portal *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

@media (forced-colors: active) {
	.cts-portal .cts-badge, .cts-portal .cts-btn, .cts-portal .cts-msg__bubble { border: 1px solid CanvasText; }
}
