/*
 * TML Account System — theme-first layout only.
 *
 * No custom colors, fonts, borders, backgrounds, radii, shadows, or button
 * treatments are declared here. Form fields, buttons, links, tables, text,
 * and section appearance inherit from the active WordPress theme.
 */

.tml-account-shell,
.tml-account-shell * {
	box-sizing: border-box;
}

.tml-account-shell {
	width: 100%;
}

.tml-account-nav {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75em;
	margin: 0 0 1.5em;
}

.tml-account-nav__link {
	display: inline-flex;
	align-items: center;
}

.tml-account-card {
	margin: 0 0 1.5em;
}

.tml-account-card__label {
	margin: 0 0 1em;
}

.tml-account-form {
	display: grid;
	gap: 1em;
}

.tml-account-form label {
	display: grid;
	gap: 0.4em;
}

.tml-account-form input[type="text"],
.tml-account-form input[type="email"],
.tml-account-form input[type="password"],
.tml-account-form input[type="url"],
.tml-account-form input[type="tel"],
.tml-account-form select,
.tml-account-form textarea {
	width: 100%;
	max-width: 100%;
}

.tml-account-form textarea {
	resize: vertical;
}

.tml-account-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.75em;
	margin-top: 1em;
}

.tml-account-grid {
	display: grid;
	gap: 1em;
}

.tml-account-grid--2 {
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.tml-status-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1em;
	margin: 0 0 1em;
}

.tml-status-grid > div {
	min-width: 0;
}

.tml-status-grid span,
.tml-status-grid strong {
	display: block;
}

.tml-status-grid strong {
	overflow-wrap: anywhere;
}

.tml-account-notice {
	margin: 0 0 1em;
}

.tml-account-help {
	display: block;
	margin-top: 0.4em;
}

.tml-account-table-wrap {
	overflow-x: auto;
	max-width: 100%;
	margin-top: 1.25em;
}

.tml-account-table {
	width: 100%;
}

.tml-account-table th,
.tml-account-table td {
	text-align: left;
	vertical-align: top;
}

.tml-account-check {
	display: flex !important;
	align-items: flex-start;
	gap: 0.5em !important;
}

.tml-stripe-form {
	width: 100%;
}

.tml-stripe-payment-element {
	width: 100%;
	max-width: 100%;
	min-height: 160px;
	font: inherit;
	color: inherit;
}

.tml-stripe-form > button[type="submit"] {
	justify-self: start;
}

.tml-security-honeypot {
	position: absolute !important;
	left: -10000px !important;
	top: auto !important;
	width: 1px !important;
	height: 1px !important;
	overflow: hidden !important;
}

.tml-security-recaptcha {
	max-width: 100%;
	overflow: hidden;
}

.tml-account-preference {
	margin-top: 1.25em;
}

@media (max-width: 700px) {
	.tml-account-grid--2,
	.tml-status-grid {
		grid-template-columns: 1fr;
	}
}

/* Hidden native controls used only to read the active theme's computed form styles. */
.tml-stripe-theme-probe {
	position: absolute !important;
	left: -10000px !important;
	top: auto !important;
	width: 320px !important;
	opacity: 0 !important;
	pointer-events: none !important;
	z-index: -1 !important;
}

.tml-stripe-theme-probe label {
	display: grid;
	gap: 0.4em;
}

.tml-stripe-theme-probe input {
	width: 100%;
}

/* Support ticket spacing only; visual treatment remains theme-controlled. */
.tml-support-ticket + .tml-support-ticket {
	margin-top: 1.5em;
}

.tml-support-thread {
	display: grid;
	gap: 1em;
	margin: 1em 0;
}

.tml-support-message {
	display: grid;
	gap: 0.35em;
}

.tml-support-reply-form {
	margin-top: 1em;
}
