/* Mutual Aid Forms - neutral public form styles.
   Token-with-fallback only; ships no fonts, colours, or reset. The GS Detroit
   look layers over this in the gsdetroit_toolkit child (Law 3). */

.mat-aidform-page {
	max-width: 40rem;
	margin: 0 auto;
}

.mat-aidform .mat-field {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	margin: 0 0 1.1rem;
}

.mat-aidform .mat-field > label {
	font-weight: 600;
}

.mat-aidform input[type="text"],
.mat-aidform input[type="email"],
.mat-aidform input[type="tel"],
.mat-aidform input[type="url"],
.mat-aidform input[type="number"],
.mat-aidform input[type="date"],
.mat-aidform textarea,
.mat-aidform select {
	width: 100%;
	padding: .5rem .6rem;
	border: 1px solid var(--mat-border, #ccc);
	border-radius: var(--mat-radius, .25rem);
	background: var(--mat-input-bg, #fff);
	color: var(--mat-input-color, inherit);
	font: inherit;
}

.mat-aidform textarea {
	min-height: 6rem;
	resize: vertical;
}

.mat-aidform .mat-choice-group {
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.mat-aidform .mat-choice,
.mat-aidform .mat-consent {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-weight: 400;
}

.mat-aidform .mat-field-consent {
	flex-direction: row;
	align-items: center;
	gap: .5rem;
}

.mat-aidform .mat-field-hint {
	font-size: .85em;
	color: var(--mat-muted, #666);
}

.mat-aidform .mat-required {
	color: var(--mat-required, #b00);
}

/* A missing required field is boxed in red on redisplay, with a message, so it
   is easy to find. The native HTML5 required attribute still applies too. */
.mat-aidform .mat-field-error input,
.mat-aidform .mat-field-error textarea,
.mat-aidform .mat-field-error select {
	border-color: var(--mat-required, #b00);
	outline: 1px solid var(--mat-required, #b00);
}
.mat-aidform .mat-field-error-msg {
	display: block;
	margin-top: .3rem;
	font-size: .85em;
	font-weight: 600;
	color: var(--mat-required, #b00);
}

.mat-aidform .mat-form-section-block {
	margin: 0 0 1.1rem;
}

.mat-aidform .mat-form-actions {
	margin-top: 1.5rem;
}

.mat-aidform .mat-button-submit {
	display: inline-block;
	padding: .6rem 1.25rem;
	border: 0;
	border-radius: var(--mat-radius, .25rem);
	background: var(--mat-button-bg, #333);
	color: var(--mat-button-color, #fff);
	font: inherit;
	cursor: pointer;
}

.mat-aidform :focus-visible {
	outline: 3px solid var(--mat-focus, #f60);
	outline-offset: 2px;
}

/* The honeypot is present in the DOM but off-screen. A human never sees or fills
   it; a naive bot does, and the submission is rejected. Never display:none, so a
   bot cannot cheaply detect and skip it. */
.mat-hp {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* Management inbox: mobile-first, single column, big touch targets. Structure and
   layout only; the GS colours layer over this in the child (Law 3). */
.mat-aidinbox {
	max-width: 40rem;
	margin: 0 auto;
}

.mat-aidinbox-title {
	margin: 0 0 1rem;
}

.mat-aidinbox-back {
	display: inline-block;
	margin: 0 0 1rem;
	padding: .35rem 0;
}

.mat-aidinbox-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: .6rem;
}

.mat-aidinbox-link {
	display: flex;
	flex-direction: column;
	gap: .35rem;
	padding: .9rem 1rem;
	min-height: 3.25rem;
	border: 1px solid var(--mat-border, #ccc);
	border-radius: var(--mat-radius, .25rem);
	background: var(--mat-input-bg, #fff);
	color: inherit;
	text-decoration: none;
}

.mat-aidinbox-forms .mat-aidinbox-link {
	flex-direction: row;
	align-items: center;
	justify-content: space-between;
}

.mat-aidinbox-name {
	font-weight: 600;
}

.mat-aidinbox-count {
	flex: 0 0 auto;
	min-width: 1.75rem;
	padding: .1rem .5rem;
	border-radius: 1rem;
	text-align: center;
	font-weight: 700;
	background: var(--mat-button-bg, #333);
	color: var(--mat-button-color, #fff);
}

.mat-aidinbox-meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	font-size: .85em;
	color: var(--mat-muted, #666);
}

.mat-aidinbox-badge,
.mat-aidinbox-replied {
	padding: .05rem .45rem;
	border-radius: .2rem;
	border: 1px solid var(--mat-border, #ccc);
}

.mat-aidinbox-summary {
	display: block;
}

.mat-aidinbox-message {
	margin: 0 0 1rem;
	padding: .9rem 1rem;
	border: 1px solid var(--mat-border, #ccc);
	border-radius: var(--mat-radius, .25rem);
	background: var(--mat-input-bg, #fff);
}

.mat-aidinbox-message-head {
	display: flex;
	justify-content: space-between;
	gap: .5rem;
	margin: 0 0 .5rem;
	font-size: .85em;
	color: var(--mat-muted, #666);
}

.mat-aidinbox-fields {
	margin: 0;
}

.mat-aidinbox-fields dt {
	font-weight: 600;
}

.mat-aidinbox-fields dd {
	margin: 0 0 .6rem;
}

.mat-aidinbox-private {
	margin: .6rem 0 0;
	font-size: .9em;
}

.mat-aidinbox-sendfail {
	margin: .5rem 0 0;
	font-weight: 600;
	color: var(--mat-required, #b00);
}

/* Sticky composer at the bottom of the thread, thumb-reachable on a phone. */
.mat-aidinbox-composer {
	position: sticky;
	bottom: 0;
	display: flex;
	flex-direction: column;
	gap: .5rem;
	padding: .75rem 0;
	background: var(--mat-page-bg, #fff);
}

.mat-aidinbox-composer-label {
	font-weight: 600;
}

.mat-aidinbox-composer-input {
	width: 100%;
	min-height: 5rem;
	padding: .5rem .6rem;
	border: 1px solid var(--mat-border, #ccc);
	border-radius: var(--mat-radius, .25rem);
	background: var(--mat-input-bg, #fff);
	color: var(--mat-input-color, inherit);
	font: inherit;
	resize: vertical;
}

.mat-aidinbox-composer-send {
	align-self: flex-start;
	padding: .6rem 1.25rem;
	border: 0;
	border-radius: var(--mat-radius, .25rem);
	background: var(--mat-button-bg, #333);
	color: var(--mat-button-color, #fff);
	font: inherit;
	cursor: pointer;
}

.mat-aidinbox-notice {
	padding: .75rem 1rem;
	border: 1px solid var(--mat-border, #ccc);
	border-radius: var(--mat-radius, .25rem);
}

.mat-aidinbox :focus-visible {
	outline: 3px solid var(--mat-focus, #f60);
	outline-offset: 2px;
}

/* Composer enhancements (canned replies + directory recall), injected by JS. */
.mat-aidinbox-composer-tools:empty {
	display: none;
}

.mat-composer-tool {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	margin: 0 0 .5rem;
}

.mat-composer-select,
.mat-composer-recall-input {
	flex: 1 1 auto;
	min-height: 2.75rem;
	padding: .45rem .6rem;
	border: 1px solid var(--mat-border, #ccc);
	border-radius: var(--mat-radius, .25rem);
	background: var(--mat-input-bg, #fff);
	color: var(--mat-input-color, inherit);
	font: inherit;
}

.mat-composer-recall-search {
	flex: 0 0 auto;
	min-height: 2.75rem;
	padding: .45rem 1rem;
	border: 0;
	border-radius: var(--mat-radius, .25rem);
	background: var(--mat-button-bg, #333);
	color: var(--mat-button-color, #fff);
	font: inherit;
	cursor: pointer;
}

.mat-composer-recall-results {
	flex: 1 1 100%;
	display: flex;
	flex-direction: column;
	gap: .25rem;
}

.mat-composer-recall-item {
	text-align: left;
	padding: .5rem .6rem;
	border: 1px solid var(--mat-border, #ccc);
	border-radius: var(--mat-radius, .25rem);
	background: var(--mat-input-bg, #fff);
	color: inherit;
	font: inherit;
	cursor: pointer;
}

.mat-composer-recall-empty {
	margin: .25rem 0 0;
	color: var(--mat-muted, #666);
}

/* Embedded inbox login (guest state): a real, thumb-sized button and full-width
   inputs, styled by this extension stylesheet so it is mobile-friendly on any
   template. The child adds the GS look on top. */
.mat-aidinbox-login {
	max-width: 26rem;
}

.mat-aidinbox-login-intro {
	margin: 0 0 1rem;
}

.mat-aidlogin {
	display: flex;
	flex-direction: column;
	gap: .75rem;
}

.mat-aidlogin-field {
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.mat-aidlogin-label {
	font-weight: 600;
}

.mat-aidlogin-input {
	width: 100%;
	min-height: 2.75rem;
	padding: .5rem .7rem;
	font-size: 1rem;
	border: 1px solid var(--mat-border, #ccc);
	border-radius: var(--mat-radius, .25rem);
	background: var(--mat-input-bg, #fff);
	color: var(--mat-input-color, inherit);
}

.mat-aidlogin-submit {
	display: block;
	width: 100%;
	min-height: 2.75rem;
	margin-top: .25rem;
	padding: .7rem 1.25rem;
	border: 0;
	border-radius: var(--mat-radius, .25rem);
	background: var(--mat-button-bg, #333);
	color: var(--mat-button-color, #fff);
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.mat-aidinbox-login :focus-visible {
	outline: 3px solid var(--mat-focus, #f60);
	outline-offset: 2px;
}
