/**
 * PromptForger Core — Frontend Shortcode Styles
 *
 * Dark AI-native theme for all shortcode outputs.
 * Colors: primary #0D0F1A, secondary #8B5CF6, accent #06B6D4,
 *         surface #111827, text #E2E8F0, muted #94A3B8.
 *
 * @package PromptForgerCore
 * @since   1.0.0
 */

/* == CSS Custom Properties ================================================= */

:root {
	--pf-color-primary: #0D0F1A;
	--pf-color-primary-light: #161B2E;
	--pf-color-secondary: #8B5CF6;
	--pf-color-secondary-hover: #7C3AED;
	--pf-color-secondary-light: #A78BFA;
	--pf-color-accent: #06B6D4;
	--pf-color-accent-hover: #0891B2;
	--pf-color-highlight: #F59E0B;
	--pf-color-background: #080A12;
	--pf-color-surface: #111827;
	--pf-color-text: #E2E8F0;
	--pf-color-muted: #94A3B8;
	--pf-color-border: #1E293B;
	--pf-color-success: #22C55E;
	--pf-color-warning: #F59E0B;
	--pf-color-danger: #EF4444;
	--pf-radius: 12px;
	--pf-glow: 0 0 20px rgba(139, 92, 246, 0.15);
}

/* == Shortcode Grid ======================================================== */

.pf-shortcode-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 24px;
	padding: 24px 0;
}
.pf-shortcode-grid--2col { grid-template-columns: repeat(auto-fill, minmax(400px, 1fr)); }
.pf-shortcode-grid--1col { grid-template-columns: 1fr; }

/* == Course Card =========================================================== */

.pf-course-card {
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	overflow: hidden;
	transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}
.pf-course-card:hover {
	border-color: var(--pf-color-secondary);
	box-shadow: var(--pf-glow);
	transform: translateY(-3px);
}
.pf-course-card__image {
	position: relative;
	width: 100%;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	background: var(--pf-color-primary);
}
.pf-course-card__image img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.pf-course-card:hover .pf-course-card__image img { transform: scale(1.05); }
.pf-course-card__body { padding: 20px; }
.pf-course-card__title {
	margin: 0 0 8px;
	font-size: 17px; font-weight: 600;
	color: var(--pf-color-text);
	line-height: 1.3;
}
.pf-course-card__title a { color: inherit; text-decoration: none; }
.pf-course-card__title a:hover { color: var(--pf-color-secondary); }
.pf-course-card__meta {
	display: flex; align-items: center; gap: 8px;
	margin-bottom: 12px;
	font-size: 12px; color: var(--pf-color-muted);
}
.pf-course-card__difficulty { display: inline-flex; align-items: center; gap: 3px; }
.pf-course-card__difficulty span {
	display: inline-block; width: 4px; height: 12px;
	background: var(--pf-color-border); border-radius: 2px;
}
.pf-course-card__difficulty span.active { background: var(--pf-color-secondary); }
.pf-course-card__duration { display: inline-flex; align-items: center; gap: 4px; }
.pf-course-card__duration::before {
	content: "";
	display: inline-block; width: 14px; height: 14px;
	border: 1.5px solid var(--pf-color-muted); border-radius: 50%;
}

/* == Prompt Card =========================================================== */

.pf-prompt-card {
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	overflow: hidden;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.pf-prompt-card:hover { border-color: var(--pf-color-secondary); box-shadow: var(--pf-glow); }
.pf-prompt-card__body { padding: 20px; }
.pf-prompt-card__title {
	margin: 0 0 12px;
	font-size: 16px; font-weight: 600;
	color: var(--pf-color-text); line-height: 1.3;
}
.pf-prompt-card__title a { color: inherit; text-decoration: none; }
.pf-prompt-card__title a:hover { color: var(--pf-color-secondary); }
.pf-prompt-card__template {
	font-family: "SF Mono", "Fira Code", "Cascadia Code", monospace;
	background: var(--pf-color-primary);
	border: 1px solid var(--pf-color-border);
	border-radius: 8px;
	padding: 16px;
	font-size: 13px; line-height: 1.6;
	color: var(--pf-color-text);
	white-space: pre-wrap; word-break: break-word;
	max-height: 200px; overflow-y: auto;
	margin-bottom: 12px;
}
.pf-prompt-card__meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.pf-prompt-card__effectiveness {
	display: flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 50%;
	font-size: 13px; font-weight: 700;
	color: var(--pf-color-primary); flex-shrink: 0;
}

/* == Article Card ========================================================== */

.pf-article-card {
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	overflow: hidden;
	transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}
.pf-article-card:hover {
	border-color: var(--pf-color-secondary);
	box-shadow: var(--pf-glow);
	transform: translateY(-3px);
}
.pf-article-card__image {
	position: relative;
	width: 100%; aspect-ratio: 16 / 9;
	overflow: hidden; background: var(--pf-color-primary);
}
.pf-article-card__image img {
	width: 100%; height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.pf-article-card:hover .pf-article-card__image img { transform: scale(1.05); }
.pf-article-card__type-badge {
	position: absolute; top: 10px; left: 10px;
	padding: 4px 10px;
	font-size: 11px; font-weight: 600;
	text-transform: uppercase; letter-spacing: 0.5px;
	border-radius: 4px;
	background: var(--pf-color-secondary); color: #fff; z-index: 2;
}
.pf-article-card__body { padding: 20px; }
.pf-article-card__title {
	margin: 0 0 8px;
	font-size: 17px; font-weight: 600;
	color: var(--pf-color-text); line-height: 1.3;
}
.pf-article-card__title a { color: inherit; text-decoration: none; }
.pf-article-card__title a:hover { color: var(--pf-color-secondary); }
.pf-article-card__read-time { font-size: 12px; color: var(--pf-color-muted); }
.pf-article-card__excerpt {
	margin: 8px 0 0;
	font-size: 13px; color: var(--pf-color-muted); line-height: 1.5;
}

/* == Insight Card ========================================================== */

.pf-insight-card {
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	overflow: hidden;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.pf-insight-card:hover { border-color: var(--pf-color-secondary); box-shadow: var(--pf-glow); }
.pf-insight-card__header {
	display: flex; align-items: center; gap: 12px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--pf-color-border);
}
.pf-insight-card__avatar {
	width: 40px; height: 40px; border-radius: 50%;
	object-fit: cover; background: var(--pf-color-primary-light); flex-shrink: 0;
}
.pf-insight-card__author-name { font-size: 14px; font-weight: 600; color: var(--pf-color-text); }
.pf-insight-card__date { font-size: 12px; color: var(--pf-color-muted); }
.pf-insight-card__type-badge {
	display: inline-block; margin-left: auto;
	padding: 2px 8px;
	font-size: 11px; font-weight: 600;
	text-transform: uppercase; letter-spacing: 0.5px;
	border-radius: 4px;
	background: var(--pf-color-primary-light);
	color: var(--pf-color-secondary-light);
	border: 1px solid var(--pf-color-border);
}
.pf-insight-card__type-badge--til      { color: var(--pf-color-accent); }
.pf-insight-card__type-badge--tip      { color: var(--pf-color-success); }
.pf-insight-card__type-badge--question { color: var(--pf-color-highlight); }
.pf-insight-card__type-badge--showcase { color: var(--pf-color-secondary-light); }
.pf-insight-card__body { padding: 20px; }
.pf-insight-card__body p { margin: 0; font-size: 14px; color: var(--pf-color-text); line-height: 1.6; }
.pf-insight-card__footer {
	display: flex; align-items: center; gap: 16px;
	padding: 12px 20px;
	border-top: 1px solid var(--pf-color-border);
	font-size: 13px; color: var(--pf-color-muted);
}

/* == Badges ================================================================ */

.pf-badge {
	position: absolute; top: 10px;
	font-size: 11px; font-weight: 700;
	text-transform: uppercase; letter-spacing: 0.5px;
	padding: 4px 10px; border-radius: 4px; z-index: 2;
}
.pf-badge--featured { left: 10px; background: var(--pf-color-secondary); color: #fff; }
.pf-badge--new      { right: 10px; background: var(--pf-color-accent); color: var(--pf-color-primary); }
.pf-badge--popular  { left: 10px; background: var(--pf-color-highlight); color: var(--pf-color-primary); }

/* == Skill Level Tags ====================================================== */

.pf-skill-tag {
	display: inline-block; padding: 2px 8px;
	font-size: 11px; font-weight: 500;
	border-radius: 4px; border: 1px solid transparent;
}
.pf-skill-tag--beginner      { color: var(--pf-color-accent); background: rgba(6,182,212,0.1); border-color: rgba(6,182,212,0.25); }
.pf-skill-tag--intermediate  { color: var(--pf-color-secondary-light); background: rgba(139,92,246,0.1); border-color: rgba(139,92,246,0.25); }
.pf-skill-tag--advanced      { color: var(--pf-color-highlight); background: rgba(245,158,11,0.1); border-color: rgba(245,158,11,0.25); }
.pf-skill-tag--expert        { color: var(--pf-color-danger); background: rgba(239,68,68,0.1); border-color: rgba(239,68,68,0.25); }

/* == AI Model Tags ========================================================= */

.pf-model-tag {
	display: inline-block; padding: 2px 8px;
	font-size: 11px; font-weight: 500;
	color: var(--pf-color-text);
	background: var(--pf-color-primary);
	border: 1px solid var(--pf-color-border); border-radius: 4px;
}

/* == Score Colors ========================================================== */

.pf-score-high { background-color: var(--pf-color-success); }
.pf-score-mid  { background-color: var(--pf-color-warning); }
.pf-score-low  { background-color: var(--pf-color-danger); }

/* == Topic Grid ============================================================ */

.pf-topic-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 16px; padding: 24px 0;
}
.pf-topic-grid__item {
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	padding: 20px 16px; text-align: center;
	color: var(--pf-color-text);
	font-size: 14px; font-weight: 500;
	text-decoration: none;
	transition: border-color 0.25s ease, box-shadow 0.25s ease, color 0.25s ease;
}
.pf-topic-grid__item:hover {
	border-color: var(--pf-color-secondary);
	box-shadow: var(--pf-glow);
	color: var(--pf-color-secondary);
}
.pf-topic-grid__item-count {
	display: block; margin-top: 6px;
	font-size: 12px; font-weight: 400; color: var(--pf-color-muted);
}

/* == Search Bar ============================================================ */

.pf-search-bar {
	display: flex; align-items: center;
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	overflow: hidden;
	transition: border-color 0.25s ease;
}
.pf-search-bar:focus-within { border-color: var(--pf-color-secondary); }
.pf-search-bar__input {
	flex: 1; padding: 12px 16px;
	font-size: 14px; color: var(--pf-color-text);
	background: transparent; border: none; outline: none;
}
.pf-search-bar__input::placeholder { color: var(--pf-color-muted); }
.pf-search-bar__button {
	padding: 12px 20px;
	font-size: 14px; font-weight: 600;
	color: #fff; background: var(--pf-color-secondary);
	border: none; cursor: pointer;
	transition: background-color 0.2s ease;
}
.pf-search-bar__button:hover { background: var(--pf-color-secondary-hover); }

/* == Playground ============================================================ */

.pf-playground {
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	overflow: hidden;
}
.pf-playground__header {
	display: flex; align-items: center; justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--pf-color-border);
	font-size: 14px; font-weight: 600; color: var(--pf-color-text);
}
.pf-playground__textarea {
	display: block; width: 100%; min-height: 200px;
	padding: 20px;
	font-family: "SF Mono", "Fira Code", "Cascadia Code", monospace;
	font-size: 14px; line-height: 1.6;
	color: var(--pf-color-text); background: var(--pf-color-primary);
	border: none; outline: none; resize: vertical;
}
.pf-playground__textarea::placeholder { color: var(--pf-color-muted); }
.pf-playground__controls {
	display: flex; align-items: center; gap: 12px;
	padding: 16px 20px;
	border-top: 1px solid var(--pf-color-border);
}
.pf-playground__run-btn {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 10px 20px;
	font-size: 14px; font-weight: 600;
	color: #fff; background: var(--pf-color-secondary);
	border: none; border-radius: 8px; cursor: pointer;
	transition: background-color 0.2s ease, transform 0.1s ease;
}
.pf-playground__run-btn:hover  { background: var(--pf-color-secondary-hover); }
.pf-playground__run-btn:active { transform: scale(0.97); }
.pf-playground__clear-btn {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 10px 20px;
	font-size: 14px; font-weight: 600;
	color: var(--pf-color-muted); background: transparent;
	border: 1px solid var(--pf-color-border);
	border-radius: 8px; cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease;
}
.pf-playground__clear-btn:hover { border-color: var(--pf-color-muted); color: var(--pf-color-text); }

/* == Upvote Button ========================================================= */

.pf-upvote-btn {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 6px 12px;
	font-size: 13px; font-weight: 500;
	color: var(--pf-color-muted);
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: 6px; cursor: pointer;
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}
.pf-upvote-btn:hover { border-color: var(--pf-color-secondary); color: var(--pf-color-secondary); }
.pf-upvote-btn--voted { background: var(--pf-color-secondary); border-color: var(--pf-color-secondary); color: #fff; }
.pf-upvote-btn--voted:hover { background: var(--pf-color-secondary-hover); border-color: var(--pf-color-secondary-hover); color: #fff; }

/* == Auth Forms ============================================================ */

.pf-auth-form {
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	padding: 32px; max-width: 480px; margin: 40px auto;
}
.pf-auth-form__title {
	margin: 0 0 24px;
	font-size: 22px; font-weight: 700;
	color: var(--pf-color-text); text-align: center;
}
.pf-auth-form__field { margin-bottom: 20px; }
.pf-auth-form__label {
	display: block; margin-bottom: 6px;
	font-size: 13px; font-weight: 500; color: var(--pf-color-muted);
}
.pf-auth-form__input {
	display: block; width: 100%; padding: 10px 14px;
	font-size: 14px; color: var(--pf-color-text);
	background: var(--pf-color-primary);
	border: 1px solid var(--pf-color-border); border-radius: 8px;
	outline: none; transition: border-color 0.2s ease; box-sizing: border-box;
}
.pf-auth-form__input:focus { border-color: var(--pf-color-secondary); }
.pf-auth-form__submit {
	display: block; width: 100%; padding: 12px;
	font-size: 15px; font-weight: 600;
	color: #fff; background: var(--pf-color-secondary);
	border: none; border-radius: 8px; cursor: pointer;
	transition: background-color 0.2s ease, transform 0.1s ease;
}
.pf-auth-form__submit:hover  { background: var(--pf-color-secondary-hover); }
.pf-auth-form__submit:active { transform: scale(0.98); }
.pf-auth-form__footer {
	margin-top: 20px; text-align: center;
	font-size: 13px; color: var(--pf-color-muted);
}
.pf-auth-form__footer a { color: var(--pf-color-secondary-light); text-decoration: none; }
.pf-auth-form__footer a:hover { color: var(--pf-color-secondary); }

/* == Submission Form ======================================================= */

.pf-submit-form {
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	padding: 32px; max-width: 720px; margin: 40px auto;
}
.pf-submit-form__title {
	margin: 0 0 24px;
	font-size: 20px; font-weight: 700; color: var(--pf-color-text);
}
.pf-submit-form__field { margin-bottom: 20px; }
.pf-submit-form__label {
	display: block; margin-bottom: 6px;
	font-size: 13px; font-weight: 500; color: var(--pf-color-muted);
}
.pf-submit-form__input {
	display: block; width: 100%; padding: 10px 14px;
	font-size: 14px; color: var(--pf-color-text);
	background: var(--pf-color-primary);
	border: 1px solid var(--pf-color-border); border-radius: 8px;
	outline: none; transition: border-color 0.2s ease; box-sizing: border-box;
}
.pf-submit-form__input:focus { border-color: var(--pf-color-secondary); }
.pf-submit-form__textarea {
	display: block; width: 100%; min-height: 160px;
	padding: 12px 14px;
	font-size: 14px; color: var(--pf-color-text);
	background: var(--pf-color-primary);
	border: 1px solid var(--pf-color-border); border-radius: 8px;
	outline: none; resize: vertical;
	transition: border-color 0.2s ease; box-sizing: border-box;
}
.pf-submit-form__textarea:focus { border-color: var(--pf-color-secondary); }
.pf-submit-form__submit {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 12px 24px;
	font-size: 15px; font-weight: 600;
	color: #fff; background: var(--pf-color-secondary);
	border: none; border-radius: 8px; cursor: pointer;
	transition: background-color 0.2s ease, transform 0.1s ease;
}
.pf-submit-form__submit:hover  { background: var(--pf-color-secondary-hover); }
.pf-submit-form__submit:active { transform: scale(0.98); }

/* == Member Profile ======================================================== */

.pf-member-profile {
	display: flex; gap: 32px;
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	padding: 32px;
}
.pf-member-profile__sidebar { flex-shrink: 0; text-align: center; }
.pf-member-profile__avatar {
	width: 96px; height: 96px; border-radius: 50%;
	object-fit: cover; background: var(--pf-color-primary-light);
	margin-bottom: 12px;
}
.pf-member-profile__name {
	margin: 0 0 4px;
	font-size: 18px; font-weight: 700; color: var(--pf-color-text);
}
.pf-member-profile__joined { font-size: 12px; color: var(--pf-color-muted); }
.pf-member-profile__main { flex: 1; min-width: 0; }
.pf-member-profile__stats {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: 16px; margin-bottom: 24px;
}
.pf-member-profile__stat {
	background: var(--pf-color-primary-light);
	border: 1px solid var(--pf-color-border);
	border-radius: 8px; padding: 16px; text-align: center;
}
.pf-member-profile__stat-value {
	display: block;
	font-size: 24px; font-weight: 700;
	color: var(--pf-color-secondary); line-height: 1;
}
.pf-member-profile__stat-label {
	display: block; margin-top: 4px;
	font-size: 11px; color: var(--pf-color-muted);
	text-transform: uppercase; letter-spacing: 0.5px;
}
.pf-member-profile__contributions { list-style: none; margin: 0; padding: 0; }
.pf-member-profile__contributions li {
	display: flex; align-items: center; gap: 12px;
	padding: 12px 0;
	border-bottom: 1px solid var(--pf-color-border);
	font-size: 14px; color: var(--pf-color-text);
}
.pf-member-profile__contributions li:last-child { border-bottom: none; }
.pf-member-profile__contributions-date {
	font-size: 12px; color: var(--pf-color-muted);
	margin-left: auto; flex-shrink: 0;
}

/* == Button System ========================================================= */

.pf-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 6px;
	padding: 10px 20px;
	font-size: 14px; font-weight: 600;
	border: none; border-radius: 8px;
	cursor: pointer; text-decoration: none;
	transition: background-color 0.2s ease, color 0.2s ease, border-color 0.2s ease, transform 0.1s ease, opacity 0.2s ease;
	line-height: 1; text-align: center;
	box-sizing: border-box;
	vertical-align: middle;
}
.pf-btn:active { transform: scale(0.97); }
.pf-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }

.pf-btn--primary { background: var(--pf-color-secondary); color: #fff; }
.pf-btn--primary:hover { background: var(--pf-color-secondary-hover); }
.pf-btn--secondary { background: var(--pf-color-primary-light); color: var(--pf-color-text); border: 1px solid var(--pf-color-border); }
.pf-btn--secondary:hover { border-color: var(--pf-color-secondary); color: var(--pf-color-secondary-light); }
.pf-btn--outline { background: transparent; color: var(--pf-color-muted); border: 1px solid var(--pf-color-border); }
.pf-btn--outline:hover { border-color: var(--pf-color-muted); color: var(--pf-color-text); }
.pf-btn--ghost { background: transparent; color: var(--pf-color-muted); }
.pf-btn--ghost:hover { color: var(--pf-color-text); }
.pf-btn--danger { background: rgba(239,68,68,0.15); color: var(--pf-color-danger); border: 1px solid rgba(239,68,68,0.3); }
.pf-btn--danger:hover { background: rgba(239,68,68,0.25); }
.pf-btn--muted { background: var(--pf-color-primary-light); color: var(--pf-color-muted); border: 1px solid var(--pf-color-border); }
.pf-btn--muted:hover { color: var(--pf-color-text); border-color: var(--pf-color-muted); }
.pf-btn--small { padding: 6px 14px; font-size: 13px; border-radius: 6px; }

/* == Auth Button =========================================================== */

.pf-auth-button {
	display: flex; align-items: center; gap: 12px;
}
.pf-auth-button__avatar {
	display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px; border-radius: 50%;
	border: 2px solid var(--pf-color-border);
	color: var(--pf-color-accent);
	background: var(--pf-color-surface);
	flex-shrink: 0;
}
.pf-auth-button__link {
	display: inline-flex; align-items: center; gap: 4px;
	color: var(--pf-color-muted); text-decoration: none;
	font-size: 13px; font-weight: 500;
	transition: color 0.2s ease;
}
.pf-auth-button__link:hover { color: var(--pf-color-text); }
.pf-auth-button__link svg { flex-shrink: 0; }
.pf-auth-button__link--logout { color: var(--pf-color-muted); font-size: 13px; }
.pf-auth-button__link--logout:hover { color: var(--pf-color-danger); }

/* == Community Action Button =============================================== */

.pf-community-action {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	margin: 0;
}
.pf-btn--community {
	padding: 0.75rem 2rem;
	font-size: 15px;
	font-weight: 700;
	border-radius: 8px;
}
.pf-community-action--logged-out .pf-btn--community {
	cursor: default;
	position: relative;
}
.pf-community-action--logged-out .pf-btn--community:hover::after {
	content: attr(title);
	position: absolute; bottom: calc(100% + 8px); left: 50%;
	transform: translateX(-50%);
	padding: 6px 12px;
	font-size: 12px; font-weight: 400;
	color: var(--pf-color-text);
	background: var(--pf-color-primary);
	border: 1px solid var(--pf-color-border);
	border-radius: 6px;
	white-space: nowrap;
	pointer-events: none;
	z-index: 10;
}

/* == Enhanced Playground ==================================================== */

/* Login notice banner */
.pf-playground__login-notice {
	display: flex; align-items: center; gap: 10px;
	padding: 14px 20px;
	font-size: 14px; color: var(--pf-color-accent);
	background: rgba(6,182,212,0.06);
	border-bottom: 1px solid rgba(6,182,212,0.15);
}
.pf-playground__login-notice svg {
	flex-shrink: 0; color: var(--pf-color-accent);
}
.pf-playground__login-notice a {
	color: var(--pf-color-secondary-light);
	text-decoration: none; font-weight: 600;
	margin-left: 4px;
	transition: color 0.2s ease;
}
.pf-playground__login-notice a:hover { color: var(--pf-color-secondary); text-decoration: underline; }

/* Controls bar */
.pf-playground__controls {
	display: flex; flex-wrap: wrap; align-items: flex-end; gap: 16px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--pf-color-border);
	background: var(--pf-color-primary);
}
.pf-playground__control-group {
	display: flex; flex-direction: column; gap: 4px;
	flex: 1 1 auto; min-width: 140px;
}
.pf-playground__control-group--model { flex: 2 1 200px; }
.pf-playground__control-group--temp { flex: 0 1 140px; }
.pf-playground__label {
	display: flex; align-items: center; gap: 6px;
	font-size: 12px; font-weight: 600;
	color: var(--pf-color-muted);
	text-transform: uppercase; letter-spacing: 0.5px;
}
.pf-playground__select {
	padding: 8px 12px;
	font-size: 13px; color: var(--pf-color-text);
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border); border-radius: 6px;
	outline: none; cursor: pointer;
	transition: border-color 0.2s ease;
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2394A3B8' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 10px center;
	padding-right: 30px;
}
.pf-playground__select:focus { border-color: var(--pf-color-secondary); }
.pf-playground__select:disabled { opacity: 0.5; cursor: not-allowed; }
.pf-playground__select optgroup { color: var(--pf-color-muted); font-style: normal; font-weight: 600; }
.pf-playground__select option { color: var(--pf-color-text); background: var(--pf-color-surface); }
.pf-playground__select option:disabled { color: var(--pf-color-muted); opacity: 0.6; }

.pf-playground__input {
	padding: 8px 12px;
	font-size: 13px; color: var(--pf-color-text);
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border); border-radius: 6px;
	outline: none;
	transition: border-color 0.2s ease;
}
.pf-playground__input:focus { border-color: var(--pf-color-secondary); }
.pf-playground__input:disabled { opacity: 0.5; cursor: not-allowed; }
.pf-playground__input--tokens { width: 80px; }

.pf-playground__range {
	-webkit-appearance: none; appearance: none;
	width: 100%; height: 6px;
	background: var(--pf-color-border); border-radius: 3px;
	outline: none;
}
.pf-playground__range::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 16px; height: 16px;
	background: var(--pf-color-secondary); border-radius: 50%;
	cursor: pointer;
}
.pf-playground__range::-moz-range-thumb {
	width: 16px; height: 16px;
	background: var(--pf-color-secondary); border-radius: 50%;
	border: none; cursor: pointer;
}
.pf-playground__range:disabled { opacity: 0.5; cursor: not-allowed; }
.pf-playground__temp-value {
	font-size: 12px; font-weight: 700;
	color: var(--pf-color-secondary-light);
}

.pf-playground__template-loader {
	padding: 12px 20px;
	border-bottom: 1px solid var(--pf-color-border);
}
.pf-playground__template-loader .pf-playground__select { width: 100%; margin-top: 6px; }

/* Template educational info panel */
.pf-playground__template-info {
	padding: 12px 20px;
	background: rgba(139, 92, 246, 0.04);
	border-bottom: 1px solid var(--pf-color-border);
}
.pf-playground__template-info-header {
	display: flex; align-items: center; gap: 10px;
	margin-bottom: 8px;
}
.pf-playground__template-info-technique {
	font-size: 14px; font-weight: 700;
	color: var(--pf-color-secondary-light, #a78bfa);
}
.pf-playground__template-info-level {
	display: inline-block;
	padding: 2px 10px;
	font-size: 11px; font-weight: 600;
	text-transform: uppercase; letter-spacing: 0.5px;
	border-radius: 12px;
	color: #fff; background: var(--pf-color-muted);
}
.pf-playground__template-info-level--beginner { background: var(--pf-color-success); }
.pf-playground__template-info-level--intermediate { background: var(--pf-color-warning); color: var(--pf-color-primary); }
.pf-playground__template-info-level--advanced { background: var(--pf-color-danger); }
.pf-playground__template-info-score {
	display: inline-flex; align-items: center; justify-content: center;
	padding: 2px 8px;
	font-size: 11px; font-weight: 700;
	color: var(--pf-color-accent);
	background: rgba(6, 182, 212, 0.1);
	border: 1px solid rgba(6, 182, 212, 0.2);
	border-radius: 12px;
}
.pf-playground__template-info-desc {
	font-size: 13px; line-height: 1.6;
	color: var(--pf-color-muted);
	max-height: 100px; overflow-y: auto;
}

.pf-playground__section {
	padding: 16px 20px;
}
.pf-playground__section .pf-playground__label { margin-bottom: 8px; }

.pf-playground__textarea--system {
	min-height: 80px; font-size: 13px;
}
.pf-playground__textarea--prompt {
	min-height: 180px;
}
.pf-playground__char-count {
	text-align: right;
	font-size: 11px; color: var(--pf-color-muted);
	padding: 4px 0;
}

/* Variables */
.pf-playground__variables {
	padding: 12px 20px 16px;
	border-top: 1px solid var(--pf-color-border);
}
.pf-playground__variables-label {
	margin: 0 0 12px;
	font-size: 13px; font-weight: 600;
	color: var(--pf-color-accent); text-transform: uppercase;
	letter-spacing: 0.5px;
}
.pf-playground__var-field {
	display: flex; align-items: center; gap: 12px;
	margin-bottom: 8px;
}
.pf-playground__var-label {
	flex-shrink: 0; width: 120px;
	font-family: "SF Mono", "Fira Code", "Cascadia Code", monospace;
	font-size: 13px; font-weight: 500;
	color: var(--pf-color-secondary-light);
}
.pf-playground__var-input {
	flex: 1; padding: 8px 12px;
	font-size: 13px; color: var(--pf-color-text);
	background: var(--pf-color-primary);
	border: 1px solid var(--pf-color-border); border-radius: 6px;
	outline: none; transition: border-color 0.2s ease;
}
.pf-playground__var-input:focus { border-color: var(--pf-color-secondary); }

/* Error display */
.pf-playground__error {
	margin: 0 20px;
	padding: 10px 16px;
	font-size: 13px; color: var(--pf-color-danger);
	background: rgba(239,68,68,0.1);
	border: 1px solid rgba(239,68,68,0.25);
	border-radius: 8px;
}

/* Action bar */
.pf-playground__actions {
	display: flex; align-items: center; gap: 12px;
	padding: 16px 20px;
	border-top: 1px solid var(--pf-color-border);
}

/* Copy button */
.pf-playground__copy-btn { /* inherits .pf-btn--secondary */ }

/* Resolved prompt (shown after running — displays final prompt sent) */
.pf-playground__resolved {
	border-top: 1px solid var(--pf-color-border);
}
.pf-playground__resolved-header {
	display: flex; align-items: center; gap: 8px;
	padding: 12px 20px;
	cursor: pointer; user-select: none;
	transition: background-color 0.15s ease;
}
.pf-playground__resolved-header:hover {
	background: rgba(139, 92, 246, 0.06);
}
.pf-playground__resolved-header-icon {
	font-size: 10px; color: var(--pf-color-muted);
	transition: transform 0.2s ease;
	width: 14px; text-align: center;
}
.pf-playground__resolved-header-text {
	font-size: 13px; font-weight: 600;
	color: var(--pf-color-accent);
	text-transform: uppercase; letter-spacing: 0.5px;
	flex: 1;
}
.pf-playground__resolved-copy {
	font-size: 11px !important;
	padding: 4px 10px !important;
}
.pf-playground__resolved-content {
	padding: 0 20px 16px;
}
.pf-playground__resolved-label {
	font-size: 11px; font-weight: 600;
	color: var(--pf-color-muted);
	text-transform: uppercase; letter-spacing: 0.5px;
	margin-bottom: 6px; margin-top: 8px;
}
.pf-playground__resolved-pre {
	margin: 0;
	padding: 14px 16px;
	font-family: "SF Mono", "Fira Code", "Cascadia Code", monospace;
	font-size: 13px; line-height: 1.6;
	color: var(--pf-color-text);
	background: var(--pf-color-primary);
	border: 1px solid var(--pf-color-border);
	border-radius: 8px;
	white-space: pre-wrap; word-break: break-word;
	max-height: 300px; overflow-y: auto;
}

/* Response pane */
.pf-playground__response {
	padding: 20px;
	min-height: 120px;
	font-size: 14px; line-height: 1.7;
	color: var(--pf-color-text);
	background: var(--pf-color-primary);
	border-top: 1px solid var(--pf-color-border);
}
.pf-playground__response-placeholder {
	color: var(--pf-color-muted); font-style: italic; margin: 0;
}
.pf-playground__response--has-content .pf-playground__response-placeholder { display: none; }

/* Code blocks in response */
.pf-playground__code-block {
	margin: 12px 0;
	padding: 16px;
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: 8px;
	overflow-x: auto;
	font-family: "SF Mono", "Fira Code", "Cascadia Code", monospace;
	font-size: 13px; line-height: 1.5;
}
.pf-playground__code-block code { color: var(--pf-color-text); }
.pf-playground__inline-code {
	padding: 2px 6px;
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: 4px;
	font-family: "SF Mono", "Fira Code", "Cascadia Code", monospace;
	font-size: 0.9em;
	color: var(--pf-color-accent);
}

/* Running animation */
.pf-playground__run-btn--running {
	position: relative;
	overflow: hidden;
}
.pf-playground__run-btn--running::after {
	content: "";
	position: absolute; top: 0; left: -100%;
	width: 100%; height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent);
	animation: pf-shimmer 1.5s infinite;
}
@keyframes pf-shimmer {
	to { left: 100%; }
}

/* Usage display */
.pf-playground__usage {
	padding: 10px 20px;
	font-size: 12px; color: var(--pf-color-muted);
	background: var(--pf-color-primary);
	border-top: 1px solid var(--pf-color-border);
}

/* == Settings Page ========================================================== */

.pf-settings {
	max-width: 900px; margin: 0 auto;
}

/* Tabs */
.pf-settings-tabs {
	display: flex; gap: 0;
	margin-bottom: 24px;
	border-bottom: 2px solid var(--pf-color-border);
}
.pf-settings-tab {
	padding: 12px 24px;
	font-size: 14px; font-weight: 600;
	color: var(--pf-color-muted);
	background: transparent; border: none;
	cursor: pointer;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	transition: color 0.2s ease, border-color 0.2s ease;
	text-decoration: none;
}
.pf-settings-tab:hover { color: var(--pf-color-text); }
.pf-settings-tab--active {
	color: var(--pf-color-secondary-light);
	border-bottom-color: var(--pf-color-secondary);
}

/* Panels */
.pf-settings-panel { display: none; }
.pf-settings-panel--active { display: block; }

/* Provider Cards */
.pf-provider-cards {
	display: flex; flex-direction: column; gap: 16px;
}
.pf-provider-card {
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	overflow: hidden;
	transition: border-color 0.2s ease;
}
.pf-provider-card:hover { border-color: rgba(139,92,246,0.3); }

.pf-provider-card__header {
	display: flex; align-items: center; justify-content: space-between;
	padding: 16px 20px;
	border-bottom: 1px solid var(--pf-color-border);
}
.pf-provider-card__identity {
	display: flex; align-items: center; gap: 12px;
}
.pf-provider-card__icon {
	display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px;
	border-radius: 8px;
	font-size: 16px; font-weight: 700;
	background: var(--pf-color-primary-light);
	color: var(--pf-color-secondary-light);
	border: 1px solid var(--pf-color-border);
}
/* Provider-specific icon colors */
.pf-provider-card__icon--openai    { color: #10B981; }
.pf-provider-card__icon--anthropic { color: #D4A574; }
.pf-provider-card__icon--google    { color: #4285F4; }
.pf-provider-card__icon--mistral   { color: #FF7000; }
.pf-provider-card__icon--groq      { color: #F55036; }
.pf-provider-card__icon--cohere    { color: #39594D; }

.pf-provider-card__label {
	margin: 0;
	font-size: 16px; font-weight: 600;
	color: var(--pf-color-text);
}

/* Status badge */
.pf-provider-card__status {
	display: inline-flex; align-items: center; gap: 6px;
	padding: 4px 12px;
	font-size: 12px; font-weight: 600;
	border-radius: 20px;
}
.pf-provider-card__status--connected {
	color: var(--pf-color-success);
	background: rgba(34,197,94,0.1);
	border: 1px solid rgba(34,197,94,0.25);
}
.pf-provider-card__status--not-connected {
	color: var(--pf-color-muted);
	background: var(--pf-color-primary-light);
	border: 1px solid var(--pf-color-border);
}

.pf-provider-card__body {
	padding: 16px 20px;
}

/* Masked key display */
.pf-provider-card__key-display {
	display: flex; align-items: center; gap: 12px;
	margin-bottom: 12px;
}
.pf-provider-card__masked-key {
	padding: 6px 12px;
	font-family: "SF Mono", "Fira Code", monospace;
	font-size: 13px;
	color: var(--pf-color-muted);
	background: var(--pf-color-primary);
	border: 1px solid var(--pf-color-border);
	border-radius: 6px;
}

/* Card actions */
.pf-provider-card__actions {
	display: flex; flex-wrap: wrap; gap: 8px;
	margin-bottom: 12px;
}

/* Update form (hidden by default) */
.pf-provider-card__update-form {
	margin-top: 12px; padding-top: 12px;
	border-top: 1px solid var(--pf-color-border);
	display: flex; gap: 8px; align-items: center;
}
.pf-provider-card__update-form[hidden] { display: none; }

/* Key input */
.pf-form-input {
	flex: 1; padding: 8px 12px;
	font-size: 13px; color: var(--pf-color-text);
	background: var(--pf-color-primary);
	border: 1px solid var(--pf-color-border); border-radius: 6px;
	outline: none; transition: border-color 0.2s ease;
	font-family: "SF Mono", "Fira Code", monospace;
}
.pf-form-input:focus { border-color: var(--pf-color-secondary); }

/* Card footer */
.pf-provider-card__footer {
	padding: 12px 20px;
	border-top: 1px solid var(--pf-color-border);
	display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
	font-size: 12px; color: var(--pf-color-muted);
}
.pf-provider-card__key-link {
	color: var(--pf-color-secondary-light);
	text-decoration: none; font-weight: 500;
}
.pf-provider-card__key-link:hover { color: var(--pf-color-secondary); text-decoration: underline; }
.pf-provider-card__models { display: flex; align-items: center; gap: 4px; margin-left: auto; }
.pf-provider-card__models-label { font-weight: 500; color: var(--pf-color-muted); margin-right: 4px; }

/* Card message (success/error feedback) */
.pf-provider-card__message {
	padding: 0; margin: 0;
	font-size: 13px; font-weight: 500;
	min-height: 0; overflow: hidden;
	transition: all 0.2s ease;
}
.pf-provider-card__message--success {
	padding: 8px 20px;
	color: var(--pf-color-success);
	background: rgba(34,197,94,0.08);
}
.pf-provider-card__message--error {
	padding: 8px 20px;
	color: var(--pf-color-danger);
	background: rgba(239,68,68,0.08);
}

/* Testing state */
.pf-testing { position: relative; }
.pf-testing::after {
	content: ""; display: inline-block;
	width: 12px; height: 12px;
	border: 2px solid var(--pf-color-muted);
	border-top-color: transparent; border-radius: 50%;
	animation: pf-spin 0.7s linear infinite;
	margin-left: 6px; vertical-align: middle;
}
@keyframes pf-spin { to { transform: rotate(360deg); } }

/* Security notice */
.pf-settings__security-notice {
	display: flex; align-items: flex-start; gap: 12px;
	margin-top: 24px;
	padding: 16px 20px;
	font-size: 13px; color: var(--pf-color-muted);
	background: var(--pf-color-primary-light);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	line-height: 1.6;
}

/* Profile tab */
.pf-settings-profile {
	display: flex; align-items: center; gap: 20px;
	padding: 20px;
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	margin-bottom: 24px;
}
.pf-settings-profile__avatar-img {
	width: 80px; height: 80px; border-radius: 50%;
	border: 2px solid var(--pf-color-border);
}
.pf-settings-profile__name {
	margin: 0 0 4px;
	font-size: 18px; font-weight: 700; color: var(--pf-color-text);
}
.pf-settings-profile__email {
	margin: 0 0 2px;
	font-size: 13px; color: var(--pf-color-muted);
}
.pf-settings-profile__joined {
	margin: 0;
	font-size: 12px; color: var(--pf-color-muted);
}

.pf-settings-profile__configured {
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	padding: 20px;
}
.pf-settings-profile__section-title {
	margin: 0 0 12px;
	font-size: 14px; font-weight: 600; color: var(--pf-color-text);
}
.pf-settings-profile__provider-list {
	list-style: none; margin: 0; padding: 0;
}
.pf-settings-profile__provider-item {
	display: flex; align-items: center; gap: 8px;
	padding: 8px 0;
	font-size: 14px; color: var(--pf-color-text);
	border-bottom: 1px solid var(--pf-color-border);
}
.pf-settings-profile__provider-item:last-child { border-bottom: none; }
.pf-settings-profile__no-providers {
	margin: 0;
	font-size: 13px; color: var(--pf-color-muted); font-style: italic;
}

/* == Login Form (sleek dark theme) ========================================= */

.pf-login-form-wrapper {
	max-width: 440px; margin: 0 auto;
}

/* Target the WP-generated login form */
.pf-login-form-wrapper #pf-login-form {
	display: flex; flex-direction: column; gap: 0;
}

/* Form field containers (p.login-username, p.login-password) */
.pf-login-form-wrapper .login-username,
.pf-login-form-wrapper .login-password {
	margin: 0 0 20px; padding: 0;
}

/* Labels */
.pf-login-form-wrapper .login-username label,
.pf-login-form-wrapper .login-password label {
	display: block; margin-bottom: 8px;
	font-size: 13px; font-weight: 600;
	color: var(--pf-color-muted);
	text-transform: uppercase; letter-spacing: 0.5px;
}

/* Remove the <br> after label (WP injects it) */
.pf-login-form-wrapper .login-username br,
.pf-login-form-wrapper .login-password br,
.pf-login-form-wrapper .login-submit br { display: none; }

/* Text inputs */
.pf-login-form-wrapper .input {
	display: block; width: 100%;
	padding: 14px 16px;
	font-size: 15px; color: var(--pf-color-text);
	background: var(--pf-color-primary);
	border: 1px solid var(--pf-color-border);
	border-radius: 10px;
	outline: none;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
	box-sizing: border-box;
	-webkit-appearance: none; appearance: none;
}
.pf-login-form-wrapper .input:focus {
	border-color: var(--pf-color-secondary);
	box-shadow: 0 0 0 3px rgba(139,92,246,0.15);
}
.pf-login-form-wrapper .input::placeholder { color: var(--pf-color-muted); }

/* Remember Me checkbox */
.pf-login-form-wrapper .login-remember {
	margin: 0 0 24px; padding: 0;
}
.pf-login-form-wrapper .login-remember label {
	display: flex; align-items: center; gap: 10px;
	font-size: 13px; color: var(--pf-color-muted);
	cursor: pointer;
	user-select: none;
}
.pf-login-form-wrapper .login-remember input[type="checkbox"] {
	-webkit-appearance: none; appearance: none;
	width: 18px; height: 18px;
	background: var(--pf-color-primary);
	border: 1.5px solid var(--pf-color-border);
	border-radius: 5px;
	cursor: pointer;
	position: relative;
	transition: background-color 0.2s ease, border-color 0.2s ease;
	flex-shrink: 0;
}
.pf-login-form-wrapper .login-remember input[type="checkbox"]:checked {
	background: var(--pf-color-secondary);
	border-color: var(--pf-color-secondary);
}
.pf-login-form-wrapper .login-remember input[type="checkbox"]:checked::after {
	content: "";
	position: absolute; top: 2px; left: 5px;
	width: 5px; height: 10px;
	border: solid #fff; border-width: 0 2px 2px 0;
	transform: rotate(45deg);
}

/* Submit button */
.pf-login-form-wrapper .login-submit {
	margin: 0; padding: 0;
}
.pf-login-form-wrapper #wp-submit {
	display: flex; align-items: center; justify-content: center;
	width: 100%;
	padding: 14px;
	font-size: 16px; font-weight: 700;
	line-height: 1; text-align: center;
	color: #fff;
	background: linear-gradient(135deg, var(--pf-color-secondary), var(--pf-color-secondary-hover));
	border: none; border-radius: 10px;
	cursor: pointer;
	transition: transform 0.1s ease, box-shadow 0.25s ease, opacity 0.2s ease;
	letter-spacing: 0.02em;
	box-sizing: border-box;
}
.pf-login-form-wrapper #wp-submit:hover {
	box-shadow: 0 4px 20px rgba(139,92,246,0.4);
	transform: translateY(-1px);
}
.pf-login-form-wrapper #wp-submit:active {
	transform: translateY(0) scale(0.98);
}

/* Links (Forgot Password) */
.pf-login-form__links {
	margin-top: 16px; text-align: center;
}
.pf-login-form__link {
	font-size: 13px; color: var(--pf-color-muted);
	text-decoration: none;
	transition: color 0.2s ease;
}
.pf-login-form__link:hover { color: var(--pf-color-secondary-light); }

/* == Register Form (matches login page) ==================================== */

.pf-register-form-wrapper {
	max-width: 440px; margin: 0 auto;
}

.pf-register-form {
	display: flex; flex-direction: column; gap: 0;
}

/* Form groups */
.pf-register-form .pf-form-group {
	margin: 0 0 18px; padding: 0;
}

/* Labels */
.pf-register-form .pf-form-label {
	display: block; margin-bottom: 8px;
	font-size: 13px; font-weight: 600;
	color: var(--pf-color-muted);
	text-transform: uppercase; letter-spacing: 0.5px;
}

/* Hide WP-injected <br> tags */
.pf-register-form .pf-form-label br,
.pf-register-form .pf-form-group br { display: none; }

/* Required asterisk */
.pf-required { color: var(--pf-color-secondary-light); margin-left: 2px; }

/* Text & password inputs */
.pf-register-form .pf-form-input {
	display: block; width: 100%;
	padding: 14px 16px;
	font-size: 15px; color: var(--pf-color-text);
	background: var(--pf-color-primary);
	border: 1px solid var(--pf-color-border);
	border-radius: 10px;
	outline: none;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
	box-sizing: border-box;
	-webkit-appearance: none; appearance: none;
	font-family: inherit;
}
.pf-register-form .pf-form-input:focus {
	border-color: var(--pf-color-secondary);
	box-shadow: 0 0 0 3px rgba(139,92,246,0.15);
}
.pf-register-form .pf-form-input::placeholder { color: var(--pf-color-muted); }

/* Action group (submit button) */
.pf-register-form .pf-form-actions {
	margin-top: 6px;
}
.pf-register-form .pf-form-actions .pf-btn--primary {
	display: flex; align-items: center; justify-content: center;
	width: 100%;
	padding: 14px;
	font-size: 16px; font-weight: 700;
	line-height: 1; text-align: center;
	color: #fff;
	background: linear-gradient(135deg, var(--pf-color-secondary), var(--pf-color-secondary-hover));
	border: none; border-radius: 10px;
	cursor: pointer;
	transition: transform 0.1s ease, box-shadow 0.25s ease, opacity 0.2s ease;
	letter-spacing: 0.02em;
	box-sizing: border-box;
}
.pf-register-form .pf-form-actions .pf-btn--primary:hover {
	box-shadow: 0 4px 20px rgba(139,92,246,0.4);
	transform: translateY(-1px);
}
.pf-register-form .pf-form-actions .pf-btn--primary:active {
	transform: translateY(0) scale(0.98);
}

/* Error messages */
.pf-register-form__error {
	margin-bottom: 20px;
	padding: 12px 16px;
	font-size: 13px; color: var(--pf-color-danger);
	background: rgba(239,68,68,0.08);
	border: 1px solid rgba(239,68,68,0.2);
	border-radius: 10px;
	line-height: 1.5;
}

/* Auth notice (already logged in) */
.pf-auth-notice {
	text-align: center;
	padding: 40px 20px;
	color: var(--pf-color-muted);
}

/* == Responsive ============================================================ */

@media (max-width: 600px) {
	.pf-shortcode-grid,
	.pf-shortcode-grid--2col { grid-template-columns: 1fr; gap: 16px; }
	.pf-topic-grid { grid-template-columns: repeat(auto-fill, minmax(120px, 1fr)); gap: 12px; }
	.pf-course-card__body,
	.pf-prompt-card__body,
	.pf-article-card__body { padding: 16px; }
	.pf-course-card__title,
	.pf-article-card__title { font-size: 15px; }
	.pf-playground__textarea { min-height: 150px; padding: 16px; font-size: 13px; }
	.pf-playground__controls { flex-direction: column; gap: 8px; }
	.pf-playground__run-btn,
	.pf-playground__clear-btn { width: 100%; justify-content: center; }
	.pf-auth-form { padding: 24px 20px; margin: 24px auto; }
	.pf-auth-form__title { font-size: 18px; }
	.pf-submit-form { padding: 24px 20px; margin: 24px auto; }
	.pf-member-profile { flex-direction: column; gap: 24px; padding: 24px 20px; }
	.pf-member-profile__stats { grid-template-columns: repeat(2, 1fr); }
	.pf-insight-card__header { padding: 12px 16px; }
	.pf-insight-card__body { padding: 16px; }
	.pf-insight-card__footer { padding: 10px 16px; }
	.pf-search-bar__input { padding: 10px 12px; font-size: 13px; }
	.pf-search-bar__button { padding: 10px 16px; font-size: 13px; }

	/* Settings responsive */
	.pf-settings-tabs { overflow-x: auto; }
	.pf-settings-tab { white-space: nowrap; padding: 10px 16px; font-size: 13px; }
	.pf-provider-card__header { flex-direction: column; align-items: flex-start; gap: 8px; }
	.pf-provider-card__actions { flex-direction: column; }
	.pf-provider-card__update-form { flex-direction: column; }
	.pf-provider-card__footer { flex-direction: column; align-items: flex-start; }
	.pf-provider-card__models { margin-left: 0; }
	.pf-settings-profile { flex-direction: column; text-align: center; }

	/* Playground responsive */
	.pf-playground__controls { flex-direction: column; gap: 12px; }
	.pf-playground__control-group { min-width: 0; }
	.pf-playground__actions { flex-direction: column; gap: 8px; }
	.pf-playground__actions .pf-btn { width: 100%; justify-content: center; }
	.pf-playground__var-field { flex-direction: column; gap: 4px; }
	.pf-playground__var-label { width: auto; }

	/* Resources responsive */
	.pf-resource-card__header { padding: 14px 16px; }
	.pf-resource-card__body { padding: 16px; }
	.pf-resource-card__footer { padding: 10px 16px; }
}

/* == Resources Section ====================================================== */

.pf-resources-wrap {
	display: flex;
	flex-direction: column;
	gap: 40px;
	padding: 8px 0;
}

.pf-resources-section__title {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 20px;
	font-weight: 700;
	color: var(--pf-color-text);
	margin: 0 0 16px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--pf-color-border);
	letter-spacing: 0.01em;
}
.pf-resources-section__icon {
	font-size: 22px;
	line-height: 1;
}
.pf-resources-section__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 24px;
	height: 24px;
	padding: 0 8px;
	border-radius: 12px;
	background: var(--pf-color-secondary);
	color: #fff;
	font-size: 12px;
	font-weight: 600;
}

/* == Resource Card ========================================================== */

.pf-resource-card {
	background: var(--pf-color-surface);
	border: 1px solid var(--pf-color-border);
	border-radius: var(--pf-radius);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: border-color 0.25s ease, box-shadow 0.25s ease, transform 0.25s ease;
}
.pf-resource-card:hover {
	border-color: var(--pf-color-secondary);
	box-shadow: var(--pf-glow);
	transform: translateY(-3px);
}
.pf-resource-card__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 20px 0;
}
.pf-resource-card__icon {
	font-size: 28px;
	line-height: 1;
}
.pf-resource-card__badges {
	display: flex;
	align-items: center;
	gap: 6px;
}
.pf-resource-card__type {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 6px;
	background: rgba(139, 92, 246, 0.15);
	color: var(--pf-color-secondary-light);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.pf-resource-card__free {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 6px;
	background: rgba(34, 197, 94, 0.15);
	color: var(--pf-color-success);
	font-size: 11px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}
.pf-resource-card__body {
	flex: 1;
	padding: 16px 20px;
}
.pf-resource-card__title {
	margin: 0 0 8px;
	font-size: 16px;
	font-weight: 600;
	color: var(--pf-color-text);
	line-height: 1.3;
}
.pf-resource-card__title a {
	color: inherit;
	text-decoration: none;
}
.pf-resource-card__title a:hover {
	color: var(--pf-color-secondary);
}
.pf-resource-card__excerpt {
	font-size: 13px;
	color: var(--pf-color-muted);
	line-height: 1.6;
	margin-bottom: 12px;
}
.pf-resource-card__topics {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: 8px;
}
.pf-resource-card__footer {
	padding: 12px 20px 16px;
	border-top: 1px solid var(--pf-color-border);
}
.pf-resource-card__external-icon {
	font-size: 14px;
	margin-left: 4px;
}
