/* Peru DNI GC Tool - namespaced .gctool-* only - v=GCTOOL_ASSET_VER */
.gctool-wrap {
	--gctool-primary: #0A2F6B;
	--gctool-primary-hover: #0d3a82;
	--gctool-bg: #F5F5F5;
	--gctool-border: #dee2e6;
	--gctool-radius: 8px;
	--gctool-space: 12px;
	box-sizing: border-box;
	max-width: 600px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	padding: var(--gctool-space);
	background: var(--gctool-bg);
	border-radius: var(--gctool-radius);
	box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08), 0 4px 24px rgba(0, 0, 0, 0.06);
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, sans-serif;
	font-size: 14px;
	line-height: 1.4;
}

.gctool-wrap *,
.gctool-wrap *::before,
.gctool-wrap *::after {
	box-sizing: border-box;
}

/* Title: looks like heading but no h1/h2/h3 */
.gctool-title {
	margin: 0 0 var(--gctool-space);
	font-size: 1.35rem;
	font-weight: 700;
	color: #1a1a1a;
	line-height: 1.3;
}

.gctool-form {
	display: flex;
	flex-wrap: wrap;
	gap: var(--gctool-space);
	align-items: flex-start;
	margin: 0 0 var(--gctool-space);
}

.gctool-field {
	flex: 1 1 100%;
	min-width: 0;
}

.gctool-label {
	display: block;
	margin: 0 0 6px;
	font-size: 16px;
	font-weight: 600;
	color: #333;
}

.gctool-input {
	width: 100%;
	padding: 12px 14px;
	min-height: 48px;
	border: 1px solid var(--gctool-border);
	border-radius: var(--gctool-radius);
	font-size: 16px;
	background: #fff;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.gctool-input:focus {
	outline: none;
	border-color: var(--gctool-primary);
	box-shadow: 0 0 0 3px rgba(10, 47, 107, 0.15);
}

.gctool-input::placeholder {
	color: #999;
}

.gctool-input.gctool-input-error {
	border-color: #dc3545;
}

.gctool-honey {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	opacity: 0;
	pointer-events: none;
}

.gctool-legal-text {
	margin: 0 0 var(--gctool-space);
	font-size: 13px;
	color: #555;
	flex: 1 1 100%;
	margin: 0px !important;
}

.gctool-legal-link {
	color: var(--gctool-primary);
	text-decoration: none;
}

.gctool-legal-link:hover {
	text-decoration: underline;
}

.gctool-status {
	margin: 0;
	font-size: 14px;
	flex: 1 1 100%;
	margin: 0px !important;
}

.gctool-status-msg.gctool-status-error {
	color: #dc3545;
}

.gctool-status-msg.gctool-status-loading {
	color: var(--gctool-primary);
}

.gctool-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	gap: 8px;
	padding: 14px 20px;
	min-height: 52px;
	border: none;
	border-radius: var(--gctool-radius);
	background: var(--gctool-primary);
	color: #fff;
	font-size: 17px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.2s ease, opacity 0.2s ease;
}

.gctool-btn:hover:not(:disabled) {
	background: var(--gctool-primary-hover);
}

.gctool-btn:disabled {
	opacity: 0.7;
	cursor: not-allowed;
}

.gctool-btn .gctool-btn-text {
	display: inline;
}

.gctool-result {
	display: none;
	margin-top: var(--gctool-space);
	padding: var(--gctool-space) 0 0;
	border-top: 1px solid var(--gctool-border);
	min-height: 60px;
}

.gctool-result:not(:empty) {
	display: block;
}

/* Loading state: GIF or spinner in result area */
.gctool-result-loading {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 20px 16px;
	text-align: center;
	min-height: 140px;
}

.gctool-loading-gif {
	max-width: 80px;
	height: auto;
	display: block;
	margin: 0 auto 10px;
}

.gctool-loading-spinner {
	width: 44px;
	height: 44px;
	border: 3px solid var(--gctool-border);
	border-top-color: var(--gctool-primary);
	border-radius: 50%;
	animation: gctool-spin 0.8s linear infinite;
	margin-bottom: 10px;
}

@keyframes gctool-spin {
	to { transform: rotate(360deg); }
}

.gctool-loading-text {
	margin: 0;
	font-size: 15px;
	font-weight: 600;
	color: var(--gctool-primary);
}

/* "✓ Resultados:" header above list */
.gctool-resultados-header {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0 0 10px;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--gctool-primary);
	line-height: 1.3;
}

.gctool-resultados-header .gctool-icon {
	width: 22px;
	height: 22px;
	flex-shrink: 0;
	fill: none;
	stroke: currentColor;
	stroke-width: 2.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Card list: stacked cards with spacing */
.gctool-result-list.gctool-result-cards {
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.gctool-result-card {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	background: #e9ecef;
	border-radius: var(--gctool-radius);
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
	font-size: 15px;
	line-height: 1.45;
}

.gctool-result-card .gctool-result-content {
	flex: 1 1 0;
	min-width: 0;
}

.gctool-result-card .gctool-result-actions {
	flex-shrink: 0;
	align-self: center;
}

.gctool-result-line {
	display: block;
	margin: 2px 0;
	color: #333;
}

.gctool-result-line .gctool-result-label {
	font-weight: 700;
	color: #333;
}

.gctool-result-line .gctool-result-value {
	font-weight: 500;
	color: #1a1a1a;
}

/* Result block: content left, copy button right in one row (other tools) */
.gctool-result-block {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-start;
	gap: 12px;
	margin: 0 0 var(--gctool-space);
	padding: 12px 14px;
	background: #e9ecef;
	border-radius: var(--gctool-radius);
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
	font-size: 15px;
	line-height: 1.45;
}

.gctool-result-block:last-child {
	margin-bottom: 0;
}

.gctool-result-content {
	flex: 1 1 0;
	min-width: 0;
}

.gctool-result-actions {
	flex-shrink: 0;
	align-self: center;
}

.gctool-result-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 4px 0;
}

.gctool-result-row .gctool-icon {
	flex-shrink: 0;
	width: 18px;
	height: 18px;
	fill: none;
	stroke: var(--gctool-primary);
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.gctool-result-label {
	font-weight: 600;
	color: #333;
	min-width: 70px;
	font-size: 15px;
}

.gctool-result-value {
	font-weight: 500;
	color: #1a1a1a;
	font-size: 15px;
}

.gctool-result-body {
	font-size: 15px;
	font-weight: 500;
	color: #1a1a1a;
	line-height: 1.5;
}

.gctool-result-body br {
	display: block;
	content: "";
	margin-top: 4px;
}

.gctool-copy-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 12px;
	border: 1px solid var(--gctool-primary);
	border-radius: var(--gctool-radius);
	background: transparent;
	color: var(--gctool-primary);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s, color 0.15s;
	white-space: nowrap;
}

.gctool-copy-btn:hover {
	background: var(--gctool-primary);
	color: #fff;
}

.gctool-copy-btn .gctool-icon {
	width: 18px;
	height: 18px;
	flex-shrink: 0;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.gctool-result-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.gctool-result-list .gctool-result-block {
	margin-bottom: var(--gctool-space);
}

.gctool-result-list.gctool-result-cards .gctool-result-card {
	margin-bottom: 0;
}

/* No result / error message (e.g. "No se encontro informacion para el DNI ingresado.") */
.gctool-result-block.gctool-result-no-data {
	display: flex;
	align-items: center;
	gap: 12px;
	border-left-color: #6c757d;
}

.gctool-result-no-data .gctool-icon {
	width: 24px;
	height: 24px;
	flex-shrink: 0;
	fill: none;
	stroke: #6c757d;
	stroke-width: 2;
}

.gctool-no-result-msg {
	margin: 0;
	font-size: 16px;
	font-weight: 500;
	color: #444;
	line-height: 1.4;
}

@media (max-width: 480px) {
	.gctool-result-block,
	.gctool-result-card {
		flex-direction: column;
		align-items: stretch;
	}
	.gctool-result-actions {
		align-self: flex-end;
	}
	.gctool-copy-label {
		display: none;
	}
	.gctool-copy-btn {
		padding: 10px 14px;
	}
	.gctool-resultados-header {
		font-size: 1rem;
	}
}

@media (max-width: 620px) {
	.gctool-wrap {
		margin-left: 10px;
		margin-right: 10px;
		padding: 10px;
		max-width: calc(100% - 20px);
	}
}

/* Tool 1: one input per row (no side-by-side) */
.gctool-tool-1 .gctool-field {
	flex: 1 1 100%;
}
