/*
 * Vintage Software Favorites.
 * The plugin's pages are transparent and get the theme's Page background
 * (added inline from display.php); the text is set dark to read on it.
 */
.vsf-form-wrap, .vsf-single, .vsf-votes, .vsf-hall {
	--vsf-text: #1a202c;
	--vsf-link: #215387;
	--vsf-accent: var(--global-palette1, #2b6cb0);
	--vsf-accent-dark: var(--global-palette2, #215387);
	--vsf-soft: rgba(255, 255, 255, .6);
	--vsf-border: rgba(0, 0, 0, .25);
	color: var(--vsf-text);
}

/*
 * Theme content boxes on plugin pages: no background of their own.
 * Covers Kadence's wrappers (boxed or unboxed, title in content or in a hero
 * banner) and the usual names used by other themes.
 */
body.vsf-page :is(#wrapper, .site, #inner-wrap, #page, .site-content, .content-area,
	.content-container, .site-main, .content-wrap, article, .content-bg,
	.entry-content-wrap, .entry-content, .entry-header, .entry-hero,
	.entry-hero-container-inner, .hero-section-overlay, .comments-area),
.vsf-form-wrap, .vsf-single, .vsf-votes, .vsf-hall {
	background: transparent !important;
	box-shadow: none !important;
}
body.vsf-page .hero-section-overlay { opacity: 0 !important; }

/* Theme text on plugin pages (titles, meta, paragraphs) reads dark. */
body.vsf-page :is(.site-main, .entry-hero) :is(h1, h2, h3, h4, p, li, label, dt, dd,
	.entry-title, .entry-meta, .entry-meta a, .vsf-hall__category h2 a) {
	color: var(--vsf-text, #1a202c);
}
body.vsf-page .site-main a:not(.vsf-button):not(.submit):not(.button),
.vsf-single a:not(.vsf-button), .vsf-votes a:not(.submit), .vsf-hall a {
	color: var(--vsf-link, #215387);
}

/*
 * Layout: keep content centered with breathing room even when the page uses a
 * full-width / no-padding layout.
 */
.vsf-form-wrap, .vsf-hall {
	box-sizing: border-box;
	max-width: 46rem;
	margin: 2.5rem auto 3rem;
	padding: 0 1.25rem;
}
body.single-vsf_software .site-main .content-wrap,
body.single-vsf_software .entry-hero-container-inner .entry-header {
	box-sizing: border-box;
	max-width: 50rem;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}
@media (max-width: 600px) {
	.vsf-form-wrap, .vsf-hall { margin-top: 1.5rem; padding: 0 .75rem; }
	body.single-vsf_software .site-main .content-wrap { padding-left: .75rem; padding-right: .75rem; }
}

/* Forms */
.vsf-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; }
.vsf-form .vsf-field, .vsf-form .vsf-intro, .vsf-form .vsf-submit { margin: 0; min-width: 0; }
.vsf-field { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: .35rem; }
.vsf-form input, .vsf-form select, .vsf-form textarea { max-width: 100%; min-width: 0; }
.vsf-field label { font-weight: 600; color: var(--vsf-text); }
.vsf-form input[type="text"], .vsf-form input[type="url"], .vsf-form input[type="email"],
.vsf-form select, .vsf-form textarea,
.vsf-votes input[type="text"], .vsf-votes textarea {
	width: 100%; box-sizing: border-box;
	background: #fff; color: #1a202c;
	border: 1px solid var(--vsf-border); border-radius: 4px; padding: .5rem .6rem;
}
.vsf-form input::placeholder, .vsf-form textarea::placeholder, .vsf-votes textarea::placeholder { color: #718096; opacity: 1; }
.vsf-form select option { background: #fff; color: #1a202c; }
.vsf-form input[type="file"] { color: var(--vsf-text); }
.vsf-form :focus-visible, .vsf-votes :focus-visible { outline: 2px solid var(--vsf-accent); outline-offset: 1px; }
.vsf-req { color: #e53e3e; }
.vsf-hint { color: var(--vsf-text); opacity: .75; font-size: .9em; font-weight: 400; }
.vsf-intro { margin: 0; opacity: .8; }
.vsf-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.vsf-dup-notice { display: block; padding: .6rem .8rem; border-left: 4px solid #d69e2e; background: #fffbea; color: #744210; }
.vsf-dup-notice a { color: #744210; text-decoration: underline; }
.vsf-dup-notice[hidden], #vsf-new-category-wrap[hidden] { display: none; }

/* Notices: fixed light backgrounds with dark text, readable on any theme */
.vsf-notice { padding: .9rem 1.1rem; border-radius: 6px; margin: 0 0 1.25rem; }
.vsf-notice p { margin: 0 0 .4rem; }
.vsf-notice p:last-child, .vsf-notice ul { margin-bottom: 0; }
.vsf-notice--success { background: #f0fff4; border: 1px solid #9ae6b4; color: #22543d; }
.vsf-notice--error { background: #fff5f5; border: 1px solid #feb2b2; color: #742a2a; }
.vsf-notice a { color: inherit; text-decoration: underline; }

/* Buttons */
.vsf-button, a.vsf-button, .vsf-votes .submit {
	display: inline-block; padding: .55rem 1.1rem; border-radius: 6px; border: 0;
	background: var(--vsf-accent); color: #fff; text-decoration: none; font-weight: 600; cursor: pointer;
}
.vsf-button:hover, a.vsf-button:hover, .vsf-button:focus-visible, .vsf-votes .submit:hover { background: var(--vsf-accent-dark); color: #fff; }

/* Single entry */
.vsf-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1.25rem; margin-bottom: 1.5rem; }
.vsf-badge { background: var(--vsf-soft); border: 1px solid var(--vsf-border); padding: .3rem .8rem; border-radius: 999px; }
.vsf-badge strong { font-size: 1.15em; }
.vsf-cats { opacity: .85; }
.vsf-nomination { border-left: 4px solid var(--vsf-accent); padding-left: 1.1rem; margin-bottom: 1.75rem; }
.vsf-nomination__title { font-size: 1.15em; margin-top: 0; }
.vsf-vote__by { opacity: .8; font-style: italic; margin: .25rem 0 0; }
.vsf-video { margin: 0 0 1.75rem; }
.vsf-video iframe { width: 100%; height: auto; aspect-ratio: 16 / 9; }

/* Votes */
.vsf-vote-list { list-style: none; margin: 0 0 2rem; padding: 0; display: grid; gap: 1rem; }
.vsf-vote { padding: 1rem 1.1rem; background: var(--vsf-soft); border: 1px solid rgba(0, 0, 0, .1); border-radius: 8px; }
.vsf-vote__text p { margin: 0 0 .5rem; }
.vsf-votes__empty { opacity: .8; }

/* Hall of fame listing */
.vsf-hall__category { margin-bottom: 2.25rem; }
.vsf-hall__category h2 a { text-decoration: none; }
.vsf-hall__list { margin: 0; padding-left: 1.5rem; display: grid; gap: .75rem; }
.vsf-hall__item { display: list-item; padding-left: .25rem; }
.vsf-hall__item::marker { font-weight: 700; }
.vsf-hall__item > * { vertical-align: middle; }
.vsf-hall__thumb { display: inline-block; margin-right: .75rem; }
.vsf-hall__thumb img { width: 56px; height: 56px; object-fit: cover; border-radius: 6px; display: block; }
.vsf-hall__body { display: inline-flex; flex-wrap: wrap; align-items: baseline; gap: .25rem .9rem; }
.vsf-hall__name { font-weight: 600; font-size: 1.05em; }
.vsf-hall__votes { opacity: .8; font-size: .9em; }
.vsf-hall__run { font-size: .9em; }
.vsf-votes .form-submit { margin-top: 1rem; }
