/* ===== Techsky Form - Frontend Styles ===== */
.tsf-form-wrap { max-width: 100%; font-family: inherit; }
.tsf-form { background:#ffffff; border-radius:14px; padding:32px; box-shadow:0 4px 24px rgba(20,20,43,.07); border:1px solid #eef0f6; }

.tsf-row { display:flex; flex-wrap:wrap; gap:18px 20px; }
.tsf-field { display:flex; flex-direction:column; margin-bottom:4px; }
.tsf-full { flex:1 1 100%; width:100%; }
.tsf-half { flex:1 1 calc(50% - 10px); width:calc(50% - 10px); }

@media (max-width:640px) {
	.tsf-half { flex:1 1 100%; width:100%; }
	.tsf-form { padding:22px; }
}

.tsf-field label { font-size:14px; font-weight:600; color:#22223b; margin-bottom:7px; }
.tsf-required { color:#e53e5b; }

.tsf-field input[type=text],
.tsf-field input[type=email],
.tsf-field input[type=tel],
.tsf-field input[type=number],
.tsf-field input[type=date],
.tsf-field input[type=file],
.tsf-field select,
.tsf-field textarea {
	width:100%;
	padding:12px 14px;
	font-size:14.5px;
	border:1.5px solid #e3e5ef;
	border-radius:9px;
	background:#fafbff;
	color:#22223b;
	outline:none;
	transition: border-color .18s, box-shadow .18s, background .18s;
	box-sizing:border-box;
	font-family:inherit;
}

.tsf-field input:focus,
.tsf-field select:focus,
.tsf-field textarea:focus {
	border-color:#6a5cff;
	background:#fff;
	box-shadow:0 0 0 4px rgba(106,92,255,.12);
}

.tsf-field textarea { resize:vertical; min-height:110px; }

.tsf-choice-group { display:flex; flex-wrap:wrap; gap:14px; }
.tsf-choice { display:flex; align-items:center; gap:6px; font-size:14px; font-weight:500; cursor:pointer; }
.tsf-single-checkbox { font-weight:600; }
.tsf-choice input { width:auto !important; }

.tsf-hp-field { position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }

.tsf-submit-row { margin-top:6px; }
.tsf-submit-btn {
	position:relative;
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:8px;
	background:linear-gradient(135deg,#6a5cff,#00c2ff);
	color:#fff;
	border:none;
	padding:13px 34px;
	font-size:15px;
	font-weight:600;
	border-radius:10px;
	cursor:pointer;
	box-shadow:0 6px 18px rgba(106,92,255,.30);
	transition: transform .15s, box-shadow .15s, opacity .15s;
}
.tsf-submit-btn:hover { transform:translateY(-1px); box-shadow:0 8px 22px rgba(106,92,255,.38); }
.tsf-submit-btn:disabled { opacity:.7; cursor:not-allowed; transform:none; }

.tsf-btn-loader {
	width:16px; height:16px;
	border:2px solid rgba(255,255,255,.5);
	border-top-color:#fff;
	border-radius:50%;
	display:inline-block;
	animation: tsf-spin .7s linear infinite;
}
@keyframes tsf-spin { to { transform:rotate(360deg); } }

.tsf-message { margin-top:18px; padding:13px 16px; border-radius:9px; font-size:14px; font-weight:500; }
.tsf-success-message { background:#e9fbf0; color:#0a7a3d; border:1px solid #b8ecd0; }
.tsf-error-message { background:#fdeceb; color:#c62b2b; border:1px solid #f6c4c0; }

.tsf-field.tsf-field-invalid input,
.tsf-field.tsf-field-invalid select,
.tsf-field.tsf-field-invalid textarea {
	border-color:#e53e5b !important;
	box-shadow:0 0 0 4px rgba(229,62,91,.10) !important;
}
