/**
 * PhoenixForge Portal — Front-end styles.
 *
 * Dark theme matching phoenixforge.io branding.
 * Colors: #1a1a2e (dark bg), #e8601c (accent), #ffffff (text).
 *
 * @package PFP
 */

/* ------------------------------------------------------------------ */
/*  Base / Portal Container                                           */
/* ------------------------------------------------------------------ */

.pfptl-portal {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
	color: #e0e0e0;
	background: #1a1a2e;
	border-radius: 12px;
	padding: 32px;
	max-width: 1200px;
	margin: 0 auto;
	line-height: 1.6;
}

.pfptl-portal *,
.pfptl-portal *::before,
.pfptl-portal *::after {
	box-sizing: border-box;
}

.pfptl-portal a {
	color: #e8601c;
	text-decoration: none;
}

.pfptl-portal a:hover {
	color: #ff7a3d;
	text-decoration: underline;
}

/* ------------------------------------------------------------------ */
/*  Welcome / Header                                                  */
/* ------------------------------------------------------------------ */

.pfptl-welcome {
	margin-bottom: 32px;
}

.pfptl-welcome h2 {
	color: #ffffff;
	font-size: 28px;
	margin: 0 0 4px;
}

.pfptl-email {
	color: #999;
	font-size: 14px;
	margin: 0;
}

/* ------------------------------------------------------------------ */
/*  Stats Grid                                                        */
/* ------------------------------------------------------------------ */

.pfptl-stats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 16px;
	margin-bottom: 32px;
}

.pfptl-stat-card {
	background: #16213e;
	border: 1px solid #2a2a4a;
	border-radius: 10px;
	padding: 24px;
	text-align: center;
	transition: border-color 0.2s;
}

.pfptl-stat-card:hover {
	border-color: #e8601c;
}

.pfptl-stat-number {
	font-size: 36px;
	font-weight: 700;
	color: #e8601c;
	line-height: 1;
}

.pfptl-stat-label {
	color: #999;
	font-size: 13px;
	margin-top: 6px;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* ------------------------------------------------------------------ */
/*  Quick Links                                                       */
/* ------------------------------------------------------------------ */

.pfptl-quick-links h3 {
	color: #ffffff;
	font-size: 20px;
	margin: 0 0 16px;
}

.pfptl-links-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 12px;
	margin-bottom: 32px;
}

.pfptl-link-card {
	display: flex;
	align-items: center;
	gap: 12px;
	background: #16213e;
	border: 1px solid #2a2a4a;
	border-radius: 8px;
	padding: 16px 20px;
	color: #e0e0e0;
	text-decoration: none;
	transition: border-color 0.2s, background 0.2s;
}

.pfptl-link-card:hover {
	border-color: #e8601c;
	background: #1e2a4a;
	color: #ffffff;
	text-decoration: none;
}

.pfptl-link-icon {
	font-size: 20px;
	color: #e8601c;
}

.pfptl-link-text {
	font-size: 14px;
	font-weight: 500;
}

/* ------------------------------------------------------------------ */
/*  Guest Portal / Lookup Form                                        */
/* ------------------------------------------------------------------ */

.pfptl-guest-portal {
	text-align: center;
	padding: 40px 20px;
}

.pfptl-guest-portal h2 {
	color: #ffffff;
	font-size: 32px;
	margin: 0 0 8px;
}

.pfptl-guest-portal > p {
	color: #999;
	margin: 0 0 24px;
}

.pfptl-lookup-form {
	max-width: 500px;
	margin: 0 auto 32px;
}

.pfptl-form-row {
	display: flex;
	gap: 8px;
}

.pfptl-guest-links {
	margin-top: 24px;
	color: #999;
}

/* ------------------------------------------------------------------ */
/*  Inputs & Buttons                                                  */
/* ------------------------------------------------------------------ */

.pfptl-input {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid #d4d4d8;
	border-radius: 6px;
	background: #ffffff;
	color: #1a1a2e;
	font-size: 14px;
	outline: none;
	transition: border-color 0.2s, box-shadow 0.2s;
}

.pfptl-input:focus {
	border-color: #e8601c;
	box-shadow: 0 0 0 3px rgba(232, 96, 28, 0.15);
}

.pfptl-input::placeholder {
	color: #9ca3af;
}

.pfptl-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 10px 20px;
	border: none;
	border-radius: 6px;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.2s, transform 0.1s;
	white-space: nowrap;
}

.pfptl-btn:hover {
	text-decoration: none;
	transform: translateY(-1px);
}

.pfptl-btn:active {
	transform: translateY(0);
}

.pfptl-btn-primary {
	background: #e8601c;
	color: #ffffff;
}

.pfptl-btn-primary:hover {
	background: #ff7a3d;
	color: #ffffff;
}

.pfptl-btn-outline {
	background: transparent;
	color: #e8601c;
	border: 1px solid #e8601c;
}

.pfptl-btn-outline:hover {
	background: rgba(232, 96, 28, 0.1);
	color: #ff7a3d;
}

.pfptl-btn-danger {
	background: #d63638;
	color: #ffffff;
}

.pfptl-btn-danger:hover {
	background: #e04b4d;
}

.pfptl-btn-small {
	padding: 6px 12px;
	font-size: 12px;
}

.pfptl-btn-block {
	display: flex;
	width: 100%;
}

.pfptl-btn:disabled {
	opacity: 0.6;
	cursor: not-allowed;
	transform: none;
}

/* ------------------------------------------------------------------ */
/*  Notices                                                           */
/* ------------------------------------------------------------------ */

.pfptl-notice {
	padding: 12px 16px;
	border-radius: 6px;
	margin: 16px 0;
}

.pfptl-notice-info {
	background: #16213e;
	border: 1px solid #2a2a4a;
	color: #999;
}

.pfptl-notice-success {
	background: rgba(0, 163, 42, 0.1);
	border: 1px solid #00a32a;
	color: #00a32a;
}

.pfptl-notice-error {
	background: rgba(214, 54, 56, 0.1);
	border: 1px solid #d63638;
	color: #d63638;
}

/* ------------------------------------------------------------------ */
/*  Licenses Table                                                    */
/* ------------------------------------------------------------------ */

.pfptl-licenses {
	margin-top: 16px;
}

.pfptl-licenses-table-wrap {
	overflow-x: auto;
}

.pfptl-table {
	width: 100%;
	border-collapse: collapse;
	font-size: 14px;
}

.pfptl-table th {
	background: #16213e;
	color: #999;
	text-transform: uppercase;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.5px;
	padding: 10px 14px;
	text-align: left;
	border-bottom: 1px solid #2a2a4a;
}

.pfptl-table td {
	padding: 12px 14px;
	border-bottom: 1px solid #1e1e3a;
	vertical-align: middle;
}

.pfptl-table tr:hover td {
	background: rgba(232, 96, 28, 0.05);
}

.pfptl-plugin-name {
	font-weight: 600;
	color: #ffffff;
}

.pfptl-license-key {
	display: flex;
	align-items: center;
	gap: 8px;
}

.pfptl-key-masked {
	font-family: "SF Mono", "Fira Code", "Fira Mono", Menlo, Consolas, monospace;
	font-size: 13px;
	background: #0f0f23;
	padding: 4px 8px;
	border-radius: 4px;
	color: #e0e0e0;
}

.pfptl-btn-copy {
	background: none;
	border: none;
	color: #999;
	cursor: pointer;
	padding: 4px;
	border-radius: 4px;
	transition: color 0.2s;
}

.pfptl-btn-copy:hover {
	color: #e8601c;
}

.pfptl-btn-copy .dashicons {
	font-size: 16px;
	width: 16px;
	height: 16px;
}

/* ------------------------------------------------------------------ */
/*  Status Badges                                                     */
/* ------------------------------------------------------------------ */

.pfptl-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 12px;
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

.pfptl-badge-active {
	background: rgba(0, 163, 42, 0.15);
	color: #00a32a;
}

.pfptl-badge-expired {
	background: rgba(214, 54, 56, 0.15);
	color: #d63638;
}

.pfptl-badge-inactive {
	background: rgba(153, 153, 153, 0.15);
	color: #999;
}

/* ------------------------------------------------------------------ */
/*  Downloads Grid                                                    */
/* ------------------------------------------------------------------ */

.pfptl-downloads {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
	color: #e0e0e0;
	background: #1a1a2e;
	border-radius: 12px;
	padding: 32px;
	max-width: 1200px;
	margin: 0 auto;
}

.pfptl-downloads-header {
	text-align: center;
	margin-bottom: 32px;
}

.pfptl-downloads-header h2 {
	color: #ffffff;
	font-size: 28px;
	margin: 0 0 8px;
}

.pfptl-downloads-header p {
	color: #999;
	margin: 0;
}

.pfptl-downloads-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 20px;
}

.pfptl-download-card {
	background: #16213e;
	border: 1px solid #2a2a4a;
	border-radius: 10px;
	display: flex;
	flex-direction: column;
	transition: border-color 0.2s, transform 0.2s;
}

.pfptl-download-card:hover {
	border-color: #e8601c;
	transform: translateY(-2px);
}

.pfptl-card-header {
	padding: 20px 20px 0;
}

.pfptl-card-title {
	color: #ffffff;
	font-size: 16px;
	font-weight: 600;
	margin: 0;
}

.pfptl-card-body {
	padding: 12px 20px;
	flex: 1;
}

.pfptl-card-desc {
	color: #999;
	font-size: 13px;
	margin: 0;
	line-height: 1.5;
}

.pfptl-card-footer {
	padding: 16px 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* ------------------------------------------------------------------ */
/*  Email Capture Form                                                */
/* ------------------------------------------------------------------ */

.pfptl-email-capture-form {
	max-width: 400px;
	margin: 0 auto;
	text-align: center;
}

.pfptl-capture-title {
	color: #1a1a2e;
	font-size: 20px;
	margin: 0 0 20px;
	text-align: center;
}

.pfptl-form-field {
	margin-bottom: 14px;
	text-align: left;
}

.pfptl-form-field label {
	display: block;
	color: #1a1a2e;
	font-size: 13px;
	font-weight: 600;
	margin-bottom: 6px;
}

.pfptl-required {
	color: #d63638;
}

.pfptl-capture-submit {
	margin: 4px auto 0;
}

.pfptl-capture-disclaimer {
	color: #6b7280;
	font-size: 12px;
	text-align: center;
	margin: 12px 0 0;
}

.pfptl-capture-message {
	padding: 10px 14px;
	border-radius: 6px;
	font-size: 13px;
	margin-top: 12px;
	text-align: center;
}

.pfptl-capture-message.pfptl-success {
	background: rgba(0, 163, 42, 0.1);
	border: 1px solid #00a32a;
	color: #00a32a;
}

.pfptl-capture-message.pfptl-error {
	background: rgba(214, 54, 56, 0.1);
	border: 1px solid #d63638;
	color: #d63638;
}

/* ------------------------------------------------------------------ */
/*  Modal                                                             */
/* ------------------------------------------------------------------ */

.pfptl-modal {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 999999;
	display: flex;
	align-items: center;
	justify-content: center;
}

.pfptl-modal-backdrop {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.7);
}

.pfptl-modal-content {
	position: relative;
	background: #1a1a2e;
	border: 1px solid #2a2a4a;
	border-radius: 12px;
	padding: 32px;
	max-width: 460px;
	width: 90%;
	z-index: 1;
}

.pfptl-modal-close {
	position: absolute;
	top: 12px;
	right: 16px;
	background: none;
	border: none;
	color: #999;
	font-size: 24px;
	cursor: pointer;
	padding: 0;
	line-height: 1;
}

.pfptl-modal-close:hover {
	color: #ffffff;
}

/* ------------------------------------------------------------------ */
/*  Responsive                                                        */
/* ------------------------------------------------------------------ */

@media (max-width: 768px) {
	.pfptl-portal,
	.pfptl-downloads {
		padding: 20px 16px;
		border-radius: 8px;
	}

	.pfptl-stats-grid {
		grid-template-columns: 1fr;
	}

	.pfptl-links-grid {
		grid-template-columns: 1fr;
	}

	.pfptl-downloads-grid {
		grid-template-columns: 1fr;
	}

	.pfptl-form-row {
		flex-direction: column;
	}

	.pfptl-table th,
	.pfptl-table td {
		padding: 8px 10px;
		font-size: 12px;
	}

	.pfptl-license-key {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
	}

	.pfptl-welcome h2 {
		font-size: 22px;
	}

	.pfptl-guest-portal h2 {
		font-size: 24px;
	}

	.pfptl-modal-content {
		padding: 24px 20px;
	}
}

@media (max-width: 480px) {
	.pfptl-table {
		font-size: 11px;
	}

	.pfptl-actions {
		white-space: nowrap;
	}
}
