/* ---------------------------------------------------------------------------------------------

	Theme Name: ReadySetCode (based on Tove)
    Text Domain: tove
	Version: 1.0.0
	Description: ReadySetCode – ein dunkles, technisches Block-Theme für Informatik-Wettbewerbe. Basiert auf Tove von Anders Norén, angepasst für readysetcode.de.
	Tags: blog, portfolio, full-site-editing, block-styles, dark
	Author: Anders Norén (original), ReadySetCode (Anpassung)
	Author URI: https://andersnoren.se
	Theme URI: https://readysetcode.de
	License: GNU General Public License version 2.0
	License URI: http://www.gnu.org/licenses/gpl-2.0.html
	Requires PHP: 5.6
	Tested up to: 6.5

	All files, unless otherwise stated, are released under the GNU General Public License
	version 2.0 (http://www.gnu.org/licenses/gpl-2.0.html)

/* --------------------------------------------------------------------------------------------- */


body {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
}

/* Input styles */

input, textarea, select, button {
	background-color: inherit;
	border-radius: 0;
	font-family: inherit;
	font-size: inherit;
	letter-spacing: inherit;
	margin: 0;
}

input, textarea, select {
	background-color: var( --wp--preset--color--senary );
	border: 2px solid var( --wp--preset--color--foreground );
	box-sizing: border-box;
	color: inherit;
	max-width: 100%;
	padding: .5em;
}

label {
	font-size: var( --wp--preset--font-size--small );
	font-weight: 500;
}

/* Editor Post Title */

.editor-post-title__input { 
	text-align: center;
}

/* Background Padding */

p.has-background, 
h1.has-background, 
h2.has-background, 
h3.has-background, 
h4.has-background, 
h5.has-background, 
h6.has-background, 
:where(.wp-block-group.has-background),
.wp-block-pullquote.has-background { 
	padding: var(--wp--preset--spacing--60);
}

/* ------------------------------------------- */
/*	Typography
/* ------------------------------------------- */

*[class*="has-heading-"][class*="-font-size"]:not(.has-heading-6-font-size) {
	letter-spacing: var( --wp--custom--typography--letter-spacing--heading );
}

.has-gigantic-font-size {
	letter-spacing: var( --wp--custom--typography--letter-spacing--gigantic );
	line-height: var( --wp--custom--typography--line-height--gigantic );
}

.has-heading-6-font-size {
	letter-spacing: var( --wp--custom--typography--letter-spacing--uppercase );
	line-height: var( --wp--custom--typography--line-height--heading );
	text-transform: uppercase;
}

/* ------------------------------------------- */
/*	Helper Classes
/* ------------------------------------------- */

/* Hiding and Showing -------------- */

@media ( max-width: 1100px ) { 	.hide-tablet-landscape { display: none !important; } }
@media ( max-width: 1000px ) { 	.hide-tablet-portrait { display: none !important; } }
@media ( max-width: 700px ) { 	.hide-mobile { display: none !important; } }

/* Margins ------------------------- */

:root .no-margin.no-margin { margin: 0 !important; }
:root .no-margin-bottom.no-margin-bottom, :root .no-margin-vertical.no-margin-vertical { margin-bottom: 0 !important; }
:root .no-margin-left.no-margin-left, :root .no-margin-horizontal.no-margin-horizontal { margin-left: 0 !important; }
:root .no-margin-right.no-margin-right, :root .no-margin-horizontal.no-margin-horizontal { margin-right: 0 !important; }
:root .no-margin-top.no-margin-top, :root .no-margin-vertical.no-margin-vertical { margin-top: 0 !important; }

/* ------------------------------------------- */
/*	Blocks
/* ------------------------------------------- */

/* Block Style: Shaded ---------------- */

.wp-block-columns.is-style-tove-shaded > .wp-block-column,
.wp-block-group.is-style-tove-shaded,
.wp-block-image.is-style-tove-shaded img,
.wp-block-media-text.is-style-tove-shaded {
	border: var( --wp--custom--shaded-style--combined--border );
	box-shadow: var( --wp--custom--shaded-style--combined--box-shadow );
}

/* Block: Button ---------------------- */

/* STYLE: PLAIN */

.wp-block-button.is-style-tove-plain .wp-block-button__link,
.wp-block-button__link.is-style-tove-plain {
	border: none;
	box-shadow: none;
}

/* Block: Comments -------------------- */

:root .wp-block-comments-pagination > a {
	margin: 0;
}

.comment-respond {
	background-color: var( --wp--preset--color--senary );
	border: var( --wp--custom--shaded-style--border--width ) var( --wp--custom--shaded-style--border--style ) currentColor;
	box-shadow: var( --wp--custom--shaded-style--box-shadow--x ) var( --wp--custom--shaded-style--box-shadow--y ) var( --wp--custom--shaded-style--box-shadow--blur ) currentColor;
	padding: var(--wp--preset--spacing--60);
}

.wp-block-post-comments-form .comment-reply-title {
	font-size: var(--wp--preset--font-size--heading-3);
	margin: 0 0 .33em 0;
}

.wp-block-post-comments-form .comment-reply-title :where(small) {
	font-weight: 500;
	letter-spacing: 0;
	margin-left: 1em;
}

.wp-block-post-comments-form .comment-form p:last-of-type {
	margin-bottom: 4px;
}

.wp-block-post-comments-form textarea, 
.wp-block-post-comments-form input:not([type=submit]) {
	background-color: var( --wp--preset--color--senary );
	border: 2px solid var( --wp--preset--color--foreground );
}

.wp-block-post-comments-form .logged-in-as,
.wp-block-post-comments-form .comment-notes {
	margin-bottom: var(--wp--preset--spacing--60);
}

.wp-block-post-comments-form .form-submit {
	text-align: right;
}

.wp-block-post-comments-form input[type=submit] {
	box-shadow: var( --wp--custom--shaded-style--combined--box-shadow );
}

/* Block: File ------------------------ */

.wp-block-file {
	align-items: center;
	display: flex;
	justify-content: space-between;
}

:root .wp-block-file__button:not(:only-child) { 
	margin-left: var( --wp--custom--spacing--baseline ); 
}

/* Block: Heading --------------------- */

h1.has-background, h2.has-background, h3.has-background, h4.has-background, h5.has-background, h6.has-background {
	padding: min( .5em, calc( var( --wp--custom--spacing--baseline ) * ( .5 / .65 ) ) ) min( .65em, var( --wp--custom--spacing--baseline ) );
	width: intrinsic;
}

h1.has-background.has-text-align-center, 
h2.has-background.has-text-align-center, 
h3.has-background.has-text-align-center, 
h4.has-background.has-text-align-center, 
h5.has-background.has-text-align-center, 
h6.has-background.has-text-align-center {
	margin-left: auto !important;
	margin-right: auto !important;
}

h1.has-background.has-text-align-right, 
h2.has-background.has-text-align-right, 
h3.has-background.has-text-align-right, 
h4.has-background.has-text-align-right, 
h5.has-background.has-text-align-right, 
h6.has-background.has-text-align-right {
	margin-left: auto !important;
	margin-right: 0 !important;
}

/* Block: Latest Comments ------------- */

.wp-block-latest-comments > li {
	margin-left: 0;
}

.wp-block-latest-comments__comment-excerpt {
	margin-top: calc( .5 * var( --wp--custom--spacing--baseline ) );
}

.wp-block-latest-comments__comment-date,
.wp-block-latest-comments__comment-excerpt p {
	font-size: var( --wp--preset--font-size--small );
}

.wp-block-latest-comments__comment-excerpt p {
	line-height: var( --wp--custom--typography--line-height--body );
	margin: 0 0 1em;
}

.wp-block-latest-comments__comment-excerpt p:last-child {
	margin-bottom: 0;
}

/* Block: Latest Posts ---------------- */

.wp-block-latest-posts > li {
	margin-left: 0;
}

.wp-block-latest-posts__post-author, 
.wp-block-latest-posts__post-date {
	color: inherit;
	font-size: var( --wp--preset--font-size--small );
}

/* Block: Media and Text -------------- */

.wp-block-media-text .wp-block-media-text__content {
 	padding: var(--wp--preset--spacing--60);
}

/* Block: Paragraph ------------------- */

.has-drop-cap:not(:focus):first-letter {
	background-color: var( --wp--preset--color--senary );
	border: var( --wp--custom--shaded-style--border--width ) var( --wp--custom--shaded-style--border--style ) currentColor;
	box-shadow: var( --wp--custom--shaded-style--box-shadow--x ) var( --wp--custom--shaded-style--box-shadow--y ) var( --wp--custom--shaded-style--box-shadow--blur ) currentColor;
    font-size: 2.75em;
    font-weight: 700;
	margin: .09em 1rem .5rem 0;
	min-width: .6875em;
	padding: 0.3em;
	text-align: center;
}

/* Block: Post Navigation ------------- */

.post-navigation-link-previous a:before { content: "« "; }
.post-navigation-link-next a:after { content: " »"; }

/* Block: Pullquote ------------------- */

.wp-block-pullquote blockquote {
	margin: 0;
	padding: 1.6em 0 0;
	position: relative;
	text-align: inherit;
}

.wp-block-pullquote blockquote:before {
	content: "“";
	display: block;
	font-family: Georgia, serif;
	font-size: 3.5em;
	height: .2666em;
	line-height: .8;
	position: absolute;
		left: 50%;
		top: 0;
	transform: translateX( -50% );
}

.wp-block-pullquote blockquote p:first-child { margin-top: 0; }
.wp-block-pullquote blockquote p:last-child { margin-bottom: 0; }

.wp-block-pullquote.has-text-align-left blockquote:before {
	left: 0;
	transform: none;
}

.wp-block-pullquote.has-text-align-right blockquote:before {
	right: .1rem;
	transform: none;
}

.wp-block-pullquote blockquote p {
	font-size: inherit;
	line-height: inherit;
}

/* Block: Query Pagination ------------ */

.wp-block-query-pagination > .wp-block-query-pagination-next, 
.wp-block-query-pagination > .wp-block-query-pagination-numbers, 
.wp-block-query-pagination > .wp-block-query-pagination-previous {
	margin: 0;
}

/* STYLE: TOP SEPARATOR */

.wp-block-query-pagination.is-style-tove-top-separator {
	border-top: 2px solid currentColor;
	padding: calc( 2 * var( --wp--custom--spacing--baseline ) ) 0 0;
}

@media ( min-width: 700px ) {
	.wp-block-query-pagination.is-style-tove-top-separator {
		padding: calc( 3 * var( --wp--custom--spacing--baseline ) ) 0 0;
	}
}

/* STYLE: VERTICAL SEPARATORS */

.wp-block-query-pagination.is-style-tove-vertical-separators {
	border-bottom: 2px solid currentColor;
	border-top: 2px solid currentColor;
	padding: calc( 2 * var( --wp--custom--spacing--baseline ) ) 0;
}

@media ( min-width: 700px ) {
	.wp-block-query-pagination.is-style-tove-vertical-separators {
		padding: calc( 3 * var( --wp--custom--spacing--baseline ) ) 0;
	}
}

/* Block: Quote ----------------------- */
 
.wp-block-quote.is-style-large p {
	font-size: var( --wp--preset--font-size--large );
	font-style: normal;
	line-height: inherit;
}

/* Block: Search ---------------------- */

.wp-block-search .wp-block-search__label {
	display: block;
	font-size: var( --wp--preset--font-size--small );
	font-weight: 500;
	margin: 0 0 calc( .5 * var( --wp--custom--spacing--baseline ) ) 0;
}

.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper,
.wp-block-search .wp-block-search__input,
.wp-block-search .wp-block-search__button {
	background-color: var( --wp--preset--color--senary );
	border: 2px solid var( --wp--preset--color--foreground );
	font-size: var( --wp--preset--font-size--small );
	padding: 15px 18px;
}

.wp-block-search .wp-block-search__button,
.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper .wp-block-search__button {
	padding: calc( .5 * var( --wp--custom--spacing--baseline ) ) var( --wp--custom--spacing--baseline );
}

.wp-block-search .wp-block-search__button {
	align-items: center;
	color: inherit;
	display: flex;
	flex-shrink: 0;
	font-weight: 700;
	justify-content: center;
	margin-left: var( --wp--custom--spacing--baseline );
	min-width: 58px;
}

.wp-block-search .wp-block-search__button.has-icon {
	padding: 0;
}

.wp-block-search .wp-block-search__button svg {
	margin: auto;
	height: 40px;
	width: 40px;
}

/* STYLE: BUTTON INSIDE */

.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper .wp-block-search__button {
	padding: calc( .5 * var( --wp--custom--spacing--baseline ) ) calc( .75 * var( --wp--custom--spacing--baseline ) );
}

.wp-block-search.wp-block-search__button-inside .wp-block-search__inside-wrapper .wp-block-search__button.has-icon {
	min-width: 44px;
	padding: 0;
}

/* Block: Social Links ---------------- */

.wp-block-social-links.is-style-tove-shaded .wp-social-link.wp-social-link.wp-social-link {
	border: var( --wp--custom--shaded-style--border--width ) var( --wp--custom--shaded-style--border--style ) currentColor;
	border-radius: 0;
	box-shadow: var( --wp--custom--shaded-style--box-shadow--x ) var( --wp--custom--shaded-style--box-shadow--y ) var( --wp--custom--shaded-style--box-shadow--blur ) currentColor;
	margin: calc( .375 * var( --wp--custom--spacing--baseline ) ) calc( .75 * var( --wp--custom--spacing--baseline ) ) calc( .375 * var( --wp--custom--spacing--baseline ) ) 0;
}

.wp-block-social-links.is-style-tove-shaded .wp-social-link > * {
	padding: .33em;
}

/* Block: Table ----------------------- */

/* STYLE: STRIPES */

.wp-block-table.is-style-stripes * {
	border-width: 0 !important;
}

:root .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background-color: var( --wp--preset--color--senary );
}

/* STYLE: VERTICAL BORDERS */

.wp-block-table.is-style-tove-vertical-borders * {
	border-left: none !important;
	border-right: none !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}

/* ============================================================
   READYSETCODE DARK THEME OVERRIDES
   ============================================================ */



:root {
  --rsc-accent:      #00e5a0;
  --rsc-accent-2:    #3b82f6;
  --rsc-bg:          #0d1117;
  --rsc-bg-card:     #161b22;
  --rsc-bg-raised:   #1c2333;
  --rsc-border:      #30363d;
  --rsc-text:        #e6edf3;
  --rsc-text-muted:  #8b949e;
  --rsc-accent-glow: rgba(0,229,160,0.15);
  --rsc-font-mono:   var(--wp--preset--font-family--dm-sans);
  --rsc-radius:      8px;
  --rsc-radius-lg:   14px;
}

/* ── Base ─────────────────────────────────────────────────── */

body {
  background-color: var(--rsc-bg) !important;
  color: var(--rsc-text) !important;
}

/* Tove's border/shadow style adapted for dark */
.wp-block-columns.is-style-tove-shaded > .wp-block-column,
.wp-block-group.is-style-tove-shaded,
.wp-block-image.is-style-tove-shaded img,
.wp-block-media-text.is-style-tove-shaded {
  border-color: var(--rsc-border) !important;
  box-shadow: 4px 4px 0 var(--rsc-border) !important;
}

/* ── Navigation ───────────────────────────────────────────── */

.wp-block-navigation,
.wp-block-navigation a,
.wp-block-site-title a {
  color: var(--rsc-text) !important;
  text-decoration: none !important;
}

.wp-block-navigation a:hover {
  color: var(--rsc-accent) !important;
}

/* ── Sticky Header (Frontend + Editor) ────────────────────── */
/* data-type funktioniert nur im Editor; data-slug und die Klasse greifen im Frontend */
.wp-block-template-part[data-type="header"],
.wp-block-template-part[data-slug="header"],
header.wp-block-template-part,
.wp-block-template-part:first-of-type {
  background: rgba(13,17,23,0.9) !important;
  backdrop-filter: blur(10px);
  position: sticky;
  top: 0;
  z-index: 100;
}

/* ── Checkboxen & Radio-Buttons ───────────────────────────── */

input[type="checkbox"],
input[type="radio"] {
  appearance: none !important;
  -webkit-appearance: none !important;
  width: 1.1em;
  height: 1.1em;
  border: 2px solid var(--rsc-text-muted) !important;
  border-radius: 3px;
  background-color: var(--rsc-bg-raised) !important;
  cursor: pointer;
  position: relative;
  flex-shrink: 0;
  vertical-align: middle;
  margin-top: -0.1em;
}

input[type="radio"] {
  border-radius: 50%;
}

input[type="checkbox"]:checked,
input[type="radio"]:checked {
  background-color: var(--rsc-accent) !important;
  border-color: var(--rsc-accent) !important;
}

input[type="checkbox"]:checked::after {
  content: '';
  position: absolute;
  left: 0.18em;
  top: 0em;
  width: 0.35em;
  height: 0.6em;
  border: 2px solid var(--rsc-bg) !important;
  border-top: none !important;
  border-left: none !important;
  transform: rotate(45deg);
}

input[type="radio"]:checked::after {
  content: '';
  position: absolute;
  inset: 0.2em;
  border-radius: 50%;
  background: var(--rsc-bg) !important;
}

/* ── Dropdown-Untermenü ───────────────────────────────────── */

.wp-block-navigation .wp-block-navigation__submenu-container {
  background-color: var(--rsc-bg-card) !important;
  border: 1px solid var(--rsc-border) !important;
  color: var(--rsc-text) !important;
}

.wp-block-navigation .wp-block-navigation__submenu-container a,
.wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
  color: var(--rsc-text) !important;
}

.wp-block-navigation .wp-block-navigation__submenu-container a:hover {
  color: var(--rsc-accent) !important;
}

/* ── Mobile Navigation Overlay ───────────────────────────── */

/* Overlay-Container: fixiert auf Viewport-Höhe, kein Scrollen nötig */
.wp-block-navigation__responsive-container.is-menu-open {
  background-color: var(--rsc-bg) !important;
  color: var(--rsc-text) !important;
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  height: 100dvh !important;
  overflow-y: auto !important;
  border-bottom: none !important;
  z-index: 9999 !important;
}

/* Innerer Content-Bereich */
.wp-block-navigation__responsive-container-content {
  background-color: var(--rsc-bg) !important;
  border-bottom: none !important;
}

/* Alle Links im mobilen Menü */
.wp-block-navigation__responsive-container .wp-block-navigation-item__content,
.wp-block-navigation__responsive-container a,
.wp-block-navigation__responsive-container span {
  color: var(--rsc-text) !important;
}

.wp-block-navigation__responsive-container a:hover {
  color: var(--rsc-accent) !important;
}

/* Hamburger-Button (geschlossen) */
.wp-block-navigation__responsive-container-open {
  color: var(--rsc-text) !important;
  background: transparent !important;
}

/* Schließen-Button (X im offenen Menü) */
.wp-block-navigation__responsive-container-close {
  color: var(--rsc-text) !important;
  background: transparent !important;
}

/* SVG-Icons der Buttons */
.wp-block-navigation__responsive-container-open svg,
.wp-block-navigation__responsive-container-close svg {
  fill: var(--rsc-text) !important;
  color: var(--rsc-text) !important;
  stroke: none !important;
}

/* Site title in mono font with blinking cursor */
.wp-block-site-title {
  font-family: var(--rsc-font-mono) !important;
}

.wp-block-site-title a::before {
  content: '> ';
  color: var(--rsc-accent);
  animation: rsc-blink 1.1s step-end infinite;
}

@keyframes rsc-blink {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0; }
}

/* ── Buttons ──────────────────────────────────────────────── */

.wp-block-button__link,
.wp-element-button {
  background-color: var(--rsc-accent) !important;
  color: var(--rsc-bg) !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: var(--rsc-radius) !important;
  font-family: var(--rsc-font-mono) !important;
  transition: background .2s, transform .15s !important;
}

.wp-block-button__link:hover,
.wp-element-button:hover {
  background-color: #fff !important;
  transform: translateY(-1px);
}

/* Outline button style */
.wp-block-button.is-style-outline .wp-block-button__link {
  background-color: transparent !important;
  color: var(--rsc-text) !important;
  border: 1px solid var(--rsc-border) !important;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
  background-color: var(--rsc-bg-raised) !important;
  border-color: var(--rsc-text-muted) !important;
  transform: translateY(-1px);
}

/* ── Headings ─────────────────────────────────────────────── */

h1, h2, h3, h4, h5, h6,
.wp-block-heading {
  font-family: var(--rsc-font-mono) !important;
  color: var(--rsc-text) !important;
}

/* ── Links ────────────────────────────────────────────────── */

a { color: var(--rsc-accent) !important; }
a:hover { color: #fff !important; }

/* ── Cards & Groups ───────────────────────────────────────── */

.wp-block-group.has-background {
  border-radius: var(--rsc-radius-lg) !important;
}

/* Secondary background = card */
.has-secondary-background-color,
.wp-block-group.has-secondary-background-color {
  background-color: var(--rsc-bg-card) !important;
  border: 1px solid var(--rsc-border) !important;
}

/* Tertiary = raised surface */
.has-tertiary-background-color {
  background-color: var(--rsc-bg-raised) !important;
}

/* Primary = accent green */
.has-primary-background-color {
  background-color: var(--rsc-accent) !important;
  color: var(--rsc-bg) !important;
}

/* Quaternary = blue accent */
.has-quaternary-background-color {
  background-color: var(--rsc-accent-2) !important;
  color: #fff !important;
}

/* ── Cover Block ──────────────────────────────────────────── */

.wp-block-cover {
  background-color: var(--rsc-bg) !important;
}

.wp-block-cover::after {
  /* grid overlay pattern */
  content: '';
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(var(--rsc-border) 1px, transparent 1px),
    linear-gradient(90deg, var(--rsc-border) 1px, transparent 1px);
  background-size: 48px 48px;
  opacity: .3;
  pointer-events: none;
  mask-image: radial-gradient(ellipse 80% 60% at 50% 0%, black 40%, transparent 100%);
}

.wp-block-cover__inner-container {
  position: relative;
  z-index: 1;
}

/* ── Forms / Inputs ───────────────────────────────────────── */

input, textarea, select {
  background-color: var(--rsc-bg-raised) !important;
  border-color: var(--rsc-border) !important;
  color: var(--rsc-text) !important;
  border-radius: var(--rsc-radius) !important;
}

input:focus, textarea:focus, select:focus {
  border-color: var(--rsc-accent) !important;
  outline: none;
  box-shadow: 0 0 0 3px var(--rsc-accent-glow) !important;
}

/* ── Separator ────────────────────────────────────────────── */

.wp-block-separator {
  border-color: var(--rsc-border) !important;
}

/* ── Quote & Pullquote ────────────────────────────────────── */

.wp-block-quote {
  border-left-color: var(--rsc-accent) !important;
}

.wp-block-pullquote {
  border-color: var(--rsc-accent) !important;
  color: var(--rsc-text) !important;
}

/* ── Code ─────────────────────────────────────────────────── */

code, pre, .wp-block-code {
  background: var(--rsc-bg-raised) !important;
  border: 1px solid var(--rsc-border) !important;
  color: var(--rsc-accent) !important;
  border-radius: var(--rsc-radius) !important;
  font-family: var(--rsc-font-mono) !important;
}

/* ── Footer ───────────────────────────────────────────────── */

.wp-block-template-part[data-type="footer"] {
  border-top: 1px solid var(--rsc-border) !important;
  background-color: var(--rsc-bg) !important;
}

/* ── Table ────────────────────────────────────────────────── */

.wp-block-table td, .wp-block-table th {
  border-color: var(--rsc-border) !important;
  color: var(--rsc-text) !important;
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
  background-color: var(--rsc-bg-raised) !important;
}

/* ── RSC Custom Components (Shortcodes) ───────────────────── */

/* Rangliste */
.rsc-leaderboard {
  background: var(--rsc-bg-card);
  border: 1px solid var(--rsc-border);
  border-radius: var(--rsc-radius-lg);
  overflow: hidden;
  font-family: inherit;
}

.rsc-leaderboard__header {
  display: grid;
  grid-template-columns: 48px 1fr auto auto;
  gap: 1rem;
  padding: .75rem 1.5rem;
  background: var(--rsc-bg-raised);
  border-bottom: 1px solid var(--rsc-border);
  font-family: var(--rsc-font-mono);
  font-size: .75rem;
  color: var(--rsc-text-muted);
  text-transform: uppercase;
  letter-spacing: .07em;
}

.rsc-leaderboard__row {
  display: grid;
  grid-template-columns: 48px 1fr auto auto;
  gap: 1rem;
  align-items: center;
  padding: .9rem 1.5rem;
  border-bottom: 1px solid var(--rsc-border);
  transition: background .15s;
}
.rsc-leaderboard__row:last-child { border-bottom: none; }
.rsc-leaderboard__row:hover { background: var(--rsc-bg-raised); }
.rsc-leaderboard__row.top-1 { background: rgba(0,229,160,.06); }
.rsc-leaderboard__row.top-2 { background: rgba(59,130,246,.06); }
.rsc-leaderboard__row.top-3 { background: rgba(248,81,73,.04); }

.rsc-rank { font-family: var(--rsc-font-mono); font-size: .95rem; font-weight: 700; text-align: center; color: var(--rsc-text-muted); }
.top-1 .rsc-rank { color: var(--rsc-accent) !important; }
.top-2 .rsc-rank { color: var(--rsc-accent-2) !important; }

.rsc-participant__name  { font-weight: 600; color: var(--rsc-text) !important; font-size: .95rem; }
.rsc-participant__school { font-size: .78rem; color: var(--rsc-text-muted) !important; margin-top: .1rem; }

.rsc-points { font-family: var(--rsc-font-mono); font-weight: 700; font-size: 1rem; color: var(--rsc-accent) !important; text-align: right; }

.rsc-badge { display: inline-flex; align-items: center; font-size: .72rem; font-family: var(--rsc-font-mono); padding: .2rem .55rem; border-radius: 100px; text-transform: uppercase; letter-spacing: .05em; background: var(--rsc-bg-raised); color: var(--rsc-text-muted) !important; border: 1px solid var(--rsc-border); }
.rsc-badge--green { background: rgba(0,229,160,.12); color: var(--rsc-accent) !important; border-color: rgba(0,229,160,.3); }
.rsc-badge--blue  { background: rgba(59,130,246,.12); color: #60a5fa !important; border-color: rgba(59,130,246,.3); }

/* Countdown */
.rsc-countdown-wrap .rsc-section-label {
  display: inline-block;
  font-family: var(--rsc-font-mono);
  font-size: .75rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  color: var(--rsc-accent);
  margin-bottom: .5rem;
}

.rsc-countdown { display: flex; align-items: center; gap: .5rem; }

.rsc-countdown__unit {
  display: flex; flex-direction: column; align-items: center;
  background: var(--rsc-bg-card);
  border: 1px solid var(--rsc-border);
  border-radius: var(--rsc-radius);
  padding: .75rem 1rem;
  min-width: 68px;
}

.rsc-countdown__num { font-family: var(--rsc-font-mono); font-size: 2rem; font-weight: 700; color: var(--rsc-accent) !important; line-height: 1; }
.rsc-countdown__lbl { font-size: .65rem; color: var(--rsc-text-muted) !important; text-transform: uppercase; letter-spacing: .08em; margin-top: .3rem; }
.rsc-countdown__sep { font-family: var(--rsc-font-mono); font-size: 1.5rem; color: var(--rsc-text-muted); margin-bottom: .8rem; }

/* ── Tove-specific overrides ──────────────────────────────── */

/* Tove plain button style */
.wp-block-button.is-style-tove-plain .wp-block-button__link {
  background: transparent !important;
  color: var(--rsc-accent) !important;
  border: none !important;
  box-shadow: none !important;
  text-decoration: underline !important;
}

/* Comment form in dark */
.comment-respond {
  background-color: var(--rsc-bg-card) !important;
  border-color: var(--rsc-border) !important;
  box-shadow: 4px 4px 0 var(--rsc-border) !important;
}

/* Search box */
.wp-block-search .wp-block-search__input,
.wp-block-search .wp-block-search__button {
  background-color: var(--rsc-bg-raised) !important;
  border-color: var(--rsc-border) !important;
  color: var(--rsc-text) !important;
}

/* Pagination */
.wp-block-query-pagination.is-style-tove-top-separator,
.wp-block-query-pagination.is-style-tove-vertical-separators {
  border-color: var(--rsc-border) !important;
}

/* ── Responsive ───────────────────────────────────────────── */

@media (max-width: 700px) {
  .rsc-leaderboard__header,
  .rsc-leaderboard__row { grid-template-columns: 40px 1fr auto; }
  .rsc-leaderboard__header > *:last-child,
  .rsc-leaderboard__row > *:last-child { display: none; }
  .rsc-countdown__unit { min-width: 56px; padding: .6rem .7rem; }
  .rsc-countdown__num { font-size: 1.5rem; }
}
