/*
 * dcc-login.css
 * Demo Command Center — Login screen styles.
 * Depends on: dcc-base.css
 *
 * @package Demo_Command_Center
 */

/* ── Login Stage Layout ──────────────────────────────────────────────────────── */
.dcc-login-stage {
	position:        relative;
	z-index:         var(--dcc-z-content);
	display:         flex;
	flex-direction:  column;
	align-items:     center;
	justify-content: center;
	min-height:      100svh;         /* svh: accounts for mobile browser chrome */
	min-height:      100vh;
	padding:         40px 16px 80px; /* bottom pad for footer */
}

/* ── Login Card ──────────────────────────────────────────────────────────────── */
.dcc-login-card {
	width:            100%;
	max-width:        480px;
	background:       var(--dcc-glass-bg);
	border:           1px solid var(--dcc-glass-border);
	border-radius:    var(--dcc-radius-lg);
	padding:          44px 44px 36px;
	text-align:       center;
	box-shadow:
		0 0 0 1px rgba(196,155,60,0.1),
		0 2px 6px rgba(0,0,0,0.5),
		0 12px 40px rgba(0,0,0,0.7),
		inset 0 1px 0 var(--dcc-glass-shine);
	backdrop-filter:  blur(14px);
	-webkit-backdrop-filter: blur(14px);
	animation:        dcc-card-rise 0.7s var(--dcc-ease) both;
}

@keyframes dcc-card-rise {
	from {
		opacity:   0;
		transform: translateY(24px) scale(0.98);
	}
	to {
		opacity:   1;
		transform: translateY(0) scale(1);
	}
}

/* ── Logo ────────────────────────────────────────────────────────────────────── */
.dcc-logo-wrap {
	position:        relative;
	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	margin:          0 auto 24px;
	width:           160px;
	height:          160px;
}

.dcc-logo-glow-ring {
	position:     absolute;
	inset:        0;
	border-radius: 50%;
	background:   radial-gradient(circle, rgba(196,155,60,0.15) 0%, transparent 70%);
	animation:    dcc-logo-pulse 4s ease-in-out infinite;
}

@keyframes dcc-logo-pulse {
	0%, 100% {
		transform: scale(1);
		opacity:   0.6;
	}
	50% {
		transform: scale(1.12);
		opacity:   1;
	}
}

.dcc-logo-img {
	position:     relative;
	z-index:      1;
	width:        140px;
	height:       140px;
	object-fit:   contain;
	filter:       drop-shadow(0 0 18px rgba(196,155,60,0.5));
	animation:    dcc-logo-glow 4s ease-in-out infinite;
}

@keyframes dcc-logo-glow {
	0%, 100% { filter: drop-shadow(0 0 14px rgba(196,155,60,0.4)); }
	50%       { filter: drop-shadow(0 0 28px rgba(196,155,60,0.75)); }
}

/* Fallback when logo image fails to load */
.dcc-logo-missing .dcc-logo-img {
	display: none;
}
.dcc-logo-missing::after {
	content:     '⚔';
	font-size:   72px;
	line-height: 1;
	color:       var(--dcc-bronze);
	filter:      drop-shadow(0 0 12px var(--dcc-ember-glow));
}

/* ── Login Header ────────────────────────────────────────────────────────────── */
.dcc-login-header {
	margin-bottom: 4px;
}

.dcc-portal-title {
	font-family:    var(--dcc-font-display);
	font-size:      clamp(1.5rem, 4vw, 2rem);
	font-weight:    700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color:          var(--dcc-parchment);
	text-shadow:
		0 0 30px rgba(196,155,60,0.5),
		0 2px 4px rgba(0,0,0,0.8);
	line-height:    1.2;
	margin-bottom:  10px;
}

.dcc-portal-subtitle {
	font-size:      0.78rem;
	line-height:    1.5;
	color:          var(--dcc-parchment-dk);
	letter-spacing: 0.02em;
	max-width:      340px;
	margin:         0 auto;
	opacity:        0.85;
}

/* ── Form ────────────────────────────────────────────────────────────────────── */
.dcc-login-form {
	margin-top: 8px;
	text-align: left;
}

.dcc-field-group {
	margin-bottom: 12px;
}

/* Input shell — icon + input + toggle in one visual unit */
.dcc-input-shell {
	position:        relative;
	display:         flex;
	align-items:     center;
	background:      rgba(0, 0, 0, 0.55);
	border:          1px solid rgba(196,155,60,0.3);
	border-radius:   var(--dcc-radius-md);
	transition:      border-color var(--dcc-trans-fast), box-shadow var(--dcc-trans-fast);
	overflow:        hidden;
}

.dcc-input-shell:focus-within {
	border-color: var(--dcc-bronze);
	box-shadow:   0 0 0 3px rgba(196,155,60,0.15), 0 0 16px rgba(196,155,60,0.1);
}

/* Input field state: error */
.dcc-field-group.dcc-has-error .dcc-input-shell {
	border-color: var(--dcc-red-bright);
	box-shadow:   0 0 0 3px rgba(212,48,48,0.15);
}

.dcc-input-icon {
	display:          flex;
	align-items:      center;
	justify-content:  center;
	width:            44px;
	flex-shrink:      0;
	color:            var(--dcc-smoke-light);
	pointer-events:   none;
}

.dcc-password-field {
	flex:             1;
	height:           52px;
	background:       transparent;
	border:           none;
	outline:          none;
	color:            var(--dcc-parchment);
	font-size:        0.95rem;
	letter-spacing:   0.08em;
	padding:          0 8px;
}
.dcc-password-field::placeholder {
	color:           var(--dcc-smoke);
	letter-spacing:  0.03em;
	font-style:      italic;
}

/* Visibility toggle button */
.dcc-toggle-visibility {
	display:          flex;
	align-items:      center;
	justify-content:  center;
	width:            44px;
	height:           52px;
	flex-shrink:      0;
	color:            var(--dcc-smoke-light);
	transition:       color var(--dcc-trans-fast);
	background:       transparent;
	border:           none;
}
.dcc-toggle-visibility:hover {
	color: var(--dcc-bronze-light);
}
.dcc-eye-closed { display: none; }
.dcc-toggle-visibility[aria-pressed="true"] .dcc-eye-open  { display: none; }
.dcc-toggle-visibility[aria-pressed="true"] .dcc-eye-closed { display: block; }

/* ── Error Banner ────────────────────────────────────────────────────────────── */
.dcc-error-banner {
	display:       flex;
	align-items:   center;
	gap:           10px;
	padding:       10px 14px;
	background:    rgba(139, 26, 26, 0.25);
	border:        1px solid rgba(212, 48, 48, 0.45);
	border-radius: var(--dcc-radius-md);
	margin-bottom: 14px;
	animation:     dcc-error-shake 0.35s var(--dcc-ease);
}

.dcc-error-banner[hidden] {
	display: none;
}

@keyframes dcc-error-shake {
	0%, 100% { transform: translateX(0); }
	20%       { transform: translateX(-6px); }
	40%       { transform: translateX(5px); }
	60%       { transform: translateX(-4px); }
	80%       { transform: translateX(3px); }
}

.dcc-error-icon {
	font-size:   18px;
	color:       var(--dcc-red-bright);
	line-height: 1;
	flex-shrink: 0;
}

.dcc-error-text {
	font-size:      0.82rem;
	color:          #f08080;
	letter-spacing: 0.03em;
}

/* ── Submit Button ───────────────────────────────────────────────────────────── */
.dcc-btn-command {
	position:        relative;
	display:         flex;
	align-items:     center;
	justify-content: center;
	gap:             10px;
	width:           100%;
	height:          56px;
	margin-top:      6px;
	padding:         0 28px;
	background:      linear-gradient(160deg, var(--dcc-roman-red) 0%, #6a1212 60%, #4a0d0d 100%);
	border:          1px solid rgba(196,155,60,0.5);
	border-radius:   var(--dcc-radius-md);
	color:           var(--dcc-parchment);
	font-size:       0.9rem;
	font-weight:     600;
	letter-spacing:  0.12em;
	text-transform:  uppercase;
	cursor:          pointer;
	overflow:        hidden;
	transition:      transform var(--dcc-trans-fast), box-shadow var(--dcc-trans-fast), background var(--dcc-trans-mid);
	box-shadow:
		0 2px 6px rgba(0,0,0,0.6),
		inset 0 1px 0 rgba(255,255,255,0.08),
		0 0 0 0 rgba(196,155,60,0);
}

/* Bronze sheen highlight */
.dcc-btn-command::before {
	content:    '';
	position:   absolute;
	inset:      0;
	background: linear-gradient(135deg, rgba(196,155,60,0.18) 0%, transparent 50%);
	pointer-events: none;
}

/* Tactical glow sweep on hover */
.dcc-btn-command::after {
	content:    '';
	position:   absolute;
	top:        -50%;
	left:       -60%;
	width:      40%;
	height:     200%;
	background: rgba(255,255,255,0.08);
	transform:  skewX(-20deg);
	transition: left 0.4s var(--dcc-ease);
	pointer-events: none;
}

.dcc-btn-command:hover {
	background: linear-gradient(160deg, var(--dcc-red-mid) 0%, var(--dcc-roman-red) 60%, #5a1010 100%);
	box-shadow:
		0 4px 14px rgba(0,0,0,0.7),
		0 0 24px rgba(196,155,60,0.2),
		inset 0 1px 0 rgba(255,255,255,0.1);
	transform: translateY(-1px);
}
.dcc-btn-command:hover::after {
	left: 110%;
}

.dcc-btn-command:active {
	transform:  translateY(1px);
	box-shadow: 0 1px 4px rgba(0,0,0,0.8);
}

.dcc-btn-label {
	position: relative;
	z-index:  1;
}

.dcc-btn-chevron {
	position:   relative;
	z-index:    1;
	display:    flex;
	align-items: center;
	opacity:    0.75;
	transition: transform var(--dcc-trans-fast), opacity var(--dcc-trans-fast);
}
.dcc-btn-command:hover .dcc-btn-chevron {
	transform: translateX(3px);
	opacity:   1;
}

/* Loading spinner (Phase 2 activates) */
.dcc-btn-loader {
	display:      none;
	width:        18px;
	height:       18px;
	border:       2px solid rgba(232,217,181,0.25);
	border-top-color: var(--dcc-parchment);
	border-radius: 50%;
	animation:    dcc-spin 0.6s linear infinite;
}
.dcc-btn-command.dcc-is-loading .dcc-btn-label,
.dcc-btn-command.dcc-is-loading .dcc-btn-chevron {
	display: none;
}
.dcc-btn-command.dcc-is-loading .dcc-btn-loader {
	display: block;
}

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

/* ── Portal Footer ───────────────────────────────────────────────────────────── */
.dcc-portal-footer {
	position:       absolute;
	bottom:         20px;
	left:           0;
	right:          0;
	text-align:     center;
	font-size:      0.73rem;
	color:          var(--dcc-smoke-light);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity:        0.65;
}
.dcc-portal-footer a {
	color:           var(--dcc-parchment-dk);
	text-decoration: none;
}
.dcc-portal-footer a:hover {
	color: var(--dcc-parchment);
}

/* ── Responsive ──────────────────────────────────────────────────────────────── */
@media (max-width: 520px) {
	.dcc-login-card {
		padding: 32px 24px 28px;
	}
	.dcc-logo-wrap {
		width:  120px;
		height: 120px;
	}
	.dcc-logo-img {
		width:  110px;
		height: 110px;
	}
}

@media (max-width: 360px) {
	.dcc-login-card {
		padding: 28px 16px 24px;
	}
	.dcc-portal-title {
		font-size: 1.3rem;
	}
}

/* ── Reduced Motion Overrides ────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	.dcc-bg-image      { animation: none; }
	.dcc-bg-smoke      { animation: none; }
	.dcc-logo-glow-ring { animation: none; }
	.dcc-logo-img      { animation: none; filter: none; }
	.dcc-login-card    { animation: none; }
	.dcc-error-banner  { animation: none; }
	.dcc-btn-command::after { transition: none; }
}
