/* =========================================================================
   Darkframe Onboarding Engine — Shared frontend design tokens
   ========================================================================= */

:root {
	--df-accent:      #00ff41;
	--df-accent-dim:  #00b32e;
	--df-bg:          #080808;
	--df-bg-surface:  #0f0f0f;
	--df-bg-overlay:  rgba(8, 8, 8, 0.92);
	--df-border-dim:  #1a1a1a;
	--df-border-mid:  #2a2a2a;
	--df-border-hi:   #3a3a3a;
	--df-text:        #c8c8c8;
	--df-text-bright: #e8e8e8;
	--df-text-dim:    #666;
	--df-font-mono:   'Courier New', Courier, monospace;
	--df-radius:      2px;
	--df-transition:  120ms ease;
}

/* Visually hidden but accessible */
.dfoe-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* Shared overlay backdrop */
.dfoe-overlay {
	position: fixed;
	inset: 0;
	background: var(--df-bg-overlay);
	z-index: 99998;
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	transition: opacity var(--df-transition);
	pointer-events: none;
}

.dfoe-overlay.is-visible {
	opacity: 1;
	pointer-events: auto;
}

/* Shared button base */
.dfoe-btn {
	display: inline-block;
	padding: 8px 20px;
	font-family: var(--df-font-mono);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	border: 1px solid var(--df-border-mid);
	border-radius: var(--df-radius);
	background: transparent;
	color: var(--df-text);
	cursor: pointer;
	transition: background var(--df-transition), border-color var(--df-transition), color var(--df-transition);
	text-decoration: none;
}

.dfoe-btn:hover,
.dfoe-btn:focus {
	border-color: var(--df-accent);
	color: var(--df-accent);
	outline: none;
}

.dfoe-btn--primary {
	border-color: var(--df-accent);
	color: var(--df-accent);
}

.dfoe-btn--primary:hover,
.dfoe-btn--primary:focus {
	background: var(--df-accent);
	color: var(--df-bg);
}

.dfoe-btn--ghost {
	border-color: transparent;
	color: var(--df-text-dim);
}

.dfoe-btn--ghost:hover,
.dfoe-btn--ghost:focus {
	color: var(--df-text);
	border-color: var(--df-border-mid);
}

/* Shared field */
.dfoe-field {
	display: block;
	width: 100%;
	padding: 8px 10px;
	font-family: var(--df-font-mono);
	font-size: 13px;
	background: var(--df-bg);
	border: 1px solid var(--df-border-mid);
	border-radius: var(--df-radius);
	color: var(--df-text-bright);
	outline: none;
	transition: border-color var(--df-transition);
	box-sizing: border-box;
}

.dfoe-field:focus {
	border-color: var(--df-accent);
}

.dfoe-field::placeholder {
	color: var(--df-text-dim);
}

/* Error / info messages */
.dfoe-message {
	font-family: var(--df-font-mono);
	font-size: 12px;
	padding: 6px 10px;
	margin-top: 8px;
	border-left: 2px solid var(--df-border-mid);
}

.dfoe-message--error {
	border-color: #ff3333;
	color: #ff6666;
}

.dfoe-message--success {
	border-color: var(--df-accent);
	color: var(--df-accent);
}
