/*
 * Anvil Chapter Generator - Frontend-Styling
 *
 * Seit 0.4.0: nutzt konsequent die ECHTEN CSS-Variablen von
 * anvil-of-war-theme-v2 (--bg-card, --border, --text-body, --accent, --gold
 * usw. aus style.css) als Fallback statt eigener dunkler Platzhalterfarben --
 * dadurch reagiert das Formular jetzt auch auf die 8 Farbschemata.
 *
 * Wichtig (behobener Bug, 19.07.2026): Formularelemente (select/button/input)
 * erben font-family in Browsern NICHT automatisch vom umgebenden Text, auch
 * wenn ein Elternelement font-family:inherit hat -- deshalb hier explizit
 * gesetzt, sonst zeigen ausgerechnet Dropdowns und der Submit-Button die
 * System-Schrift statt Inter/Oswald.
 */

.acg-generator {
	--acg-bg: var(--bg-body, #14110f);
	--acg-panel: var(--bg-card, #1d1815);
	--acg-border: var(--border, #4a3a2c);
	--acg-border-hi: var(--border-hi, #6a5540);
	--acg-text: var(--text-body, #e8e1d6);
	--acg-muted: var(--text-muted, #a89f92);
	--acg-accent: var(--accent, #b3452e);
	--acg-accent-hover: var(--accent-hi, #d1573b);
	--acg-gold: var(--gold, #a8842c);
	--acg-font-body: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

	max-width: 640px;
	margin: 2rem auto;
	padding: 1.75rem;
	background: var(--acg-panel);
	border: 1px solid var(--acg-border);
	border-radius: var(--radius-sm, 4px);
	color: var(--acg-text);
	font-family: var(--acg-font-body);
}

.acg-form .acg-field {
	margin-bottom: 1.1rem;
}

.acg-form label {
	display: block;
	margin-bottom: 0.35rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	font-family: var(--acg-font-body);
}

.acg-form select,
.acg-form input[type="email"],
.acg-form input[type="text"] {
	width: 100%;
	padding: 0.55rem 0.7rem;
	background: var(--acg-bg);
	color: var(--acg-text);
	border: 1px solid var(--acg-border);
	border-radius: var(--radius-sm, 3px);
	font-family: var(--acg-font-body);
	font-size: 1rem;
	line-height: 1.4;
}

.acg-form select:focus,
.acg-form input:focus {
	outline: 2px solid var(--acg-accent);
	outline-offset: 1px;
}

.acg-lang-toggle {
	display: flex;
	gap: 0.75rem;
}

.acg-lang-option {
	flex: 1;
	display: flex !important;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 0.75rem;
	background: var(--acg-bg);
	border: 1px solid var(--acg-border);
	border-radius: var(--radius-sm, 3px);
	font-family: var(--acg-font-body);
	font-weight: 400 !important;
	margin-bottom: 0 !important;
	cursor: pointer;
}

.acg-lang-option input {
	accent-color: var(--acg-accent);
}

.acg-lang-option:has(input:checked) {
	border-color: var(--acg-gold);
	color: var(--acg-gold);
}

.acg-submit-row {
	margin-top: 1.5rem;
}

.acg-submit-hint {
	margin: 0.6rem 0 0;
	font-family: var(--acg-font-body);
	font-size: 0.8rem;
	color: var(--acg-muted);
}

.acg-submit-btn,
.acg-download-btn {
	display: inline-block;
	padding: 0.65rem 1.4rem;
	background: var(--acg-accent);
	color: #fff;
	border: none;
	border-radius: var(--radius-sm, 3px);
	font-family: var(--acg-font-body);
	font-weight: 700;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	font-size: 0.9rem;
	cursor: pointer;
	text-decoration: none;
	transition: background-color var(--transition, 0.15s ease);
}

.acg-submit-btn:hover,
.acg-download-btn:hover {
	background: var(--acg-accent-hover);
	color: #fff;
}

.acg-submit-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
}

.acg-form-message {
	margin-top: 0.75rem;
	font-family: var(--acg-font-body);
	font-size: 0.9rem;
	color: var(--acg-accent-hover);
}

.acg-progress {
	margin-top: 1.5rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--acg-border);
	text-align: center;
}

.acg-spinner {
	width: 30px;
	height: 30px;
	margin: 0 auto 0.75rem;
	border: 3px solid var(--acg-border);
	border-top-color: var(--acg-gold);
	border-radius: 50%;
	animation: acg-spin 0.9s linear infinite;
}

@keyframes acg-spin {
	to { transform: rotate(360deg); }
}

.acg-progress-text {
	margin: 0;
	font-family: var(--acg-font-body);
	color: var(--acg-muted);
	font-size: 0.9rem;
}

.acg-result {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--acg-border);
}

.acg-result-heading {
	margin: 0 0 0.5rem;
	font-family: 'Oswald', 'Arial Narrow', sans-serif;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	font-size: 1.15rem;
	color: var(--acg-gold);
}

.acg-result-preview {
	margin: 0 0 1.1rem;
	font-family: var(--acg-font-body);
	color: var(--acg-muted);
	font-size: 0.9rem;
	line-height: 1.5;
}

.acg-download-row {
	display: flex;
	gap: 0.75rem;
	flex-wrap: wrap;
}

.acg-counter {
	margin-top: 1.75rem;
	padding-top: 1.25rem;
	border-top: 1px dashed var(--acg-border);
	text-align: center;
}

.acg-counter-number {
	display: block;
	font-family: 'Oswald', 'Arial Narrow', sans-serif;
	font-size: 1.8rem;
	font-weight: 700;
	color: var(--acg-gold);
	line-height: 1.1;
}

.acg-counter-label {
	display: block;
	font-family: var(--acg-font-body);
	font-size: 0.8rem;
	color: var(--acg-muted);
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-top: 0.2rem;
}

@media (max-width: 480px) {
	.acg-generator {
		padding: 1.1rem;
		margin: 1rem;
	}
	.acg-lang-toggle {
		flex-direction: column;
	}
}

/* -- Beta-Zugangsfeld (seit 0.3.0) -- */

.acg-access-field input[type="email"],
.acg-access-field input[type="text"] {
	max-width: 420px;
}

.acg-access-hint {
	margin: 0.35rem 0 0;
	font-family: var(--acg-font-body);
	font-size: 0.85rem;
	color: var(--acg-muted);
}

.acg-generator-disabled p {
	padding: 1rem 1.25rem;
	font-family: var(--acg-font-body);
	border: 1px solid var(--acg-border);
	border-radius: var(--radius-sm, 4px);
	background: var(--acg-panel);
	color: var(--acg-muted);
}
