/* remotefilename=/web/css/qslcard.css
 *
 *	Copyright © 2025 by FKE Internet.  All rights reserved.
 *
 *	$Id: /web/css/qslcard.css,v $
 */
/**
*	CSS rulesets for the "QSL Card" handler
*
*	Author:			Fred Koschara
*	Creation Date:	July twenty-fourth, 2025
*	Last Modified:	July 30, 2025 @ 1:10 pm
*
*	Revision History:
*	   Date		  by		Description
*	2025/07/30	wfredk	add #unfSpinOverlay ruleset
*	2025/07/30	wfredk	fix .qslCaptchaWrapper margins
*	2025/07/30	wfredk	finish removing a ruleset added for debugging
*	2025/07/29	wfredk	form is visible from the outset, no need to unhide
*	2025/07/29	wfredk	rename [U|u]nf[ini[sh[ed]]] things [Q|q]sl[[C|c]ard]
*	2025/07/29	wfredk	rename from unfinished.css
*	2025/07/29	wfredk	clean up debugging noise
*							see unfinished-20250729-form_is_responsive.css
*	2025/07/29	wfredk	set .unfRightButton margin-left:1em on mobile
*	2025/07/29	wfredk	set .unfCaptchaLabel margin-left:3em for alignment
*	2025/07/29	wfredk	completely rewrite captcha rulesets so the work right
*	2025/07/29	wfredk	add .unfCaptchaWrapper ruleset to group captcha controls
*	2025/07/29	wfredk	reduce max form width from 1024px to 800
*	2025/07/29	wfredk	use lots of properties to make honeypot transparent
*	2025/07/29	wfredk	make honeypot visible, size important, label hidden
*	2025/07/28	wfredk	set .unfFormRow width to auto to avoid bloat
*	2025/07/28	wfredk	vertically center buttons WRT each other
*	2025/07/28	wfredk	set input width to 100% for mobile (responsive)
*	2025/07/28	wfredk	set input width to auto for natural desktop sizing
*	2025/07/28	wfredk	set row bottom margin to 0.5em
*	2025/07/28	wfredk	change all "gap" to "column-gap" to reduce row bloat
*	2025/07/28	wfredk	remove .unfFormRow margin-bottom set by ChatGPT
*	2025/07/28	wfredk	set captcha image dimensions
*	2025/07/28	wfredk	complete rewrite per ChatGPT's new layout suggestion
*	2025/07/28	wfredk	add margin-bottom:0.5em to .unfFormRow label
*	2025/07/28	wfredk	remove commented-out dead .unfFormButtons code
*	2025/07/28	wfredk	center form using .unfinishedForm { margin:20px auto 0 }
*	2025/07/28	wfredk	reduce input padding from 0.5em to 0.1em
*	2025/07/28	wfredk	remove vertical-align:middle from .unfCaptchaLabel
*	2025/07/28	wfredk	remove .unfFormRow.middle, not needed any more
*	2025/07/28	wfredk	use align-items:center for .unfFormRow, not "start"
*	2025/07/28	wfredk	remove .unfSeparatorRow, not used any more
*	2025/07/28	wfredk	remove gap from .unfFormButtons (not effective)
*	2025/07/28	wfredk	delete commented-out old example grid settings
*	2025/07/28	wfredk	set margin-top:0.75em on labels
*	2025/07/28	wfredk	left align .unfCaptchaLabel
*	2025/07/28	wfredk	apply align-items:center to buttons, captcha rows
*	2025/07/28	wfredk	move max-width from form.unfinishedForm to container
*	2025/07/27	wfredk	add gap to .unfFormButtons (not effective)
*	2025/07/27	wfredk	responsive layout changes per ChatGPT advice
*	2025/07/27	wfredk	original development
*		|						|
*	2025/07/24	wfredk	original development, extract from unfinished.php
*/

fieldset
{	border:0;
	margin:0;
	padding:0;
}
.qslAckString
{	margin-top:1.5em;
}
.qslcardBlurb
{	margin:auto;
	width:640px;
}

/* ========== BASE STRUCTURE ========== */
form.qslcardForm
{	display:flex;
	flex-direction:column;
	gap:1em;
	margin:auto;
}
.qslcardForm
{	margin:20px auto 0;
	max-width:800px;
	text-align:center;
}

/* ========== ROW TYPES ========== */
.qslFormRow
{	column-gap:1.25em;
	display:flex;
	flex-direction:column;
	margin-bottom:0.5em;
	width:auto;
}
.qslFormRow.twoCol
{	column-gap:1.5em;
	display:grid;
	grid-template-columns:1fr 1fr;
}
.qslFormRow.threeCol
{	column-gap:1.5em;
	display:grid;
	grid-template-columns:1fr 1fr 1fr;
}
.qslFormRow.checkboxRow
{	align-items:center;
	column-gap:0.5em;
	display:grid;
	grid-template-columns:auto 1fr;
}

/* ========== INDIVIDUAL PAIRS ========== */
.formPair
{	display:flex;
	flex-direction:column;
}

/* ========== LABELS ========== */
.formPair label,
.qslFormRow label
{	font-weight:normal;
	margin-bottom:0.25em;
	text-align:left;
	white-space:nowrap;
}
.qslFormRow.checkboxRow label
{	font-weight:bold;
}

/* ========== INPUTS AND TEXTAREAS ========== */
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
input[type="password"],
select,
textarea
{	border:1px solid #999999;
	border-radius:4px;
	font-size:1em;
	padding:0.1em;
}

/* ========== CAPTCHA ========== */
input.captcha5
{	font-size:14pt;
	margin:1em 0 1em 2px;
	width:96px;
}
.qslCaptchaWrapper
{	align-items:center;
	column-gap:1em;
	display:grid;
	grid-template-columns:100px 1fr;
	margin:2em auto;
	max-width:500px;
}
.qslCaptchaImage
{	height:40px;
	margin:1em auto;
}
.qslCaptchaLabel
{	margin-left:3em;
	text-align:left;
}

/* ========== BUTTONS ========== */

.qslFormButtons					/* container */
{	align-items:center;
	display:flex;
	flex-wrap:wrap;
	gap:10em;
	justify-content:center;
	width:100%;
}
.qslRightButton
{	align-items:center;
	background-color:#074723;
	color:gold;
	font-size:1em;
	font-weight:600;
	margin-left:7em;
	padding:0.5em 1.25em;
}

/* ========== MOBILE OVERRIDES ========== */
/* responsive stacking layout for small screens */
@media screen and (max-width:600px)
{	.qslFormRow,
	.qslFormRow.twoCol,
	.qslFormRow.threeCol
	{	display:flex;
		flex-direction:column;
	}
	.qslFormRow label
	{	margin-bottom:0.25em;
		text-align:left;
		white-space:normal;
	}
	.qslFormButtons					/* container */
	{	gap:2em;
	}
	.qslRightButton
	{	margin-left:2em;
	}
	input[type="text"],
	input[type="email"],
	input[type="tel"],
	select,
	textarea
	{	width:100% !important;		/* expand for mobile */
		box-sizing:border-box;
	}
}

#unfSpinOverlay
{	background:black url(/graphics/spinner.gif) no-repeat scroll center center;
	display:none;
	height:100%;
	left:0;
/*	opacity:0.33;	*/
	position:absolute;
	top:0;
	width:100%;
	z-index:100;
}

.qslHoneypot
{	border-color:transparent !important;
	border:0 !important;
	color:transparent !important;
	height:1px !important;
	opacity:0.0 !important;
	width:1px !important;
}
.qslHoneypot label
{	display:none !important;
}

/* EOF: qslcard.css */
