/* ── Self-hosted font: Orbitron (variable, 400–900) ─────────────────────── */
@font-face {
  font-family: Orbitron;
  src: url('/fonts/orbitron/Orbitron-VariableFont_wght.ttf') format('truetype');
  font-weight: 400 900;
  font-style: normal;
  font-display: swap;
}

/* DreamTeam11 modern stylesheet — sectioned */
/*   TABLE OF CONTENTS (navigatie, geen visuele impact)
	01. Tokens / Settings (custom properties)
	02. Reset & Base
	03. Layout (header/footer/container/panels)
	04. Utilities (helpers: spacing/text/colors/visibility)
	05. Components (buttons/forms/selects/popovers/tables/tabs/alerts)
	06. Pages (specifieke blokken: landing/auth/shop/etc.)
	07. Animations (keyframes + utility-klassen, met reduced-motion respect)
	08. Media query notities (breakpoints via tokens)
	Let op:   - Geen inline styles; alleen tokens gebruiken voor z-index/spacing/contrast.   - Feature flags zichtbaar houden in componenten (comment bijhouden).   - Banners en TOC zijn documentatief; geen invloed op specificity of volgorde. */
/* =====================================================================   RESET & BASE   ===================================================================== */ /* Bewust: native hidden afdwingen tegen resets/FOUC — laten staan */
[hidden] { display: none !important; } /* =====================   Tabs (matches page)   Verberg panels die aria-hidden="true" hebben zodat meerdere panels in DOM niet tegelijk zichtbaar zijn.   ===================== */
.dt-tab-panel[aria-hidden='true'] { display: none; } /* Basis reset */
* { box-sizing: border-box; } /* Responsive media: avoid horizontal overflow by constraining media to container */
img, video, canvas, iframe { max-width: 100%; height: auto; } /* Long text/code safety: wrap to prevent overflow on small screens */
pre { white-space: pre-wrap; word-wrap: break-word; overflow-x: auto; }
code { word-break: break-word; } /* =====================================================================   TOKENS (:root custom properties)   ===================================================================== */
:root { /* KLEUREN */ --bg: #101828; --bg-alt: #162234; --panel: #162234; --panel-2: #121c2b; --accent: #00e5a4; --accent-2: #2dd4bf; --text: #eef2f6; --muted: #b8c3d7; /* WCAG AA: verhoogd van #a8b3c7 voor 7:1 contrast */ --danger: #ef4444; --warning: #f59e0b; --success: #10b981; --accent-text-dark: #052c1f; /* optimale leesbaarheid op groen */ /* Palette */ --yellow: #facc15; --gold: #d4af37; --orange: #f97316; /* Text variants */ --text-yellow: var(--yellow); --text-gold: var(--gold); --text-orange: var(--orange); /* TYPOGRAFIE */ --font-sans: inter,system-ui,-apple-system,blinkmacsystemfont,'Segoe UI',roboto,'Helvetica Neue',arial,sans-serif; --font-display: orbitron, system-ui, sans-serif; --font-digital: "Bitcount Prop Single Ink", orbitron, ui-monospace, sfmono-regular, menlo, monaco, consolas, "liberation mono", "courier new", monospace; --fs-sm: .875rem; --fs-base: 1rem; --fs-xs: .75rem; --fs-2xs: .7rem; --fs-13: .8125rem; --fw-regular: 400; --fw-medium: 500; --fw-semibold: 600; --fw-bold: 700; --fw-extrabold: 800; /* SPACING (4px scale) */ --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 20px; --space-6: 24px; --space-8: 32px; /* RADII */ --radius-sm: 4px; --radius: 8px; --radius-lg: 16px; --radius-pill: 999px; /* SHADOW */ --shadow: 0 6px 18px -6px rgb(0 0 0 / 50%); /* LAYOUT METRICS */ --header-mini-h: 72px; --header-h: var(--header-mini-h); --footer-ads-h: 44px; --footer-links-h: 46px; --content-max: 1200px; /* max breedte voor centrale content */ --header-stack-extra: 40px; /* extra hoogte voor uitgebreide header */ --auth-hero-min: 600px; /* vergrote hero hoogte */ --auth-col-width: 560px; /* vaste gelijke kolombreedte hero & panel */ /* LEGACY ALIAS TOKENS (samengevoegd) */ --dt-primary: var(--accent); --dt-primary-dark: #00c38c; /* donkerdere variant voor hover */ --dt-danger: var(--danger); --dt-color-yellow: var(--yellow); --dt-color-gold: var(--gold); --dt-color-orange: var(--orange); --dt-text: var(--text); --dt-text-muted: var(--muted); --dt-surface: var(--panel-2); --dt-border: rgb(255 255 255 / 15%); --dt-focus: var(--accent); --dt-focus-ring: 0 0 0 3px rgb(0 229 164 / 35%); /* toegevoegd voor consistente focus styling */ --dt-radius-sm: var(--radius-sm); --dt-radius-md: var(--radius); --dt-space-xs: var(--space-1); --dt-space-sm: var(--space-2); --dt-space-md: var(--space-4); --dt-input-height: 46px; --dt-input-padding-y: 10px; --dt-input-padding-x: 16px; --dt-input-icon-offset: 44px; /* ruimte bij icon links */ --dt-input-icon-right-offset: 44px; --dt-icon-gap: 14px; --dt-icon-size: 18px; --dt-font-size-sm: var(--fs-sm); --dt-surface-glass: rgb(7 13 26 / 76%); --dt-surface-glass-strong: linear-gradient(180deg, rgb(255 255 255 / 16%), rgb(255 255 255 / 5%)); --dt-surface-glass-border: 1px solid rgb(255 255 255 / 12%); --dt-surface-glass-shadow: 0 10px 30px -8px rgb(0 0 0 / 55%); --dt-surface-glass-blur: blur(14px) saturate(140%); /* GLASS (gedeelde tokens voor consistente glass panels / nav) */ --glass-bg: linear-gradient(180deg,rgb(255 255 255 / 16%),rgb(255 255 255 / 5%)); --glass-bg-soft: linear-gradient(180deg,rgb(255 255 255 / 12%),rgb(255 255 255 / 4%)); --glass-border: 1px solid rgb(255 255 255 / 22%); /* NAV STRUCTURE */ --nav-radius: 24px; /* uniforme afgeronde vorm voor hoofd nav cluster */ /* Z-INDEX MAP (tokens i.p.v. magic numbers) */ --z-base: 0; --z-header: 120; /* hoofdheader en sticky onderdelen */ --z-lang-trigger: 130; /* language/formation trigger */ --z-popover: 140; /* popovers (taal/formation/select) */ --z-dropdown: 150; /* generieke dropdowns boven popover indien nodig */ --z-modal: 200; /* modals/dialogen */ --z-toast: 300; /* toasts/overlays boven modals */ --z-mobile-menu: 110; /* mobiel menu (container) */ /* BUG-015 fix: zorg dat het binnenpaneel altijd boven de backdrop ligt om blur op inhoud te voorkomen */ --z-mobile-backdrop: 90; /* backdrop onder panel binnen mobiele menu-stacking context */ --z-mobile-menu-inner: 120; /* binnenkant van mobiel menu boven backdrop */ /* Extra tokens voor lokale lagen (conservatief gelijk aan huidige waarden) */ --z-sticky: 1; /* sticky group headers binnen lijsten */ --z-app-content: 1; /* lokale content boven achtergrond */ --z-watermark: -1; /* decoratieve watermerken achter content */ --z-modal-root: 5000; /* modale root overlay */ --z-formation: 350; /* formation selector wrapper */ --z-formation-dropdown: 600; /* formation dropdown boven generieke select */ --z-tooltip-under: 399; /* pijl onder generieke tooltip box */ --z-pitch-player: 2; /* speler op de pitch */ --z-pitch-overlay-4: 4; /* pitch lock overlay */ --z-pitch-overlay-5: 5; /* elevated elementen boven lock */ --z-pitch-overlay-6: 6; /* busy overlay */ --z-pitch-overlay-7: 7; /* spinner boven alles */ --z-skip-link: 200; /* skip link zichtbaar bij focus */ /* Tooltips & hoge overlays */ --z-tooltip: 400; /* generieke tooltip */ --z-tooltip-high: 1000; /* tooltip in header KPI cluster */ --z-tooltip-arrow: 999; /* bijpassende pijl, net onder de box */ --z-overlay-high: 3000; /* hoge overlaylaag (bijv. KPI cluster) */ --z-overlay-higher: 6000; /* nog hogere laag voor focus states */ /* BREAKPOINTS (gebruik in @media via hardvalues of CSS preprocessor mapping) */ --bp-sm: 640px; --bp-md: 900px; --bp-lg: 1024px; --bp-xl: 1200px; } /* Space between toggle and its dependent fieldset on teams page */
#private-options[data-private-options] { margin-top: 0.75rem; } /* (removed) Legacy month/year select block (2025-08-15) is vervangen door de unified glass select styles hieronder. */ /* Glass Select enhancement */
.dt-select.is-enhanced { position: relative; }
.dt-select.is-enhanced select.dt-input.dt-select__native { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.dt-select__button { position: relative; width: 100%; height: var(--dt-input-height); padding: var(--dt-input-padding-y) var(--dt-input-padding-x); padding-left: 44px; padding-right: 44px; display: flex; align-items: center; gap: 10px; background: linear-gradient(180deg, rgb(255 255 255 / 20%), rgb(255 255 255 / 6%)); border: 1px solid rgb(255 255 255 / 28%); border-radius: 16px; color: #fff; text-align: left; }
.dt-select__button:focus { outline: none; box-shadow: 0 0 0 3px var(--dt-focus-ring, rgb(84 180 211 / 50%)); background: linear-gradient(180deg, rgb(255 255 255 / 26%), rgb(255 255 255 / 10%)); }
.dt-select__label { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: inline-flex; align-items: center; gap: 8px; }
.dt-select__label-text,.dt-select__option-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dt-select__flag { width: 18px; height: 12px; border-radius: 2px; object-fit: cover; box-shadow: 0 0 0 1px rgb(0 0 0 / 35%),0 1px 2px rgb(0 0 0 / 45%); flex: 0 0 auto; }
.dt-select__dropdown { margin-top: 0; } /* ---------------------------------------------   Transfers – meta icon row   --------------------------------------------- */
.dt-meta { display: inline-flex; align-items: center; gap: var(--dt-space-2); }
.dt-meta > span { display: inline-flex; align-items: center; gap: 6px; }
.dt-meta .dt-badge { display: inline-flex; align-items: center; gap: 6px; } /* ---------------------------------------------   Transfers – list row grid & alignment   --------------------------------------------- */
.dt-transfer-grid { display: grid; grid-template-columns: 1fr 110px 100px 90px 140px auto; align-items: center; gap: var(--dt-space-2); }
.dt-transfer-grid .col { display: flex; align-items: center; gap: 8px; min-width: 0; }
.dt-transfer-grid .col--name { overflow: hidden; }
.dt-transfer-grid .dt-player-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dt-transfer-grid .col--actions { justify-self: end; display: flex; gap: 8px; }
.dt-transfer-grid .dt-flag-img { border-radius: 2px; } /* Dim owned rows subtly */
.dt-transfer-grid.is-owned, .dt-list__item.is-owned { opacity: .75; }
.dt-transfer-grid.is-owned .dt-player-name { color: var(--dt-text-muted); } /* Responsive collapse: kleinere schermen tonen minder kolommen */ @media (width <= 900px) { .dt-transfer-grid { grid-template-columns: 1fr 90px 90px 0 0 auto;} .dt-transfer-grid .col--value { display: none;} } @media (width <= 640px) { .dt-transfer-grid { grid-template-columns: 1fr 80px 0 0 0 auto;} .dt-transfer-grid .col--goals { display: none;} } /* Popover-like dropdown positioning and styling (matches language popover aesthetics) */
.dt-select__dropdown { position: absolute; top: calc(100% + 10px); left: 0; right: 0; max-height: 280px; overflow: auto; padding: 12px; backdrop-filter: blur(16px) saturate(155%); border-radius: 16px; background: linear-gradient(180deg, rgb(16 24 40 / 92%), rgb(16 24 40 / 88%)); border: 1px solid rgb(255 255 255 / 18%); box-shadow: 0 10px 28px -8px rgb(0 0 0 / 65%); } /* ==========================================================   dt-scout-report (Scouting rapport scherm)   ========================================================== */
.dt-scout-report { display: grid; gap: 1.5rem; }
.dt-history-meta { display: inline-flex; align-items: center; gap: 12px 16px; flex-wrap: wrap; }
.dt-history-meta > span { display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 10px; background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)); border: 1px solid rgb(255 255 255 / 18%); color: var(--dt-text, #eef2f6); }
.dt-history-meta > span strong { font-weight: 700; color: var(--dt-text, #eef2f6); }
.dt-scout-report__header { display: grid; grid-template-columns: 1fr auto; gap: 1rem; align-items: center; }
.dt-scout-report__player { display: grid; grid-template-columns: auto 1fr; gap: 1rem; align-items: center; }
.dt-scout-report__avatar { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; box-shadow: var(--dt-focus-ring, 0 0 0 3px rgb(0 229 164 / 35%)); }
.dt-scout-report__title { margin: 0; font-size: 1.25rem; }
.dt-scout-report__meta { display: flex; flex-wrap: wrap; gap: .5rem 1rem; color: var(--dt-text-muted, #a8b3c7); }
.dt-scout-report__sub { display: flex; flex-wrap: wrap; gap: .5rem 1rem; color: var(--dt-text-muted, #a8b3c7); margin-top: .25rem; }
.dt-scout-report__stats { display: flex; gap: 1rem; align-items: center; justify-content: flex-end; }
.dt-stat { display: grid; gap: .25rem; text-align: right; }
.dt-stat__label { font-size: .75rem; color: var(--dt-text-muted, #a8b3c7); }
.dt-stat__value { font-weight: 600; }
.dt-scout-report__section { border-top: 1px solid var(--dt-border, rgb(255 255 255 / 15%)); padding-top: 1rem; }
.dt-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.dt-table { width: 100%; border-collapse: collapse; }
.dt-table th, .dt-table td { border-bottom: 1px solid var(--dt-border, rgb(255 255 255 / 15%)); padding: .5rem .25rem; text-align: left; }
.dt-timeline { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.dt-tag { background: rgb(255 255 255 / 10%); color: var(--dt-text, #eef2f6); border-radius: .25rem; padding: .125rem .375rem; font-size: .75rem; }
.dt-link { color: var(--dt-primary, #00e5a4); text-decoration: none; }
.dt-link:hover { text-decoration: underline; }
.dt-link-plain { color: inherit; text-decoration: none; }
.dt-link-plain:hover { text-decoration: underline; }
.dt-dim { color: var(--dt-text-muted, #a8b3c7); }
.dt-mono { font-family: ui-monospace, sfmono-regular, menlo, monaco, consolas, "liberation mono", "courier new", monospace; font-size: .85em; } /* ==========================================================================   Accordion (dt-accordion)   -------------------------------------------------------------------------- */
.dt-accordion { border: 1px solid var(--dt-border, rgb(255 255 255 / 15%)); border-radius: var(--dt-radius-md, 8px); background: linear-gradient(180deg, rgb(255 255 255 / 6%), rgb(255 255 255 / 2%)); overflow: hidden; }
.dt-accordion + .dt-accordion { margin-top: .75rem; }
.dt-accordion__toggle { width: 100%; background: none; border: 0; display: flex; align-items: center; gap: .5rem; padding: .65rem .85rem; font: inherit; font-weight: 600; color: var(--dt-text, #eef2f6); cursor: pointer; text-align: left; position: relative; }
.dt-accordion__toggle:focus-visible { outline: none; box-shadow: 0 0 0 2px var(--dt-focus, #00e5a4), 0 0 0 4px rgb(0 229 164 / 35%); }
.dt-accordion__toggle svg { flex: 0 0 auto; opacity: .85; }
.dt-accordion__toggle::after { content: ''; width: 10px; height: 10px; border-right: 2px solid currentcolor; border-bottom: 2px solid currentcolor; transform: rotate(45deg); position: absolute; right: 14px; top: 50%; margin-top: -6px; transition: transform .18s ease; opacity: .8; }
.dt-accordion__toggle[aria-expanded="true"]::after { transform: rotate(225deg); margin-top: -4px; }
.dt-accordion__panel { padding: .75rem .9rem 1rem; border-top: 1px solid var(--dt-border, rgb(255 255 255 / 12%)); background: linear-gradient(180deg, rgb(255 255 255 / 4%), rgb(255 255 255 / 1%)); }
.dt-accordion__panel[hidden] { display: block; height: 0; padding-top: 0; padding-bottom: 0; margin: 0; overflow: hidden; border-top-color: transparent; }
.dt-accordion__panel > :first-child { margin-top: 0; }
.dt-accordion__panel > :last-child { margin-bottom: 0; } /* Unified list structure for glass select (UL > LI > button) */
.dt-select__list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.dt-select__list > li { margin: 0; padding: 0; }
.dt-select__group { position: sticky; top: 0; z-index: var(--z-sticky); background: rgb(13 27 42 / 85%); backdrop-filter: blur(10px); }
.dt-select__list .dt-select__group { margin: 8px 2px 4px; padding: 2px 4px; font-size: var(--fs-12); color: rgb(255 255 255 / 75%); text-transform: none; letter-spacing: .2px; } /* Bewust: native option verbergen — laten staan */
.dt-select__option[hidden] { display: none !important; }
.dt-select__option { width: 100%; display: flex; align-items: center; gap: 10px; margin: 6px 0; position: relative; background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 18%); color: var(--text); padding: 10px 12px; border-radius: 10px; font-size: var(--fs-13); cursor: pointer; transition: background .16s ease, border-color .16s ease, box-shadow .16s ease; }
.dt-select__group { margin: 8px 2px 4px; padding: 2px 4px; font-size: var(--fs-12); color: rgb(255 255 255 / 75%); text-transform: none; letter-spacing: .2px; }
.dt-select__option:hover, .dt-select__option:focus-visible { background: rgb(45 212 191 / 10%); border-color: rgb(45 212 191 / 65%); box-shadow: 0 0 0 1px rgb(45 212 191 / 55%) inset; outline: none; }
.dt-select__option.is-selected { background: linear-gradient(180deg, rgb(45 212 191 / 18%), rgb(45 212 191 / 8%)); border-color: var(--accent); box-shadow: inset 0 0 0 2px rgb(0 229 164 / 32%); }
.dt-select__option.is-selected::before { content: ''; position: absolute; left: 0; top: 8px; bottom: 8px; width: 3px; border-radius: 2px; background: var(--accent); }
.dt-select[data-locked="1"] .dt-select__button, .dt-select.js-dt-select select[disabled] + .dt-select__button { opacity: .6; cursor: not-allowed; }
.dt-select[data-locked="1"] .dt-select__button:hover, .dt-select.js-dt-select select[disabled] + .dt-select__button:hover { background: linear-gradient(180deg, rgb(255 255 255 / 20%), rgb(255 255 255 / 6%)); border-color: rgb(255 255 255 / 28%); }
.dt-select .dt-select__icon { position: absolute; top: 50%; transform: translateY(-50%); font-size: 18px; color: rgb(255 255 255 / 85%); pointer-events: none; line-height: 1; }
.dt-select__button .dt-select__icon { position: absolute; }
.dt-select .dt-select__icon--left { left: 14px; right: auto; }
.dt-select .dt-select__icon--right { right: 14px; left: auto; }
.dt-select.is-enhanced > .dt-select__icon { display: none; } /* original icon hidden; clone lives inside button */
.dt-select.dt-select--yellow-icons .dt-select__icon--left,
.dt-select.dt-select--yellow-icons .dt-select__button .dt-select__icon--left { color: var(--yellow); }
.dt-select select.dt-input option { background: #0d1b2a; color: #fff; } @media (prefers-color-scheme: light) { .dt-select select.dt-input option { background: #fff; color: #111;} } /* Unified glass select style (2025-08-18) */
.dt-select { position: relative; }
.dt-select select.dt-input { appearance: none; padding-right: 44px; /* space for caret */ padding-left: 44px; /* space for left icon */ background: linear-gradient(180deg, rgb(255 255 255 / 20%), rgb(255 255 255 / 6%)); border: 1px solid rgb(255 255 255 / 28%); border-radius: 16px; color: #fff; color-scheme: dark; }
.dt-select select.dt-input:focus { background: linear-gradient(180deg, rgb(255 255 255 / 26%), rgb(255 255 255 / 10%)); outline: none; box-shadow: var(--dt-focus-ring); border-color: var(--dt-focus); } /* Move caret from root to button to avoid vertical misplacement when dropdown opens */
.dt-select.is-enhanced::after { display: none; }
.dt-select__button::after { content: ''; position: absolute; right: 14px; top: 50%; transform: translateY(-50%); width: 0; height: 0; border-left: 6px solid transparent; border-right: 6px solid transparent; border-top: 8px solid rgb(255 255 255 / 85%); pointer-events: none; }
.dt-select.dt-select--yellow-icons .dt-select__button::after { border-top-color: var(--yellow); }
.dt-select__button[aria-expanded="true"]::after { transform: translateY(-50%) rotate(180deg); } /* Ensure same look inside glass panels */
.dt-select__option { display: inline-flex; align-items: center; gap: 8px; }
.dt-panel--glass .dt-select select.dt-input { background: linear-gradient(180deg, rgb(255 255 255 / 20%), rgb(255 255 255 / 6%)); border-color: rgb(255 255 255 / 28%); }
.dt-panel--glass .dt-select select.dt-input:focus { background: linear-gradient(180deg, rgb(255 255 255 / 26%), rgb(255 255 255 / 10%)); outline: none; box-shadow: var(--dt-focus-ring); border-color: var(--dt-focus); } /* Attach dropdown closely to control and increase opacity for readability */
.dt-select { position: relative; }
.dt-select .dt-select__dropdown.dt-lang-popover { position: absolute; left: 0; right: 0; min-width: 100%; top: calc(100% + 2px); padding: 10px;
    /* BUG-021 FIX (FROZEN) – maak achtergrond volledig opaak en schakel blur uit
	    Wijzig deze regels NIET zonder bugkaart te heropenen.
	    TODO(popover): verwijderen zodra alle popovers opt-in .dt-popover--solid gebruiken en visueel gevalideerd zijn. */
    background: #101828 !important; /* was semi-transparant gradient; nu solide i.v.m. leesbaarheid */
	/* stylelint-disable-next-line property-no-vendor-prefix */
	-webkit-backdrop-filter: none !important;
    backdrop-filter: none !important;
    border: 1px solid rgb(255 255 255 / 22%);
    border-radius: 12px; z-index: var(--z-popover); /* boven content en mobiele menu laag 110 */ max-height: min(320px, 60vh); overflow: auto; } /* Unified focus ring (respecteert prefers-reduced-motion impliciet via geen anim) */
:where(a,button,input,select,textarea,[role="button"]):focus-visible { outline: none; box-shadow: var(--dt-focus-ring); }
html,body { margin: 0; padding: 0; height: 100%; background: var(--bg); color: var(--text); font-family: var(--font-sans); -webkit-font-smoothing: antialiased; overscroll-behavior: none; } /* GLOBAL BACKGROUND (stadion + zachte kleurvlekken) */
body { background: var(--bg); line-height: 1.4; overflow: auto; } /* Fixed, full-viewport achtergrond via pseudo-element om nested scroll-kaders te omzeilen */
body::before { content: ""; position: fixed; inset: 0; z-index: var(--z-base); pointer-events: none; background: linear-gradient(180deg, rgb(16 24 40 / 55%), rgb(16 24 40 / 72%)),     radial-gradient(1200px 500px at 70% -10%, rgb(45 212 191 / 18%), transparent 60%),     radial-gradient(1000px 420px at 12% 8%, rgb(59 130 246 / 16%), transparent 55%),     url('/storage/images/background/modern-football-default.png'); background-size: auto,1200px 500px,1000px 420px,cover; background-repeat: no-repeat,no-repeat,no-repeat,no-repeat; background-position: center,70% -10%,12% 8%,center 25%; } /* Wanneer een pagina-specifieke achtergrond actief is: behoud alleen overlay-gradients (geen tweede foto) */
body.dt-has-page-bg::before { content: none; } /* Config-gedreven pagina-achtergrond: bakt gradients + foto in één laag */
.dt-page-bg { position: fixed; inset: 0; z-index: var(--z-base); pointer-events: none; background-image: linear-gradient(180deg, rgb(16 24 40 / 12%), rgb(16 24 40 / 22%)), radial-gradient(1200px 500px at 70% -10%, rgb(45 212 191 / 18%), transparent 60%), radial-gradient(1000px 420px at 12% 8%, rgb(59 130 246 / 16%), transparent 55%), var(--page-bg-image); background-size: auto, 1200px 500px, 1000px 420px, cover; background-repeat: no-repeat, no-repeat, no-repeat, no-repeat; background-position: center, 70% -10%, 12% 8%, center; filter: saturate(105%) contrast(102%); }
body.dt-page--auth .dt-page-bg { background-image: radial-gradient(ellipse 90% 80% at 50% 50%, transparent 40%, rgb(5 9 18 / 16%) 100%), var(--page-bg-image); background-size: auto, cover; background-position: center, center 35%; filter: saturate(110%) contrast(105%); } /* Content boven de achtergrondlaag plaatsen */
.dt-app { position: relative; z-index: var(--z-app-content); } /* Player Picker modal – glassy list style */
.dt-modal.is-open .dt-modal__dialog { background: linear-gradient(180deg, rgb(16 24 40 / 96%), rgb(16 24 40 / 92%)); border: 1px solid rgb(255 255 255 / 18%); border-radius: 16px; box-shadow: 0 20px 40px -20px rgb(0 0 0 / 70%); }
.dt-modal__toolbar { display: flex; gap: var(--space-3); align-items: center; flex-wrap: wrap; padding: 0 16px 8px; }
.dt-tabs { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); }
.dt-tab { background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 18%); color: var(--text); padding: 8px 12px; border-radius: 10px; font-size: var(--fs-13); cursor: pointer; }
.dt-tab.is-active, .dt-tab:focus-visible { background: linear-gradient(180deg, rgb(45 212 191 / 20%), rgb(45 212 191 / 8%)); border-color: var(--accent); box-shadow: inset 0 0 0 2px rgb(0 229 164 / 28%), var(--dt-focus-ring); } /* Remove bullets and style list items like glass cards */
.dt-list { list-style: none; margin: 0; padding: 0; }
.dt-list--select { padding: 8px; max-height: min(60vh, 560px); overflow: auto; } /* --- DT list items: compact global spacing ---   Rely on parent .dt-list gap for vertical rhythm; avoid extra per-item margins   to keep cards/lists consistent across pages (dashboard, modals, pickers). */
.dt-list__item { margin: 0; }
.dt-list__btn { width: 100%; text-align: left; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-radius: 12px; background: rgb(255 255 255 / 6%); border: 1px solid rgb(255 255 255 / 16%); color: var(--text); cursor: pointer; transition: background .16s ease, border-color .16s ease, transform .06s ease; }
.dt-list__btn:hover, .dt-list__btn:focus-visible { background: rgb(45 212 191 / 10%); border-color: rgb(45 212 191 / 55%); box-shadow: inset 0 0 0 1px rgb(45 212 191 / 45%); }
.dt-list__btn:active { transform: translateY(1px); }
.dt-list__primary { display: flex; flex-direction: column; gap: 4px; }
.dt-list__title { font-weight: 600; color: var(--text); }
.dt-list__subtitle { font-size: var(--fs-13); color: rgb(255 255 255 / 75%); }
.dt-list__meta { font-size: var(--fs-13); color: rgb(255 255 255 / 85%); } /* New: Glass + accent list variants */
.dt-list.dt-list--glass .dt-list__item { list-style: none; }
.dt-list.dt-list--glass .dt-list__btn { background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)); border-color: rgb(255 255 255 / 22%); }
.dt-list.dt-list--accent .dt-list__btn:hover, .dt-list.dt-list--accent .dt-list__btn:focus-visible { border-color: var(--accent); box-shadow: inset 0 0 0 2px rgb(0 229 164 / 28%); } /* =====================================================================   Player Matches Accordion (glassy variant)   - Sluit visueel aan op .dt-list__btn glass cards   - Alleen gebruikt op /matches pagina (class: .dt-player-acc)   - Houdt spacing compact; verticale ritme via grid gap   ===================================================================== */
.dt-tabs + .dt-tabs-panels { margin-top: var(--space-4); } /* Rebuilt accordion (matches page) */
.dt-player-acc { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.dt-player-acc__item { margin: 0; padding: 0; border: 1px solid rgb(59 130 246 / 40%); border-radius: 14px; background: linear-gradient(180deg,rgb(255 255 255 / 12%),rgb(255 255 255 / 5%)),   linear-gradient(135deg,rgb(59 130 246 / 28%),rgb(21 57 92 / 40%)); box-shadow: 0 4px 14px -6px rgb(0 0 0 / 55%); position: relative; } /* Trigger (kopregel) */
.dt-player-acc__trigger { width: 100%; text-align: left; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; background: transparent; border: 0; font: inherit; font-size: var(--fs-13); font-weight: var(--fw-semibold); cursor: pointer; color: var(--text); border-radius: 14px; }
.dt-player-acc__trigger:focus-visible { outline: none; box-shadow: var(--dt-focus-ring); }
.dt-player-acc__caret { flex: 0 0 20px; display: flex; justify-content: center; } /* Caret icon rotatie bij open */
.dt-player-acc__caret { display: inline-flex; transition: transform .25s ease; }
.dt-player-acc__trigger[aria-expanded="true"] .dt-player-acc__caret { transform: rotate(180deg); } /* Panel content */
.dt-player-acc__panel { padding: 10px 16px 18px; border-top: 1px solid rgb(255 255 255 / 18%); background: linear-gradient(180deg,rgb(255 255 255 / 10%),rgb(255 255 255 / 3%)); border-radius: 0 0 14px 14px; animation: dt-acc-fade .25s ease; }
.dt-player-acc__panel[hidden] { display: block; height: 0; padding: 0; overflow: hidden; border: 0; background: transparent; } @keyframes dt-acc-fade { from { opacity: 0; transform: translateY(-3px);} to { opacity: 1; transform: translateY(0);} }
.dt-player-acc__panel > :first-child { margin-top: 0; }
.dt-player-acc__panel > :last-child { margin-bottom: 0; } /* Loading + error states binnen panel (scoped minimal tweaks) */
.dt-player-matches__loading { display: flex; align-items: center; gap: 10px; font-size: var(--fs-13); color: var(--dt-text-muted); }
.dt-player-matches__error { font-size: var(--fs-13); } /* Upcoming matches tabel kolommen tunen (meer ruimte voor clubnamen) */
.dt-player-matches { width: 100%; border-collapse: collapse; font-size: var(--fs-13); }
.dt-player-matches th { text-align: left; font-weight: 600; padding: 4px 4px 6px; font-size: var(--fs-12); }
.dt-player-matches td { padding: 4px 4px 6px; vertical-align: top; }
.dt-player-match__teams { width: 55%; } /* extra ruimte voor clubnamen */
.dt-player-match__date { width: 25%; font-size: var(--fs-12); white-space: nowrap; }
.dt-player-match__live { width: 20%; font-size: var(--fs-11); }
.dt-player-matches tbody tr + tr td { border-top: 1px solid rgb(255 255 255 / 10%); }
.dt-player-matches thead tr th + th, .dt-player-matches tbody tr td + td { padding-left: 10px; }
.dt-player-matches .dt-icon { font-size: 0.9em; } @media (width <= 640px) { .dt-player-match__teams { width: auto;} .dt-player-match__date { width: auto;} .dt-player-match__live { width: auto;} } /* Responsiveness: kleinere padding op smalle schermen */ /* Modal footer button alignment */
.dt-modal__footer { display: flex; justify-content: flex-end; gap: 8px; } /* =====================================================================    COMPONENT – Invite form layout (responsive)    Ensures each set is inline on desktop (2 cols) and stacked on mobile (1 col).    2025-08-27    ===================================================================== */
.dt-invite-field-group { display: grid; grid-template-columns: 1fr; /* mobile: stack fields */ gap: var(--space-3); width: 100%; align-items: start; } @media (width >= 768px) { .dt-invite-field-group { grid-template-columns: 1fr 1fr;} /* tablet/desktop: side-by-side */ } /* Layout: laat body scrollen op mobiel; vermijd geforceerde 100% height die iOS overscroll blokkeert */
.dt-app { min-height: 100dvh; display: flex; flex-direction: column; }
.dt-app { max-width: 100%; overflow-x: hidden; } /* prevent accidental horizontal scroll */ /* Skip link (WCAG) – zichtbaar bij focus, bovenaan de pagina */
.dt-skip-link { position: absolute; left: -9999px; top: 0; background: var(--accent); color: var(--accent-text-dark); padding: 8px 12px; border-radius: 8px; box-shadow: 0 2px 8px rgb(0 0 0 / 40%); z-index: var(--z-skip-link); }
.dt-skip-link:focus,.dt-skip-link:focus-visible { left: 12px; top: 12px; outline: none; box-shadow: var(--dt-focus-ring); } /* HEADER (persistent, geen fixed nodig omdat main intern scrolt) */
.dt-site-header { flex: 0 0 auto; background: rgb(16 24 40 / 90%); /* 10% transparantie */ border-bottom: 1px solid rgb(255 255 255 / 8%); position: sticky; top: 0; left: 0; right: 0; display: flex; flex-direction: column; z-index: var(--z-header); } /* sticky bovenaan voor desktop + mobile */
.dt-page--minimal-header .dt-game-header__kpis { display: none; }
@media (width >=901px) {
  /* Minimal desktop header on auth/onboarding pages: keep only language control. */
  .dt-page--minimal-header .dt-game-header { background: transparent; border: 0; box-shadow: none; }
  .dt-page--minimal-header .dt-game-header__top { background: transparent; border: 0; min-height: auto; }
  .dt-page--minimal-header .dt-game-header__top-inner { display: flex; justify-content: flex-end; align-items: center; padding-top: 10px; padding-bottom: 6px; }
  .dt-page--minimal-header .dt-game-header__logo,
  .dt-page--minimal-header .dt-game-header__nav,
  .dt-page--minimal-header .dt-desktop-team { display: none !important; }
  .dt-page--minimal-header .dt-game-header__menu-cluster { margin-left: auto; display: flex; justify-content: flex-end; width: auto; }
  .dt-page--minimal-header .dt-game-header__control-group { margin-left: auto; }
  .dt-page--minimal-header .dt-lang-trigger { min-height: 52px; padding: 0 18px; border-radius: 18px; border-color: rgb(0 229 164 / 52%); background: linear-gradient(180deg, rgb(5 15 30 / 92%), rgb(7 18 34 / 82%)); box-shadow: 0 0 0 1px rgb(0 229 164 / 20%), 0 14px 28px -14px rgb(0 0 0 / 75%); }
  .dt-page--minimal-header .dt-lang-trigger:hover,
  .dt-page--minimal-header .dt-lang-trigger:focus-visible { border-color: rgb(0 229 164 / 72%); box-shadow: 0 0 0 1px rgb(0 229 164 / 35%), 0 0 22px -10px rgb(0 229 164 / 65%); }
  .dt-page--minimal-header .dt-lang-trigger__label { display: inline-flex; font-size: var(--fs-xs); font-weight: var(--fw-bold); letter-spacing: .12em; color: rgb(241 245 249 / 96%); }
}
.dt-site-header--mini { height: calc(var(--header-mini-h) + 52px); } /* iets hoger voor nav inclusion */
.dt-site-header--full { height: calc(var(--header-mini-h) + var(--header-stack-extra)); }
.dt-site-header__mini { height: var(--header-mini-h); display: flex; align-items: center; gap: 16px; padding: 0 20px; } /* KPI blok onder de primaire balk (vak 2) */ /* KPI + Acties blok (verticale stapeling) */
.dt-site-header__kpis { padding: 6px 0 30px; display: flex; flex-direction: column; gap: 8px; position: relative; z-index: var(--z-overlay-high); } /* extra bodemruimte zodat tooltip onder KPI niet over nav valt */ /* Simple responsive grid (utility) */
.dt-row { display: grid; grid-template-columns: 1fr; gap: var(--space-4); }
.dt-row--gap { gap: var(--space-4); } /* Small grid display helper */
.dt-d-grid { display: grid; } @media (width >= 768px) { .dt-row { grid-template-columns: repeat(2, 1fr);} } @media (width >= 1024px) { .dt-col-lg-4 { grid-column: span 1;} .dt-col-span-2 { grid-column: span 2; } .dt-row { grid-template-columns: repeat(3, 1fr);} } /* Checkout grid override: force two equal columns (50/50) across desktop    Context: default .dt-row switches to 3 columns ≥1024px, which made checkout look 2/3.    This scoped helper keeps exactly two columns for the checkout layout. */
.dt-row.checkout-grid--two { grid-template-columns: 1fr; } @media (width >= 768px) { .dt-row.checkout-grid--two { grid-template-columns: repeat(2, 1fr);} } @media (width >= 1024px) { .dt-row.checkout-grid--two { grid-template-columns: repeat(2, 1fr);} }
.dt-site-header__kpis .dt-header-kpis { display: grid; grid-template-columns: repeat(auto-fit,minmax(160px,1fr)); gap: 14px; } /* Header KPI items (scoped: alleen in header, niet in mobiel menu) */
.dt-site-header__kpis .dt-header-kpi { display: inline-flex; align-items: center; gap: 10px; padding-left: 14px; border-radius: 14px; background: radial-gradient(120% 100% at 0% 0%, rgb(0 229 164 / 18%), transparent 60%),     linear-gradient(180deg,rgb(255 255 255 / 12%),rgb(255 255 255 / 5%)); border: 1px solid rgb(255 255 255 / 20%); color: var(--text); font-weight: 500; min-height: 30px; box-shadow: 0 4px 12px -6px rgb(0 0 0 / 55%); } /* kleine hover shimmer zonder maatwijziging */
.dt-site-header__kpis .dt-header-kpi:hover { border-color: rgb(255 255 255 / 28%); } /* tooltips (data-tooltip) — place below KPI and keep mobile-safe */
.dt-site-header__kpis .dt-header-kpi[data-tooltip] { position: relative; }
.dt-site-header__kpis .dt-header-kpi[data-tooltip]:hover, .dt-site-header__kpis .dt-header-kpi[data-tooltip]:focus-visible { z-index: var(--z-overlay-higher); }
.dt-site-header__kpis .dt-header-kpi[data-tooltip]:hover::after, .dt-site-header__kpis .dt-header-kpi[data-tooltip]:focus-visible::after { content: attr(data-tooltip); position: absolute; left: 50%; top: 100%; bottom: auto; /* reset globale bottom:100% */ margin-top: 12px; margin-bottom: 0; /* reset globale margin-bottom */ transform: translateX(-50%); background: rgb(9 12 20 / 98%); color: #fff; border: 1px solid rgb(255 255 255 / 28%); border-radius: 10px; padding: 8px 10px; font-size: 12.5px; line-height: 1.3; white-space: normal; width: max-content; /* groeit met tekst */ min-width: 260px; /* voorkom te smalle box bij korte labels */ max-width: min(380px, calc(100vw - 24px)); /* cap binnen viewport */ text-align: left; overflow-wrap: break-word; display: block; /* forceer block voor stabiele lay-out */ box-sizing: border-box; pointer-events: auto; /* blokkeer events voor elementen eronder (nav) zodat geen overlap-tooltips verschijnen */ z-index: var(--z-tooltip-high); box-shadow: 0 8px 18px -8px rgb(0 0 0 / 60%); }
.dt-site-header__kpis .dt-header-kpi[data-tooltip]:hover::before, .dt-site-header__kpis .dt-header-kpi[data-tooltip]:focus-visible::before { content: ""; position: absolute; left: 50%; top: 100%; bottom: auto; /* reset globale bottom:100% */ transform: translate(-50%, -50%) rotate(45deg); width: 12px; height: 12px; background: rgb(9 12 20 / 98%); border: 1px solid rgb(255 255 255 / 28%); border-left: none; border-top: none; z-index: var(--z-tooltip-arrow); box-shadow: 0 2px 6px -2px rgb(0 0 0 / 50%); pointer-events: auto; } @media (width <= 420px) { .dt-pitch__player { width: 60px;} /* Vergroot shirt op kleinste breakpoint voor leesbaarheid */ .dt-player__placeholder-img { width: 28px; height: auto;} /* +1px nummer t.o.v. vorige waarde */ .dt-player__num { font-size: 11.5px; line-height: 1;} } @media (width <= 420px) { .dt-site-header__kpis .dt-header-kpi[data-tooltip]:hover::after,   .dt-site-header__kpis .dt-header-kpi[data-tooltip]:focus-visible::after { transform: translateX(-50%); width: auto; /* op mobiel geen max-content-forcering */ min-width: 0; /* laat smal worden indien nodig */ max-width: calc(100vw - 16px); margin-top: 10px; padding: 8px 10px;} .dt-site-header__kpis .dt-header-kpi[data-tooltip]:hover::before,   .dt-site-header__kpis .dt-header-kpi[data-tooltip]:focus-visible::before { left: 50%; transform: translate(-50%, -50%) rotate(45deg);} }
.dt-site-header__kpis .dt-header-kpi i { font-size: var(--fs-xs); } /* geen hover/focus interactiviteit nodig voor informatieve KPI’s */ /* Team switcher select in KPI */
.dt-site-header__kpis .dt-header-kpi.dt-header-kpi--team { display: flex; gap: 10px; }
.dt-site-header__kpis .dt-header-kpi.dt-header-kpi--team .dt-team-switch-form select { background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 22%); color: #fff; border-radius: 10px; padding: 6px 8px; font-size: var(--fs-xs); }
.dt-site-header__kpis .dt-header-kpi.dt-header-kpi--team .dt-team-switch-form select:focus { outline: none; border-color: var(--accent); box-shadow: var(--dt-focus-ring); } /* account blok vervallen (actieknoppen geïntegreerd in nav) */ /* Scoped compact style voor KPI team-chip trigger (desktop)    Doel: hoogte <= 30px zodat KPI-rij niet groeit.    Opmerking: uitsluitend in header KPI-context, geen impact op language popover elders. */
.dt-site-header__kpis .dt-header-kpi--team .dt-lang-trigger { height: 28px; padding: 0 10px; border-radius: 10px; gap: 6px; font-size: var(--fs-13); }
.dt-site-header__kpis .dt-header-kpi--team .dt-lang-trigger i { font-size: 14px; }
.dt-site-header__kpis .dt-header-kpi--team .dt-lang-trigger .dt-team-trigger__icon { display: inline-block; font-size: 14px; color: rgb(255 255 255 / 95%); }
.dt-site-header__kpis .dt-header-kpi--team .dt-team-trigger__label { max-width: 180px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; } /* Navigatie in compacte header */
.dt-site-header__nav { margin-top: 4px; } /* minder verticale ruimte */
.dt-site-header__nav .dt-nav__list { background: linear-gradient(180deg,rgb(255 255 255 / 14%),rgb(255 255 255 / 4%)); border: 1px solid rgb(255 255 255 / 22%); backdrop-filter: blur(18px) saturate(155%); padding: 4px 10px; border-radius: var(--nav-radius,26px); display: flex; gap: 4px; list-style: none; margin: 0; flex-wrap: wrap; scroll-behavior: smooth; } /* glass effect hersteld */
.dt-site-header__nav .dt-nav__list a { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 10px 4px; text-decoration: none; color: var(--text); font-size: var(--fs-2xs); font-weight: var(--fw-semibold); letter-spacing: .5px; border-radius: 20px; transition: background .2s,color .2s; min-width: 66px; position: relative; } /* compacter item */
.dt-site-header__nav .dt-nav__list a i { font-size: 16px; } /* iets kleiner */
.dt-site-header__nav .dt-nav__list a:hover,.dt-site-header__nav .dt-nav__list a:focus { background: rgb(255 255 255 / 16%); outline: none; }
.dt-site-header__nav .dt-nav__list a.is-active { background: linear-gradient(180deg,var(--accent),#02c996); color: var(--accent-text-dark); box-shadow: 0 4px 12px -4px rgb(0 229 164 / 50%); } /* Active underline indicator (extra visuele houvast) */
.dt-site-header__nav .dt-nav__list a.is-active::after { content: ""; position: absolute; left: 10px; right: 10px; bottom: 2px; height: 3px; border-radius: 3px; background: linear-gradient(90deg,var(--accent),var(--gold)); box-shadow: 0 0 4px -1px rgb(0 229 164 / 55%); } /* Gold icon hover/focus glow */
.dt-site-header__nav .dt-nav__list a:hover i.text-gold, .dt-site-header__nav .dt-nav__list a:focus-visible i.text-gold { text-shadow: 0 0 4px rgb(212 175 55 / 75%),0 0 2px rgb(212 175 55 / 95%); } /* Scrollbare nav op small / medium breedtes (voorkomt wrapping overflow) */ @media (width <=1160px) { .dt-site-header__nav { overflow: hidden;} .dt-site-header__nav .dt-nav__list { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; gap: 6px;} .dt-site-header__nav .dt-nav__list > li { scroll-snap-align: start;} .dt-site-header__nav .dt-nav__list::-webkit-scrollbar { display: none;} } /* Language select in nav – pill style */ /* Nav language select verwijderd (nu terug in mini bar) */ /* ===================== MOBILE MENU: top bar + panel ==================== */ @media (width <=900px) { .dt-mobile-bar { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 14px; height: 70px; background: #101828; border-bottom: 1px solid rgb(255 255 255 / 10%);} /* space-between zodat items op één lijn passen */ .dt-mobile-bar__logo img,.dt-mobile-bar__logo svg { height: 60px; width: 60px; max-width: none; object-fit: cover; display: block; border-radius: 50%; aspect-ratio: 1/1;} .dt-mobile-bar__toggle { background: var(--panel-2); border: 1px solid rgb(255 255 255 / 22%); width: 40px; height: 40px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; color: var(--text); cursor: pointer; transition: background .2s,border-color .2s;} /* compacter zodat logo/taal beter centreert */ .dt-mobile-bar__toggle:hover,.dt-mobile-bar__toggle:focus { background: #1e2a3c; border-color: var(--accent); outline: none;} /* Bewust: desktop logo verbergen op mobiel — !important voor specificity */ .dt-desktop-logo { display: none !important;} .dt-mobile-bar__team select { background: rgb(255 255 255 / 10%); border: 1px solid rgb(255 255 255 / 22%); color: #fff; padding: 6px 8px; border-radius: 10px; font-size: var(--fs-xs); max-width: 150px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis;} .dt-mobile-bar__lang { margin-left: auto; display: flex; align-items: center;} .dt-mobile-bar__lang .dt-lang-trigger { height: 42px; padding: 0 12px; border-radius: 14px; gap: 6px; font-size: var(--fs-xs);} /* legacy .dt-lang-flag mobile size removed; PNG variant uses .dt-lang-flag-img */ /* Verberg desktop KPI/nav secties op mobiel zodra mobiele bar actief is */ /* Bewust: !important om desktop varianten uit beeld te houden op mobiel */ .dt-site-header__kpis,.dt-site-header__nav { display: none !important;} /* Mobile menu panel shell */ .dt-mobile-menu { position: fixed; inset: 70px 0 0; z-index: var(--z-mobile-menu); display: flex; flex-direction: column; pointer-events: none;} /* top afgestemd op nieuwe mobiele bar */ /* BUG-015: het binnenpaneel krijgt een hogere z-index dan de backdrop zodat blur nooit op content toegepast wordt */ .dt-mobile-menu__inner { background: #101828; /* var(--bg) */ backdrop-filter: none; border-top: 1px solid rgb(255 255 255 / 12%); padding: 18px 16px 70px; overflow-y: auto; flex: 1; transform: translateY(-12px); opacity: 0; transition: opacity .22s ease, transform .22s ease; pointer-events: auto; position: relative; z-index: var(--z-mobile-menu-inner);} /* boven backdrop */ .dt-mobile-menu.is-open .dt-mobile-menu__inner { transform: translateY(0); opacity: 1;} /* Backdrop onder het paneel binnen dezelfde stacking context */ .dt-mobile-menu__backdrop { position: fixed; inset: 0; background: rgb(0 0 0 / 45%); backdrop-filter: blur(2px); opacity: 0; transition: opacity .25s ease; pointer-events: none; border: 0; padding: 0; z-index: var(--z-mobile-backdrop);} /* backdrop onder panel, boven content */ .dt-mobile-menu.is-open .dt-mobile-menu__backdrop { opacity: 1; pointer-events: auto;} .dt-mobile-menu__kpis { display: grid; grid-template-columns: repeat(auto-fill,minmax(140px,1fr)); gap: 12px; margin-bottom: 20px;} .dt-mobile-menu__nav-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill,minmax(120px,1fr)); gap: 12px;} .dt-mobile-menu__nav-list a,.dt-mobile-menu__nav-list .dt-nav-btn { background: linear-gradient(180deg,rgb(255 255 255 / 16%),rgb(255 255 255 / 5%)); border: 1px solid rgb(255 255 255 / 20%); border-radius: 18px; padding: 14px 8px 10px; display: flex; flex-direction: column; align-items: center; gap: 6px; text-decoration: none; color: var(--text); font-size: var(--fs-xs); font-weight: var(--fw-semibold); position: relative; min-height: 92px;} /* glass/gradient hersteld */ .dt-mobile-menu__nav-list a i,.dt-mobile-menu__nav-list .dt-nav-btn i { font-size: 20px;} .dt-mobile-menu__nav-list a:hover,.dt-mobile-menu__nav-list a:focus,   .dt-mobile-menu__nav-list .dt-nav-btn:hover,.dt-mobile-menu__nav-list .dt-nav-btn:focus { background: rgb(255 255 255 / 22%); outline: none;} .dt-mobile-menu__nav-list a:focus-visible,   .dt-mobile-menu__nav-list .dt-nav-btn:focus-visible { box-shadow: var(--dt-focus-ring);} .dt-mobile-menu__nav-list a.is-active { background: linear-gradient(180deg,var(--accent),#02c996); color: var(--accent-text-dark); box-shadow: 0 6px 14px -4px rgb(0 229 164 / 55%);} .dt-mobile-menu__lang { margin-top: 28px; display: flex; justify-content: center;} body.is-mobmenu-open .dt-site-main { overflow: hidden;} } /* Desktop: verberg mobiele bar boven breakpoint zodat header niet inzakt */ @media (width >=901px) { /* Bewust: desktop lockout van mobiele UI — !important om mobiele regels te overrulen */ .dt-mobile-bar { display: none !important;} .dt-mobile-menu { display: none !important;} .dt-bottom-nav { display: none !important;} } /* Persistente mobiele bottom nav */ @media (width <=900px) { .dt-bottom-nav { position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--z-header); background: #0f172a; /* iets donkerder voor AA */ border-top: 1px solid rgb(255 255 255 / 12%); box-shadow: 0 -6px 18px -8px rgb(0 0 0 / 55%); padding-bottom: env(safe-area-inset-bottom, 0);} .dt-bottom-nav .dt-navbar__nav { display: grid; grid-template-columns: repeat(5,1fr); gap: 0;} .dt-bottom-nav .dt-nav__link { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; padding: 10px 6px 12px; color: var(--text); text-decoration: none; font-size: var(--fs-2xs); font-weight: var(--fw-semibold); opacity: .95;} .dt-bottom-nav .dt-nav__link i { font-size: 18px;} .dt-bottom-nav .dt-nav__link:focus-visible { outline: none; box-shadow: var(--dt-focus-ring);} .dt-bottom-nav .dt-nav__link.is-active { color: var(--accent-text-dark); background: linear-gradient(180deg,var(--accent),#02c996);} body.is-mobmenu-open .dt-bottom-nav { display: none;} /* verbergen wanneer off-canvas open is */ /* ruimte onderaan main zodat content niet achter nav valt */ .dt-site-main { padding-bottom: calc(60px + env(safe-area-inset-bottom, 0));} } /* Badge voor berichten */
.dt-nav-badge { position: absolute; top: 2px; right: 6px; background: var(--danger); color: #fff; font-size: 9px; font-weight: var(--fw-bold); line-height: 1; padding: 2px 5px 3px; border-radius: 12px; box-shadow: 0 2px 6px -2px rgb(0 0 0 / 55%); margin: 0; letter-spacing: .5px; } /* Logout button gestyled als nav item */
.dt-nav-logout-form { display: inline; }
.dt-nav-logout-form .dt-nav-btn { background: none; border: 0; display: inline-flex; flex-direction: column; align-items: center; gap: 2px; color: var(--text); font: inherit; cursor: pointer; font-size: var(--fs-2xs); font-weight: var(--fw-semibold); letter-spacing: .5px; border-radius: 22px; min-width: 70px; padding: 8px 12px 6px; }
.dt-nav-logout-form .dt-nav-btn i { font-size: 17px; }
.dt-nav-logout-form .dt-nav-btn:hover,.dt-nav-logout-form .dt-nav-btn:focus { background: rgb(255 255 255 / 16%); outline: none; } /* ====================== BADGES (compact, pill) ====================== */
.dt-badge { display: inline-flex; align-items: center; gap: 6px; padding: 3px 8px; border-radius: var(--radius-pill); font-size: var(--fs-2xs); font-weight: var(--fw-bold); letter-spacing: .3px; line-height: 1; background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 18%); color: var(--text); }
.dt-badge i { font-size: .95em; line-height: 1; }
.dt-badge--sm { padding: 2px 6px; font-size: 10.5px; }
.dt-badge--lg { padding: 5px 10px; font-size: var(--fs-xs); } /* Tone variants */
.dt-badge--accent { background: linear-gradient(180deg, rgb(0 229 164 / 22%), rgb(0 229 164 / 10%)); border-color: rgb(0 229 164 / 45%); color: var(--accent-text-dark); }
.dt-badge--success { background: linear-gradient(180deg, rgb(16 185 129 / 22%), rgb(16 185 129 / 10%)); border-color: rgb(16 185 129 / 45%); }
.dt-badge--warning { background: linear-gradient(180deg, rgb(245 158 11 / 28%), rgb(245 158 11 / 12%)); border-color: rgb(245 158 11 / 48%); }
.dt-badge--danger { background: linear-gradient(180deg, rgb(239 68 68 / 28%), rgb(239 68 68 / 12%)); border-color: rgb(239 68 68 / 50%); }
.dt-badge--info { background: linear-gradient(180deg, rgb(59 130 246 / 26%), rgb(59 130 246 / 12%)); border-color: rgb(59 130 246 / 46%); }
.dt-badge--secondary { background: rgb(255 255 255 / 10%); border-color: rgb(255 255 255 / 22%); }
.dt-badge--subtle { background: rgb(255 255 255 / 6%); border-color: rgb(255 255 255 / 16%); font-weight: var(--fw-semibold); }
.dt-badge--fm { background: linear-gradient(180deg, rgb(234 179 8 / 30%), rgb(234 179 8 / 12%)); border-color: rgb(234 179 8 / 50%); color: #fbbf24; }
.dt-badge--stars { background: linear-gradient(180deg, rgb(168 85 247 / 28%), rgb(168 85 247 / 12%)); border-color: rgb(168 85 247 / 48%); color: #c084fc; }

/* ====================== FORM BADGES (W/D/L chips) ====================== */
.dt-form-badges { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.dt-form-badge { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: var(--radius-pill); font-size: var(--fs-xs); font-weight: var(--fw-bold); letter-spacing: .3px; line-height: 1; text-transform: uppercase; border: 1px solid transparent; }
.dt-form-badge--win { background: linear-gradient(180deg, rgb(16 185 129 / 32%), rgb(16 185 129 / 16%)); border-color: rgb(16 185 129 / 55%); color: #34d399; }
.dt-form-badge--draw { background: linear-gradient(180deg, rgb(251 191 36 / 32%), rgb(251 191 36 / 16%)); border-color: rgb(251 191 36 / 55%); color: #fbbf24; }
.dt-form-badge--loss { background: linear-gradient(180deg, rgb(239 68 68 / 32%), rgb(239 68 68 / 16%)); border-color: rgb(239 68 68 / 55%); color: #f87171; }

/* Actie knoppen styling hergebruiken maar iets compacter in mini context */
.dt-site-header__account .dt-action-btn { position: relative; width: 50px; height: 50px; border-radius: 16px; background: linear-gradient(180deg,rgb(255 255 255 / 20%),rgb(255 255 255 / 7%)); border: 1px solid rgb(255 255 255 / 25%); backdrop-filter: blur(14px) saturate(150%); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; color: var(--text); font-size: 20px; margin-right: 10px; transition: background .2s,border-color .2s,transform .2s; }
.dt-site-header__account .dt-action-btn:hover,.dt-site-header__account .dt-action-btn:focus { background: linear-gradient(180deg,rgb(255 255 255 / 30%),rgb(255 255 255 / 12%)); border-color: var(--accent); outline: none; }
.dt-site-header__account .dt-action-badge { position: absolute; top: 4px; right: 6px; background: var(--danger); color: #fff; font-size: 10px; font-weight: var(--fw-bold); line-height: 1; padding: 3px 5px; border-radius: 10px; box-shadow: 0 2px 6px -2px rgb(0 0 0 / 50%); }
.dt-site-header__account form { margin: 0; } @media (width <=760px) { .dt-site-header__kpis .dt-header-kpis { grid-template-columns: repeat(2,1fr);} }
.dt-site-header__mini .dt-site-header__logo { width: 108px; height: auto; display: block; }
.dt-site-header__inner { height: 100%; display: flex; align-items: center; gap: var(--space-4); } /* gecentreerde inhoud */
.dt-site-header__logo { width: 80px; height: auto; display: block; } /* .dt-lang legacy select verwijderd – taalkeuze nu via popover trigger */ /* Desktop language popover default hidden onder breakpoint */
.dt-desktop-lang { display: none; } @media (width >=901px) { .dt-desktop-lang { margin-left: auto; display: flex; align-items: center;} } /* TEXT COLOR UTILITIES (dt- prefix; aliases deprecated) */
.dt-lang-trigger__label { display: none; }
.dt-text-gold { color: var(--gold); } /* canonical */
.dt-text-yellow { color: var(--yellow); } /* canonical */
.dt-text-orange { color: var(--orange); } /* canonical */ /* Backwards-compat aliases (deprecated) */
.dt-text-danger { color: var(--danger); } /* utility: red text for required asterisk */
.dt-text-red { color: var(--danger); } /* canonical red text */
.text-gold { color: var(--gold); }  /* alias → gebruik .dt-text-gold voortaan */
.text-yellow { color: var(--yellow); } /* alias → gebruik .dt-text-yellow */
.text-orange { color: var(--orange); } /* alias → gebruik .dt-text-orange */ /* ===== Language popover (Option A) ===== */
.dt-lang--popover { position: relative; }
.dt-lang-trigger { background: linear-gradient(180deg,rgb(255 255 255 / 16%),rgb(255 255 255 / 5%)); border: 1px solid rgb(255 255 255 / 22%); height: 46px; padding: 0 16px; border-radius: 16px; display: inline-flex; align-items: center; gap: 10px; color: var(--text); cursor: pointer; font: inherit; font-size: var(--fs-13); position: relative; z-index: var(--z-lang-trigger); }
.dt-lang-trigger:hover,.dt-lang-trigger:focus { background: linear-gradient(180deg,rgb(255 255 255 / 26%),rgb(255 255 255 / 10%)); outline: none; border-color: var(--accent); }
.dt-lang-trigger:focus-visible { box-shadow: var(--dt-focus-ring); } /* Legacy CSS-drawn language flag removed; all flags now use PNG via .dt-lang-flag-img */ /* PNG flag image variant (when using /images/flags/*.png in language selector) */
.dt-lang-flag-img { width: 20px; height: 14px; display: inline-block; border-radius: 3px; box-shadow: 0 0 0 1px rgb(0 0 0 / 40%),0 1px 2px rgb(0 0 0 / 60%); object-fit: cover; } /* Match mobile trigger size */
.dt-mobile-bar__lang .dt-lang-flag-img { width: 18px; height: 13px; } /* Active option ring (mirror of .dt-lang-flag rule) */
.dt-lang-option.is-active .dt-lang-flag-img { box-shadow: 0 0 0 1px rgb(0 0 0 / 40%),0 0 0 3px rgb(0 229 164 / 45%); } /* Legacy CSS-drawn language flags removed; we now use PNGs via .dt-lang-flag-img */
.dt-lang-popover { position: absolute; top: calc(100% + 10px); right: 0; min-width: 220px; max-width: min(320px, calc(100vw - 24px));
	/* SOLID by default (FROZEN): leesbaarheid boven glass */
	background: #101828 !important;
	/* stylelint-disable-next-line property-no-vendor-prefix */
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
	border: 1px solid rgb(255 255 255 / 22%);
	padding: 12px; border-radius: 16px; box-shadow: 0 10px 28px -8px rgb(0 0 0 / 65%); animation: dtPopSlide .28s cubic-bezier(.16,.82,.25,1) both; z-index: var(--z-popover); }
.dt-select__dropdown { z-index: var(--z-dropdown); }
.dt-lang-options { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.dt-lang-option { width: 100%; display: flex; align-items: center; gap: 10px; background: rgb(255 255 255 / 12%); border: 1px solid rgb(255 255 255 / 22%); color: var(--text); padding: 6px 10px; border-radius: 10px; font-size: var(--fs-13); cursor: pointer; }
.dt-lang-option:hover,.dt-lang-option:focus { background: rgb(255 255 255 / 22%); outline: none; border-color: var(--accent); }
.dt-lang-option.is-active { background: linear-gradient(180deg,var(--accent),#02c996); color: var(--accent-text-dark); } /* Legacy active ring for .dt-lang-flag removed; PNG variant has its own active ring */ /* Note: .dt-lang-option.is-active .dt-lang-flag kept for backward-compat; PNG path uses .dt-lang-flag-img above */ @keyframes dtPopSlide { from { opacity: 0; transform: translateY(-6px) scale(.96);} to { opacity: 1; transform: translateY(0) scale(1);} } /* Flag macro styling */
.dt-lang-popover .dt-lang-option { background: var(--panel-2, #121c2b); border: 1px solid var(--dt-border, rgb(255 255 255 / 15%)); }
.dt-lang-popover .dt-lang-option:hover,
.dt-lang-popover .dt-lang-option:focus-visible { background: #1e2a3c; border-color: rgb(45 212 191 / 65%); box-shadow: 0 0 0 1px rgb(45 212 191 / 55%) inset; outline: none; }
.dt-popover--solid {
	/* FROZEN: Solid popover variant — leesbaarheid boven blur/transparantie
		 Wijzig deze regels NIET zonder de bugkaart te heropenen en visueel te valideren. */
	background: #101828 !important; /* vaste paneelkleur */
	/* stylelint-disable-next-line property-no-vendor-prefix */
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
	/* Houd border/radius/shadow consistent met design tokens */
	border: 1px solid rgb(255 255 255 / 22%);
	border-radius: 14px;
	box-shadow: 0 10px 28px -8px rgb(0 0 0 / 65%);
	z-index: 9999 !important; /* boven alles */
}
.dt-flag { display: inline-flex; align-items: center; justify-content: center; line-height: 1; border-radius: 3px; overflow: hidden; box-shadow: 0 0 0 1px rgb(0 0 0 / 40%),0 1px 2px rgb(0 0 0 / 60%); }
.dt-flag img { display: block; width: 100%; height: 100%; object-fit: cover; }
.dt-flag--sm { width: 16px; height: 12px; }
.dt-flag--md { width: 20px; height: 14px; }
.dt-flag--lg { width: 28px; height: 20px; } /* Mobile menu footer links */
.dt-mobile-menu__footer-links { margin-top: 34px; font-size: var(--fs-2xs); opacity: .9; }
.dt-mobile-menu__footer-links .dt-footer-links-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; text-align: center; }
.dt-mobile-menu__footer-links a { color: var(--text); text-decoration: none; }
.dt-mobile-menu__footer-links a:hover,.dt-mobile-menu__footer-links a:focus { text-decoration: underline; }
.dt-footer-links-copy { opacity: .6; } @media (width <=900px) { .dt-site-footer__links { display: none;} /* desktop only; mobiele versie nu in menu */ } /* Utility voor verbergen op mobiel expliciet herbruikbaar */ @media (width <=900px) { /* Bewust util: element verbergen op mobiel — !important kan componentregels overrulen */ .dt-hide-mobile { display: none !important;} } /* CONTENT (enige scroll-container) */ /* Main scroll container: fallback naar body scroll op kleine schermen als nested scroll issues ontstaan */
.dt-site-main { flex: 1 1 auto; overflow: visible; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; scrollbar-gutter: stable both-edges; } @media (width <=900px) { /* Laat zowel body als main scrollen; verwijder nested lock */ body { overflow: auto;} body:not(.is-mobmenu-open) .dt-site-main { overflow: visible;} } /* Mobiel: alleen body locken wanneer menu open (doen we met body.is-mobmenu-open) */ @media (width <=900px) { .dt-site-main { overflow-y: auto;} }
.dt-main { padding-block: var(--space-4); } /* verticale padding binnen main */ /* FOOTER (persistent onderaan, geen fixed) */
.dt-site-footer { flex: 0 0 auto; font-size: var(--fs-xs); line-height: 1.2; color: #fff; margin-top: auto; position: relative; z-index: var(--z-base); } /* default: niet sticky (mobiel) */ @media (width >=901px) { .dt-site-footer { position: sticky; bottom: 0;} /* desktop sticky */ }
.dt-site-footer__ads { height: var(--footer-ads-h); display: flex; align-items: center; background: rgb(16 24 40 / 92%); border-top: 1px solid rgb(255 255 255 / 10%); } /* container binnenin centreert */
.dt-site-footer__links { height: var(--footer-links-h); display: flex; align-items: center; background: rgb(22 34 52 / 90%); /* 10% transparantie */ border-top: 1px solid rgb(255 255 255 / 8%); } /* container binnenin centreert */
.dt-site-footer__links ul { margin: 0; padding: 0; list-style: none; display: flex; gap: var(--space-4); flex-wrap: wrap; }
.dt-site-footer__links a { color: #fff; text-decoration: none; font-size: var(--fs-xs); }
.dt-site-footer__links a:hover,.dt-site-footer__links a:focus { text-decoration: underline; } /* UTIL */ /* Bewust a11y helper: !important op position voorkomt overschrijving door layout-helpers */
@media (width >=901px) {
  .dt-page--auth .dt-site-footer { position: static; }
  .dt-page--auth .dt-site-footer__links.dt-hide-mobile { position: fixed; left: 0; right: 0; bottom: 0; z-index: var(--z-header); }
  .dt-page--auth .dt-site-main { padding-bottom: var(--footer-links-h); }
}
.dt-sr-only { position: absolute!important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; } /* CONTAINER – gedeelde centrale breedte */
.dt-container { width: min(98%, var(--content-max)); margin-inline: auto; padding-inline: var(--space-4); } /* 98% fluid tot max */ /* Container specifieke layout hooks */
.dt-site-header .dt-container { height: 100%; }
.dt-site-footer__ads .dt-container, .dt-site-footer__links .dt-container { display: flex; align-items: center; justify-content: center; height: 100%; } /* width volgt nu globale .dt-container (min(98%, max)) */ @supports (width: min(100%, 100%)) { /* future-proof guard; min() breed ondersteund maar voor zekerheid */ .dt-container { width: min(98%, var(--content-max));} } /* =====================================================================
   BUTTONS — Outline / Glow system (v3)
   Kleur gestuurd via --_c / --_cr / --_cg / --_cb per variant.
   Varianten: primary (groen), secondary (grijs), danger (rood),
              ghost/outline/subtle (wit), yellow (geel), blue (blauw)
   ===================================================================== */
.dt-btn {
  --_c: #00e5a4; --_cr: 0; --_cg: 229; --_cb: 164;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 0 16px;
  border: 1.5px solid rgb(var(--_cr) var(--_cg) var(--_cb) / 45%);
  border-radius: 999px;
  background: transparent;
  color: var(--_c);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-sm);
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  user-select: none;
  overflow: hidden;
  position: relative;
  min-height: 40px;
  transition: background .2s, border-color .2s, box-shadow .2s, transform .18s;
}
.dt-btn:hover, .dt-btn:focus-visible {
  background: rgb(var(--_cr) var(--_cg) var(--_cb) / 10%);
  border-color: var(--_c);
  box-shadow: 0 0 20px -6px rgb(var(--_cr) var(--_cg) var(--_cb) / 40%);
}
.dt-btn:focus-visible { outline: none; }
.dt-btn:active { transform: translateY(1px); }
.dt-btn[disabled], .dt-btn[aria-disabled="true"] { opacity: .55; cursor: not-allowed; }
/* Busy state: inline spinner op knoppen zonder layout shift */
.dt-btn.is-busy { cursor: progress; }
.dt-btn.is-busy::before { content: ""; position: absolute; left: 10px; top: 50%; transform: translateY(-50%); width: 14px; height: 14px; border-radius: 50%; border: 2px solid currentcolor; border-right-color: transparent; opacity: .95; animation: dtSpin .9s linear infinite; }
.dt-btn.is-busy .dt-icon { opacity: 0; }
/* Icoon — altijd geel; specifieke varianten kunnen dit overschrijven */
.dt-btn .dt-icon { color: var(--dt-yellow, #fbbf24); }
/* Button icon-blok patroon: icon links in vakje voor standaard en lg buttons; xs/sm blijven plain. */
.dt-btn:not(.dt-btn--sm, .dt-btn--xs, .dt-btn--icon):has(.dt-icon:first-child) { justify-content: flex-start; padding-left: 0; }
.dt-btn:not(.dt-btn--sm, .dt-btn--xs, .dt-btn--icon) .dt-icon:first-child { align-self: stretch; display: inline-flex; align-items: center; justify-content: center; position: relative; isolation: isolate; width: 46px; padding-left: 2px; border-radius: 999px 0 0 999px; font-size: 16px; background: linear-gradient(180deg, rgb(var(--_cr) var(--_cg) var(--_cb) / 22%) 0%, rgb(var(--_cr) var(--_cg) var(--_cb) / 8%) 100%); border-right: 1px solid rgb(var(--_cr) var(--_cg) var(--_cb) / 20%); margin-inline-end: 10px; }
/* Voetbal hex-patroon via ::after (::before is gereserveerd door FontAwesome voor het icon-glyph) */
.dt-btn:not(.dt-btn--sm, .dt-btn--xs, .dt-btn--icon) .dt-icon:first-child::after { content: ''; position: absolute; inset: 0; z-index: -1; background-color: rgb(var(--_cr) var(--_cg) var(--_cb) / 18%); mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='27.712'%3E%3Cpolygon points='16,6.928 12,0 4,0 0,6.928 4,13.856 12,13.856' fill='none' stroke='black' stroke-width='1'/%3E%3Cpolygon points='28,13.856 24,6.928 16,6.928 12,13.856 16,20.784 24,20.784' fill='none' stroke='black' stroke-width='1'/%3E%3Cpolygon points='16,20.784 12,13.856 4,13.856 0,20.784 4,27.712 12,27.712' fill='none' stroke='black' stroke-width='1'/%3E%3Cpolygon points='4,13.856 0,6.928 -8,6.928 -12,13.856 -8,20.784 0,20.784' fill='none' stroke='black' stroke-width='1'/%3E%3C/svg%3E"); mask-size: 24px 27.712px; mask-repeat: repeat; pointer-events: none; }
/* ── Kleur-varianten ────────────────────────────────────────────────── */
/* primary = groen (default) */
.dt-btn--primary { --_c: #00e5a4; --_cr: 0; --_cg: 229; --_cb: 164; }
/* secondary = grijs */
.dt-btn--secondary { --_c: #94a3b8; --_cr: 148; --_cg: 163; --_cb: 184; }
/* gold = goud (shop/cart knoppen) */
.dt-btn--gold { --_c: #d4af37; --_cr: 212; --_cg: 175; --_cb: 55; }
.dt-btn--secondary .dt-icon { color: rgb(200 220 255 / 65%); }
/* danger = rood */
.dt-btn--danger { --_c: #ef4444; --_cr: 239; --_cg: 68; --_cb: 68; }
/* ghost = subtiel wit; geen kleur-glow */
.dt-btn--ghost { --_c: var(--dt-text, #e2e8f0); --_cr: 226; --_cg: 232; --_cb: 240; border-color: rgb(255 255 255 / 18%); }
.dt-btn--ghost:hover, .dt-btn--ghost:focus-visible { background: rgb(255 255 255 / 8%); border-color: rgb(255 255 255 / 35%); box-shadow: none; }
/* yellow — scout / premium actie */
.dt-btn--yellow { --_c: #fbbf24; --_cr: 251; --_cg: 191; --_cb: 36; }
.dt-btn--yellow .dt-icon { color: rgb(255 255 255 / 80%); }
/* blue — info / koop */
.dt-btn--blue { --_c: #3b82f6; --_cr: 59; --_cg: 130; --_cb: 246; }
/* ── Formaten ───────────────────────────────────────────────────────── */
/* xs (kleinste, plain gap — geen icon-blokje) */
.dt-btn--xs { min-height: 0; padding: 5px 10px; font-size: 0.7rem; gap: 5px; border-radius: 7px; }
/* sm (plain gap — geen icon-blokje) */
.dt-btn--sm { min-height: 32px; padding: 0 13px; font-size: var(--fs-13, 0.8125rem); gap: 6px; border-radius: 9px; }
/* lg */
.dt-btn--lg { font-size: 1rem; min-height: 44px; padding: 0 22px; border-radius: 999px; gap: 0; }
.dt-btn--lg .dt-icon:first-child { width: 58px; font-size: 18px; margin-inline-end: 14px; }
/* ── Button Option C — pure neon: donker bg, geen hex-patroon, geen separator ──
   Gebruik als modifier: <button class="dt-btn dt-btn--lg dt-btn--neon">
   Overschrijft het gradient+patroon van het icon-blokje en de border-right separator.
   ── */
.dt-btn--neon { background: rgb(7 13 26 / 82%); }
.dt-btn--neon:not(.dt-btn--sm, .dt-btn--xs, .dt-btn--icon) .dt-icon:first-child {
  background: none;
  border-right: none;
}
.dt-btn--neon:not(.dt-btn--sm, .dt-btn--xs, .dt-btn--icon) .dt-icon:first-child::after { display: none; }
/* Lineup save CTA: higher contrast to keep "Opslaan" readable on all backgrounds */
#lineup-save-btn.dt-btn--neon {
  color: #f8fffc;
  border-color: rgb(0 229 164 / 48%);
  background: linear-gradient(180deg, rgb(9 22 40 / 96%), rgb(8 18 32 / 92%));
  box-shadow: 0 0 0 1px rgb(0 229 164 / 22%), 0 12px 24px -14px rgb(0 229 164 / 48%);
}
#lineup-save-btn.dt-btn--neon span { color: inherit; font-weight: 700; }
#lineup-save-btn.dt-btn--neon:hover,
#lineup-save-btn.dt-btn--neon:focus-visible {
  border-color: rgb(0 229 164 / 72%);
  background: linear-gradient(180deg, rgb(10 26 46 / 98%), rgb(9 22 39 / 96%));
}
/* full-width helper */
.dt-btn--full { width: 100%; justify-content: center; } /* ---------------------------------------------   Components – DT Icons (modifiers)   (moved from file header to Components on 2025-10-10)   --------------------------------------------- */
.dt-icon.dt-icon--green { color: var(--dt-success-600, #16a34a); }
.dt-icon.dt-icon--gold { color: var(--dt-color-gold, #d4af37); } /* Icon only knoppen krijgen vaste breedte/hoogte (bijv. voor ronde icon buttons) */
.dt-icon.dt-icon--card-yellow { color: #facc15; }
.dt-icon.dt-icon--card-red { color: #ef4444; }
.dt-icon.dt-icon--money { color: var(--dt-color-gold, #d4af37); }
.dt-icon.dt-icon--status-injured { color: #f97316; }
.dt-icon.dt-icon--status-suspended { color: #ef4444; }
.dt-icon.dt-icon--foot { color: #22d3ee; }
.dt-btn--icon { padding: 10px; width: 42px; aspect-ratio: 1/1; } /* Inline tekst link stijl (lichtgewicht) */
.dt-link { background: transparent; border: 0; color: var(--dt-primary); text-decoration: underline; font: inherit; cursor: pointer; padding: 0; }
.dt-link:hover,.dt-link:focus { color: var(--dt-primary-dark); } /* Simple text alignment helpers (used in cart table) */ /* Fase 2: !important verwijderd; uitlijning mag niet door componentregels overschreven worden in normale flow (2025-09-03) */
.dt-text-right { text-align: right; }
.dt-text-center { text-align: center; } /* Cart specific small helpers */
.dt-cart-thumb { width: 56px; height: 56px; border-radius: 8px; overflow: hidden; background: rgb(255 255 255 / 10%); border: 1px solid rgb(255 255 255 / 12%); flex: 0 0 auto; }
.dt-cart-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dt-cart-thumb__img { width: 40px; height: 40px; border-radius: 6px; object-fit: cover; display: block; }
.dt-sc-row--tall { padding-top: 10px; padding-bottom: 10px; align-items: flex-start; }
.dt-cart-summary { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 14px; }
.dt-cart-summary__right { display: flex; align-items: center; gap: 12px; }
.dt-cart-summary__total { display: flex; align-items: center; gap: 8px; } /* Button group (horizontale cluster) */
.dt-btn-group { display: flex; flex-wrap: wrap; gap: var(--space-2); } /* =====================================================================   FORMS (Option A minimal)   ===================================================================== */
.dt-field { margin: 0 0 var(--dt-space-md); }
.dt-field > label,.dt-label { display: block; font-weight: var(--fw-semibold); margin: 0 0 var(--dt-space-sm); font-size: var(--fs-sm); color: var(--dt-text); }
.dt-field__help { margin-top: 4px; font-size: var(--fs-xs); color: var(--dt-text-muted); } /* Fix: wanneer de switch als label in .dt-field gebruikt wordt, behoud flex layout */
.dt-field > label.dt-switch { display: flex; align-items: center; gap: 12px; }
fieldset.dt-field { border: 1px solid var(--dt-border); border-radius: 16px; padding: 12px 14px; background: var(--dt-surface); transition: border-color .18s, box-shadow .18s, background .18s; }
fieldset.dt-field:focus-within { border-color: var(--dt-focus); box-shadow: var(--dt-focus-ring); }
fieldset.dt-field > legend { padding: 0 8px; font-weight: var(--fw-semibold); font-size: var(--fs-sm); color: rgb(255 255 255 / 92%); }
.dt-input { width: 100%; height: var(--dt-input-height); padding: var(--dt-input-padding-y) var(--dt-input-padding-x); border: 1px solid var(--dt-border); border-radius: var(--radius); background: var(--dt-surface); color: var(--dt-text); font-size: var(--fs-base); line-height: 1.2; transition: border-color .18s,box-shadow .18s,background .18s; }

/* Native select dropdown (options) readability + dark styling in glass panels.
	Let op: native dropdown theming blijft deels OS/browser-controlled, maar Chrome/Edge op Windows pakken dit doorgaans goed. */
.dt-panel--glass select.dt-input { color-scheme: dark; }
.dt-panel--glass select.dt-input option,
.dt-panel--glass select.dt-input optgroup { background-color: #0d1b2a; color: #fff; }
.dt-input::placeholder { color: rgb(255 255 255 / 55%); }
/* Auth placeholder test: hoger contrast dan de globale placeholder-kleur */
body.dt-page--auth .dt-input::placeholder { color: rgb(226 232 240 / 82%); }
.dt-input:focus { outline: none; border-color: var(--dt-focus); box-shadow: var(--dt-focus-ring); }
.dt-input[aria-invalid="true"],.dt-input.dt-input--error { border-color: var(--dt-danger); box-shadow: 0 0 0 3px rgb(239 68 68 / 32%); }
.dt-form-error { margin-top: 4px; font-size: var(--fs-xs); color: var(--dt-danger); font-weight: var(--fw-semibold); } /* legacy inline error; prefer alerts.alert('error', ..., 'sm') */ /* Icon in input (links) */
.dt-input-icon { position: relative; }
.dt-input-icon .dt-input { padding-left: var(--dt-input-icon-offset); }
.dt-input-icon .dt-icon { position: absolute; left: var(--dt-icon-gap); top: 50%; transform: translateY(-50%); font-size: var(--dt-icon-size); color: var(--dt-color-yellow); pointer-events: none; line-height: 1; }
.dt-input-icon .dt-input:focus + .dt-icon { color: var(--dt-primary); } /* Icon rechts variant */
.dt-input-icon-right .dt-input { padding-right: var(--dt-input-icon-right-offset); padding-left: var(--dt-input-padding-x); }
.dt-input-icon-right .dt-icon { left: auto; right: var(--dt-icon-gap); } /* Centering of icons handled by .dt-input-icon wrapper; avoid forcing inputs to flex to prevent side-effects */ /* Password toggle (optioneel basis) */
.dt-password-toggle { position: relative; }
.dt-password-toggle .dt-input { padding-right: var(--dt-input-icon-right-offset); }
.dt-password-toggle .dt-toggle-btn { position: absolute; right: var(--dt-icon-gap); top: 50%; transform: translateY(-50%); background: transparent; border: 0; color: var(--dt-text-muted); cursor: pointer; padding: 4px; width: 34px; height: 34px; border-radius: var(--radius-sm); }
.dt-password-toggle .dt-toggle-btn:hover,.dt-password-toggle .dt-toggle-btn:focus { color: var(--dt-primary); outline: none; } /* Checkbox / radio (basis) */
.dt-checkbox { display: inline-flex; align-items: center; gap: 8px; font-size: .95em; }
.dt-checkbox input[type="checkbox"],.dt-checkbox input[type="radio"] { width: 1.1rem; height: 1.1rem; accent-color: var(--dt-primary); } /* (vervangen) dt-inline-alert legacy verwijderd; veldfouten gebruiken nu dt-alert--sm macro */ /* =====================================================================    ALERTS (flash & validation) – nieuwe stijl afgestemd op panel/card glaslook    ===================================================================== */
.dt-alert { position: relative; display: block; margin: 0 0 var(--space-4); padding: 0; border-radius: var(--radius-lg); background: linear-gradient(180deg,rgb(255 255 255 / 8%),rgb(255 255 255 / 3%)); border: 1px solid rgb(255 255 255 / 14%); box-shadow: 0 6px 20px -8px rgb(0 0 0 / 55%); backdrop-filter: blur(14px) saturate(140%); animation: dtFadeIn .45s ease both; }
.dt-alert + .dt-alert { margin-top: -4px; } /* stack compact */
.dt-alert__inner { display: flex; gap: 16px; align-items: flex-start; padding: 14px 16px; }
.dt-alert__icon { position: relative; width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; border-radius: 14px; background: rgb(255 255 255 / 10%); flex: 0 0 auto; font-size: 20px; color: #fff; box-shadow: 0 2px 6px -2px rgb(0 0 0 / 50%); }
.dt-alert__icon .dt-icon { position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%); line-height: 1; display: block; }
.dt-alert__body { flex: 1 1 auto; min-width: 0; font-size: var(--fs-sm); line-height: 1.35; display: flex; flex-direction: column; gap: 6px; }
.dt-alert__body > strong { font-size: .85rem; letter-spacing: .5px; text-transform: uppercase; font-weight: var(--fw-bold); opacity: .85; }
.dt-alert__list { margin: 4px 0 0; padding-left: 1.1rem; display: flex; flex-direction: column; gap: 4px; font-size: var(--fs-sm); }
.dt-alert__list li { line-height: 1.3; }
.dt-alert__close { background: transparent; border: 0; color: var(--dt-text-muted); cursor: pointer; padding: 6px; margin-left: auto; border-radius: var(--radius-sm); display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; transition: background .18s,color .18s,box-shadow .18s; }
.dt-alert__close:hover,.dt-alert__close:focus { color: var(--dt-text); background: rgb(255 255 255 / 12%); outline: none; box-shadow: var(--dt-focus-ring); } /* Compacte variant (wordt inline of dichter bij inputs gebruikt) */
.dt-alert--sm { margin: 0 0 var(--space-2); border-radius: var(--radius); }
.dt-alert--sm .dt-alert__inner { padding: 8px 10px; gap: 10px; align-items: center; }
.dt-alert--sm .dt-alert__icon { width: 32px; height: 32px; border-radius: 10px; font-size: 16px; }
.dt-alert--sm .dt-alert__body { font-size: var(--fs-xs); gap: 4px; }
.dt-alert--sm .dt-alert__body > strong { font-size: .7rem; }
.dt-alert--sm .dt-alert__list { font-size: var(--fs-xs); margin-top: 2px; gap: 2px; }
.dt-alert--sm .dt-alert__close { padding: 4px; } /* Verbeterde inline error (leesbaarheid) */
.dt-inline-alert--error { background: linear-gradient(135deg,rgb(110 23 23 / 55%),rgb(78 18 18 / 55%)); border-color: rgb(239 68 68 / 60%); color: #ffe5e5; } /* Variants */
.dt-alert--success { background: linear-gradient(180deg,rgb(255 255 255 / 8%),rgb(255 255 255 / 3%)),   linear-gradient(135deg,rgb(16 80 54 / 55%),rgb(15 48 38 / 55%)); border-color: rgb(34 197 94 / 45%); }
.dt-alert--info { background: linear-gradient(180deg,rgb(255 255 255 / 8%),rgb(255 255 255 / 3%)),   linear-gradient(135deg,rgb(21 90 160 / 55%),rgb(14 44 82 / 55%)); border-color: rgb(59 130 246 / 45%); }
.dt-alert--warning { background: linear-gradient(180deg,rgb(255 255 255 / 8%),rgb(255 255 255 / 3%)),   linear-gradient(135deg,rgb(120 62 0 / 60%),rgb(80 40 0 / 55%)); border-color: rgb(245 158 11 / 55%); }
.dt-alert--error { background: linear-gradient(180deg,rgb(255 255 255 / 8%),rgb(255 255 255 / 3%)),   linear-gradient(135deg,rgb(110 23 23 / 62%),rgb(78 18 18 / 55%)); border-color: rgb(239 68 68 / 55%); }
.dt-alert--error, .dt-alert--error .dt-alert__body { color: #ffe8e8; }
.dt-alert--success .dt-alert__icon { background: rgb(34 197 94 / 25%); }
.dt-alert--info .dt-alert__icon { background: rgb(59 130 246 / 25%); }
.dt-alert--warning .dt-alert__icon { background: rgb(245 158 11 / 30%); }
.dt-alert--error .dt-alert__icon { background: rgb(239 68 68 / 30%); } @media (width <=640px) { .dt-alert__inner { padding: 12px 14px; gap: 12px;} .dt-alert__icon { width: 38px; height: 38px; border-radius: 12px; font-size: 18px;} /* Mobile: ensure inline error alert remains readable and visually consistent */ .dt-alert--sm .dt-alert__inner { align-items: center;} .dt-alert--sm.dt-alert--error { background: linear-gradient(180deg,rgb(255 255 255 / 10%),rgb(255 255 255 / 4%)),     linear-gradient(135deg,rgb(128 24 24 / 78%),rgb(92 16 16 / 68%)); border-color: rgb(239 68 68 / 65%); color: #ffe8e8;} .dt-alert--sm.dt-alert--error .dt-alert__icon { background: rgb(239 68 68 / 38%);} } /* Form actions cluster */
.dt-form-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; margin-top: var(--space-4); } /* Dark/glass variant hook (later uitbreidbaar) */
.dt-panel--glass .dt-input { background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 18%); }
.dt-panel--glass .dt-input:focus { background: rgb(255 255 255 / 12%); }
.dt-panel--glass .dt-field > label { color: rgb(255 255 255 / 92%); }
.dt-panel--glass .dt-field__help { color: rgb(255 255 255 / 75%); } /* ===================================================================== */ /* =====================================================================    AUTH LAYOUT + HERO    ===================================================================== */
.dt-panel--glass fieldset.dt-field { background: rgb(255 255 255 / 8%); border-color: rgb(255 255 255 / 18%); }
.dt-panel--glass fieldset.dt-field:focus-within { background: rgb(255 255 255 / 12%); }
.dt-auth { max-width: var(--content-max); margin-inline: auto; min-height: calc(100dvh - var(--header-h, var(--header-mini-h)) - var(--footer-ads-h) - var(--footer-links-h)); display: flex; align-items: center; }
.dt-page--auth .dt-site-main { display: flex; flex-direction: column; }
.dt-page--auth .dt-main { flex: 1 0 auto; display: flex; }
.dt-page--auth .dt-auth { width: 100%; }
.dt-auth__shell { display: grid; gap: var(--space-6); align-items: stretch; padding-block: var(--space-4); justify-content: center; grid-template-columns: repeat(2, minmax(0, var(--auth-col-width))); width: 100%; } /* vaste gelijke breedte & centrering */ @media (width <= 1200px) { .dt-auth__shell { grid-template-columns: 1fr;} .dt-hero { min-height: 420px;} }
.dt-auth__panel { display: flex; flex-direction: column; gap: var(--space-4); min-height: var(--auth-hero-min); } /* match hoogte hero */ /* Hero blok links */
.dt-hero { position: relative; display: flex; flex-direction: column; justify-content: flex-start; gap: var(--space-4); padding: var(--space-6); border-radius: var(--radius-lg); overflow: hidden; isolation: isolate; min-height: var(--auth-hero-min); } /* herstelde / grotere hero */
.dt-hero--auth { background: linear-gradient(180deg, rgb(255 255 255 / 8%), rgb(255 255 255 / 3%)),     linear-gradient(135deg, rgb(45 212 191 / 24%), rgb(59 130 246 / 18%)); border: 1px solid rgb(255 255 255 / 12%); box-shadow: 0 10px 30px -6px rgb(0 0 0 / 45%); }
.dt-hero__title { font-size: 1.6rem; line-height: 1.15; font-weight: var(--fw-extrabold); margin: 0; letter-spacing: .5px; text-shadow: 0 2px 4px rgb(0 0 0 / 45%); }
.dt-auth--teams .dt-hero__title { font-family: Orbitron, var(--font-sans); font-size: 1.45rem; font-weight: 900; letter-spacing: 3px; text-transform: uppercase; background: linear-gradient(135deg, #00e5a4 20%, #06b6d4 80%); background-clip: text; color: transparent; text-shadow: none; display: flex; align-items: center; gap: 10px; }
.dt-auth--teams .dt-hero__title .dt-icon { color: #fbbf24; font-size: 1.2rem; flex-shrink: 0; -webkit-text-fill-color: #fbbf24; }
.dt-hero__subtitle { margin: 0; font-size: var(--fs-sm); color: var(--dt-text); max-width: 48ch; }
.dt-hero__meta { display: inline-flex; align-items: center; gap: 8px; font-size: var(--fs-xs); padding: 6px 12px; border-radius: var(--radius-pill); background: rgb(0 0 0 / 35%); backdrop-filter: blur(6px); border: 1px solid rgb(255 255 255 / 18%); }
.dt-hero__watermark { position: absolute; top: 8%; right: 8%; font-size: 220px; opacity: .05; pointer-events: none; z-index: var(--z-watermark); }
.dt-hero__mascot { position: absolute; bottom: -6px; left: 50%; transform: translateX(-50%); max-width: min(340px, 90vw); width: 60%; height: auto; object-fit: contain; filter: drop-shadow(0 6px 18px rgb(0 0 0 / 60%)); } /* Shop hero variant: subtle grid + accent gradient + background image */
.dt-hero--shop { /* overlays only; page background remains visible */ background-image: radial-gradient(1200px 600px at 100% -20%, rgb(255 172 58 / 25%), transparent 60%),   radial-gradient(900px 600px at -10% 120%, rgb(111 66 193 / 18%), transparent 60%),     linear-gradient(180deg, rgb(0 0 0 / 20%), rgb(0 0 0 / 4%)),     repeating-linear-gradient(0deg, rgb(255 255 255 / 5%) 0 1px, transparent 1px 32px); background-size: auto, auto, auto, auto; background-position: 100% -20%, -10% 120%, center, center; background-repeat: no-repeat, no-repeat, no-repeat, repeat; background-color: transparent; /* compacte hero gelijkend aan dashboard */ min-height: 220px; padding: var(--space-6); } /* Shop hero typografie gelijk aan dashboard hero */
.dt-hero--shop .dt-hero__title { font-size: 1.55rem; }
.dt-hero--shop .dt-hero__watermark { font-size: 160px; } @media (width <=820px) { .dt-hero--shop { min-height: 200px; padding: var(--space-5) var(--space-5);} } @media (width <=560px) { .dt-hero--shop { min-height: 180px;} } /* Tabs gestyled als KPI-chips (look & feel uit header) */ /* duplicate removed: .dt-tabs consolidated earlier with token gap */
.dt-shop-item__media { border-radius: 12px; overflow: hidden; border: 1px solid rgb(255 255 255 / 12%); background: linear-gradient(180deg, rgb(255 255 255 / 6%), rgb(255 255 255 / 2%)); aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; }
.dt-shop-item__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.dt-shop-item__img-fallback { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: rgb(255 255 255 / 72%); font-size: var(--fs-12); text-align: center; padding: 12px; }
.dt-shop-item__img-fallback .dt-icon { font-size: 1.25rem; color: rgb(45 212 191 / 90%); }
.dt-tab { appearance: none; border: 0; background: none; color: var(--text); font: inherit; cursor: pointer; }
.dt-tab { display: inline-flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 14px; background: linear-gradient(180deg, rgb(255 255 255 / 12%), rgb(255 255 255 / 5%)); border: 1px solid rgb(255 255 255 / 20%); box-shadow: 0 4px 12px -6px rgb(0 0 0 / 35%); font-weight: var(--fw-semibold); }
.dt-tab:hover { border-color: rgb(255 255 255 / 32%); }
.dt-tab:focus-visible { outline: none; box-shadow: var(--dt-focus-ring); }
.dt-tab[aria-selected="true"], .dt-tab.is-active { background: linear-gradient(180deg, rgb(45 212 191 / 28%), rgb(45 212 191 / 12%)); border-color: var(--accent); } /* UTILITIES — spacing, display, layout (small curated set used in views) */ /* Spacing */
.dt-mb-0 { margin-bottom: 0 }
.dt-mb-1 { margin-bottom: var(--space-1) }
.dt-mb-2 { margin-bottom: var(--space-2) }
.dt-mb-3 { margin-bottom: var(--space-3) }
.dt-mb-4 { margin-bottom: var(--space-4) }
.dt-mb-5 { margin-bottom: var(--space-5) }
.dt-mb-6 { margin-bottom: var(--space-6) }
.dt-mb-8 { margin-bottom: var(--space-8) }
.dt-mb-10 { margin-bottom: calc(var(--space-2)*5) }
.dt-mt-0 { margin-top: 0 }
.dt-mt-1 { margin-top: var(--space-1) }
.dt-mt-2 { margin-top: var(--space-2) }
.dt-mt-3 { margin-top: var(--space-3) }
.dt-mt-4 { margin-top: var(--space-4) }
.dt-mt-5 { margin-top: var(--space-5) }
.dt-mt-6 { margin-top: var(--space-6) }
.dt-mt-8 { margin-top: var(--space-8) }
.dt-my-0 { margin-top: 0; margin-bottom: 0 }
.dt-my-1 { margin-top: var(--space-1); margin-bottom: var(--space-1) }
.dt-my-2 { margin-top: var(--space-2); margin-bottom: var(--space-2) }
.dt-my-3 { margin-top: var(--space-3); margin-bottom: var(--space-3) }
.dt-my-4 { margin-top: var(--space-4); margin-bottom: var(--space-4) }
.dt-my-5 { margin-top: var(--space-5); margin-bottom: var(--space-5) }
.dt-my-6 { margin-top: var(--space-6); margin-bottom: var(--space-6) }
.dt-my-8 { margin-top: var(--space-8); margin-bottom: var(--space-8) }
.dt-pt-0 { padding-top: 0 }
.dt-pt-1 { padding-top: var(--space-1) }
.dt-pt-2 { padding-top: var(--space-2) }
.dt-pt-3 { padding-top: var(--space-3) }
.dt-pt-4 { padding-top: var(--space-4) }
.dt-pt-5 { padding-top: var(--space-5) }
.dt-pt-6 { padding-top: var(--space-6) }
.dt-pt-8 { padding-top: var(--space-8) }
.dt-p-0 { padding: 0 }
.dt-py-6 { padding-top: var(--space-6); padding-bottom: var(--space-6) }
.dt-py-0 { padding-top: 0; padding-bottom: 0 }
.dt-py-1 { padding-top: var(--space-1); padding-bottom: var(--space-1) }
.dt-py-2 { padding-top: var(--space-2); padding-bottom: var(--space-2) }
.dt-py-3 { padding-top: var(--space-3); padding-bottom: var(--space-3) }
.dt-py-4 { padding-top: var(--space-4); padding-bottom: var(--space-4) }
.dt-py-5 { padding-top: var(--space-5); padding-bottom: var(--space-5) }
.dt-py-8 { padding-top: var(--space-8); padding-bottom: var(--space-8) } /* Utilities – horizontal/axis spacing */
.dt-mx-0 { margin-left: 0; margin-right: 0 }
.dt-mx-1 { margin-left: var(--space-1); margin-right: var(--space-1) }
.dt-mx-2 { margin-left: var(--space-2); margin-right: var(--space-2) }
.dt-mx-3 { margin-left: var(--space-3); margin-right: var(--space-3) }
.dt-mx-4 { margin-left: var(--space-4); margin-right: var(--space-4) }
.dt-mx-5 { margin-left: var(--space-5); margin-right: var(--space-5) }
.dt-mx-6 { margin-left: var(--space-6); margin-right: var(--space-6) }
.dt-mx-8 { margin-left: var(--space-8); margin-right: var(--space-8) }
.dt-ml-0 { margin-left: 0 }
.dt-ml-2 { margin-left: var(--space-2) }
.dt-ml-3 { margin-left: var(--space-3) }
.dt-ml-4 { margin-left: var(--space-4) }
.dt-ml-5 { margin-left: var(--space-5) }
.dt-ml-6 { margin-left: var(--space-6) }
.dt-ml-8 { margin-left: var(--space-8) }
.dt-mr-0 { margin-right: 0 }
.dt-mr-2 { margin-right: var(--space-2) }
.dt-mr-3 { margin-right: var(--space-3) }
.dt-mr-4 { margin-right: var(--space-4) }
.dt-mr-5 { margin-right: var(--space-5) }
.dt-mr-6 { margin-right: var(--space-6) }
.dt-mr-8 { margin-right: var(--space-8) }
.dt-px-0 { padding-left: 0; padding-right: 0 }
.dt-px-1 { padding-left: var(--space-1); padding-right: var(--space-1) }
.dt-px-2 { padding-left: var(--space-2); padding-right: var(--space-2) }
.dt-px-3 { padding-left: var(--space-3); padding-right: var(--space-3) }
.dt-px-4 { padding-left: var(--space-4); padding-right: var(--space-4) }
.dt-px-5 { padding-left: var(--space-5); padding-right: var(--space-5) }
.dt-px-6 { padding-left: var(--space-6); padding-right: var(--space-6) }
.dt-px-8 { padding-left: var(--space-8); padding-right: var(--space-8) } /* Display/flex helpers */
.dt-d-flex { display: flex }
.dt-d-none { display: none !important }
.dt-d-inline { display: inline-block } /* Simple vertical stack helper */
.dt-stack { display: flex; flex-direction: column; gap: var(--space-2) }
.dt-justify-content-between { justify-content: space-between }
.dt-align-items-center { align-items: center }
.dt-gap-2 { gap: var(--space-2) }
.dt-gap-3 { gap: var(--space-3) }
.dt-gap-1 { gap: var(--space-1) }
.dt-gap-4 { gap: var(--space-4) }
.dt-gap-5 { gap: var(--space-5) }
.dt-gap-6 { gap: var(--space-6) }
.dt-gap-8 { gap: var(--space-8) } /* Fallback spacing for non-gap layouts (use gap when possible) */
.dt-space-x-2> * + * { margin-left: var(--space-2) }
.dt-space-x-4> * + * { margin-left: var(--space-4) } /* Border helpers used in checkout */
.dt-border-top { border-top: 1px solid var(--dt-border) }
.dt-border-bottom { border-bottom: 1px solid var(--dt-border) } /* Margin inline helpers */
.dt-ml-1 { margin-left: var(--space-1) }
.dt-mr-1 { margin-right: var(--space-1) } /* Sizing/object fit */
.dt-w-100 { width: 100% }
.dt-h-100 { height: 100% }
.dt-object-cover { object-fit: cover }
.dt-overflow-hidden { overflow: hidden } /* Text helpers */
.dt-text-muted { color: var(--dt-text-muted) }
.dt-text-primary { color: var(--dt-primary) } /* Utility voor donkere primaire kleur (gebruikt door iconen/tekst) */
.dt-text-primary-dark { color: var(--dt-primary-dark) } /* Alias voor bestaande markup die dt-primary-dark gebruikt */
.dt-primary-dark { color: var(--dt-primary-dark) } /* Generic text color helper */
.dt-text { color: var(--dt-text) } /* DIGITAL SCOREBOARD FONT UTILS */
.dt-font-digital { font-family: var(--font-sans); font-variant-numeric: tabular-nums; letter-spacing: 0.01em; }
/* Readability override: disable digital display font across the app. */
:root { --font-digital: var(--font-sans); }
.dt-digital-xl { font-size: clamp(1.5rem, 4.5vw, 3rem); line-height: 1; font-weight: var(--fw-extrabold); } /* --------------------------------------------------------------   ACCESSIBILITY / VISIBILITY UTILS   - .dt-offscreen: verplaats element visueel buiten viewport zonder display:none.   - .dt-honeypot: aanvullende reductie voor honeypot velden (input onzichtbaar, label 0).   Let op: geen gebruik voor content die VOOR screenreaders zichtbaar moet zijn; daarvoor .dt-sr-only. -------------------------------------------------------------- */
.dt-offscreen { position: absolute !important; left: -10000px !important; top: auto !important; width: 1px !important; height: 1px !important; overflow: hidden !important; white-space: nowrap !important; }
.dt-honeypot label,.dt-honeypot input { font-size: 0 !important; line-height: 0 !important; }
.dt-honeypot input { opacity: 0 !important; } /* Button size/variant helpers used in checkout */
/* outline = subtiel wit; iets zichtbaarder dan ghost */
.dt-btn--outline { --_c: var(--dt-text, #e2e8f0); --_cr: 226; --_cg: 232; --_cb: 240; border-color: rgb(255 255 255 / 28%); }
.dt-btn--outline:hover, .dt-btn--outline:focus-visible { background: rgb(255 255 255 / 10%); border-color: rgb(255 255 255 / 45%); box-shadow: none; }
/* subtle = alias voor ghost; nog iets subtieler */
.dt-btn--subtle { --_c: var(--dt-text-muted, #94a3b8); --_cr: 148; --_cg: 163; --_cb: 184; border-color: rgb(255 255 255 / 12%); }
.dt-btn--subtle:hover, .dt-btn--subtle:focus-visible { background: rgb(255 255 255 / 6%); border-color: rgb(255 255 255 / 25%); box-shadow: none; }
.dt-text-2xl { font-size: 1.5rem; line-height: 1.2 } /* Glass panel rechts (form) */
.dt-panel { background: var(--dt-surface-glass); backdrop-filter: var(--dt-surface-glass-blur); border: var(--dt-surface-glass-border); border-radius: var(--radius-lg); padding: var(--space-6) var(--space-5); box-shadow: var(--dt-surface-glass-shadow); }
.dt-panel--glass { background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)), linear-gradient(135deg, rgb(45 212 191 / 20%), rgb(59 130 246 / 16%)); }
.dt-panel--accent { background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)),   linear-gradient(135deg, rgb(34 197 94 / 28%), rgb(45 212 191 / 16%)); border: 1px solid rgb(34 197 94 / 35%); }
.dt-panel--info { background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)),   linear-gradient(135deg, rgb(59 130 246 / 32%), rgb(45 212 191 / 18%)); border: 1px solid rgb(59 130 246 / 38%); }
.dt-panel--warning { background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)),   linear-gradient(135deg, rgb(245 158 11 / 34%), rgb(236 72 153 / 18%)); border: 1px solid rgb(245 158 11 / 42%); }
.dt-panel--danger { background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)),   linear-gradient(135deg, rgb(239 68 68 / 36%), rgb(245 158 11 / 20%)); border: 1px solid rgb(239 68 68 / 45%); }
.dt-panel--purple { background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)),   linear-gradient(135deg, rgb(168 85 247 / 34%), rgb(112 70 140 / 26%)); border: 1px solid rgb(168 85 247 / 42%); }
.dt-panel--yellow { background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)),   linear-gradient(135deg, rgb(250 204 21 / 36%), rgb(245 158 11 / 26%)); border: 1px solid rgb(250 204 21 / 45%); } /* Panel spacing modifiers */
.dt-panel--sm { padding: var(--space-4) var(--space-4); }
.dt-panel--lg { padding: calc(var(--space-6) + 4px); }
.dt-auth__tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; margin-bottom: var(--space-4); padding: 5px; border-radius: 12px; background: rgb(0 0 0 / 28%); border: 1px solid rgb(255 255 255 / 10%); backdrop-filter: blur(14px) saturate(145%); box-shadow: inset 0 1px 0 rgb(255 255 255 / 8%); }
.dt-auth__tab { min-height: 40px; background: linear-gradient(180deg, rgb(255 255 255 / 11%), rgb(255 255 255 / 5%)); border: 1px solid rgb(255 255 255 / 14%); color: rgb(226 232 240 / 86%); font-weight: var(--fw-semibold); padding: 10px 14px; border-radius: 9px; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 8px; font-size: var(--fs-sm); transition: background .18s, border-color .18s, box-shadow .18s, color .18s; }
.dt-auth__tab:hover,.dt-auth__tab:focus-visible { background: linear-gradient(180deg, rgb(255 255 255 / 17%), rgb(255 255 255 / 8%)); border-color: rgb(255 255 255 / 24%); color: rgb(241 245 249 / 96%); box-shadow: inset 0 0 0 1px rgb(255 255 255 / 8%); outline: none; }
.dt-auth__tab .dt-icon { color: rgb(45 212 191 / 88%); }
.dt-auth__tab.is-active { background: linear-gradient(135deg, rgb(0 229 164 / 24%), rgb(59 130 246 / 24%)); border-color: rgb(0 229 164 / 45%); color: #e9fff7; box-shadow: 0 0 0 1px rgb(0 229 164 / 26%), 0 8px 20px -12px rgb(0 229 164 / 55%); }
.dt-auth__tab.is-active .dt-icon { color: #fbbf24; }
.dt-auth__tabpanel { display: block; }
.dt-auth__tabpanel.is-hidden { display: none; }
.dt-auth__submit { margin-top: var(--space-4); width: 100%; letter-spacing: .5px; }
.dt-auth__forgot { margin: var(--space-3) 0 0; }
.dt-auth__forgot .dt-btn { width: 100%; }
.dt-auth__switch { margin-top: var(--space-4); display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; font-size: var(--fs-sm); }
.dt-auth__switch--login { display: none; }
.dt-auth__row { display: flex; flex-direction: column; gap: var(--space-2); margin-top: var(--space-3); margin-bottom: var(--space-2); }/* auth switch/captcha rows spacing */
.dt-auth__row .dt-alert--sm { margin-top: var(--space-2); }/* breathing room for inline error under switch */ /* Terms: iets extra ruimte zodat het niet tegen de submit-knop kleeft en label netjes ademt */
.dt-auth__row--terms { margin-top: var(--space-4); margin-bottom: var(--space-3); } /* Zorg dat de switch-label baseline goed uitlijnt bij lange vertalingen */
.dt-auth__row--terms .dt-switch { align-items: flex-start; }
.dt-auth__row--terms .dt-switch__label { line-height: 1.35; } /* OTP inputs (verify-email) */
.dt-otp { display: flex; gap: 10px; align-items: center; justify-content: center; }
.dt-otp__input { width: 36px; height: 44px; text-align: center; font-size: 1.25rem; font-weight: var(--fw-extrabold); color: var(--dt-text); /* Ensure fixed sizing even when combined with .dt-input base class */ padding: 0; box-sizing: border-box; background: var(--dt-surface); border: 1px solid var(--dt-border); border-radius: 10px; box-shadow: inset 0 0 0 1px rgb(255 255 255 / 4%); }
.dt-otp__input:focus { outline: none; border-color: var(--dt-focus); box-shadow: var(--dt-focus-ring); }
.dt-otp__input[aria-invalid="true"] { border-color: var(--dt-danger); box-shadow: 0 0 0 3px rgb(239 68 68 / 32%); } @media (width <=480px) { .dt-otp__input { width: 32px; height: 40px; font-size: 1.1rem;} } /* Simple grid helper (2 kolommen) */
.dt-grid { display: grid; gap: var(--space-4); }
.dt-grid--2 { grid-template-columns: repeat(2,1fr); } /* Password eisen lijst */
.dt-hint { margin: var(--space-2) 0 var(--space-3); padding-left: 1.1rem; font-size: var(--fs-xs); color: var(--muted); }
.dt-hint li { color: var(--danger); transition: color .25s,opacity .25s; }
.dt-hint li.is-ok { color: var(--success); opacity: .9; } /* Bewuste util: template-gestuurde toggle — laten staan */
.dt-hide { display: none !important; } /* Auth: verbeter leesbaarheid van de hintlijst tegen drukke achtergrond (minimale, scoped tweak) */
.dt-auth .dt-hint { /* Subtiele donkere glass achtergrond om de bullets/tekst los te trekken van de hero/panel achtergrond */ background: linear-gradient(180deg, rgb(16 24 40 / 85%), rgb(16 24 40 / 78%)); border: 1px solid rgb(255 255 255 / 18%); border-radius: 10px; padding: 8px 10px 8px 26px; /* extra padding links i.v.m. bullets */ color: var(--text); list-style: disc inside; box-shadow: 0 6px 16px -8px rgb(0 0 0 / 55%); }
.dt-auth .dt-hint li { text-shadow: 0 1px 1px rgb(0 0 0 / 35%); /* kleine lift voor kleurpuntjes en tekst */ } /* Settings (in glass panel): vergelijkbare leesbaarheid voor hintlijst als bij auth */
.dt-panel--glass .dt-hint { background: linear-gradient(180deg, rgb(16 24 40 / 82%), rgb(16 24 40 / 74%)); border: 1px solid rgb(255 255 255 / 18%); border-radius: 10px; padding: 8px 10px 8px 26px; /* extra padding links i.v.m. bullets */ color: var(--text); list-style: disc inside; box-shadow: 0 6px 14px -8px rgb(0 0 0 / 50%); } /* Custom switch (hergebruik uit legacy) */
.dt-switch { display: flex; align-items: center; gap: 12px; cursor: pointer; font-size: var(--fs-sm); }
.dt-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.dt-switch__track { position: relative; width: 46px; height: 26px; border-radius: 999px; background: rgb(255 255 255 / 15%); border: 1px solid rgb(255 255 255 / 25%); transition: background .25s,border-color .25s; }
.dt-switch__thumb { position: absolute; top: 2px; left: 2px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgb(0 0 0 / 25%); transition: left .25s ease,background .25s; }
.dt-switch input:focus + .dt-switch__track { box-shadow: 0 0 0 3px rgb(0 229 164 / 35%); }
.dt-switch input:checked + .dt-switch__track { background: rgb(39 174 96 / 50%); border-color: rgb(39 174 96 / 85%); }
.dt-switch input:checked + .dt-switch__track .dt-switch__thumb { left: 20px; background: #eafff2; }
/* =====================================================================
   AUTH NEW — Nieuw login design (scoped via .dt-auth--new)
   Raakt .dt-hero en andere auth-pagina's NIET aan.
===================================================================== */
.dt-auth__hero-card { display:flex; flex-direction:column; align-items:center; text-align:center; background:rgb(7 13 26/76%); backdrop-filter:blur(26px) saturate(160%); border:1px solid rgb(255 255 255/16%); border-radius:20px; padding:36px 28px; box-shadow:0 0 0 1px rgb(255 255 255/4%),0 28px 56px -12px rgb(0 0 0/55%); }
.dt-auth__logo { width:110px; height:110px; border-radius:50%; overflow:hidden; border:2px solid rgb(0 229 164/30%); box-shadow:0 0 28px -6px rgb(0 229 164/35%),0 0 0 5px rgb(0 229 164/8%); margin-bottom:14px; flex-shrink:0; }
.dt-auth__logo img { width:100%; height:100%; object-fit:cover; }
.dt-auth__brand-name { font-family:Orbitron,var(--font-sans); font-size:1.25rem; font-weight:800; background:linear-gradient(135deg,#00e5a4,#06b6d4); background-clip:text; color:transparent; letter-spacing:2px; text-transform:uppercase; }
.dt-auth__brand-tagline { display:block; font-size:.68rem; color:rgb(100 116 139); letter-spacing:4px; text-transform:uppercase; margin-top:4px; margin-bottom:26px; }
.dt-auth__features { width:100%; display:flex; flex-direction:column; gap:13px; margin-bottom:26px; }
.dt-auth__feature { display:flex; align-items:flex-start; gap:12px; text-align:left; background:rgb(255 255 255/5%); border:1px solid rgb(255 255 255/9%); border-radius:14px; padding:13px 14px; transition:border-color .2s,background .2s; }
.dt-auth__feature:hover { background:rgb(0 229 164/6%); border-color:rgb(0 229 164/20%); }
.dt-auth__feature-icon { width:36px; height:36px; flex-shrink:0; display:flex; align-items:center; justify-content:center; border-radius:10px; font-size:15px; background:linear-gradient(135deg,rgb(251 191 36/22%),rgb(245 158 11/14%)); border:1px solid rgb(251 191 36/28%); color:#fbbf24; }
.dt-auth__feature-title { font-weight:700; font-size:.85rem; color:#f1f5f9; margin-bottom:2px; line-height:1.2; }
.dt-auth__feature-text { font-size:.76rem; color:rgb(203 213 225 / 90%); line-height:1.5; }
.dt-auth__hero-register { width:100%; }
.dt-auth__login-title { font-family:Orbitron,var(--font-sans); font-size:1.7rem; font-weight:900; letter-spacing:5px; text-transform:uppercase; background:linear-gradient(135deg,#ffd700 20%,#ffe87c 55%,#ffd700 85%); background-clip:text; color:transparent; filter:drop-shadow(0 2px 8px rgb(255 200 0/28%)); text-align:center; margin-bottom:18px; }
.dt-auth--new .dt-auth__panel.dt-panel { background:rgb(7 13 26/76%); border-color:rgb(255 255 255/16%); }
.dt-btn--submit-auth { background:transparent; box-shadow:0 0 0 1px rgb(0 229 164 / 20%), 0 0 18px -8px rgb(0 229 164 / 38%), inset 0 0 0 1px rgb(251 191 36 / 10%); border:1.6px solid rgb(0 229 164/58%); color:#00e5a4; border-radius:999px; transition:background .22s,border-color .22s,box-shadow .22s; letter-spacing:.5px; }
.dt-btn--submit-auth:hover,
.dt-btn--submit-auth:focus-visible { background:rgb(0 229 164/12%); border-color:#00e5a4; box-shadow:0 0 0 1px rgb(0 229 164 / 35%), 0 0 28px -6px rgb(0 229 164/62%), 0 0 22px -8px rgb(251 191 36 / 46%); }
.dt-btn--submit-auth .dt-icon { color:#fbbf24; }
.dt-btn--submit-auth[disabled],
.dt-btn--submit-auth[aria-disabled="true"] { background: rgb(255 255 255 / 4%); border-color: rgb(148 163 184 / 45%); box-shadow: none; color: rgb(148 163 184 / 95%); cursor: not-allowed; }
.dt-btn--submit-auth[disabled] .dt-icon,
.dt-btn--submit-auth[aria-disabled="true"] .dt-icon { color: rgb(148 163 184 / 85%); }
/* Structure (icon-blok + links uitlijnen) komt uit de algemene .dt-btn--lg regels; submit-auth blijft alleen kleur/look. */
@media (width <=680px) { .dt-auth__hero-card { display:none; } .dt-auth__switch--login { display:flex; } }
/* Auth pages: body { overflow:auto } and .dt-app { overflow-x:hidden } both create scroll containers that
   consume mouse-wheel events without scrolling. Reset both to visible so the browser viewport scroll handles it. */
body.dt-page--auth { overflow: visible !important; }
.dt-page--auth .dt-app { overflow: visible; }
@media (width <=900px) {
  /* Auth pages: avoid nested scroll trapping on mobile; keep normal page scroll. */
  .dt-page--auth .dt-site-main { overflow: visible !important; overscroll-behavior: auto; }
  .dt-page--auth .dt-auth { min-height: auto; align-items: flex-start; }
  .dt-page--auth .dt-auth__panel { min-height: auto; }
  .dt-page--auth .dt-auth__shell { padding-block: var(--space-3); }
}
/* (structure) Select styles zijn samengebracht bovenaan bij "Unified glass select"; legacy block van 2025-08-15 verwijderd in voordeel van de nieuwe variant. */ /* RESPONSIVE */ @media (width <=1024px) { .dt-auth__shell { grid-template-columns: 1fr;} .dt-auth { align-items: flex-start; min-height: auto;} .dt-hero { min-height: 500px;} .dt-hero__mascot { position: relative; left: auto; transform: none; margin-top: auto; width: 70%; max-width: 300px;} } /* Avatar selectie raster en kaarten */
.dt-avatar-grid { display: grid; grid-template-columns: repeat(auto-fill,minmax(88px,1fr)); gap: 12px; }
.dt-avatar-option { position: relative; display: block; border-radius: 14px; }
.dt-avatar-option input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.dt-avatar-img { display: block; width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 14px; border: 1px solid rgb(255 255 255 / 18%); background: rgb(255 255 255 / 6%); box-shadow: 0 6px 16px -8px rgb(0 0 0 / 55%); transition: transform .18s, box-shadow .18s, border-color .18s, filter .18s; }
.dt-avatar-option:hover .dt-avatar-img, .dt-avatar-option:focus-within .dt-avatar-img { transform: translateY(-2px); box-shadow: 0 10px 22px -10px rgb(0 0 0 / 60%); border-color: var(--dt-primary); }
.dt-avatar-option input[type="radio"]:focus-visible + .dt-avatar-img { outline: none; box-shadow: var(--dt-focus-ring); }
.dt-avatar-option input[type="radio"]:checked + .dt-avatar-img { border-color: var(--dt-primary); box-shadow: 0 0 0 3px rgb(0 229 164 / 28%), 0 10px 22px -10px rgb(0 0 0 / 60%); }
.dt-avatar--missing { filter: grayscale(.4) contrast(.9); } /* =====================================================================    NAVIGATIE (desktop)    ===================================================================== */
.dt-nav { display: flex; align-items: center; gap: var(--space-2); margin-left: var(--space-6); }
.dt-nav__list { margin: 0; padding: 0; list-style: none; display: flex; gap: var(--space-1); }
.dt-nav__list a { display: flex; align-items: center; gap: 6px; padding: 8px 12px; font-size: var(--fs-sm); color: var(--text); text-decoration: none; border-radius: var(--radius-sm); background: transparent; border: 1px solid transparent; transition: background .18s,border-color .18s; }
.dt-nav__list a:hover { background: rgb(255 255 255 / 8%); }
.dt-nav__list a.is-active { /* verbeterde actieve stijl: glas + blauw gradient + pill */ background: linear-gradient(180deg, rgb(255 255 255 / 12%), rgb(255 255 255 / 4%)),     linear-gradient(135deg, rgb(59 130 246 / 55%), rgb(21 57 92 / 70%)); border: 1px solid rgb(59 130 246 / 55%); box-shadow: 0 6px 18px -6px rgb(0 0 0 / 55%); backdrop-filter: blur(10px) saturate(140%); border-radius: 999px; font-weight: var(--fw-semibold); }
.dt-nav__list a.is-active:hover { background: linear-gradient(180deg, rgb(255 255 255 / 16%), rgb(255 255 255 / 6%)),     linear-gradient(135deg, rgb(59 130 246 / 62%), rgb(21 57 92 / 75%)); }
.dt-nav__list a:focus-visible { outline: none; box-shadow: var(--dt-focus-ring); background: linear-gradient(135deg, rgb(45 212 191 / 32%), rgb(59 130 246 / 26%)); border: 1px solid rgb(255 255 255 / 22%); } /* User/settings knop rechts in header */
.dt-user-btn { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 8px 14px; font-size: var(--fs-xs); font-weight: var(--fw-semibold); color: var(--text); text-decoration: none; border-radius: 999px; background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 14%); backdrop-filter: blur(8px); transition: background .18s,border-color .18s,box-shadow .18s; }
.dt-user-btn:hover,.dt-user-btn:focus { background: linear-gradient(135deg, rgb(45 212 191 / 30%), rgb(59 130 246 / 26%)); border-color: rgb(255 255 255 / 22%); outline: none; box-shadow: 0 4px 14px -4px rgb(0 0 0 / 55%); }
.dt-user-btn:focus-visible { box-shadow: var(--dt-focus-ring); } @media (width <=900px) { .dt-nav { display: none;} /* mobiel later aparte bottom nav */ } /* =====================================================================    CARDS (basis + variant hooks voor bestaande macros)    ===================================================================== */
.dt-card { position: relative; display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--dt-surface-glass); border: var(--dt-surface-glass-border); box-shadow: 0 8px 24px -6px rgb(0 0 0 / 45%); }
@supports (backdrop-filter: blur(1px)) { .dt-card { backdrop-filter: var(--dt-surface-glass-blur); } } /* Opt-in variant: laat overflow toe (nodig voor dropdowns in kaarten zoals team-select op checkout) */
.dt-card--allow-overflow { overflow: visible; }
.dt-card__header { padding: 12px 16px; font-weight: var(--fw-bold); letter-spacing: .2px; border-bottom: 1px solid rgb(255 255 255 / 10%); display: flex; align-items: center; justify-content: space-between; gap: var(--space-3); background: linear-gradient(180deg,rgb(255 255 255 / 12%),transparent); position: relative; z-index: var(--z-base); } /* === EXPERIMENT: Card header diagonal stripes (TEST 2025-08-22) — easy remove start === */ /* Opt-in experiment: enable stripes only when parent card uses modifier */
.dt-card--striped .dt-card__header::after { content: ""; position: absolute; inset: 0; pointer-events: none; --dt-card-stripes-color-a: rgb(255 255 255 / 82%); --dt-card-stripes-color-b: rgb(255 255 255 / 62%); background-image: repeating-linear-gradient(135deg,var(--dt-card-stripes-color-a) 0 2px,var(--dt-card-stripes-color-b) 2px 4px,transparent 4px 8px); opacity: .10; mask-image: linear-gradient(to right,transparent 0%, transparent 50%, black 100%); mask-image: linear-gradient(to right,transparent 0%, transparent 50%, black 100%); } /* === EXPERIMENT END — Card header diagonal stripes === */
.dt-card__title { display: flex; align-items: center; gap: 8px; font-size: .95rem; }
.dt-card__title--lg { font-size: 1.1rem; }
.dt-card__body { padding: 12px; flex: 1 1 auto; display: flex; flex-direction: column; gap: var(--space-3); }
.dt-card__footer { padding: 12px 16px; border-top: 1px solid rgb(255 255 255 / 8%); font-size: var(--fs-xs); color: var(--muted); } /* Size modifiers */
.dt-card--sm .dt-card__body { padding: 10px 12px; }
.dt-card--lg .dt-card__body { padding: 20px 22px; } /* Variant placeholders */
.dt-card--accent { background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)),     linear-gradient(135deg, rgb(34 197 94 / 22%), rgb(59 130 246 / 16%)); }
.dt-card--warning { background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)),     linear-gradient(135deg, rgb(245 158 11 / 24%), rgb(236 72 153 / 16%)); } /* =====================================================================    KPI GRID (geünificeerd – contrast aligned met nieuwe panel aanpak)    Let op: alt1/2/3 aliassen blijven werken maar mappen nu naar nieuwe varianten.    ===================================================================== */
.dt-kpis { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: var(--space-4); }
.dt-kpi { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 14px 16px 16px; border-radius: var(--radius-lg); color: #fff; min-height: 110px; --_kpi-bg: linear-gradient(145deg,#0b1e2d,#123c5a); background: radial-gradient(at 82% 22%,rgb(255 255 255 / 10%),transparent 65%),var(--_kpi-bg); border: 1px solid rgb(255 255 255 / 15%); backdrop-filter: blur(10px) saturate(135%); box-shadow: 0 3px 10px -4px rgb(0 0 0 / 55%); overflow: visible; }
.dt-kpi::after { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 80% 18%,rgb(255 255 255 / 14%),transparent 60%); pointer-events: none; mix-blend-mode: screen; }
.dt-kpi__label { font-size: .65rem; text-transform: uppercase; letter-spacing: .9px; opacity: .78; margin: 0 0 6px; font-weight: var(--fw-semibold); display: flex; align-items: center; gap: 6px; color: rgb(255 255 255 / 85%); }
.dt-kpi__value { font-size: 1.55rem; font-weight: var(--fw-bold); line-height: 1; margin: 0; letter-spacing: .5px; font-family: var(--font-sans); }
.dt-kpi__sub { margin-top: auto; font-size: .68rem; letter-spacing: .4px; opacity: .74; color: rgb(255 255 255 / 78%); }
.dt-kpi__comp { margin-top: 6px; font-size: .72rem; display: flex; align-items: center; gap: 5px; flex-wrap: wrap; }
.dt-kpi__comp-link { color: rgb(255 255 255 / 90%); font-size: .72rem; text-decoration: underline; text-decoration-color: rgb(255 255 255 / 30%); text-underline-offset: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 140px; }
.dt-kpi__comp-link:hover { color: #fff; text-decoration-color: rgb(255 255 255 / 70%); }
.dt-kpi__comp-badge { background: rgb(255 170 0 / 22%); color: #ffc93c; border: 1px solid rgb(255 170 0 / 35%); font-size: .55rem; font-weight: var(--fw-bold); padding: 1px 5px; border-radius: var(--radius-sm); letter-spacing: .4px; text-transform: uppercase; line-height: 1.4; } /* KPI badge (countdown urgency) */
.dt-kpi__badge { position: absolute; top: 8px; right: 10px; background: linear-gradient(140deg,#ff9a2b,#c24b00); color: #fff; font-size: .58rem; font-weight: var(--fw-bold); letter-spacing: .5px; padding: 4px 6px; border-radius: var(--radius-sm); display: none; line-height: 1; box-shadow: 0 2px 4px rgb(0 0 0 / 40%); }
.dt-kpi__badge.is-active { display: inline-block; }
.dt-kpi__badge.is-critical { background: linear-gradient(140deg,#ff4545,#b10000); } /* Custom tooltip (using data-tooltip). Appears above element. Accessible fallback: text still available to AT via aria-describedby if wired later. */
[data-tooltip] { position: relative; cursor: help; }
[data-tooltip]:hover::after,[data-tooltip]:focus-visible::after { content: attr(data-tooltip); position: absolute; z-index: var(--z-tooltip); left: 50%; bottom: 100%; margin-bottom: 10px; transform: translateX(-50%); background: rgb(15 25 38 / 95%); color: #fff; padding: 8px 10px; font-size: .65rem; font-weight: var(--fw-semibold); line-height: 1.3; border-radius: 6px; white-space: normal; max-width: 220px; text-align: center; box-shadow: 0 6px 18px -6px rgb(0 0 0 / 70%); border: 1px solid rgb(255 255 255 / 15%); overflow-wrap: break-word; }
[data-tooltip]:hover::before,[data-tooltip]:focus-visible::before { content: ""; position: absolute; left: 50%; bottom: 100%; transform: translate(-50%,50%) rotate(45deg); width: 12px; height: 12px; background: rgb(15 25 38 / 95%); border: 1px solid rgb(255 255 255 / 15%); border-left: none; border-top: none; z-index: var(--z-tooltip-under); box-shadow: 0 2px 6px -2px rgb(0 0 0 / 50%); }
[data-tooltip]:focus-visible { outline: none; box-shadow: var(--dt-focus-ring); } /* Kleurvarianten (donkerder basis voor AA contrast) */
/* Linked KPI: anchor reset so it looks identical to the div version */
a.dt-kpi--linked { text-decoration: none; color: inherit; cursor: pointer; transition: box-shadow 0.2s; }
a.dt-kpi--linked:hover, a.dt-kpi--linked:focus { box-shadow: 0 0 0 2px rgb(0 229 164 / 50%); outline: none; }
.dt-kpi--blue,.dt-kpi--alt1 { --_kpi-bg: linear-gradient(140deg,rgb(29 111 255 / 42%),rgb(9 44 95 / 68%) 60%),rgb(12 28 53 / 85%); }
.dt-kpi--green,.dt-kpi--alt2 { --_kpi-bg: linear-gradient(140deg,rgb(0 180 110 / 38%),rgb(0 70 46 / 72%) 60%),rgb(5 34 24 / 87%); }
.dt-kpi--purple,.dt-kpi--alt3 { --_kpi-bg: linear-gradient(140deg,rgb(156 81 255 / 40%),rgb(74 25 133 / 70%) 60%),rgb(34 13 53 / 88%); }
/* Ranking KPI cards — like dashboard KPI but JS-rendered; one per position */
.dt-ranking-kpi { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 14px 16px 16px; border-radius: var(--radius-lg); color: #fff; min-height: 110px; background: radial-gradient(at 82% 22%,rgb(255 255 255 / 10%),transparent 65%),linear-gradient(140deg,rgb(29 111 255 / 42%),rgb(9 44 95 / 68%) 60%),rgb(12 28 53 / 85%); border: 1px solid rgb(255 255 255 / 15%); backdrop-filter: blur(10px) saturate(135%); box-shadow: 0 3px 10px -4px rgb(0 0 0 / 55%); }
.dt-ranking-kpi__header { display: flex; align-items: center; gap: 7px; font-size: .65rem; text-transform: uppercase; letter-spacing: .9px; font-weight: var(--fw-semibold); color: rgb(255 255 255 / 85%); }
.dt-ranking-kpi__icon { color: var(--dt-color-gold, #d4af37); font-size: .9rem; }
.dt-ranking-kpi__player { display: flex; align-items: center; gap: 6px; font-size: 1rem; font-weight: var(--fw-bold); line-height: 1.2; }
.dt-ranking-kpi__name { color: #fff; text-decoration: none; }
.dt-ranking-kpi__name:hover { text-decoration: underline; text-underline-offset: 2px; }
.dt-ranking-kpi__club { font-size: .68rem; opacity: .74; color: rgb(255 255 255 / 78%); }
.dt-ranking-kpi__stats { display: flex; gap: 10px; margin-top: 2px; }
.dt-ranking-kpi__stat { font-size: .72rem; font-weight: var(--fw-semibold); color: var(--dt-color-gold, #d4af37); display: flex; align-items: center; gap: 3px; }
.dt-kpi--orange { --_kpi-bg: linear-gradient(140deg,rgb(255 135 40 / 40%),rgb(128 49 0 / 70%) 60%),rgb(70 30 0 / 88%); }
.dt-kpi--accent { --_kpi-bg: linear-gradient(145deg,#133854,#1c557b); }
.dt-kpi--warn { --_kpi-bg: linear-gradient(145deg,#5a2a00,#a55200); } /* Optionele extra overlay (bij drukke achtergrond) */
.dt-kpi--overlay::before { content: ""; position: absolute; inset: 0; background: linear-gradient(145deg,rgb(2 8 14 / 55%),rgb(2 8 14 / 55%)); pointer-events: none; mix-blend-mode: normal; } @media (width <=640px) { .dt-kpis { grid-template-columns: repeat(auto-fit,minmax(140px,1fr));} .dt-kpi__value { font-size: 1.45rem;} } /* =====================================================================    FIELDSET (KPI-achtige statische panelen)    - Gebruik class .dt-fieldset op <fieldset> of div voor consistente stijl    - Geen hover/actie-states; puur presentational    ===================================================================== */
fieldset.dt-fieldset, .dt-fieldset { position: relative; display: block; margin: 0 0 var(--space-4); padding: 14px 16px 16px; border: 1px solid rgb(255 255 255 / 15%); border-radius: var(--radius-lg); color: #fff; min-inline-size: 0; background: radial-gradient(at 82% 22%, rgb(255 255 255 / 10%), transparent 65%),     linear-gradient(145deg, #0b1e2d, #123c5a); box-shadow: 0 3px 10px -4px rgb(0 0 0 / 55%); } /* In glass panel: laat light-variant exact aansluiten bij .dt-input in hetzelfde panel */
.dt-panel--glass fieldset.dt-fieldset.dt-fieldset--light, .dt-panel--glass .dt-fieldset.dt-fieldset--light { background: rgb(255 255 255 / 8%); border-color: rgb(255 255 255 / 18%); }
.dt-panel--glass fieldset.dt-fieldset.dt-fieldset--light:focus-within, .dt-panel--glass .dt-fieldset.dt-fieldset--light:focus-within { background: rgb(255 255 255 / 12%); } /* Lichte variant: subtiel glas-achtig, minder nadruk dan de donkere basis */ /* Light fieldset moet de donkere basis overschrijven → hogere specificiteit */
fieldset.dt-fieldset.dt-fieldset--light, .dt-fieldset.dt-fieldset--light { background: var(--dt-surface); border: 1px solid var(--dt-border); color: var(--dt-text); border-radius: var(--radius); padding: var(--dt-input-padding-y) var(--dt-input-padding-x); box-shadow: none; /* inputs hebben standaard geen shadow (alleen op focus) */ } /* Focus-staat gelijk aan inputs */
fieldset.dt-fieldset.dt-fieldset--light:focus-within, .dt-fieldset.dt-fieldset--light:focus-within { border-color: var(--dt-focus); box-shadow: var(--dt-focus-ring); } /* Legend kleur iets zachter voor light variant */
.dt-fieldset--light > legend { color: rgb(255 255 255 / 88%); } /* Binnen fieldset: iets ruimere verticale spacing tussen velden */
.dt-fieldset .dt-field { margin-bottom: calc(var(--dt-space-md) + 6px); }
.dt-fieldset .dt-field:last-child { margin-bottom: 0; } /* Fieldset-wide focus outline removed to avoid distracting green ring while interacting inside.   Inputs/buttons still have visible focus via their own focus styles (WCAG compliance maintained). */
fieldset.dt-fieldset:focus-within, .dt-fieldset:focus-within { outline: none; outline-offset: 0; } /* Legend gestileerd als KPI label */
fieldset.dt-fieldset > legend, .dt-fieldset > legend { padding: 0 8px; margin-left: 6px; line-height: 1.2; font-size: .75rem; letter-spacing: .6px; text-transform: uppercase; font-weight: var(--fw-extrabold); color: rgb(255 255 255 / 90%); } /* Compacte variant */
.dt-fieldset--sm { padding: 10px 12px; }
.dt-fieldset--sm > legend { font-size: .68rem; } /* =====================================================================   BREADCRUMBS (minimaal, toegankelijk)   ===================================================================== */
.dt-breadcrumbs { font-size: .85rem; color: var(--muted); margin: var(--space-2) 0 var(--space-3); }
.dt-breadcrumbs ol { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0; margin: 0; }
.dt-breadcrumbs li { display: inline-flex; align-items: center; gap: 6px; }
.dt-breadcrumbs li+li::before { content: "/"; opacity: .6; }
.dt-breadcrumbs a { color: inherit; text-decoration: none; border-radius: 6px; padding: 2px 4px; }
.dt-breadcrumbs a:focus-visible { outline: none; box-shadow: var(--dt-focus-ring); }
.dt-breadcrumbs [aria-current="page"] { color: var(--text); font-weight: var(--fw-bold); opacity: .95; } /* =====================================================================    CARD EXTRA VARIANTEN & HOVERS    ===================================================================== */
.dt-card { transition: transform .25s, box-shadow .25s, background .35s; }
.dt-card:hover { transform: translateY(-2px); box-shadow: 0 14px 34px -10px rgb(0 0 0 / 55%); }
.dt-card--info { background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)),   linear-gradient(135deg, rgb(59 130 246 / 30%), rgb(45 212 191 / 18%)); }
.dt-card--accent { border: 1.5px solid rgb(0 229 164 / 40%); box-shadow: 0 8px 24px -6px rgb(0 0 0 / 45%), 0 0 22px -4px rgb(0 229 164 / 30%); }
.dt-select-sm { background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 18%); color: var(--text); border-radius: 8px; padding: 4px 10px; font-size: var(--fs-sm); cursor: pointer; }
.dt-m-0 { margin: 0; }
.dt-card--accent .dt-card__header { border-bottom: 1px solid rgb(0 229 164 / 15%); }
.dt-card--accent .dt-card__header .dt-icon { color: var(--accent); }

/* =====================================================================
   NEON CARD SYSTEEM — --_nc RGB-token + body.neon-* intensiteits-levels
   Gebruik: <div class="dt-card" data-color="green"> op body.neon-strong
   ===================================================================== */
/* Kleur-tokens: op elk element met data-color (cards, panels, auth-cards, etc.) */
[data-color]          { --_nc: 255 255 255; }
[data-color="green"]  { --_nc: 0 229 164; }
[data-color="gold"]   { --_nc: 251 191 36; }
[data-color="blue"]   { --_nc: 59 130 246; }
[data-color="orange"] { --_nc: 249 115 22; }
[data-color="purple"] { --_nc: 168 85 247; }
[data-color="red"]    { --_nc: 239 68 68; }

body.neon-subtle [data-color] {
  border-color: rgb(var(--_nc) / 28%);
  box-shadow: 0 8px 28px -6px rgb(0 0 0 / 55%), inset 0 1px 0 rgb(var(--_nc) / 12%), 0 0 18px -6px rgb(var(--_nc) / 22%);
}
body.neon-medium [data-color] {
  border-color: rgb(var(--_nc) / 40%);
  box-shadow: 0 8px 28px -6px rgb(0 0 0 / 55%), inset 0 1px 0 rgb(var(--_nc) / 16%), inset 0 0 30px -12px rgb(var(--_nc) / 8%), 0 0 24px -6px rgb(var(--_nc) / 32%), 0 0 48px -18px rgb(var(--_nc) / 16%);
}
body.neon-strong [data-color] {
  border-color: rgb(var(--_nc) / 58%);
  box-shadow: 0 0 0 3px rgb(0 0 0 / 55%), 0 8px 28px -6px rgb(0 0 0 / 55%), inset 0 1px 0 rgb(var(--_nc) / 22%), inset 0 0 40px -12px rgb(var(--_nc) / 14%), 0 0 32px -4px rgb(var(--_nc) / 50%), 0 0 64px -16px rgb(var(--_nc) / 26%), 0 0 0 4px rgb(var(--_nc) / 18%);
}
/* Glow hiërarchie: [data-color] binnen een panel gloeit op medium-niveau zodat de panel-wrapper domineert */
body.neon-strong .dt-panel [data-color] {
  border-color: rgb(var(--_nc) / 38%);
  box-shadow: 0 8px 28px -6px rgb(0 0 0 / 55%), inset 0 1px 0 rgb(var(--_nc) / 16%), inset 0 0 30px -12px rgb(var(--_nc) / 6%), 0 0 22px -6px rgb(var(--_nc) / 30%);
}

/* =====================================================================
   DT-SIDE-CARD — sidebar card met kleur-token systeem
   Kleurvarianten via data-color: green (default) | gold | blue | orange | purple | red
   ===================================================================== */
.dt-side-card {
  --_scr: 0; --_scg: 229; --_scb: 164; /* default: green */
  padding: 14px 16px 18px;
}
.dt-side-card[data-color="gold"]   { --_scr: 251; --_scg: 191; --_scb: 36;  }
.dt-side-card[data-color="blue"]   { --_scr: 59;  --_scg: 130; --_scb: 246; }
.dt-side-card[data-color="orange"] { --_scr: 249; --_scg: 115; --_scb: 22;  }
.dt-side-card[data-color="purple"] { --_scr: 168; --_scg: 85;  --_scb: 247; }
.dt-side-card[data-color="red"]    { --_scr: 239; --_scg: 68;  --_scb: 68;  }

.dt-sc-title {
  display: flex; align-items: center; gap: 8px;
  font-family: var(--font-display);
  font-size: .75rem; font-weight: 700;
  text-transform: uppercase; letter-spacing: .08em;
  color: rgb(var(--_scr) var(--_scg) var(--_scb) / 90%);
  padding-bottom: 10px; margin-bottom: 10px;
  border-bottom: 1px solid rgb(255 255 255 / 10%);
}
.dt-sc-title::after {
  content: ""; flex: 1; height: 1px;
  background: linear-gradient(90deg, rgb(var(--_scr) var(--_scg) var(--_scb) / 20%), transparent);
}
.dt-sc-title .dt-icon { color: rgb(var(--_scr) var(--_scg) var(--_scb)); font-size: 1rem; }

.dt-sc-row {
  display: flex; align-items: center; gap: 8px;
  padding: 9px 12px 9px 14px;
  border-radius: 9px;
  border: 1px solid rgb(var(--_scr) var(--_scg) var(--_scb) / 16%);
  margin-bottom: 5px;
  background:
    linear-gradient(90deg, rgb(var(--_scr) var(--_scg) var(--_scb) / 7%) 0%, transparent 60%),
    rgb(7 13 26 / 50%);
  position: relative; overflow: hidden;
  box-shadow:
    inset 0 1px 0 rgb(var(--_scr) var(--_scg) var(--_scb) / 10%),
    0 4px 12px -4px rgb(var(--_scr) var(--_scg) var(--_scb) / 15%);
}
.dt-sc-row:last-child { margin-bottom: 0; }

.dt-sc-row::before {
  content: "";
  position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(180deg,
    rgb(var(--_scr) var(--_scg) var(--_scb) / 80%) 0%,
    rgb(var(--_scr) var(--_scg) var(--_scb) / 25%) 100%);
  box-shadow:
    0 0 6px 1px rgb(var(--_scr) var(--_scg) var(--_scb) / 35%),
    0 0 12px 2px rgb(var(--_scr) var(--_scg) var(--_scb) / 15%);
  border-radius: 3px 0 0 3px;
}

.dt-sc-col         { display: flex; align-items: center; }
.dt-sc-col--text   { flex: 1 1 auto; font-weight: 600; font-size: .875rem; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: flex; flex-direction: column; gap: 1px; align-items: flex-start; }
.dt-sc-col--text > span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dt-sc-col--text small  { display: block; font-size: .7rem; font-weight: 400; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dt-sc-flag { border-radius: 1px; vertical-align: middle; margin-right: 5px; }
.dt-sc-col--muted  { flex: 1 1 auto; font-size: .8125rem; color: #b8c3d7; }
.dt-sc-col--pos    { font-size: .625rem; font-weight: 700; text-transform: uppercase; color: rgb(var(--_scr) var(--_scg) var(--_scb)); background: rgb(var(--_scr) var(--_scg) var(--_scb) / 14%); border: 1px solid rgb(var(--_scr) var(--_scg) var(--_scb) / 25%); border-radius: 4px; padding: 1px 5px; flex-shrink: 0; align-self: flex-start; }
.dt-sc-col--price  { font-weight: 700; font-size: .8125rem; color: rgb(var(--_scr) var(--_scg) var(--_scb)); text-shadow: 0 0 8px rgb(var(--_scr) var(--_scg) var(--_scb) / 80%); flex-shrink: 0; align-self: flex-start; }
.dt-sc-col--label  { font-size: .75rem; color: #b8c3d7; flex-shrink: 0; }
.dt-sc-col--icon   { color: rgb(var(--_scr) var(--_scg) var(--_scb)); flex-shrink: 0; opacity: .8; }
.dt-sc-col--badge  { flex-shrink: 0; }
.dt-sc-col--action { flex-shrink: 0; margin-left: auto; }
.dt-sc-col--stat   { flex-shrink: 0; font-weight: 700; font-size: .75rem; color: rgb(var(--_scr) var(--_scg) var(--_scb)); text-align: right; min-width: 2rem; }
.dt-sc-col--time   { font-size: .75rem; font-weight: 600; color: #eef2f6; text-shadow: none; flex-shrink: 0; font-family: var(--font-sans); font-variant-numeric: tabular-nums; }

/* Spelers-rij onder een wedstrijd-row (upcoming matches) */
.dt-sc-players { font-size: .6875rem; color: #b8c3d7; padding: 0 14px 6px 17px; margin-top: -3px; }
.dt-sc-players .dt-link { color: var(--accent); }

/* ── dt-sc-row responsief (mobiel ≤ 480px) ─────────────────────────────── */
@media (width <= 480px) {
  .dt-sc-row { padding: 8px 10px 8px 12px; gap: 6px; }
  .dt-sc-col--text { font-size: .8125rem; }
  .dt-sc-col--action { margin-left: 4px; }
  /* actieknop: altijd klikbaar, niet samengedrukt */
  .dt-sc-col--action .dt-btn { min-height: 0; padding: 4px 8px; font-size: .625rem; }
  /* bekijken-label verbergen op mobiel: alleen oogje */
  .dt-btn-label { display: none; }
  /* tabel-kolommen verbergen op mobiel */
  .dt-hide-mobile { display: none; }
}

/* ── Bekijken-knop: icon + label, label verborgen op mobiel ─────────────── */
.dt-btn-label { margin-left: 3px; }

/* ══════════════════════════════════════════════════════════════════════════
   STATS CARD — dt-table modifier voor kaartkleur (goud/blauw/oranje)
   Bouwt op het bestaande dt-table + dt-table--dense systeem.
   ══════════════════════════════════════════════════════════════════════════ */
.dt-table--sc-card th {
  background: rgb(var(--_scr) var(--_scg) var(--_scb) / 10%);
  color: rgb(var(--_scr) var(--_scg) var(--_scb) / 80%);
  border-bottom-color: rgb(var(--_scr) var(--_scg) var(--_scb) / 20%);
  text-transform: uppercase;
  letter-spacing: .05em;
}
.dt-table--sc-card tbody tr:nth-child(odd)  { background: rgb(7 13 26 / 42%); }
.dt-table--sc-card tbody tr:nth-child(even) { background: rgb(var(--_scr) var(--_scg) var(--_scb) / 6%); }
.dt-table--sc-card tbody tr:hover { background: rgb(var(--_scr) var(--_scg) var(--_scb) / 13%); }
.dt-table--sc-card td { border-bottom-color: rgb(var(--_scr) var(--_scg) var(--_scb) / 8%); }
/* Stat-cellen: kaartkleur + vet */
.dt-table--sc-card .dt-sc-stat { font-weight: 700; color: rgb(var(--_scr) var(--_scg) var(--_scb)); }
/* Bekijken-knop: kaartkleur i.p.v. wit ghost */
.dt-table--sc-card .dt-btn--ghost {
  color: rgb(var(--_scr) var(--_scg) var(--_scb));
  border-color: rgb(var(--_scr) var(--_scg) var(--_scb) / 40%);
}
.dt-table--sc-card .dt-btn--ghost:hover,
.dt-table--sc-card .dt-btn--ghost:focus-visible {
  background: rgb(var(--_scr) var(--_scg) var(--_scb) / 12%);
  border-color: rgb(var(--_scr) var(--_scg) var(--_scb) / 70%);
}
/* Moeilijkheid rijkleur op mobiel (badge verborgen, rij gekleurd) */
@media (max-width: 600px) {
  tr[data-diff="hard"]   { background: rgb(239 68 68 / 12%) !important; }
  tr[data-diff="medium"] { background: rgb(234 179 8 / 12%) !important; }
  tr[data-diff="easy"]   { background: rgb(34 197 94 / 10%) !important; }
}

/* =====================================================================
	 PAGES – LANDING (marketing onepager)
	 ===================================================================== */
.dt-landing { --dt-gap: 24px; }
.dt-landing__hero { display: grid; grid-template-columns: 1.1fr .9fr; gap: var(--dt-gap); align-items: center; margin-top: 24px; margin-bottom: 24px; }
.dt-landing__hero-title { font-size: clamp(28px, 3.6vw, 40px); line-height: 1.1; margin: 0 0 8px; }
.dt-landing__hero-sub { font-size: 18px; color: #cfe3ff; max-width: 52ch; margin: 0 0 16px; }
.dt-landing__hero-cta { margin-top: 8px; }
.dt-landing__intro, .dt-landing__about, .dt-landing__contact { margin: 24px 0; }
.dt-landing__feature { display: grid; grid-template-columns: 1fr 1fr; gap: var(--dt-gap); align-items: center; margin: 24px 0; }
.dt-landing__feature-media img { max-width: 100%; height: auto; display: block; }
.dt-section-title { font-size: 24px; margin: 0 0 8px; }
.dt-section-lead { font-size: 18px; color: #d5deea; }
.dt-landing__early .dt-panel { padding: 16px; }

/* Simple slider (no layout shift) */
.dt-landing-slider { position: relative; }
.dt-landing-slider__track { position: relative; overflow: hidden; height: auto; }
.dt-landing-slider__slide { position: absolute; top: 0; left: 0; width: 100%; transition: transform .4s ease; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.dt-landing-slider__slide img { width: 100%; height: auto; }
.dt-landing-slider__dots { display: flex; gap: 8px; justify-content: center; margin-top: 8px; }
.dt-landing-slider__dot { width: 10px; height: 10px; border-radius: 50%; background: #c7c9d1; border: 0; }
.dt-landing-slider__dot.is-active { background: #3b82f6; }

@media (width <= 860px) {
	.dt-landing__hero { grid-template-columns: 1fr; }
	.dt-landing__feature { grid-template-columns: 1fr; }
}

/* ================================================================
	 MOBILE HEADER POLISH (a11y + teamnaam zichtbaar)
	 - Grotere touch target en duidelijke focusring voor hamburger
	 - Centrische, ellipsized actieve teamnaam in de topbar
	 ================================================================ */
@media (width <=900px) {
	.dt-mobile-bar__toggle { width: 44px; height: 44px; }
	.dt-mobile-bar__toggle:focus-visible { outline: none; box-shadow: var(--dt-focus-ring); }
	.dt-mobile-bar__active-team {
		flex: 1 1 auto;
		min-width: 0;
		text-align: center;
		font-size: var(--fs-sm);
		font-weight: var(--fw-semibold);
		color: var(--text);
		overflow: hidden;
		text-overflow: ellipsis;
		white-space: nowrap;
	}
	.dt-mobile-bar__budget { width: 100%; text-align: center; margin-top: 2px; font-size: var(--fs-2xs); color: var(--dt-text-muted); }
	.dt-mobile-bar__budget .dt-icon { font-size: 14px; vertical-align: -2px; margin-right: 4px; }
}
.dt-card--danger { background: linear-gradient(180deg, rgb(255 255 255 / 10%), rgb(255 255 255 / 4%)),   linear-gradient(135deg, rgb(239 68 68 / 34%), rgb(245 158 11 / 20%)); } /* =====================================================================    ANIMATIE UTILITIES (prefers-reduced-motion gerespecteerd)    ===================================================================== */ @keyframes dtFadeIn { from { opacity: 0;} to { opacity: 1;} } @keyframes dtFadeInUp { from { opacity: 0; transform: translateY(12px);} to { opacity: 1; transform: translateY(0);} } @keyframes dtPulseGlow { 0%,100% { box-shadow: 0 0 0 0 transparent;} 50% { box-shadow: 0 0 0 6px rgb(45 212 191 / 18%);} }
.dt-anim-fade-in { animation: dtFadeIn .5s ease both; }
.dt-anim-fade-in-up { animation: dtFadeInUp .6s cubic-bezier(.16,.82,.25,1) both; }
.dt-anim-stagger > * { opacity: 0; animation: dtFadeInUp .6s cubic-bezier(.16,.82,.25,1) forwards; }
.dt-anim-stagger > *:nth-child(2) { animation-delay: .06s; }
.dt-anim-stagger > *:nth-child(3) { animation-delay: .12s; }
.dt-anim-stagger > *:nth-child(4) { animation-delay: .18s; }
.dt-pulse-glow { animation: dtPulseGlow 3s ease-in-out infinite; } @keyframes dtSpin { from { transform: rotate(0deg);} to { transform: rotate(360deg);} } @media (prefers-reduced-motion:reduce) { /* Toegankelijkheid: PRM hard override — niet verwijderen */ .dt-anim-fade-in,.dt-anim-fade-in-up,.dt-anim-stagger > *,.dt-pulse-glow { animation: none !important;} } /* =====================================================================    LEADERBOARD / RANGLIJST STYLES    ===================================================================== */
.dt-ranklist { display: flex; flex-direction: column; gap: 10px; }
.dt-rank-item { display: grid; grid-template-columns: 52px 1fr auto auto; align-items: center; gap: 14px; padding: 12px 16px; border-radius: 14px; background: linear-gradient(180deg,rgb(255 255 255 / 10%),rgb(255 255 255 / 4%)); border: 1px solid rgb(255 255 255 / 12%); position: relative; overflow: hidden; }
.dt-rank-item:nth-child(odd) { background: linear-gradient(180deg,rgb(255 255 255 / 8%),rgb(255 255 255 / 3%)); }
.dt-rank-item:hover { background: linear-gradient(180deg,rgb(255 255 255 / 14%),rgb(255 255 255 / 5%)); }
.dt-rank-medal { width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; font-weight: var(--fw-extrabold); font-size: 1.05rem; border-radius: 12px; background: rgb(255 255 255 / 18%); color: #fff; box-shadow: 0 4px 10px -4px rgb(0 0 0 / 45%); }
.dt-rank-medal.gold { background: linear-gradient(140deg,#facc15,#b45309); }
.dt-rank-medal.silver { background: linear-gradient(140deg,#d1d5db,#6b7280); }
.dt-rank-medal.bronze { background: linear-gradient(140deg,#f59e0b,#92400e); }
.dt-rank-team { font-weight: var(--fw-extrabold); }
.dt-rank-meta { color: var(--muted); font-size: var(--fs-xs); display: flex; align-items: center; gap: 4px; }
.dt-rank-points { font-weight: var(--fw-extrabold); font-size: .95rem; }
.dt-rank-form { color: var(--muted); font-size: var(--fs-xs); white-space: nowrap; } @media (width <=700px) { .dt-rank-item { grid-template-columns: 42px 1fr auto; grid-template-areas: "medal team points" "medal meta form"; row-gap: 4px; padding: 10px 12px;} .dt-rank-medal { width: 38px; height: 38px; font-size: .95rem;} .dt-rank-team { grid-area: team;} .dt-rank-meta { grid-area: meta;} .dt-rank-points { grid-area: points;} .dt-rank-form { grid-area: form;} } /* Messages / tips (info / warning) */
.dt-messages { display: flex; flex-direction: column; gap: 8px; list-style: none; margin: 0; padding: 0; }
.dt-msg { display: flex; align-items: center; gap: 8px; font-size: var(--fs-sm); padding: 10px 12px; border-radius: 12px; font-weight: 500; line-height: 1.3; }
.dt-msg-info { background: linear-gradient(140deg,rgb(59 130 246 / 30%),rgb(21 57 92 / 40%)); border: 1px solid rgb(59 130 246 / 40%); }
.dt-msg-warning { background: linear-gradient(140deg,rgb(245 158 11 / 35%),rgb(128 62 0 / 40%)); border: 1px solid rgb(245 158 11 / 45%); } /* Generic key/value list (competitie info) */
.dt-list { display: grid; gap: 8px; }
.dt-list-item { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 8px 10px; border-radius: 10px; background: rgb(255 255 255 / 6%); font-size: var(--fs-sm); }
.dt-list-item span { display: flex; align-items: center; gap: 6px; }
.dt-list-item:nth-child(even) { background: rgb(255 255 255 / 8%); } /* Glass variant voor dashboard (fixtures + transfers) met zelfde feel als dt-msg--info */
.dt-list--glass { display: flex; flex-direction: column; gap: 10px; }
.dt-list--glass .dt-list__item { display: flex; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 14px; background: linear-gradient(180deg,rgb(255 255 255 / 12%),rgb(255 255 255 / 5%)),   linear-gradient(135deg,rgb(59 130 246 / 30%),rgb(21 57 92 / 42%)); border: 1px solid rgb(59 130 246 / 40%); box-shadow: 0 4px 14px -6px rgb(0 0 0 / 55%); font-size: var(--fs-sm); font-weight: 500; }
.dt-list--glass .dt-list__item:nth-child(odd) { background: linear-gradient(180deg,rgb(255 255 255 / 10%),rgb(255 255 255 / 4%)),   linear-gradient(135deg,rgb(59 130 246 / 26%),rgb(21 57 92 / 38%)); }
.dt-list--glass .dt-list__item:hover { background: linear-gradient(180deg,rgb(255 255 255 / 16%),rgb(255 255 255 / 6%)),   linear-gradient(135deg,rgb(59 130 246 / 36%),rgb(21 57 92 / 50%)); }
.dt-list--glass .dt-list__item button { margin-left: auto; }
.dt-list--glass .dt-list__item span { display: flex; align-items: center; gap: 6px; }
.dt-list--glass .dt-list__item span:not(:first-child) { opacity: .85; font-weight: var(--fw-semibold); } /* Accent (groene) variant voor transfers shortlist */
.dt-list--glass .dt-list__item.dt-list__item--warning { background: linear-gradient(180deg,rgb(255 255 255 / 12%),rgb(255 255 255 / 5%)),   linear-gradient(135deg,rgb(245 158 11 / 42%),rgb(128 62 0 / 55%)); border: 1px solid rgb(245 158 11 / 50%); box-shadow: 0 6px 16px -6px rgb(245 158 11 / 35%); }
.dt-list--glass .dt-list__item.dt-list__item--warning:hover { background: linear-gradient(180deg,rgb(255 255 255 / 14%),rgb(255 255 255 / 6%)),   linear-gradient(135deg,rgb(245 158 11 / 46%),rgb(128 62 0 / 60%)); border-color: rgb(245 158 11 / 52%); }
.dt-list--glass.dt-list--accent .dt-list__item { background: linear-gradient(180deg,rgb(255 255 255 / 14%),rgb(255 255 255 / 5%)),   linear-gradient(135deg,rgb(34 197 94 / 30%),rgb(5 34 24 / 55%)); border: 1px solid rgb(34 197 94 / 42%); }
.dt-list--glass.dt-list--accent .dt-list__item:nth-child(odd) { background: linear-gradient(180deg,rgb(255 255 255 / 10%),rgb(255 255 255 / 4%)),   linear-gradient(135deg,rgb(34 197 94 / 26%),rgb(5 34 24 / 50%)); }
.dt-list--glass.dt-list--accent .dt-list__item:hover { background: linear-gradient(180deg,rgb(255 255 255 / 18%),rgb(255 255 255 / 6%)),   linear-gradient(135deg,rgb(34 197 94 / 36%),rgb(5 34 24 / 60%)); } /* Urgentie varianten voor eerstvolgende wedstrijd (tijd tot kickoff) */
.dt-list__item--warning { background: linear-gradient(180deg,rgb(255 255 255 / 12%),rgb(255 255 255 / 5%)),   linear-gradient(135deg,rgb(245 158 11 / 42%),rgb(128 62 0 / 55%)); border: 1px solid rgb(245 158 11 / 50%); }
.dt-list__item--danger { background: linear-gradient(180deg,rgb(255 255 255 / 12%),rgb(255 255 255 / 5%)),   linear-gradient(135deg,rgb(239 68 68 / 44%),rgb(110 23 23 / 58%)); border: 1px solid rgb(239 68 68 / 55%); } /* Geblokkeerde (budget niet toereikend) item binnen shortlist */ /* Bewuste variant-override met !important — laten staan tot variantstructuur is herzien */
.dt-list__item--blocked { background: linear-gradient(180deg,rgb(255 255 255 / 10%),rgb(255 255 255 / 4%)),   linear-gradient(135deg,rgb(239 68 68 / 38%),rgb(110 23 23 / 55%)) !important; /* override variant */ border: 1px solid rgb(239 68 68 / 55%) !important; opacity: .80; }
.dt-list__item--blocked .dt-btn { filter: grayscale(.4); opacity: .7; cursor: not-allowed; } /* Fixtures lay-out uitlijning (teams - teams tijd) */ /* Forceer grid — bewust !important tot list-varianten zijn geconsolideerd */
.dt-list--fixtures .dt-list__item { display: grid !important; grid-template-columns: minmax(0,1fr) 18px minmax(0,1fr) auto; gap: 12px; }
.dt-list--fixtures .dt-list__item span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dt-list--fixtures .dt-list__item span:last-child { justify-self: end; font-weight: var(--fw-semibold); opacity: .90; }
.dt-list--fixtures .dt-fixture-sep { text-align: center; opacity: .75; font-weight: var(--fw-semibold); } /* Kleur variant hook voor leaderboard elders */
.dt-ranklist--alt .dt-rank-item { background: linear-gradient(180deg,rgb(255 255 255 / 12%),rgb(255 255 255 / 5%)); }
.dt-ranklist--alt .dt-rank-item:nth-child(odd) { background: linear-gradient(180deg,rgb(255 255 255 / 10%),rgb(255 255 255 / 4%)); } /* =====================================================================   EXPERIMENT – Ranklist heat backgrounds (2025-09-15)   Opt-in via .dt-ranklist--heat. Subtiele glassy overlay per positie:   - 1–25: groen → blauw   - 26–100: blauw → licht rood   - 101–128: licht rood → donker rood   Makkelijk te verwijderen: hele blok kan in één keer weg.   ===================================================================== */
.dt-ranklist--heat .dt-rank-item { position: relative; }
.dt-ranklist--heat .dt-rank-item::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(110deg,var(--heat-a,transparent),var(--heat-b,transparent)); opacity: .36; z-index: var(--z-base); }
.dt-ranklist--heat.dt-ranklist--heat-strong .dt-rank-item::before { opacity: .44; }
.dt-ranklist--heat .dt-rank-item > * { position: relative; z-index: var(--z-app-content); } /* Top 1–25: green → blue (5 blokken) */
.dt-ranklist--heat .dt-rank-item:nth-child(n+1):nth-child(-n+5) { --heat-a: rgb(34 197 94 / 32%); --heat-b: rgb(45 212 191 / 26%); }      /* green → teal */
.dt-ranklist--heat .dt-rank-item:nth-child(n+6):nth-child(-n+10) { --heat-a: rgb(34 197 94 / 32%); --heat-b: rgb(59 130 246 / 30%); }      /* green → blue(light) */
.dt-ranklist--heat .dt-rank-item:nth-child(n+11):nth-child(-n+15) { --heat-a: rgb(45 212 191 / 32%); --heat-b: rgb(59 130 246 / 32%); }     /* teal → blue */
.dt-ranklist--heat .dt-rank-item:nth-child(n+16):nth-child(-n+20) { --heat-a: rgb(45 212 191 / 30%); --heat-b: rgb(59 130 246 / 34%); }     /* teal(light) → blue(more) */
.dt-ranklist--heat .dt-rank-item:nth-child(n+21):nth-child(-n+25) { --heat-a: rgb(59 130 246 / 30%); --heat-b: rgb(59 130 246 / 34%); }     /* blue → blue */ /* 26–100: blue → light red (5 blokken) */
.dt-ranklist--heat .dt-rank-item:nth-child(n+26):nth-child(-n+40) { --heat-a: rgb(59 130 246 / 32%); --heat-b: rgb(99 102 241 / 32%); }     /* blue → indigo */
.dt-ranklist--heat .dt-rank-item:nth-child(n+41):nth-child(-n+55) { --heat-a: rgb(99 102 241 / 32%); --heat-b: rgb(139 92 246 / 32%); }     /* indigo → violet */
.dt-ranklist--heat .dt-rank-item:nth-child(n+56):nth-child(-n+70) { --heat-a: rgb(139 92 246 / 32%); --heat-b: rgb(217 70 239 / 32%); }     /* violet → fuchsia */
.dt-ranklist--heat .dt-rank-item:nth-child(n+71):nth-child(-n+85) { --heat-a: rgb(217 70 239 / 32%); --heat-b: rgb(244 63 94 / 34%); }      /* fuchsia → rose */
.dt-ranklist--heat .dt-rank-item:nth-child(n+86):nth-child(-n+100) { --heat-a: rgb(244 63 94 / 34%); --heat-b: rgb(239 68 68 / 34%); }      /* rose → light red */ /* 101–128: light red → dark red (3 blokken) */
.dt-ranklist--heat .dt-rank-item:nth-child(n+101):nth-child(-n+110) { --heat-a: rgb(239 68 68 / 34%); --heat-b: rgb(190 18 60 / 36%); }      /* light red → red */
.dt-ranklist--heat .dt-rank-item:nth-child(n+111):nth-child(-n+120) { --heat-a: rgb(220 38 38 / 36%); --heat-b: rgb(153 27 27 / 38%); }      /* red → deeper red */
.dt-ranklist--heat .dt-rank-item:nth-child(n+121):nth-child(-n+128) { --heat-a: rgb(190 18 60 / 38%); --heat-b: rgb(127 29 29 / 40%); }      /* deep red → dark red */ /* =====================================================================    PLAYERLIST (uitgebreide spelers tabel layout)    ===================================================================== */
.dt-playerlist { display: flex; flex-direction: column; gap: 4px; }
.dt-playerlist__head,.dt-player-item { display: grid; grid-template-columns: 56px minmax(240px,2fr) 110px 220px 100px 80px 90px; align-items: center; gap: 20px; padding: 14px 18px; border-radius: 12px; }
.dt-playerlist__head { background: rgb(255 255 255 / 8%); font-size: var(--fs-2xs); letter-spacing: .5px; text-transform: uppercase; font-weight: var(--fw-semibold); color: var(--muted); }
.dt-player-item { background: linear-gradient(180deg,rgb(255 255 255 / 10%),rgb(255 255 255 / 4%)); border: 1px solid rgb(255 255 255 / 10%); position: relative; }
.dt-player-item:nth-child(odd) { background: linear-gradient(180deg,rgb(255 255 255 / 8%),rgb(255 255 255 / 3%)); }
.dt-player-item:hover { background: linear-gradient(180deg,rgb(255 255 255 / 14%),rgb(255 255 255 / 5%)); }
.dt-player-item .pl-avatar { width: 28px; height: 28px; border-radius: 50%; object-fit: cover; box-shadow: 0 2px 6px -2px rgb(0 0 0 / 40%); margin-right: 6px; }
.dt-player-item .pl-name { display: flex; align-items: center; gap: 6px; font-weight: var(--fw-semibold); }
.dt-player-item .pl-player-name { font-weight: var(--fw-semibold); }
.pl-flag { width: 10px; height: 10px; border-radius: 50%; background: var(--accent); display: inline-block; }
.pl-flag--injured { background: var(--danger); }
.pl-flag--doubt { background: var(--warning); }
.pl-flag--hot { background: var(--accent); }
.dt-player-item .pl-status { font-size: var(--fs-2xs); color: var(--muted); }
.dt-player-item { border-bottom: 1px solid var(--dt-border); } /* subtiele rij-divider voor ritme */
.dt-player-item .pl-val { font-weight: var(--fw-semibold); } /* Extra visuele ruimte tussen de kolommen Pos en Club zonder grid te verbreden */
.dt-playerlist__head .pl-club, .dt-player-item .pl-club { padding-left: 14px; } @media (width <=1100px) { .dt-playerlist__head,.dt-player-item { grid-template-columns: 50px minmax(200px,2fr) 96px 176px 90px 70px 80px;} } @media (width <=900px) { .dt-playerlist__head,.dt-player-item { grid-template-columns: 44px minmax(150px,2fr) 56px 80px 70px 60px;} .dt-playerlist__head .pl-club,.dt-playerlist__head .pl-val,.dt-playerlist__head .pl-status { display: none;} .dt-playerlist__head .pl-metric { display: block;} .dt-player-item .pl-club,.dt-player-item .pl-val,.dt-player-item .pl-status { display: none;} } @media (width <=600px) { .dt-playerlist__head,.dt-player-item { grid-template-columns: 40px minmax(120px,2fr) 50px 60px; gap: 8px; padding: 8px 10px;} .dt-playerlist__head .pl-pos { display: none;} .dt-player-item .pl-pos { display: none;} }   /* =====================================================================      ROSTERLIST (Unified team/club players) – 2025-09-17      Compact variant: # | Speler (flag) | Pos | Stats | Actions      ===================================================================== */
.dt-rosterlist { display: block; width: 100%; }   /* Column 1 widened from 52px -> 60px to give rank + delta badge extra breathing room (2025-09-17) */
.dt-rosterlist__head { display: grid; grid-template-columns: 46px minmax(180px,1fr) 70px 230px 100px; gap: 8px; padding: 8px 14px; font-size: 11px; text-transform: uppercase; letter-spacing: .5px; opacity: .75; background: rgb(255 255 255 / 7%); border: 1px solid rgb(255 255 255 / 10%); border-radius: 12px; margin-bottom: 6px; }
.dt-roster-row { display: grid; grid-template-columns: 46px minmax(180px,1fr) 70px 230px 100px; gap: 8px; align-items: center; padding: 10px 14px; border-radius: 12px; margin-bottom: 6px; background: linear-gradient(180deg,rgb(255 255 255 / 10%),rgb(255 255 255 / 4%)); border: 1px solid rgb(255 255 255 / 10%); }
.dt-roster-row:nth-child(odd) { background: linear-gradient(180deg,rgb(255 255 255 / 8%),rgb(255 255 255 / 3%)); }
.dt-roster-row:hover { background: linear-gradient(180deg,rgb(255 255 255 / 14%),rgb(255 255 255 / 5%)); }
.dt-roster-row .rl-player { display: flex; align-items: center; gap: 8px; min-width: 0; }
.dt-roster-row .rl-name { display: inline-block; max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-weight: 600; }
.dt-roster-row .rl-flag { width: 16px; height: 16px; border-radius: 4px; object-fit: cover; box-shadow: 0 0 0 1px rgb(255 255 255 / 25%); }
.dt-roster-row .rl-flag.rl-flag--lg { width: 20px; height: 20px; border-radius: 5px; }
.dt-roster-row .rl-stats { font-variant-numeric: tabular-nums; font-size: 13px; white-space: nowrap; font-weight: 600; display: flex; align-items: center; gap: 10px; }
.dt-roster-row .rl-stat { display: inline-flex; align-items: center; gap: 4px; line-height: 1; }
.dt-roster-row .rl-stat i { font-size: 13px; }
.dt-roster-row .rl-pos-abbr { font-weight: 600; letter-spacing: .5px; }
.dt-roster-row .rl-pos-abbr[title] { cursor: help; }
.dt-roster-row .rl-pos-ico { font-size: 12px; opacity: .85; margin-right: 4px; color: var(--gold); }   /* Rank column layout: number left, delta badge right (no jitter between 9/10) */
.rl-num { display: flex; align-items: center; justify-content: space-between; gap: 4px; }
.rl-num__val { display: inline-block; min-width: 16px; text-align: left; font-variant-numeric: tabular-nums; }
.rl-num__delta { flex: 0 0 auto; display: inline-flex; }   /* Rank delta badge (up/down/no change) */
.rl-rank-delta { display: inline-flex; align-items: center; gap: 2px; font-size: 11px; line-height: 1; padding: 2px 4px; border-radius: 4px; background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 18%); font-weight: 600; vertical-align: middle; }
.rl-rank-delta svg { width: 10px; height: 10px; }
.rl-rank-delta--up { color: var(--success); background: linear-gradient(180deg,rgb(16 185 129 / 30%),rgb(16 185 129 / 10%)); border-color: rgb(16 185 129 / 45%); }
.rl-rank-delta--down { color: var(--danger); background: linear-gradient(180deg,rgb(239 68 68 / 32%),rgb(239 68 68 / 12%)); border-color: rgb(239 68 68 / 48%); }
.rl-rank-delta--same { color: var(--muted); }
.rl-rank-delta__val { display: inline-block; min-width: 10px; text-align: center; }   @media (width <=640px) { .rl-rank-delta { font-size: 10px; padding: 2px 3px;} }   /* Roster heat bar (single vertical gradient spanning list) */   /* Roster heat bar (single vertical gradient spanning list)      Easy tweak vars:        --roster-heat-width: 6px; (set to 0 to hide)  (prev: 6px)        --roster-heat-offset: 40px; (distance from top where bar starts) (tune: 38-42)        --roster-heat-left-pad: 22px; (left padding rows)        --roster-heat-left-pad-head: 14px; (header left padding)        Revert to per-row version: restore earlier .dt-roster-row::before block (see git history 2025-09-17) and remove this section.   */
.dt-rosterlist--heat { position: relative; --roster-heat-width: 6px; --roster-heat-offset: 40px; --roster-heat-left-pad: 18px; --roster-heat-left-pad-head: 12px; }
.dt-rosterlist--heat::before { content: ""; position: absolute; left: 0; top: var(--roster-heat-offset); bottom: 0; width: var(--roster-heat-width); border-radius: 6px; background: linear-gradient(180deg,var(--success) 0%,var(--warning) 55%,var(--danger) 100%); box-shadow: 0 0 0 1px rgb(0 0 0 / 45%),0 0 6px -1px rgb(0 0 0 / 55%); }
.dt-rosterlist--heat .dt-rosterlist__head { padding-left: var(--roster-heat-left-pad-head); }
.dt-rosterlist--heat .dt-roster-row { padding-left: var(--roster-heat-left-pad); }   @media (width <=640px) { .dt-rosterlist--heat { --roster-heat-width: 4px; --roster-heat-offset: 36px; --roster-heat-left-pad: 18px; --roster-heat-left-pad-head: 12px;} }
.dt-roster-row .rl-actions { text-align: right; }
.dt-roster-row--injured  { border-color: rgb(239 68 68 / 30%); background: linear-gradient(180deg, rgb(239 68 68 / 10%), rgb(239 68 68 / 4%)); }
.dt-roster-row--suspended { border-color: rgb(251 191 36 / 30%); background: linear-gradient(180deg, rgb(251 191 36 / 10%), rgb(251 191 36 / 4%)); }
.dt-status-badge { display: inline-flex; align-items: center; justify-content: center; width: 1.25rem; height: 1.25rem; border-radius: .25rem; font-size: .65rem; font-weight: 900; flex-shrink: 0; }
.dt-status-badge--injured   { background: #fff; color: #ef4444; border: 1px solid #ef4444; }
.dt-status-badge--suspended { background: #fff; color: #fbbf24; border: 1px solid #fbbf24; }
.rl-action-btn { display: inline-flex; align-items: center; gap: 6px; }
.rl-action-label { display: inline; }   @media (width <=820px) { .dt-rosterlist__head,.dt-roster-row { grid-template-columns: 42px minmax(140px,1fr) 56px 170px 70px;} }   @media (width <=640px) { .dt-rosterlist__head,.dt-roster-row { grid-template-columns: 40px minmax(120px,1fr) 50px 115px 54px; gap: 8px; padding: 8px 10px;} .rl-action-label { display: none;} .dt-roster-row .rl-stats { font-size: 12px;} .dt-roster-row .rl-stat--avg, .dt-roster-row .rl-stat--assists { display: none;} }   /* State highlights (injured / suspended) */
.pl-row--injured { background: linear-gradient(90deg,rgb(239 68 68 / 32%),rgb(239 68 68 / 6%)) !important; border-color: rgb(239 68 68 / 55%)!important; }
.pl-row--suspended { background: linear-gradient(90deg,rgb(255 193 7 / 34%),rgb(255 193 7 / 8%)) !important; border-color: rgb(255 193 7 / 55%)!important; } /* Utility: single-line ellipsis (globaal) */
.dt-text-ellipsis { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } /* =====================================================================    TEAMLIST (teams binnen competitie)    ===================================================================== */
.dt-teamlist { display: flex; flex-direction: column; gap: 6px; }
.dt-teamlist__head,.dt-team-item { display: grid; grid-template-columns: 52px minmax(160px,2fr) minmax(120px,1fr) minmax(140px,1.2fr) 70px 110px; align-items: center; gap: 12px; padding: 10px 14px; border-radius: 14px; }
.dt-teamlist__head { background: rgb(255 255 255 / 8%); font-size: var(--fs-2xs); letter-spacing: .5px; text-transform: uppercase; font-weight: var(--fw-semibold); color: var(--muted); }
.dt-team-item { background: linear-gradient(180deg,rgb(255 255 255 / 10%),rgb(255 255 255 / 4%)); border: 1px solid rgb(255 255 255 / 12%); }
.dt-team-item:nth-child(odd) { background: linear-gradient(180deg,rgb(255 255 255 / 8%),rgb(255 255 255 / 3%)); }
.dt-team-item:hover { background: linear-gradient(180deg,rgb(255 255 255 / 14%),rgb(255 255 255 / 5%)); }
.tl-team { display: flex; align-items: center; gap: 6px; font-weight: var(--fw-semibold); }
.tl-team-name { font-weight: var(--fw-semibold); }
.tl-badge { width: 14px; height: 14px; border-radius: 4px; background: var(--accent); box-shadow: 0 2px 6px -2px rgb(0 0 0 / 45%); }
.tl-badge--gold { background: linear-gradient(140deg,#facc15,#b45309); }
.tl-badge--silver { background: linear-gradient(140deg,#d1d5db,#6b7280); }
.tl-badge--bronze { background: linear-gradient(140deg,#f59e0b,#92400e); }
.tl-points,.tl-form { font-weight: var(--fw-semibold); } @media (width <=1000px) { .dt-teamlist__head,.dt-team-item { grid-template-columns: 48px minmax(160px,2fr) minmax(120px,1fr) 70px 100px;} .dt-teamlist__head .tl-competition,.dt-team-item .tl-competition { display: none;} } @media (width <=760px) { .dt-teamlist__head,.dt-team-item { grid-template-columns: 44px minmax(140px,2fr) 60px 70px;} .dt-teamlist__head .tl-manager,.dt-team-item .tl-manager { display: none;} } @media (width <=560px) { .dt-teamlist__head,.dt-team-item { grid-template-columns: 40px minmax(120px,2fr) 60px;} .dt-teamlist__head .tl-form,.dt-team-item .tl-form { display: none;} } /* MOBIEL TWEAKS */ @media (width <=600px) { :root { --header-h: 64px; --footer-ads-h: 40px; --footer-links-h: 44px;} .dt-site-header__inner { gap: var(--space-2);} .dt-main { padding-block: var(--space-3);} .dt-container { padding-inline: var(--space-3);} .dt-site-footer__links ul { gap: var(--space-2);} } /* =====================================================================   TABLE (teams/overview)   ===================================================================== */
.dt-table-wrapper { width: 100%; overflow: auto; margin: var(--space-4) 0; }
.dt-table { width: 100%; border-collapse: collapse; background: var(--panel-2); font-size: 1em; }
.dt-table th,.dt-table td { padding: .75em 1em; border-bottom: 1px solid rgb(255 255 255 / 12%); text-align: left; } /* Fase 2 follow-up: respecteer expliciete uitlijningshelpers binnen tabellen zonder !important (2025-09-03) */
.dt-table th.dt-text-right,.dt-table td.dt-text-right { text-align: right; }
.dt-table th.dt-text-center,.dt-table td.dt-text-center { text-align: center; }
.dt-table th { background: rgb(255 255 255 / 5%); color: var(--text); font-weight: var(--fw-semibold); }
.dt-table tr:last-child td { border-bottom: none; }
/* =====================================================================   PITCH (team opstelling)   ===================================================================== */
.dt-pitch { position: relative; border-radius: 18px; padding: 22px; margin-bottom: 18px; overflow: hidden; box-shadow: 0 6px 20px -6px rgb(0 0 0 / 55%); }
.dt-pitch__lines { position: absolute; inset: 0; border: 3px solid rgb(255 255 255 / 60%); border-radius: 16px; pointer-events: none; display: none; }
.dt-pitch__lines::before, .dt-pitch__lines::after { content: ""; position: absolute; left: 50%; top: 0; bottom: 0; width: 3px; background: rgb(255 255 255 / 60%); transform: translateX(-50%); }
.dt-pitch__lines::after { width: 140px; height: 140px; border: 3px solid rgb(255 255 255 / 60%); border-radius: 50%; top: 50%; left: 50%; transform: translate(-50%,-50%); }
.dt-pitch__lines .dt-pitch__box, .dt-pitch__lines .dt-pitch__six { position: absolute; border: 3px solid rgb(255 255 255 / 60%); border-radius: 4px; }
.dt-pitch__lines .dt-pitch__box--home { left: 50%; bottom: 0; transform: translateX(-50%); width: 59.3%; height: 15.7%; }
.dt-pitch__lines .dt-pitch__box--away { left: 50%; top: 0; transform: translateX(-50%); width: 59.3%; height: 15.7%; }
.dt-pitch__lines .dt-pitch__six--home { left: 50%; bottom: 0; transform: translateX(-50%); width: 26.9%; height: 5.25%; }
.dt-pitch__lines .dt-pitch__six--away { left: 50%; top: 0; transform: translateX(-50%); width: 26.9%; height: 5.25%; }
.dt-pitch__lines .dt-pitch__penalty { position: absolute; left: 50%; width: 10px; height: 10px; margin: -5px 0 0 -5px; border-radius: 50%; background: rgb(255 255 255 / 85%); }
.dt-pitch__lines .dt-pitch__penalty--home { bottom: 10.5%; }
.dt-pitch__lines .dt-pitch__penalty--away { top: 10.5%; }
.dt-pitch__goal { position: absolute; left: 50%; width: 120px; height: 10px; margin-left: -60px; background: rgb(255 255 255 / 65%); filter: blur(0.5px); display: none; }
.dt-pitch__goal--home { bottom: -3px; border-radius: 0 0 6px 6px; }
.dt-pitch__goal--away { top: -3px; border-radius: 6px 6px 0 0; }
.dt-pitch__goal::after { content: ""; position: absolute; left: 50%; transform: translateX(-50%); width: 120px; height: 36px; border: 3px solid rgb(255 255 255 / 35%); border-bottom: none; top: -36px; border-radius: 6px 6px 0 0; filter: blur(.4px); }
.dt-pitch__box--home::after, .dt-pitch__box--away::after { content: ""; position: absolute; left: 50%; width: 28%; height: 28%; min-width: 150px; min-height: 150px; max-width: 200px; max-height: 200px; border: 3px solid rgb(255 255 255 / 60%); border-radius: 50%; transform: translate(-50%,0); }
.dt-pitch__box--home::after { bottom: -150px; clip-path: inset(50% -10px -10px -10px); }
.dt-pitch__box--away::after { top: -150px; clip-path: inset(-10px -10px 50% -10px); }
.dt-pitch__formation { position: relative; width: 100%; min-height: clamp(220px, 80vh, 600px); aspect-ratio: var(--pitch-ratio, 9/16); background: #0b3d1a; border-radius: inherit; /* Map players to the visible inner field using gutters (portrait SVG) */ --pitch-gutter-x: 6.67%; --pitch-gutter-y: 3.75%; /* Small vertical nudge for player mapping (percentage of pitch height) */ --y-nudge: 0%; /* Enable container queries so sizing depends on pitch width, not viewport */ container-type: inline-size; container-name: pitch; }
.dt-pitch__formation { --half-scale: 1; --half-offset: 0; } /* Half-pitch uses a dedicated cropped SVG without extra bottom grass */
.dt-pitch__formation.is-half { /* Switch to the half asset and fill container */ --pitch-ratio: 45/37; /* matches 900x740 */ background-image: url('/images/pitch/football_pitch_half_900x740.svg'); background-size: cover; background-position: center bottom; /* Half asset has no vertical inner gutters beyond the 60px side padding drawn into lines      We map players to the inner rectangle using gutters; x remains 6.67%, y becomes 0% here */ --pitch-gutter-y: 0%; /* Slightly compress vertical distribution so lines sit closer together */ --y-scale: 0.94; /* Prevent GK clipping: nudge players slightly upward on half-pitch */ --y-nudge: -1.2%; }
.dt-pitch__player { position: absolute; transform: translate(-50%,-50%); width: 92px; z-index: var(--z-pitch-player); --x: 50; --y: 75; left: calc(var(--pitch-gutter-x) + (100% - (var(--pitch-gutter-x)*2)) * (var(--x, 50) * 0.01)); top: calc(var(--pitch-gutter-y) + (100% - (var(--pitch-gutter-y)*2)) * ((var(--y, 75) * 0.01) * var(--y-scale, 1)) + var(--y-nudge, 0%)); }
.dt-player__card { background: rgb(5 20 32 / 55%); border: 1px solid rgb(255 255 255 / 18%); backdrop-filter: blur(8px) saturate(140%); padding: 6px 8px; border-radius: 12px; text-align: center; color: #cfe9f7; font-size: var(--fs-2xs); display: flex; flex-direction: column; gap: 2px; box-shadow: 0 4px 14px -2px rgb(0 0 0 / 45%); min-block-size: 44px; }
.dt-player__num { position: absolute; top: 44%; left: 50%; transform: translate(-50%,-50%); color: #0b3d1a; font-weight: 800; font-size: 13px; line-height: 1; text-shadow: 0 1px 1px rgb(255 255 255 / 50%), 0 1px 2px rgb(0 0 0 / 35%); pointer-events: none; z-index: var(--z-base); }
.dt-player__card:not(.is-empty) .dt-player__num { display: block; }
.dt-player__placeholder-img { position: relative; z-index: var(--z-base); }
.dt-player__card.is-empty .dt-player__num { display: block; } /* numbers must always be visible, even on empty placeholders */
.dt-player__name { font-weight: var(--fw-semibold); font-size: var(--fs-xs); }
.dt-player__meta { font-size: 10px; opacity: .75; letter-spacing: .5px; } /* Container-based sizing for player cards (consistent across pages) */ @container pitch (max-width: 1024px) { .dt-pitch__player { width: 78px;} .dt-player__card { padding: 5px 6px;} } @container pitch (max-width: 640px) { .dt-pitch__player { width: 72px;} .dt-player__card { padding: 5px 6px;} } /* Small mobile refinements for shirt and number */ @container pitch (max-width: 640px) { .dt-pitch__player { width: 68px;} /* was 72px */ .dt-player__placeholder-img { width: 26px;} /* was 28px */ .dt-player__num { font-size: 11.5px; top: 45%;} } @container pitch (max-width: 420px) { .dt-pitch__player { width: 60px;} /* was 64px */ .dt-player__card { padding: 4px 5px; border-radius: 10px;} .dt-player__placeholder-img { width: 24px;} /* was 26px */ .dt-player__num { font-size: 10.5px; top: 46%;} } /* Mobile: ensure pitch fits viewport height and players are not clipped at bottom */ @media (width <= 640px) { .dt-pitch { padding: 14px; border-radius: 14px;} .dt-pitch__formation.is-half { min-height: auto; --y-scale: 1.08; --pitch-ratio: 45/40;} } @media (width <= 420px) { .dt-pitch { padding: 12px; border-radius: 12px;} .dt-pitch__formation.is-half { min-height: auto; --y-scale: 1.12; --pitch-ratio: 45/42;} } /* Nudge players up a little on small screens to avoid bottom clipping */ @media (width <= 640px) { .dt-pitch__formation.is-half { --pitch-gutter-y: 3%;} } /* Pitch lock indicator (badge + overlay) */
.dt-pitch__lock { position: absolute; top: 10px; right: 10px; display: none; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 12px; background: linear-gradient(180deg,rgb(255 255 255 / 18%),rgb(255 255 255 / 8%)); border: 1px solid rgb(255 255 255 / 22%); color: #fff; font-weight: 600; z-index: var(--z-pitch-overlay-5); box-shadow: 0 6px 14px -6px rgb(0 0 0 / 55%); }
.dt-pitch.is-locked .dt-pitch__lock, .dt-pitch[data-locked="1"] .dt-pitch__lock { display: inline-flex; }
.dt-pitch.is-locked::after, .dt-pitch[data-locked="1"]::after { content: ""; position: absolute; inset: 0; background: rgb(0 0 0 / 25%); backdrop-filter: blur(1px); z-index: var(--z-pitch-overlay-4); }
.dt-pitch.is-locked .dt-player__card, .dt-pitch[data-locked="1"] .dt-player__card { filter: saturate(.85) contrast(.95); }
.dt-pitch.is-locked, .dt-pitch[data-locked="1"] { pointer-events: none; } /* Pitch busy state (overlay + spinner tijdens formatie wissel / opslaan) */
.dt-pitch.dt-is-busy::before { content: ""; position: absolute; inset: 0; background: rgb(0 0 0 / 28%); backdrop-filter: blur(1.5px); z-index: var(--z-pitch-overlay-6); }
.dt-pitch.dt-is-busy::after { content: ""; position: absolute; left: 50%; top: 50%; width: 36px; height: 36px; margin: -18px 0 0 -18px; border-radius: 50%; border: 3px solid rgb(255 255 255 / 45%); border-top-color: var(--accent,#00e5a4); animation: dtSpin .9s linear infinite; z-index: var(--z-pitch-overlay-7); box-shadow: 0 6px 18px -6px rgb(0 0 0 / 60%); } @media (prefers-reduced-motion:reduce) { .dt-pitch.dt-is-busy::after,.dt-btn.is-busy::before { animation: none;} } /* =====================================================================    DASHBOARD LAYOUT & UTILITIES    ===================================================================== */ /* Root wrapper optioneel voor toekomstige theming */
.dt-dashboard { display: block; } /* Grid: hoofd (pitch) + sidebar cards */
.dt-dashboard__grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: var(--space-6); align-items: start; margin-top: var(--space-6); }
.dt-dashboard__main { display: flex; flex-direction: column; gap: var(--space-5); min-width: 0; }
.dt-dashboard__side { display: flex; flex-direction: column; gap: var(--space-5); } @media (width <=1180px) { .dt-dashboard__grid { grid-template-columns: 1fr 320px;} } @media (width <=1050px) { .dt-dashboard__grid { grid-template-columns: 1fr;} .dt-dashboard__side { flex-flow: row wrap;} } /* lineup editor additions */
.dt-dashboard__side { display: flex; flex-direction: column; gap: var(--space-3); min-width: 0; }
[data-component="stat-card-tabs"] { min-width: 0; width: 100%; }
.dt-player__card { position: relative; }
.dt-player__card.is-empty { align-items: center; justify-content: center; gap: 6px; padding: 8px 10px; }
.dt-player__placeholder { display: flex; align-items: center; justify-content: center; position: relative; }
.dt-player__placeholder-img { width: 34px; height: auto; opacity: .95; filter: drop-shadow(0 2px 4px rgb(0 0 0 / 30%)); }
.dt-player__placeholder-text { display: block; color: #dce7ef; font-weight: 600; font-size: 11px; letter-spacing: .02em; }
.dt-player__card.is-empty .dt-player__name, .dt-player__card.is-empty .dt-player__meta { display: none; }
.dt-player__card.is-empty .dt-player__name, .dt-player__card.is-empty .dt-player__meta { display: none; }
.dt-player__card:not(.is-empty) .dt-player__placeholder-text { display: none; }
.dt-player__clear { position: absolute; top: 2px; right: 2px; line-height: 1; border: 0; background: transparent; color: var(--dt-text-muted,#666); cursor: pointer; padding: 2px 6px; border-radius: 4px; }
.dt-player__clear:hover,.dt-player__clear:focus { background: rgb(0 0 0 / 6%); outline: 2px solid var(--dt-focus,#3b82f6); outline-offset: 2px; } @media (width <=780px) { .dt-dashboard__side { flex-direction: column;} } /* DnD feedback: drop-target highlight + drag ghost */
.dt-player__card.is-drop-target { outline: 2px dashed var(--accent); outline-offset: 3px; box-shadow: 0 0 0 3px rgb(0 229 164 / 22%); }
.dt-drag-ghost { background: rgb(16 24 40 / 85%); color: #fff; padding: 6px 10px; border-radius: 10px; border: 1px solid rgb(255 255 255 / 22%); box-shadow: 0 10px 24px -8px rgb(0 0 0 / 60%); } /* === Player Picker Modal (component) === */
.dt-modal { position: fixed; inset: 0; display: none; z-index: var(--z-modal-root); }
.dt-modal.is-open { display: flex; align-items: center; justify-content: center; padding: 24px; }
.dt-modal[aria-hidden="true"] { display: none; }
.dt-modal__backdrop { position: absolute; inset: 0; background: rgb(6 12 16 / 52%); }
.dt-modal__dialog { position: relative; z-index: var(--z-app-content); width: 520px; max-width: calc(100% - 24px); margin: 0; background: var(--dt-panel-bg, #0f2a22); color: var(--dt-fg, #e6f0ec); border-radius: 12px; box-shadow: 0 10px 30px rgb(0 0 0 / 35%); outline: none; }
.dt-modal__header { display: flex; justify-content: space-between; align-items: center; padding: 16px 16px 8px; position: relative; } /* Visual separation header/body */
.dt-modal__header { border-bottom: 1px solid rgb(255 255 255 / 10%); } /* Provide a subtle elevated tint so header niet één vlak vormt */
.dt-modal.is-open .dt-modal__dialog .dt-modal__header { background: linear-gradient(180deg,rgb(255 255 255 / 12%), rgb(255 255 255 / 0%)); }
.dt-modal__header.dt-modal__header--gradient { /* BUY MODAL GRADIENT (easily revertable) */ background: linear-gradient(135deg, rgb(255 215 0 / 12%), rgb(255 255 255 / 4%)); border-bottom: 1px solid rgb(255 255 255 / 8%); backdrop-filter: blur(2px); } /* Striped header variant (re-usable) */
.dt-modal__header--striped { position: relative; background: linear-gradient(180deg,rgb(255 255 255 / 10%), rgb(255 255 255 / 0%)); }
.dt-modal__header--striped::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: repeating-linear-gradient(135deg,rgb(255 255 255 / 70%) 0 2px, rgb(255 255 255 / 40%) 2px 4px, transparent 4px 8px); opacity: .10; mask-image: linear-gradient(to right,transparent 0%, transparent 40%, black 100%); } /* Enable stripes automatically when body has theme class */
body.dt-theme--striped .dt-modal__header:not(.dt-modal__header--no-auto), body.dt-theme--striped .dt-card__header:not(.dt-card__header--no-auto) { position: relative; }
body.dt-theme--striped .dt-modal__header:not(.dt-modal__header--no-auto)::after, body.dt-theme--striped .dt-card__header:not(.dt-card__header--no-auto)::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: repeating-linear-gradient(135deg,rgba(255 255 255 / 70%) 0 2px, rgba(255 255 255 / 40%) 2px 4px, transparent 4px 8px); opacity: .10; mask-image: linear-gradient(to right,transparent 0%, transparent 40%, black 100%); } /* Premium modal header variant */
.dt-modal__header--premium { position: relative; background: linear-gradient(180deg, rgb(255 215 128 / 18%), rgb(255 215 128 / 4%)); border-bottom: 1px solid rgb(255 215 128 / 25%); }
.dt-modal__header--premium::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(120deg, rgb(255 215 128 / 35%) 0%, rgb(255 215 128 / 5%) 35%, transparent 60%),   repeating-linear-gradient(135deg, rgb(255 215 128 / 55%) 0 2px, rgb(255 215 128 / 25%) 2px 4px, transparent 4px 8px); mix-blend-mode: screen; opacity: .55; mask-image: linear-gradient(to right, transparent 0%, rgb(0 0 0 / 60%) 30%, rgb(0 0 0 / 100%) 100%); }
.dt-modal__header--premium .dt-icon { color: var(--gold,#e9c46a); } /* Card header striped variant (same visual language) */
.dt-card__header--striped { position: relative; }
.dt-card__header--striped::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: repeating-linear-gradient(135deg,rgb(255 255 255 / 70%) 0 2px, rgb(255 255 255 / 40%) 2px 4px, transparent 4px 8px); opacity: .10; mask-image: linear-gradient(to right,transparent 0%, transparent 40%, black 100%); } /* Green glass modal look (subtle) */
/* ================================================================
	HELP MODAL (dt-help)
	Compact, accessible modal for contextual help/FAQ
	================================================================ */
.dt-help{position:fixed;inset:0;display:block;z-index:var(--z-modal,200)}
.dt-help[hidden]{display:none}
.dt-help__overlay{position:absolute;inset:0;background:rgb(0 0 0 / 50%)}
.dt-help__dialog{position:relative;margin:5vh auto 0 auto;max-width:720px;background:#111;color:#eee;border-radius:12px;box-shadow:0 10px 30px rgb(0 0 0 / 50%);outline:0}
.dt-help__header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgb(255 255 255 / 8%)}
.dt-help__header-title{font-size:18px;line-height:1.2;margin:0}
.dt-help__close{background:transparent;border:0;color:#fff;cursor:pointer}
.dt-help__close .dt-icon{font-size:18px}
.dt-help__body{padding:16px;max-height:70vh;overflow:auto}
.dt-help__section{margin:0 0 16px}
.dt-help__section-title{font-size:16px;margin:0 0 8px}
.dt-help__list{list-style:none;margin:0;padding:0}
.dt-help__item{padding:10px 0;border-top:1px solid rgb(255 255 255 / 6%)}
.dt-help__item:first-child{border-top:0}
.dt-help__q{font-weight:600;margin:0 0 6px}
.dt-help__a{font-weight:400}
.dt-help__a ul,.dt-help__a ol{margin:6px 0 6px 20px}
.dt-help__loading{padding:24px;opacity:.8}
.dt-help__section-title--icon{display:inline-flex;align-items:center;gap:8px}
.dt-help__section-icon{color:var(--gold);font-size:14px}
.dt-help__q{display:flex;align-items:flex-start;gap:8px}
.dt-help__q-icon{color:var(--accent);font-size:13px;margin-top:2px;opacity:.9}
.dt-help-page__section-title{display:inline-flex;align-items:center;gap:8px}
.dt-help-page__section-icon{color:var(--gold);font-size:14px}
.dt-help-page__question-icon{color:var(--accent);font-size:13px;opacity:.9}
.dt-help-section--about .dt-help__section-icon,
.dt-help-section--about .dt-help-page__section-icon{color:var(--accent-2)}
.dt-help-section--competition .dt-help__section-icon,
.dt-help-section--competition .dt-help-page__section-icon{color:var(--gold)}
.dt-help-section--team-limits .dt-help__section-icon,
.dt-help-section--team-limits .dt-help-page__section-icon{color:var(--warning)}
.dt-help-section--deadlines .dt-help__section-icon,
.dt-help-section--deadlines .dt-help-page__section-icon{color:var(--danger)}
.dt-help-section--rounds .dt-help__section-icon,
.dt-help-section--rounds .dt-help-page__section-icon{color:var(--accent)}
.dt-help-section--notifications .dt-help__section-icon,
.dt-help-section--notifications .dt-help-page__section-icon{color:#facc15}
.dt-help-section--transfers .dt-help__section-icon,
.dt-help-section--transfers .dt-help-page__section-icon,
.dt-help-section--budget .dt-help__section-icon,
.dt-help-section--budget .dt-help-page__section-icon,
.dt-help-section--rules .dt-help__section-icon,
.dt-help-section--rules .dt-help-page__section-icon,
.dt-help-section--execution .dt-help__section-icon,
.dt-help-section--execution .dt-help-page__section-icon,
.dt-help-section--strategy .dt-help__section-icon,
.dt-help-section--strategy .dt-help-page__section-icon{color:#34d399}
.dt-modal__dialog--glass-green { background: linear-gradient(160deg,rgb(0 128 96 / 28%),rgb(0 180 140 / 12%)) border-box, rgb(255 255 255 / 5%); border: 1px solid rgb(255 255 255 / 8%); box-shadow: 0 4px 18px -4px rgb(0 0 0 / 45%), 0 2px 6px -1px rgb(0 0 0 / 30%); backdrop-filter: blur(8px) saturate(125%); }
.dt-modal__dialog--glass-green .dt-modal__header { background: linear-gradient(180deg,rgb(255 255 255 / 18%), rgb(255 255 255 / 0%)); } /* --------------------------------------------------   Global modal glass green (applied to all modals)   NOTE: User requested all modals same green look.   To revert globally: remove this block or scope only with .dt-modal__dialog--glass-green. -------------------------------------------------- */
.dt-modal.is-open .dt-modal__dialog { background: linear-gradient(155deg,rgb(0 140 110 / 32%),rgb(0 190 150 / 10%)) border-box, rgb(255 255 255 / 5%); border: 1px solid rgb(0 255 200 / 18%); box-shadow: 0 24px 48px -16px rgb(0 0 0 / 55%),0 4px 12px -2px rgb(0 0 0 / 35%); backdrop-filter: blur(10px) saturate(140%); } /* Intensify when explicit glass-green modifier present */
.dt-modal.is-open .dt-modal__dialog.dt-modal__dialog--glass-green { background: linear-gradient(165deg,rgb(0 160 125 / 42%),rgb(0 210 165 / 14%)) border-box, rgb(255 255 255 / 6%); border-color: rgb(0 255 210 / 28%); }
.dt-modal__title { margin: 0; font-size: 1.125rem; }
.dt-modal__close { inline-size: 44px; block-size: 44px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; } /* duplicate removed: .dt-modal__toolbar consolidated earlier with token gap */ /* duplicate removed: .dt-tabs consolidated earlier with token gap */
.dt-tab { padding: 8px 12px; border-radius: 8px; color: var(--dt-fg, #e6f0ec); background: transparent; border: 1px solid rgb(255 255 255 / 12%); min-inline-size: 44px; min-block-size: 44px; }
.dt-tab.is-active { background: rgb(255 255 255 / 8%); border-color: rgb(255 255 255 / 24%); } /* Tweak (2025-09-30): modal iets hoger gemaakt voor betere leesbaarheid */
.dt-modal__body { max-height: 60vh; overflow: auto; padding: 0 8px 8px; } /* Scouting modal – radiolist opties (1×–5×) */
.dt-radio-list { display: grid; gap: 8px; }
.dt-radio-list__option { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 10px; background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 18%); color: var(--text); padding: 10px 12px; border-radius: 10px; font-size: var(--fs-13); cursor: pointer; transition: background .16s ease, border-color .16s ease, box-shadow .16s ease; }
.dt-radio-list__option:hover, .dt-radio-list__option:focus-visible { background: rgb(45 212 191 / 10%); border-color: rgb(45 212 191 / 65%); box-shadow: 0 0 0 1px rgb(45 212 191 / 55%) inset; outline: none; }
.dt-radio-list__option[aria-checked="true"] { background: linear-gradient(180deg, rgb(45 212 191 / 18%), rgb(45 212 191 / 8%)); border-color: var(--accent); box-shadow: inset 0 0 0 2px rgb(0 229 164 / 32%); }
.dt-radio-list__label { font-weight: 600; }
.dt-radio-list__price { opacity: .9; font-variant-numeric: tabular-nums; font-weight: 600; } /* Player Picker Modal: lijst met groene glas-achtergrond */
.dt-player-picker-list { background: linear-gradient(135deg,rgb(0 229 164 / 18%),rgb(45 212 191 / 10%)), linear-gradient(180deg,rgb(255 255 255 / 10%),rgb(255 255 255 / 4%)); border-radius: 16px; padding: 10px 12px; box-shadow: 0 8px 32px -10px rgb(0 229 164 / 18%); border: 1.5px solid rgb(0 229 164 / 18%); margin: 0; list-style: none; }
.dt-player-picker__item { background: none; border: none; border-radius: 0; margin: 0 0 12px; padding: 0; box-shadow: none; display: flex; }
.dt-player-picker__btn { background: none; border: none; color: inherit; width: 100%; min-height: 56px; padding: 0; border-radius: 0; display: flex; align-items: stretch; justify-content: stretch; text-align: left; font: inherit; cursor: pointer; transition: background .16s; }
.dt-picker-card { background: linear-gradient(180deg,rgb(255 255 255 / 13%),rgb(255 255 255 / 6%)); border: 1.5px solid rgb(255 255 255 / 18%); border-radius: 14px; box-shadow: 0 6px 18px -8px rgb(0 0 0 / 22%); padding: 14px 18px; min-height: 56px; width: 100%; display: flex; align-items: center; justify-content: space-between; transition: background .18s, box-shadow .18s; }
.dt-picker-card:focus { outline: 2px solid var(--accent, #00e5a4); outline-offset: 2px; background: linear-gradient(180deg,rgb(0 229 164 / 13%),rgb(255 255 255 / 9%)); }
.dt-picker-card:hover { background: linear-gradient(180deg,rgb(0 229 164 / 10%),rgb(255 255 255 / 13%)); box-shadow: 0 10px 28px -8px rgb(0 229 164 / 13%); } /* =====================================================================   Viewport overrides for pitch card sizing (stabilize across formation changes)   Rationale: container queries caused size shifts when pitch container width changed slightly   due to layout/meta text. These viewport media queries pin sizes per device, overriding   earlier @container rules.   ===================================================================== */ @media (width >= 1025px) { /* Desktop */ .dt-pitch__player { width: 92px;} .dt-player__card { padding: 6px 8px; border-radius: 12px;} .dt-player__placeholder-img { width: 34px; height: auto;} .dt-player__card.is-empty { min-block-size: 56px;} } @media (width >= 641px) and (width <= 1024px) { /* Tablet */ .dt-pitch__player { width: 78px;} .dt-player__card { padding: 5px 6px;} .dt-player__placeholder-img { width: 34px; height: auto;} .dt-player__card.is-empty { min-block-size: 52px;} } @media (width <= 640px) { /* Mobile */ .dt-pitch__player { width: 72px;} .dt-player__card { padding: 5px 6px; border-radius: 10px;} .dt-player__placeholder-img { width: 24px; height: auto;} .dt-player__card.is-empty { min-block-size: 50px;} } /* Disable container queries for pitch so viewport sizing is authoritative */
.dt-pitch__formation { container-type: normal !important; /* TEMP: stabilize sizes across formation changes; revisit when component is refactored to viewport-only sizing */ }
.dt-picker-card.is-disabled, .dt-picker-card:disabled { opacity: .45; cursor: not-allowed; filter: grayscale(0.2); }
.dt-player-picker__btn:focus { outline: 2px solid var(--accent, #00e5a4); outline-offset: 2px; background: rgb(0 229 164 / 13%); }
.dt-player-picker__btn.is-disabled, .dt-player-picker__btn:disabled { opacity: .45; cursor: not-allowed; filter: grayscale(0.2); } /* === Transfers: Buy modal micro layout tweaks === */ /* Keep flag + name on one line and truncate gracefully */
.dt-player-picker__stats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  margin-top: 6px;
  font-size: .78rem;
  color: rgb(241 245 249 / 88%);
}
.dt-player-picker__stats > span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.dt-player-picker__icon {
  color: var(--gold);
  font-size: .82rem;
}
.dt-player-picker__foot-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 4px;
  border-radius: 999px;
  border: 1px solid rgb(34 211 238 / 55%);
  background: rgb(34 211 238 / 14%);
  color: #cffafe;
  font-size: .7rem;
  font-weight: 700;
  line-height: 1;
}
.dt-buy__player { display: flex; align-items: center; gap: 8px; margin: 8px 8px 6px; }
.dt-buy__flag img { display: block; width: 16px; height: 12px; }
.dt-buy__meta { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.dt-buy__meta .dt-buy__name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dt-buy__meta .dt-buy__club { opacity: .8; }
.dt-buy__stats { list-style: none; padding: 0 8px; margin: 8px 0 12px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 6px 10px; }
.dt-buy__stats li { display: flex; align-items: center; gap: 8px; }
.dt-buy__stats .dt-icon { color: var(--gold); } /* Sell modal tweaks */
.dt-sell__player { display: flex; align-items: center; gap: 8px; margin: 8px 8px 6px; }
.dt-sell__flag img { display: block; width: 16px; height: 12px; }
.dt-sell__meta { display: flex; align-items: baseline; gap: 8px; min-width: 0; }
.dt-sell__meta .dt-sell__name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dt-sell__meta .dt-sell__club { opacity: .8; }
.dt-list__primary { display: grid; text-align: left; }
.dt-list__title { font-weight: 600; }
.dt-list__subtitle { opacity: .7; font-size: .9rem; }
.dt-list__meta { margin-left: 12px; font-size: .95em; color: var(--muted); }
.dt-modal__footer { padding: 8px 16px 14px; display: flex; justify-content: flex-end; border-top: 1px solid rgb(255 255 255 / 8%); } /* Mobile sheet */ @media (width <= 640px) { .dt-modal__dialog { margin: 0; inset: auto 0 0; position: absolute; width: 100%; max-width: 100%; border-bottom-left-radius: 0; border-bottom-right-radius: 0;} /* Mobile: iets hogere sheet zodat meer inhoud zichtbaar is zonder scroll */ .dt-modal__body { max-height: 70vh;} } /* Actieknoppen cluster (boven of onder pitch) */
.dt-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); align-items: center; margin: var(--space-5) 0 var(--space-5); }
.dt-actions--after-hero { margin-top: var(--space-4); }
.dt-actions--left { justify-content: flex-start; }
.dt-actions--center { justify-content: center; }
.dt-actions--right { justify-content: flex-end; } /* Toolbar button consistentie */
.dt-actions .dt-btn { box-shadow: 0 4px 14px -4px rgb(0 0 0 / 45%); }
.dt-actions .dt-btn.dt-btn--primary:not(.dt-btn--submit-auth) { background: linear-gradient(135deg,rgb(0 229 164 / 92%),rgb(0 195 140 / 92%)); } /* Hero variant voor dashboard (compacter dan auth hero) */
.dt-hero--dash { min-height: 190px; padding: var(--space-6); background: linear-gradient(180deg, rgb(255 255 255 / 6%), rgb(255 255 255 / 2%)),     radial-gradient(120% 120% at 75% 15%, rgb(59 130 246 / 18%), transparent 70%),     radial-gradient(120% 120% at 15% 85%, rgb(45 212 191 / 20%), transparent 70%); border: 1px solid rgb(255 255 255 / 12%); box-shadow: 0 8px 24px -6px rgb(0 0 0 / 45%); } /* hoogte verlaagd */
.dt-hero--dash .dt-hero__title { font-size: 1.55rem; }
.dt-hero--dash .dt-hero__watermark { font-size: 160px; }
.dt-hero--dash .dt-hero__mascot { max-width: 190px; width: 32%; right: 2%; left: auto; transform: none; bottom: 0; } /* verplaatst naar rechts & kleiner + iets lager */ /* Feature-flag: verberg meta als er geen deadline is — bewust !important */
.dt-hero--no-deadline .dt-hero__meta { display: none !important; } @media (width <=820px) { .dt-hero--dash { min-height: 200px; padding: var(--space-5) var(--space-5);} } @media (width <=560px) { .dt-hero--dash { min-height: 180px;} } /* Glass util (hergebruik in cards / messages) */
.dt-glass { background: var(--dt-surface-glass); backdrop-filter: var(--dt-surface-glass-blur); border: var(--dt-surface-glass-border); }
.dt-glass--strong { background: var(--dt-surface-glass-strong); border-color: rgb(255 255 255 / 22%); } /* Kleine button variant (vervangt inline style shortlist) */
/* Accent variant (gebruik in shortlist koop-knop) — filled gradient */
.dt-btn--accent { background: linear-gradient(135deg,rgb(45 212 191 / 90%),rgb(59 130 246 / 80%)); color: var(--accent-text-dark); border: 1px solid rgb(0 0 0 / 25%); }
.dt-btn--accent:hover, .dt-btn--accent:focus-visible { background: linear-gradient(135deg,rgb(45 212 191 / 98%),rgb(59 130 246 / 90%)); box-shadow: none; }
.dt-btn--accent .dt-icon { color: currentcolor; } /* Alias varianten voor team messages (template gebruikt dt-msg--*) */
.dt-msg--info { background: linear-gradient(140deg,rgb(59 130 246 / 30%),rgb(21 57 92 / 40%)); border: 1px solid rgb(59 130 246 / 40%); }
.dt-msg--warning { background: linear-gradient(140deg,rgb(245 158 11 / 35%),rgb(128 62 0 / 40%)); border: 1px solid rgb(245 158 11 / 45%); }
.dt-msg--success { background: linear-gradient(140deg,rgb(16 185 129 / 35%),rgb(4 78 56 / 40%)); border: 1px solid rgb(16 185 129 / 45%); } /* Extra ruimte tussen hero en KPI grid */
.dt-dashboard > .dt-kpis:first-of-type { margin-top: 32px; } /* Eerste KPI transparanter */
.dt-kpis > .dt-kpi:first-child { background: radial-gradient(at 82% 22%,rgb(255 255 255 / 12%),transparent 65%),   linear-gradient(145deg,rgb(11 30 45 / 28%),rgb(18 60 90 / 28%)); border-color: rgb(255 255 255 / 8%); } /* verhoogde transparantie */ /* === Utilities (tiny additions for checkout) – 2025-08-24 === */ /* Bewuste util: template-gestuurde toggle — laten staan */
.dt-hidden { display: none !important; }
.dt-min-w-0 { min-width: 0; }
.dt-w-110 { width: 110px; }
.dt-flex-1 { flex: 1 1 auto; } /* === Formation Selector (lineup editor) === */
.dt-formation-selector { margin-bottom: var(--space-6); /* Zorg dat de dropdown niet achter de pitch of sidebar valt */ position: relative; z-index: var(--z-formation); /* boven standaard content en pitch (zonder expliciete z-index) */ }
.dt-formation-selector .dt-card { background: linear-gradient(135deg,rgb(0 229 164 / 12%),rgb(45 212 191 / 8%)),     linear-gradient(180deg,rgb(255 255 255 / 10%),rgb(255 255 255 / 4%)); border: 1.5px solid rgb(0 229 164 / 15%); }

/* === DT: Scouting Watchlist (empty state) =================================== */
.dt-empty { text-align: center; padding: 3rem 1rem; }
.dt-empty__icon { font-size: 2rem; margin-bottom: .5rem; }
.dt-empty__title { font-weight: 600; margin: 0 0 .25rem; }
.dt-empty__subtitle { color: var(--dt-text-muted); margin: 0 0 1rem; }
.dt-formation-selector .dt-card__header { border-bottom: 1px solid rgb(0 229 164 / 12%); }
.dt-formation-selector .dt-select__dropdown { /* extra veiligheid: dropdown altijd boven omliggende content */ z-index: var(--z-formation-dropdown); /* hoger dan generieke .dt-select__dropdown (400) */ }
.dt-formation-switch { position: relative; display: inline-block; /* align popover t.o.v. de trigger, niet de hele card */ }
.dt-formation-switch .dt-lang-trigger {
  gap: 10px;
  min-width: 230px;
  justify-content: space-between;
  border-color: rgb(0 229 164 / 48%);
  box-shadow: 0 0 0 1px rgb(0 229 164 / 20%);
}
.dt-formation-trigger__label { font-size: var(--fs-13); line-height: 1; }
.dt-formation-trigger__label { font-weight: var(--fw-semibold); }
.dt-formation-trigger__caret { color: rgb(255 255 255 / 84%); font-size: .8rem; margin-left: 10px; }
.dt-formation-trigger__icon { color: var(--accent); }
@media (width <= 640px) {
  .dt-formation-switch .dt-lang-trigger { min-width: 0; width: 100%; }
}
.dt-formation-option.is-active { background: linear-gradient(180deg,var(--accent),#02c996); color: var(--accent-text-dark); }
.dt-formation-option.is-active svg { color: var(--accent-text-dark); } /* Formation popover: zelfde look als language én links onder de knop i.p.v. rechts */
.dt-formation-switch .dt-lang-popover { left: 0; right: auto; top: calc(100% + 10px); } /* Formation dropdown options – match translations (dt-lang-option) */
.dt-formation-selector .dt-select__option { background: rgb(255 255 255 / 12%) !important; border: 1px solid rgb(255 255 255 / 22%) !important; color: var(--text) !important; border-radius: 10px !important; padding: 6px 10px !important; /* match .dt-lang-option */ box-shadow: none !important; }
.dt-formation-selector .dt-select__option:hover, .dt-formation-selector .dt-select__option:focus-visible { background: rgb(255 255 255 / 22%) !important; border-color: var(--accent) !important; outline: none !important; box-shadow: none !important; }
.dt-formation-selector .dt-select__option.is-selected { background: linear-gradient(180deg,var(--accent),#02c996) !important; color: var(--accent-text-dark) !important; border-color: var(--accent) !important; box-shadow: none !important; }
.dt-formation-selector .dt-select__option.is-selected::before { display: none !important; } /* Busy state util to block pointer interactions during submit */
.dt-is-busy { pointer-events: none; } /* Optional mini formation badge (only if data-badge="formation" on wrapper) */
.dt-formation-badge { display: inline-flex; flex-direction: column; gap: 2px; margin-right: 8px; align-self: center; }
.dt-formation-badge__row { display: flex; gap: 3px; justify-content: center; }
.dt-formation-badge__dot { width: 6px; height: 6px; border-radius: 50%; background: rgb(255 255 255 / 75%); box-shadow: 0 0 0 1px rgb(0 0 0 / 25%); }
.dt-select__option .dt-formation-badge + .dt-option__label { flex: 1 1 auto; } /* =============================================   Sidebar Player Stat Card (dt-pscard)   Variant accent bar + numeric alignment   ============================================= */
.dt-pscard__name { font-variant-numeric: proportional-nums; }
.dt-pscard__val { font-variant-numeric: tabular-nums; font-weight: 600; } /* Variant accent colors (reuse glass accent hook) */
.dt-list--variant-success .dt-list__item { --_glass-accent: var(--success); }
.dt-list--variant-info .dt-list__item { --_glass-accent: var(--dt-primary); }
.dt-list--variant-warning .dt-list__item { --_glass-accent: var(--warning); }
.dt-list--variant-danger .dt-list__item { --_glass-accent: var(--danger); }
.dt-list--variant-accent .dt-list__item { --_glass-accent: var(--accent); }
.dt-list--variant-gold .dt-list__item { --_glass-accent: var(--gold); }
.dt-list--variant-success .dt-list__item, .dt-list--variant-info .dt-list__item, .dt-list--variant-warning .dt-list__item, .dt-list--variant-danger .dt-list__item, .dt-list--variant-accent .dt-list__item, .dt-list--variant-gold .dt-list__item { position: relative; }
.dt-list--variant-success .dt-list__item::before, .dt-list--variant-info .dt-list__item::before, .dt-list--variant-warning .dt-list__item::before, .dt-list--variant-danger .dt-list__item::before, .dt-list--variant-accent .dt-list__item::before, .dt-list--variant-gold .dt-list__item::before { content: ""; position: absolute; inset: 4px auto 4px 0; width: 3px; border-radius: 2px; background: linear-gradient(var(--_glass-accent), color-mix(in srgb, var(--_glass-accent) 60%, black)); opacity: .85; } @media (width <= 680px) { .dt-pscard__val { min-width: 48px;} } /* Allow disabling the accent ornament in special contexts */
.dt-list--no-ornament .dt-list__item::before { display: none !important; } /* Hide button label on smaller screens → show only the eye icon */ @media (width <= 700px) { .dt-pscard__btn-label { display: none;} } /* Flat variant: remove heavy gradients in small stat cards */
.dt-list--flat.dt-list--glass .dt-list__item { background: rgb(255 255 255 / 8%) !important; border: 1px solid rgb(255 255 255 / 18%) !important; box-shadow: 0 2px 8px -4px rgb(0 0 0 / 45%); }
.dt-list--flat.dt-list--glass .dt-list__item:nth-child(odd) { background: rgb(255 255 255 / 8%) !important; }
.dt-list--flat.dt-list--glass .dt-list__item:hover { background: rgb(255 255 255 / 12%) !important; } /* == Ads basic slot (feature flag: features.ads_basic) == */
.dt-ad-slot { margin: var(--space-6) 0; padding: var(--space-4); background: var(--dt-surface-alt); border: 1px solid var(--dt-border-subtle); border-radius: var(--dt-radius-md); text-align: center; }
.dt-ad-slot__title { font-weight: 600; margin: 0 0 var(--space-2); }
.dt-ad-slot__line { margin: 0 0 var(--space-4); color: var(--dt-text-muted); } /* Inline variant: gebruikt bestaande ads-balk achtergrond/spacing */
.dt-ad-slot.dt-ad-slot--inline { margin: 0; padding: 0; background: transparent; border: 0; text-align: left; }
.dt-ad-inline { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: var(--space-4); }
.dt-ad-inline__copy { min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: rgb(255 255 255 / 90%); }
.dt-ad-inline__title { font-weight: 700; }
.dt-ad-inline__sep { opacity: .7; }
.dt-ad-inline__line { color: var(--dt-text-muted); } /* Inline ad CTA uses the normal button sizing (e.g., .dt-btn--xs) */ /* .dt-ad-inline__cta .dt-btn { padding: 8px 14px; } */ @media (width <= 700px) { .dt-ad-inline__sep { display: none;} .dt-ad-inline__line { display: none;} } /* Footer ads-balk: zorg voor verticale uitlijning en voldoende paddings */
/* DSA transparantie: meta-balk (label + adverteerder + tooltip + meld) */
.dt-ad-slot__meta { display: flex; align-items: center; gap: var(--space-2); flex-wrap: wrap; margin-bottom: var(--space-2); font-size: var(--fs-xs); color: var(--dt-text-muted); }
.dt-ad-slot__label { font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: var(--fs-2xs); padding: 1px 5px; border-radius: 3px; background: rgb(255 255 255 / 12%); color: var(--dt-text-muted); }
.dt-ad-slot__advertiser { color: var(--dt-text-muted); }
/* Tooltip "waarom zie ik dit?" */
.dt-ad-tooltip { position: relative; cursor: help; font-size: var(--fs-xs); color: var(--dt-text-muted); opacity: .7; user-select: none; }
.dt-ad-tooltip:hover, .dt-ad-tooltip:focus { opacity: 1; outline: none; }
.dt-ad-tooltip__bubble { display: none; position: absolute; bottom: calc(100% + 6px); left: 50%; transform: translateX(-50%); min-width: 200px; max-width: 280px; padding: var(--space-2) var(--space-3); background: var(--dt-surface); border: 1px solid var(--dt-border-subtle); border-radius: var(--dt-radius-sm); font-size: var(--fs-xs); color: var(--dt-text); line-height: 1.4; z-index: 50; white-space: normal; pointer-events: none; }
.dt-ad-tooltip:hover .dt-ad-tooltip__bubble, .dt-ad-tooltip:focus .dt-ad-tooltip__bubble { display: block; }
/* Meld-knop (ghost, xs) */
.dt-btn-ghost-xs { background: transparent; border: none; padding: 0; font-size: var(--fs-xs); color: var(--dt-text-muted); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; opacity: .7; }
.dt-btn-ghost-xs:hover { opacity: 1; color: var(--dt-text); }
/* "Meld advertentie" modal */
.dt-ad-report-modal { padding: 0; border: 1px solid var(--dt-border-subtle); border-radius: var(--dt-radius-md); background: var(--dt-surface); color: var(--dt-text); max-width: 440px; width: 100%; }
.dt-ad-report-modal::backdrop { background: rgb(0 0 0 / 55%); }
.dt-ad-report-form { padding: var(--space-6); display: flex; flex-direction: column; gap: var(--space-4); position: relative; }
.dt-ad-report-modal__title { font-size: var(--fs-lg); font-weight: 700; margin: 0; }
.dt-ad-report-modal__close { position: absolute; top: var(--space-4); right: var(--space-4); background: transparent; border: none; font-size: var(--fs-lg); cursor: pointer; color: var(--dt-text-muted); line-height: 1; }
.dt-ad-report-modal__close:hover { color: var(--dt-text); }
.dt-ad-report-modal__actions { display: flex; gap: var(--space-3); }
.dt-ad-report-modal__success { color: var(--color-success, #4ade80); font-weight: 600; }
.dt-site-footer__ads { padding: var(--space-4) 0; } /* == Progressbar (compact) == */
.dt-progress { position: relative; height: 8px; background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 18%); border-radius: 6px; overflow: hidden; }
.dt-progress__bar { height: 100%; background: linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 65%, #0b1828)); box-shadow: inset 0 0 6px rgb(0 0 0 / 25%); transition: width .25s ease; }
.dt-progress__text { position: absolute; right: 8px; top: 50%; transform: translateY(-50%); font-size: var(--fs-2xs); color: rgb(255 255 255 / 85%); } @media (prefers-reduced-motion: reduce) { .dt-progress__bar { transition: none;} } /* =====================================================================   Transfers Page Enhancements (filters + header)   ===================================================================== */
.dt-transfers__header { display: flex; align-items: center; gap: 0.75rem; }
.dt-transfers__header .dt-icon--lg { font-size: 1.65rem; width: 1.65rem; height: 1.65rem; line-height: 1; }
.dt-transfers__title { font-size: 1.1rem; font-weight: 600; letter-spacing: .5px; }
.dt-transfers__quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  padding: .65rem;
  border-radius: 12px;
  border: 1px solid rgb(255 255 255 / 14%);
  background: rgb(10 18 30 / 42%);
}
.dt-filters-row { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 0.75rem; }
.dt-filters-row > label { display: flex; flex-direction: column; }
.dt-filters-row__search { flex: 1 1 220px; } @media (width >= 800px) { .dt-filters-row { flex-wrap: nowrap;} .dt-filters-row > label select, .dt-filters-row > label input { min-width: 150px;} }
.dt-filters-row [type="reset"] { align-self: stretch; display: flex; align-items: center; gap: 0.5rem; }
.dt-filters-row__submit, .dt-filters-row__reset { min-height: var(--dt-input-height); display: flex; align-items: center; }
.dt-filters-row__reset { padding: 0 18px; }
.dt-filters-row__toggle { min-height: var(--dt-input-height); display: inline-flex; align-items: center; gap: .5rem; }
.dt-transfers__filters-fieldset { margin-bottom: 0; }
.dt-filters-advanced {
  max-height: 0;
  opacity: 0;
  overflow: clip;
  transform: translateY(-6px);
  transition: max-height .24s ease, opacity .2s ease, transform .2s ease;
}
.dt-filters-advanced.is-open {
  max-height: 600px;
  opacity: 1;
  overflow: visible;
  transform: none;
}
.dt-filters-row--secondary { margin-top: .5rem; align-items: center; }
.dt-filters-group { display: flex; align-items: center; gap: 0.5rem; }
.dt-filters-group > label { display: flex; align-items: center; }
.dt-transfers__filters-fieldset .dt-filters-row--sort { margin-top: 0.5rem; }
.dt-transfers__filters-fieldset .dt-filters-row__sort { display: flex; flex-direction: column; }
.dt-transfers__filters-fieldset .dt-filters-row__sort .dt-select { min-width: 220px; max-width: 360px; }
.dt-transfers__filters-fieldset .dt-filters-row--secondary { flex-direction: column; align-items: stretch; gap: 0.75rem; }
.dt-transfers__filters-fieldset .dt-filters-row--secondary > label,
.dt-transfers__filters-fieldset .dt-filters-row--secondary > .dt-filters-group,
.dt-transfers__filters-fieldset .dt-filters-row--secondary > fieldset { width: 100%; margin: 0; }
.dt-transfers__filters-fieldset .dt-filters-group--range { flex-direction: column; align-items: stretch; width: 100%; }
.dt-transfers__filters-fieldset .dt-filters-group--range > label { flex: 1 1 auto; min-width: 0; width: 100%; max-width: none; }
.dt-transfers__filters-fieldset .dt-filters-group--range .dt-input--sm,
.dt-transfers__filters-fieldset .dt-filters-group--range .dt-select .dt-input--sm,
.dt-transfers__filters-fieldset .dt-filters-group--range .dt-select .dt-select__button { width: 100%; max-width: none; }
.dt-input-icon--gold .dt-icon { color: var(--gold); }
.dt-input-icon--gold .dt-input:focus + .dt-icon { color: var(--gold); }
.dt-filters-row__separator { color: var(--dt-c-fg-muted, #8a919e); padding: 0 0.125rem; line-height: 1; user-select: none; }
.dt-input--sm { max-width: 130px; }
@media (width <=640px) {
  .dt-filters-row--secondary { align-items: stretch; }
  .dt-filters-group { width: 100%; flex-wrap: wrap; gap: 0.5rem; }
  .dt-filters-group > label { flex: 1 1 calc(50% - 0.25rem); min-width: 0; }
  .dt-filters-group .dt-select { width: 100%; }
  .dt-filters-group .dt-input--sm,
  .dt-filters-group .dt-select .dt-input--sm,
  .dt-filters-group .dt-select .dt-select__button { width: 100%; max-width: none; }
  .dt-filters-group .dt-filters-row__separator { display: none; }
  .dt-transfers__filters-fieldset .dt-filters-row__sort .dt-select { max-width: none; min-width: 0; width: 100%; }
}
.dt-roster-sort-form { min-width: 0; }
.dt-roster-sort { min-width: 220px; position: relative; z-index: 1200; }
.dt-roster-sort .dt-input, .dt-roster-sort .dt-select__button { height: 34px; border-radius: 12px; font-size: 12px; }
.dt-roster-sort .dt-select__dropdown { top: calc(100% + 6px); padding: 8px; max-height: 220px; border-radius: 12px; z-index: 1300; }
.dt-roster-sort .dt-select__option { margin: 4px 0; padding: 8px 10px; border-radius: 8px; font-size: 12px; }
@media (width <=640px) { .dt-roster-sort { min-width: 170px; max-width: 62vw; } }
/* Rosterlist variant voor Transfers (kolommen: Player | Club | Age | Stats | Value | Actions) */
.dt-rosterlist--transfers .dt-rosterlist__head, .dt-rosterlist--transfers .dt-roster-row { display: grid; grid-template-columns: 32px minmax(180px,1.55fr) 70px minmax(140px,1fr) 56px 150px 140px minmax(240px,auto); gap: 14px; align-items: center; }
.dt-rosterlist--transfers .rl-player { display: flex; align-items: center; gap: 8px; min-width: 0; }
.dt-rosterlist--transfers .rl-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dt-rosterlist--transfers .rl-player .rl-name { font-size: 14px; font-weight: 600; }
.dt-rosterlist--transfers .rl-club { font-size: 13px; opacity: .9; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
.dt-rosterlist--transfers .rl-pos-abbr, .dt-rosterlist--transfers .rl-age, .dt-rosterlist--transfers .rl-stats .rl-stat span, .dt-rosterlist--transfers .rl-value span { font-size: 12px; }
.dt-rosterlist--transfers .rl-age { text-align: center; }
.dt-rosterlist--transfers .rl-stats { display: flex; gap: 14px; align-items: center; font-size: 12px; }
.dt-rosterlist--transfers .rl-stats .rl-stat { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; }
.dt-rosterlist--transfers .rl-value { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; font-weight: 500; font-variant-numeric: tabular-nums; min-width: 120px; }
.dt-rosterlist--transfers .rl-value__price { display: flex; align-items: center; gap: 4px; }
.dt-rosterlist--transfers .rl-actions { display: flex; justify-content: flex-end; gap: 6px; }
.dt-rosterlist--transfers .dt-btn.dt-btn--sm { min-height: 30px; } /* Placeholder flag (DT) wanneer geen landcode) */
.dt-rosterlist--transfers .rl-flag--placeholder { display: inline-flex; align-items: center; justify-content: center; font-size: 9px; font-weight: 700; background: linear-gradient(135deg,rgb(255 255 255 / 18%),rgb(255 255 255 / 8%)); color: var(--accent); border: 1px solid rgb(255 255 255 / 25%); border-radius: 4px; inline-size: 20px; block-size: 20px; letter-spacing: .5px; } /* =====================================================================   Pagination (globaal herbruikbaar) – .dt-pagination   Structure (ul>li>a|span), active pagina wordt als span weergegeven.   ===================================================================== */
.dt-pagination { margin: 24px 0; display: flex; justify-content: center; font-size: 13px; }
.dt-pagination ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; flex-wrap: wrap; }
.dt-pagination li { display: inline-flex; }
.dt-pagination a, .dt-pagination span { display: inline-flex; align-items: center; justify-content: center; padding: 6px 12px; border: 1px solid rgb(255 255 255 / 18%); background: rgb(255 255 255 / 8%); border-radius: 10px; text-decoration: none; color: var(--text); font-weight: 500; min-width: 44px; gap: 6px; }
.dt-pagination a:hover, .dt-pagination a:focus-visible { background: rgb(255 255 255 / 14%); border-color: rgb(255 255 255 / 26%); outline: none; }
.dt-pagination .is-disabled { opacity: .45; cursor: default; }
.dt-pagination .is-active { background: linear-gradient(135deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 70%, #0b1828)); color: var(--accent-text-dark); border-color: var(--accent); font-weight: 600; } @media (width <= 600px) { .dt-pagination a, .dt-pagination span { padding: 6px 10px; min-width: 38px;} } /* Button varianten (success / warning) hergebruiken bestaande token kleuren) */
.dt-btn--success { background: linear-gradient(135deg,var(--success) 0%, color-mix(in srgb,var(--success) 70%, #033)); color: #062a1d; border: 1px solid rgb(0 0 0 / 30%); }
.dt-btn--success:hover, .dt-btn--success:focus-visible { background: linear-gradient(135deg,var(--success) 8%, color-mix(in srgb,var(--success) 85%, #033)); color: #062a1d; box-shadow: none; }
.dt-btn--warning { background: linear-gradient(135deg,var(--warning) 0%, color-mix(in srgb,var(--warning) 70%, #4a2e00)); color: #311d00; border: 1px solid rgb(0 0 0 / 30%); }
.dt-btn--warning:hover, .dt-btn--warning:focus-visible { background: linear-gradient(135deg,var(--warning) 8%, color-mix(in srgb,var(--warning) 85%, #4a2e00)); color: #311d00; box-shadow: none; }
.dt-btn--success .dt-icon, .dt-btn--warning .dt-icon { color: currentcolor; } @media (width <= 1180px) { .dt-rosterlist--transfers .dt-rosterlist__head,   .dt-rosterlist--transfers .dt-roster-row { grid-template-columns: minmax(170px,1.5fr) 60px 0 50px 140px 130px 170px;} .dt-rosterlist--transfers .rl-club { display: none;} } @media (width <= 980px) { .dt-rosterlist--transfers .dt-rosterlist__head,   .dt-rosterlist--transfers .dt-roster-row { grid-template-columns: minmax(160px,1.5fr) 56px 50px 130px 120px 170px;} .dt-rosterlist--transfers .rl-club { display: none;} .dt-rosterlist--transfers .rl-age { display: none;} } @media (width <= 760px) { .dt-rosterlist--transfers .dt-rosterlist__head,   .dt-rosterlist--transfers .dt-roster-row { grid-template-columns: minmax(140px,1fr) 50px 120px 110px 160px;} .dt-rosterlist--transfers .rl-club,   .dt-rosterlist--transfers .rl-age { display: none;} .dt-rosterlist--transfers .rl-pos { font-size: 12px;} }

/* ===================== PAGES: NOTIFICATIONS ===================== */
.dt-notifications { display: grid; gap: 12px; }

.dt-notifications__toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.dt-notifications__status {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.dt-rosterlist--notifications-mail .dt-rosterlist__head,
.dt-rosterlist--notifications-mail .dt-roster-row {
  grid-template-columns: minmax(340px, 1fr) 180px 170px 140px;
}

.dt-rosterlist--notifications-mail .dt-roster-row {
  align-items: stretch;
  position: relative;
}

.dt-mailbox__item {
  border-top: 1px solid rgb(255 255 255 / 8%);
  overflow: hidden;
}

.dt-notification-row:hover { background: rgb(255 255 255 / 7%); }

.dt-mailbox__item--unread {
  background: linear-gradient(180deg, rgb(2 201 150 / 9%), rgb(255 255 255 / 4%));
}

.dt-notification-row__summary {
  width: 100%;
  border: 0;
  background: transparent;
  padding: 10px 12px;
  display: grid;
  grid-template-columns: 16px 22px minmax(0, 1fr);
  gap: 8px;
  align-items: center;
  text-align: left;
  color: var(--text);
  cursor: pointer;
}

.dt-notification-row__summary:focus-visible {
  outline: none;
  box-shadow: var(--dt-focus-ring);
  border-radius: 10px;
}

.dt-mailbox__status {
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: transparent;
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 24%);
}

.dt-mailbox__item--unread .dt-mailbox__status {
  background: rgb(2 201 150 / 90%);
  box-shadow: 0 0 0 4px rgb(2 201 150 / 22%);
}

.dt-mailbox__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  color: var(--accent);
}

.dt-mailbox__subject {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.dt-mailbox__title {
  font-size: .95rem;
  line-height: 1.2;
  color: var(--text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dt-mailbox__preview {
  font-size: .8rem;
  color: var(--dt-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.dt-notification-row__actions {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding-right: 8px;
}

.dt-notification-row__panel {
  padding: 0 12px 12px 58px;
  border-top: 1px dashed rgb(255 255 255 / 16%);
  background: rgb(255 255 255 / 3%);
}

.dt-notification-row__body {
  padding-top: 10px;
  font-size: .9rem;
  line-height: 1.5;
  color: var(--text);
}

.dt-notification-row__panel-actions {
  display: flex;
  justify-content: flex-start;
  padding-top: 10px;
}

.dt-mailbox__item.is-open {
  box-shadow: inset 2px 0 0 rgb(2 201 150 / 70%);
}

.dt-mailbox__item.is-open .dt-notification-row {
  background: rgb(255 255 255 / 8%);
}

@media (width <= 1100px) {
  .dt-rosterlist--notifications-mail .dt-rosterlist__head,
  .dt-rosterlist--notifications-mail .dt-roster-row {
    grid-template-columns: minmax(260px, 1fr) 150px 140px 110px;
  }
}

@media (width <= 860px) {
  .dt-rosterlist--notifications-mail .rl-club,
  .dt-rosterlist--notifications-mail .rl-age,
  .dt-rosterlist--notifications-mail .dt-rosterlist__head .rl-club,
  .dt-rosterlist--notifications-mail .dt-rosterlist__head .rl-age {
    display: none;
  }

  .dt-rosterlist--notifications-mail .dt-rosterlist__head,
  .dt-rosterlist--notifications-mail .dt-roster-row {
    grid-template-columns: 1fr 110px;
  }
}

@media (width <= 640px) {
  .dt-notification-row__panel {
    padding-left: 12px;
  }

  .dt-notification-row__actions .dt-btn {
    width: 100%;
    justify-content: center;
  }
}
/* ===================== END PAGES: NOTIFICATIONS ===================== */

/* Rosterlist variant voor Historie (kolommen: Seizoen | Gespeeld | Goals | Assists | Kaarten | Punten) */
.dt-rosterlist--history .dt-rosterlist__head,
.dt-rosterlist--history .dt-roster-row {
	display: grid;
	grid-template-columns: 90px 90px 80px 90px 90px 90px;
	gap: 12px;
	align-items: center;
}
.dt-rosterlist--history .dt-roster-row { font-variant-numeric: tabular-nums; }

@media (width <= 980px) {
	.dt-rosterlist--history .dt-rosterlist__head,
	.dt-rosterlist--history .dt-roster-row {
		grid-template-columns: 80px 80px 70px 80px 80px 80px;
	}
}

@media (width <= 760px) {
	.dt-rosterlist--history .dt-rosterlist__head,
	.dt-rosterlist--history .dt-roster-row {
		grid-template-columns: 70px 60px 60px 60px 70px 70px;
		gap: 10px;
	}
}

/* =====================================================================
	TOASTS (dt-toast) – lightweight notifications
	- Single root container .dt-toast-root
	- Types: success/info/warning/error
	- Z-index uses --z-toast to sit above modals when needed
	===================================================================== */
/* Cookie consent — positioning en z-index voor app-pagina's (front.css heeft eigen definitie voor marketing) */
.dt-cookie-consent__backdrop { position: fixed; inset: 0; z-index: 1395; background: rgb(0 0 0 / 45%); }
.dt-cookie-consent { position: fixed; left: 0; right: 0; bottom: 0; z-index: 1400; background: #101828; border-top: 1px solid rgb(255 255 255 / 14%); box-shadow: 0 -10px 28px -12px rgb(0 0 0 / 60%); }
.dt-cookie-consent[hidden], .dt-cookie-consent__backdrop[hidden] { display: none !important; }
.dt-toast-root { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); display: grid; gap: 8px; z-index: var(--z-toast); width: min(96%, 520px); pointer-events: none; }
.dt-toast { pointer-events: auto; display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; border: 1px solid rgb(255 255 255 / 18%); background: linear-gradient(180deg, rgb(16 24 40 / 92%), rgb(16 24 40 / 82%)); color: var(--text); box-shadow: 0 12px 28px -10px rgb(0 0 0 / 65%); animation: dtFadeInUp .35s ease both; }
.dt-toast.is-leaving { opacity: 0; transform: translate(-50%, 10px); transition: opacity .18s ease, transform .18s ease; }
.dt-toast__icon { width: 28px; height: 28px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; background: rgb(255 255 255 / 10%); }
.dt-toast__body { font-size: var(--fs-sm); line-height: 1.35; }
.dt-toast__close { background: transparent; border: 0; color: var(--dt-text); opacity: .8; cursor: pointer; width: 28px; height: 28px; border-radius: 6px; display: inline-flex; align-items: center; justify-content: center; }
.dt-toast__close:hover,.dt-toast__close:focus { opacity: 1; outline: none; box-shadow: var(--dt-focus-ring); background: rgb(255 255 255 / 10%); }
/* Tone variants */
.dt-toast--success { border-color: rgb(34 197 94 / 45%); background: linear-gradient(180deg, rgb(16 80 54 / 75%), rgb(16 80 54 / 60%)); }
.dt-toast--info { border-color: rgb(59 130 246 / 45%); background: linear-gradient(180deg, rgb(21 90 160 / 75%), rgb(21 90 160 / 60%)); }
.dt-toast--warning { border-color: rgb(245 158 11 / 55%); background: linear-gradient(180deg, rgb(120 62 0 / 72%), rgb(120 62 0 / 54%)); }
.dt-toast--error { border-color: rgb(239 68 68 / 55%); background: linear-gradient(180deg, rgb(110 23 23 / 74%), rgb(110 23 23 / 58%)); }

/* =============================================================
	Header icon-only toolbar (.dt-iconbar / .dt-iconbtn)
	- WCAG: min 44x44 targets, visible focus ring
	============================================================= */
.dt-iconbar { display: inline-flex; align-items: center; gap: 8px; margin-left: auto; }
.dt-iconbtn { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 11px; background: rgb(7 13 26 / 55%); border: 1px solid rgb(255 255 255 / 22%); color: #94a3b8; text-decoration: none; cursor: pointer; transition: background .15s, border-color .15s, color .15s; flex-shrink: 0; }
.dt-iconbtn:hover,.dt-iconbtn:focus { background: rgb(255 255 255 / 12%); border-color: rgb(255 255 255 / 35%); color: #eef2f6; outline: none; }
.dt-iconbtn:focus-visible { box-shadow: var(--dt-focus-ring); }
.dt-iconbtn__inner { display: inline-flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: transparent; border: 0; color: inherit; cursor: pointer; border-radius: inherit; }
.dt-iconbar__badge { position: absolute; top: 2px; right: 4px; min-width: 18px; height: 18px; padding: 0 5px; display: inline-flex; align-items: center; justify-content: center; background: var(--danger); color: #fff; font-size: 11px; font-weight: var(--fw-bold); line-height: 1; border-radius: 999px; box-shadow: 0 2px 6px -2px rgb(0 0 0 / 50%); }

/* Mobile menu: iconbar full-width en gelijk verdeelde knoppen */
.dt-mobile-menu__section .dt-iconbar { display: grid; grid-template-columns: repeat(6, 1fr); width: 100%; gap: 12px; margin-top: 8px; justify-items: center; align-items: center; }
.dt-mobile-menu__section .dt-iconbtn { width: 44px; height: 44px; border-radius: 50%; }
.dt-iconbtn i { font-size: 18px; color: inherit; }
.dt-iconbtn--gold { color: var(--gold); border-color: rgb(212 175 55 / 35%); }
.dt-iconbtn--gold:hover,.dt-iconbtn--gold:focus { color: var(--yellow); border-color: rgb(212 175 55 / 60%); }

@media (width <= 380px) {
	.dt-mobile-menu__section .dt-iconbar { grid-template-columns: repeat(3, 1fr); }
}

/* =============================================================
	Mobile menu sections (team + language selectors)
	- Matches glassy list style used elsewhere
	============================================================= */
.dt-mobile-menu__section { margin-top: 24px; }
.dt-mobile-menu__subtitle { margin: 0 0 10px; font-size: var(--fs-13); color: rgb(255 255 255 / 80%); font-weight: var(--fw-semibold); }
.dt-mobile-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.dt-mobile-list__item { width: 100%; text-align: left; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 12px; background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 18%); color: var(--text); font-size: var(--fs-13); cursor: pointer; }
.dt-mobile-list__item:hover,.dt-mobile-list__item:focus-visible { background: rgb(45 212 191 / 10%); border-color: rgb(45 212 191 / 55%); box-shadow: inset 0 0 0 1px rgb(45 212 191 / 45%); outline: none; }
.dt-mobile-list__item.is-active { background: linear-gradient(180deg,var(--accent),#02c996); color: var(--accent-text-dark); border-color: var(--accent); box-shadow: 0 4px 12px -6px rgb(0 229 164 / 55%); }

/* =============================================================
	Lock background scroll when mobile menu is open
	- Use high-specificity and !important to override earlier mobile rules
	============================================================= */
@media (width <=900px) {
  body.is-mobmenu-open { overflow: hidden !important; }
  body.is-mobmenu-open .dt-site-main { overflow: hidden !important; }
}

/* =============================================================
	Global a11y: enforce 44×44 targets on other icon-only buttons
	============================================================= */
@media (width <=900px) {
  .dt-alert__close,
  .dt-toast__close,
  .dt-password-toggle .dt-toggle-btn { width: 44px; height: 44px; padding: 8px; }
  .dt-alert__close:focus-visible,
  .dt-toast__close:focus-visible,
  .dt-password-toggle .dt-toggle-btn:focus-visible { outline: none; box-shadow: var(--dt-focus-ring); }
}

/* ── Compare checkbox (transfers list) ── */
.rl-compare { display: flex; align-items: center; justify-content: center; }
.dt-compare-check { display: inline-flex; cursor: pointer; }
.dt-compare-check__input { position: absolute; opacity: 0; width: 0; height: 0; }
.dt-compare-check__box { width: 18px; height: 18px; border: 2px solid var(--dt-c-border, #d1d5db); border-radius: 4px; display: inline-block; transition: background 0.15s, border-color 0.15s; }
.dt-compare-check__input:checked + .dt-compare-check__box { background: var(--dt-c-accent, #d4af37); border-color: var(--dt-c-accent, #d4af37); }
.dt-compare-check__input:focus-visible + .dt-compare-check__box { box-shadow: var(--dt-focus-ring); }

/* ── Compare floating action bar ── */
.dt-compare-fab { position: fixed; bottom: 1.5rem; left: 50%; transform: translateX(-50%); z-index: 900; display: flex; align-items: center; gap: 0.75rem; background: var(--dt-c-bg-card, #1a1d23); border: 1px solid var(--dt-c-border, #d1d5db); border-radius: 999px; padding: 0.5rem 0.75rem 0.5rem 1rem; box-shadow: 0 4px 24px rgb(0 0 0 / 25%); }
.dt-compare-fab__count { font-weight: 700; color: var(--dt-c-accent, #d4af37); font-size: 1rem; }
.dt-compare-fab__label { font-size: 0.875rem; color: var(--dt-c-fg-muted, #8a919e); }

/* ── Compare page layout ── */
.dt-compare__title { font-size: 1.25rem; font-weight: 700; }
.dt-compare__grid { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1.5rem; align-items: start; margin-bottom: 2rem; }
.dt-compare__col { min-width: 0; }
.dt-compare__vs { font-size: 1.5rem; font-weight: 700; color: var(--dt-c-fg-muted, #8a919e); align-self: center; text-align: center; padding-top: 1rem; }
.dt-compare__player-header { display: flex; align-items: center; gap: 1rem; padding: 1rem; background: var(--dt-c-bg-card, #f9fafb); border-radius: var(--dt-radius-md, 8px); border: 1px solid var(--dt-c-border, #e5e7eb); }
.dt-compare__player-header--empty { justify-content: center; min-height: 80px; }
.dt-compare__player-header--search { flex-direction: column; position: relative; }
.dt-compare__avatar { width: 56px; height: 56px; border-radius: 50%; object-fit: cover; flex-shrink: 0; }
.dt-compare__player-name { font-size: 1.1rem; font-weight: 700; margin: 0 0 0.25rem; }
.dt-compare__section-title { font-size: 0.875rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; color: var(--dt-c-fg-muted, #8a919e); margin: 1.5rem 0 0.5rem; padding-bottom: 0.25rem; border-bottom: 1px solid var(--dt-c-border, #e5e7eb); }
.dt-compare__table { display: flex; flex-direction: column; }
.dt-compare__row { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 0.5rem; padding: 0.5rem 0; border-bottom: 1px solid var(--dt-c-border-subtle, #f0f0f0); align-items: center; }
.dt-compare__label { font-size: 0.8125rem; color: var(--dt-c-fg-muted, #8a919e); font-weight: 500; }
.dt-compare__value { font-size: 0.9rem; font-weight: 500; text-align: center; }
.dt-compare__value--better { font-weight: 700; color: var(--dt-c-success, #22c55e); }
.dt-compare__value--good { color: var(--dt-c-success, #22c55e); }
.dt-compare__value--bad { color: var(--dt-c-danger, #ef4444); }
.dt-compare__empty { text-align: center; padding: 3rem 1rem; color: var(--dt-c-fg-muted, #8a919e); }

/* Compare search results dropdown */
.dt-compare__search-results { position: absolute; top: 100%; left: 0; right: 0; z-index: 10; background: var(--dt-c-bg-card, #fff); border: 1px solid var(--dt-c-border, #e5e7eb); border-radius: var(--dt-radius-md, 8px); max-height: 240px; overflow-y: auto; list-style: none; margin: 0.25rem 0 0; padding: 0.25rem 0; box-shadow: 0 4px 12px rgb(0 0 0 / 10%); }
.dt-compare__search-item { display: flex; justify-content: space-between; align-items: center; padding: 0.5rem 0.75rem; cursor: pointer; gap: 0.5rem; }
.dt-compare__search-item:hover { background: var(--dt-c-bg-hover, #f3f4f6); }
.dt-compare__search-name { font-weight: 600; font-size: 0.875rem; }
.dt-compare__search-meta { font-size: 0.75rem; color: var(--dt-c-fg-muted, #8a919e); }

/* Compare responsive */
@media (width <= 768px) {
  .dt-compare__grid { grid-template-columns: 1fr; gap: 0.75rem; }
  .dt-compare__vs { padding: 0; font-size: 1.125rem; }
  .dt-compare__row { grid-template-columns: 1fr 1fr 1fr; font-size: 0.8125rem; }
  .dt-rosterlist--transfers .rl-compare { display: none; }
  .dt-rosterlist--transfers .dt-rosterlist__head, .dt-rosterlist--transfers .dt-roster-row { grid-template-columns: minmax(140px,1.55fr) 50px minmax(100px,1fr) 40px 120px 100px 140px; }
  .dt-compare-fab { bottom: 1rem; padding: 0.375rem 0.625rem 0.375rem 0.75rem; }
}

/* ====================== FINANCIAL / GROOTBOEK ====================== */
.dt-financial { max-width: var(--content-max); margin-inline: auto; }

/* Progress bar */
.dt-financial__progress { margin-top: var(--space-3); }
.dt-financial__progress-label { font-size: var(--fs-xs); color: var(--muted); margin-bottom: 6px; font-weight: var(--fw-semibold); }
.dt-financial__progress-bar { height: 8px; background: rgb(255 255 255 / 10%); border-radius: 4px; overflow: hidden; }
.dt-financial__progress-fill { height: 100%; background: linear-gradient(90deg, var(--accent, #3b82f6), #10b981); border-radius: 4px; transition: width .4s ease; }
.dt-financial__progress-fill--warn { background: linear-gradient(90deg, #f59e0b, #ef4444); }

/* Transaction list (ledger rows) */
.dt-financial__list { display: flex; flex-direction: column; }
.dt-financial__list-head { display: grid; grid-template-columns: 90px 160px 1fr 110px 130px; gap: 8px; padding: 8px 12px; font-size: var(--fs-xs); font-weight: var(--fw-semibold); color: var(--muted); text-transform: uppercase; letter-spacing: .5px; border-bottom: 1px solid rgb(255 255 255 / 12%); }
.dt-financial__row { display: grid; grid-template-columns: 90px 160px 1fr 110px 130px; gap: 8px; padding: 10px 12px; border-bottom: 1px solid rgb(255 255 255 / 6%); align-items: center; transition: background .15s ease; }
.dt-financial__row:hover { background: rgb(255 255 255 / 4%); }
.dt-financial__row--income { border-left: 3px solid var(--success, #10b981); }
.dt-financial__row--expense { border-left: 3px solid var(--danger, #ef4444); }

/* Column sizing */
.dt-financial__col-date { display: flex; align-items: center; font-size: var(--fs-sm); }
.dt-financial__col-category { display: flex; align-items: center; gap: 6px; font-size: var(--fs-sm); }
.dt-financial__col-desc { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--fs-sm); }
.dt-financial__col-amount { text-align: right; font-weight: var(--fw-semibold); font-size: var(--fs-sm); }
.dt-financial__col-balance { text-align: right; display: flex; align-items: center; justify-content: flex-end; gap: 4px; font-size: var(--fs-sm); }

/* Responsive: stack on mobile */
@media (width <= 768px) {
  .dt-financial__list-head { display: none; }
  .dt-financial__row { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: 4px 8px; padding: 12px; }
  .dt-financial__col-date { order: 1; }
  .dt-financial__col-amount { order: 2; justify-self: end; }
  .dt-financial__col-category { order: 3; }
  .dt-financial__col-balance { order: 4; justify-self: end; }
  .dt-financial__col-desc { order: 5; grid-column: 1 / -1; white-space: normal; }
}

/* =====================================================================
   PITCH PLAYER CARD (dt-pc)
   ===================================================================== */
.dt-pc { display:flex; flex-direction:column; align-items:center; width:var(--pc-size,64px); cursor:pointer; }
.dt-pc__shirt { position:relative; width:var(--pc-size,64px); height:var(--pc-size,64px); flex-shrink:0; filter:drop-shadow(0 3px 8px rgb(0 0 0 / 60%)); transition:filter .2s; }
.dt-pc__shirt svg { width:100%; height:100%; display:block; }
.dt-pc:hover .dt-pc__shirt { filter:drop-shadow(0 0 10px rgb(255 255 255 / 20%)) drop-shadow(0 3px 8px rgb(0 0 0 / 60%)); }
.dt-pc__num { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; padding-top:14px; font-size:1rem; font-weight:900; color:#fff; text-shadow:0 1px 4px rgb(0 0 0 / 90%),0 0 10px rgb(0 0 0 / 70%); letter-spacing:-.5px; pointer-events:none; }
.dt-pc__info { width:var(--pc-size,64px); border:1.5px solid rgb(255 255 255 / 12%); border-top:none; border-radius:0 0 5px 5px; background:rgb(8 16 32 / 70%); overflow:hidden; }
.dt-pc__pos { width:100%; background:var(--shirt-color,#1e40af); text-align:center; font-size:.56rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:rgb(255 255 255 / 95%); padding:2px 0; line-height:1.5; }
.dt-pc__bar { width:100%; height:6px; background:rgb(255 255 255 / 6%); }
.dt-pc__bar-fill { height:100%; transition:width .3s ease; }
.dt-bar--lo  { background:linear-gradient(90deg,#ef4444,#f97316); }
.dt-bar--mid { background:linear-gradient(90deg,#f97316,#eab308); }
.dt-bar--hi  { background:linear-gradient(90deg,#eab308,#84cc16); }
.dt-bar--top { background:linear-gradient(90deg,#84cc16,#22c55e); }
.dt-pc__name { font-size:.56rem; color:#94a3b8; text-align:center; width:100%; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; font-weight:500; padding:3px 3px; line-height:1.3; }
.dt-pc__name--empty { color:#334155; font-style:italic; }
.dt-pc.is-empty .dt-pc__shirt { opacity:.25; }
.dt-pc.is-empty .dt-pc__pos   { opacity:.35; }

/* Responsive: klein scherm → 48px shirt, naam verbergen */
@media (width <= 400px) {
  .dt-pitch .dt-pc { --pc-size: 48px; }
  .dt-pitch .dt-pc__num { font-size:.75rem; padding-top:10px; }
  .dt-pitch .dt-pc__pos { font-size:.48rem; }
  .dt-pitch .dt-pc__name { display:none; }
}

/* ───────────────────────────────────────────────── */
/* QR CODE PANEL                                     */
/* ───────────────────────────────────────────────── */
.dt-qr-panel__body { display: flex; flex-direction: column; align-items: center; gap: var(--space-4); }
.dt-qr-panel__code { background: #fff; padding: 16px; border-radius: var(--radius-lg); display: inline-flex; }
.dt-qr-panel__code svg { width: 200px; height: 200px; }
.dt-qr-panel__url-wrap { display: flex; gap: var(--space-2); width: 100%; max-width: 480px; }
.dt-qr-panel__url { font-family: var(--ff-mono, monospace); font-size: var(--fs-sm); flex: 1; min-width: 0; }

@media print {
  body * { visibility: hidden !important; }
  .dt-qr-panel, .dt-qr-panel * { visibility: visible !important; }
  .dt-qr-panel { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); }
  .dt-qr-panel__code svg { width: 300px; height: 300px; }
  .dt-qr-panel__url-wrap, .dt-actions { display: none !important; }
}

/* ───────────────────────────────────────────────── */
/* SPINNER / LOADING INDICATOR                       */
/* ───────────────────────────────────────────────── */
.dt-spinner {
  display: inline-block;
  width: 40px;
  height: 40px;
  border: 4px solid rgb(255 255 255 / 10%);
  border-top-color: var(--primary, #3b82f6);
  border-radius: 50%;
  animation: dt-spin 0.8s linear infinite;
}

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

/* ───────────────────────────────────────────────── */
/* STANDINGS HERO CAROUSEL                           */
/* ───────────────────────────────────────────────── */
.dt-standings-hero {
  position: relative;
  display: flex;
  align-items: center;
  gap: var(--space-3);
}

.dt-standings-hero__scroll {
  overflow-x: auto;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scrollbar-width: none;
  -ms-overflow-style: none;
  flex: 1;
}

.dt-standings-hero__scroll::-webkit-scrollbar {
  display: none;
}

.dt-standings-hero__grid {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(140px, 160px);
  gap: var(--space-3);
  padding: 4px;
}

.dt-standings-hero__card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: var(--space-4);
  background: rgb(255 255 255 / 4%);
  border: 1px solid rgb(255 255 255 / 10%);
  border-radius: var(--radius-lg);
  text-decoration: none;
  transition: all 0.2s ease;
  min-height: 140px;
  cursor: pointer;
}

.dt-standings-hero__card:hover {
  background: rgb(255 255 255 / 8%);
  border-color: var(--primary, #3b82f6);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgb(0 0 0 / 20%);
}

.dt-standings-hero__card--active {
  background: rgb(59 130 246 / 15%);
  border-color: var(--primary, #3b82f6);
  box-shadow: 0 0 0 2px rgb(59 130 246 / 30%);
}

.dt-standings-hero__logo {
  width: 48px;
  height: 48px;
  object-fit: contain;
  margin-bottom: var(--space-2);
}

.dt-standings-hero__name {
  font-size: var(--fs-sm);
  font-weight: var(--fw-semibold);
  text-align: center;
  color: var(--text, #fff);
  margin-bottom: 4px;
}

.dt-standings-hero__country {
  font-size: var(--fs-xs);
  color: var(--muted, #aaa);
  text-align: center;
}

.dt-standings-hero__nav {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: rgb(255 255 255 / 6%);
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: var(--radius-md);
  color: var(--text, #fff);
  cursor: pointer;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.dt-standings-hero__nav:hover:not(:disabled) {
  background: rgb(255 255 255 / 10%);
  border-color: var(--primary, #3b82f6);
}

.dt-standings-hero__nav:disabled {
  opacity: 0.3;
  cursor: not-allowed;
}

/* Mobile: hide nav buttons, use swipe */
@media (width <= 768px) {
  .dt-standings-hero__nav {
    display: none;
  }
}

/* ───────────────────────────────────────────────── */
/* STANDINGS FILTERS & SORTABLE                      */
/* ───────────────────────────────────────────────── */
.dt-standings-filters {
  display: flex;
  gap: var(--space-2);
  flex-wrap: wrap;
}

.dt-sortable {
  cursor: pointer;
  user-select: none;
  transition: color 0.2s ease;
}

.dt-sortable:hover {
  color: var(--primary, #3b82f6);
}

.dt-sortable--active {
  color: var(--primary, #3b82f6);
}

.dt-sortable .dt-icon {
  display: inline-block;
  width: 14px;
  height: 14px;
  opacity: 0.5;
  transition: opacity 0.2s ease;
}

.dt-sortable:hover .dt-icon,
.dt-sortable--active .dt-icon {
  opacity: 1;
}

/* ───────────────────────────────────────────────── */
/* TABS COMPONENT                                    */
/* ───────────────────────────────────────────────── */
.dt-tabs__nav {
  display: flex;
  gap: var(--space-2);
  border-bottom: 1px solid rgb(255 255 255 / 10%);
  padding: 0 var(--space-4);
  margin-bottom: var(--space-4);
}

.dt-tabs__tab {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  padding: var(--space-3) var(--space-4);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  color: var(--muted, #aaa);
  font-size: var(--fs-sm);
  font-weight: var(--fw-medium);
  cursor: pointer;
  transition: all 0.2s ease;
  margin-bottom: -1px;
}

.dt-tabs__tab:hover:not(.dt-tabs__tab--disabled) {
  color: var(--text, #fff);
  border-bottom-color: rgb(255 255 255 / 20%);
}

.dt-tabs__tab--active {
  color: var(--primary, #3b82f6);
  border-bottom-color: var(--primary, #3b82f6);
}

.dt-tabs__tab--disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.dt-tabs__content {
  display: none;
}

.dt-tabs__content--active {
  display: block;
}

/* ───────────────────────────────────────────────── */
/* FOOTBALL FIELD                                    */
/* ───────────────────────────────────────────────── */
.dt-football-field {
  position: relative;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
  background: linear-gradient(135deg, #2d7a2d 0%, #1e5a1e 100%);
  border-radius: var(--radius-lg);
  aspect-ratio: 3 / 4;
}

.dt-football-field__svg {
  width: 100%;
  height: 100%;
  display: block;
}

.dt-football-field__svg line {
  stroke: rgb(255 255 255 / 30%);
  stroke-width: 2;
}

.dt-football-field__svg rect,
.dt-football-field__svg circle {
  fill: none;
  stroke: rgb(255 255 255 / 30%);
  stroke-width: 2;
}

.dt-football-field__players {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.dt-football-player {
  position: absolute;
  transform: translate(-50%, -50%);
  text-align: center;
  cursor: pointer;
  transition: all 0.2s ease;
}

.dt-football-player:hover {
  z-index: 10;
  transform: translate(-50%, -50%) scale(1.1);
}

.dt-football-player__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgb(255 255 255 / 10%);
  border: 2px solid var(--primary, #3b82f6);
  margin: 0 auto var(--space-1);
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 4px 12px rgb(0 0 0 / 40%);
  transition: all 0.2s ease;
}

.dt-football-player:hover .dt-football-player__avatar {
  border-color: #10b981;
  box-shadow: 0 6px 20px rgb(16 185 129 / 40%);
}

.dt-football-player__club-logo {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.dt-football-player__name {
  font-size: var(--fs-xs);
  font-weight: var(--fw-semibold);
  color: #fff;
  background: rgb(0 0 0 / 70%);
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  white-space: nowrap;
  max-width: 80px;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 2px;
}

.dt-football-player__score {
  font-size: var(--fs-xs);
  font-weight: var(--fw-bold);
  color: #10b981;
  background: rgb(0 0 0 / 70%);
  padding: 2px 6px;
  border-radius: var(--radius-sm);
}

/* Responsive */
@media (width <= 768px) {
  .dt-football-field {
    max-width: 100%;
  }

  .dt-football-player__avatar {
    width: 40px;
    height: 40px;
  }

  .dt-football-player__club-logo {
    width: 32px;
    height: 32px;
  }

  .dt-football-player__name {
    font-size: 10px;
    max-width: 60px;
  }

  .dt-football-player__score {
    font-size: 10px;
  }
}

/* ─── Stadium dashboard (Stap 7/8) ─────────────────────────────── */

/* Utility extras */
.dt-text-success { color: var(--success); }
.dt-text-sm { font-size: var(--fs-sm); }
.dt-fw-bold { font-weight: var(--fw-bold); }
.dt-panel-centered { display: flex; flex-direction: column; align-items: center; gap: var(--space-4); text-align: center; padding: var(--space-8); }
.dt-panel-no-pad { padding: 0; }

/* Badge extras */
.dt-badge--neutral { background: rgb(255 255 255 / 10%); border-color: rgb(255 255 255 / 22%); color: var(--text); }
.dt-badge--muted   { background: rgb(255 255 255 / 6%);  border-color: rgb(255 255 255 / 15%); color: var(--muted); }

/* Compact table */
.dt-table--compact th,
.dt-table--compact td { padding: .5rem .75rem; font-size: var(--fs-sm); }

/* Lineup info strip */
.dt-lineup-info { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; align-items: center; padding: .5rem .875rem; background: rgb(255 255 255 / 4%); border: 1px solid rgb(255 255 255 / 8%); border-radius: .5rem; font-size: .8125rem; color: var(--muted); margin-bottom: 1rem; }
.dt-lineup-info__item { display: flex; align-items: center; gap: .375rem; }
.dt-lineup-info__item strong { color: var(--text); }

/* Captain buttons in lineup sidebar */
.dt-captain-btn { display: inline-flex; align-items: center; justify-content: center; width: 1.375rem; height: 1.375rem; border-radius: .25rem; border: 1px solid rgb(255 255 255 / 20%); background: transparent; color: var(--muted); font-size: .65rem; font-weight: 800; cursor: pointer; transition: background .15s, color .15s, border-color .15s; line-height: 1; }
.dt-captain-btn:hover { border-color: rgb(255 255 255 / 40%); color: var(--text); }
.dt-captain-btn--c.is-active { background: #fbbf24; color: #000; border-color: #fbbf24; }
.dt-captain-btn--v.is-active { background: var(--accent); color: #fff; border-color: var(--accent); }

/* Dense table (player history) */
.dt-table--dense th,
.dt-table--dense td { padding: .4rem .5rem; font-size: var(--fs-sm); }
.dt-table--dense tbody tr:nth-child(odd)  { background: rgb(255 255 255 / 4%); }
.dt-table--dense tbody tr:nth-child(even) { background: rgb(0 229 164 / 7%); }
.dt-table--dense tbody tr:hover { background: rgb(255 255 255 / 7%); transition: background .15s; }
.dt-table--dense tbody tr.dt-tr--highlight { border-left: 2px solid rgb(var(--accent-r) var(--accent-g) var(--accent-b) / 60%); }

/* Competition ranking color zones: promotion (top) and relegation (bottom). */
.dt-table--competition-ranking { --dt-rank-step-index: 1; }
.dt-table--competition-ranking tbody tr.dt-rank-row--promote {
  /* Lichtgroen bovenaan -> donkergroen onderaan binnen de promotiezone. */
  background: hsl(
    142deg 48% calc(49% - (var(--dt-rank-step-index) * 1.0%)) /
    calc(24% + (var(--dt-rank-step-index) * 1.0%))
  );
}
.dt-table--competition-ranking tbody tr.dt-rank-row--relegate {
  /* Subtiel starten -> zwaarder rood naar beneden in de degradatiezone. */
  background: hsl(
    10deg 52% calc(56% - (var(--dt-rank-step-index) * 1.05%)) /
    calc(20% + (var(--dt-rank-step-index) * 0.9%))
  );
}
.dt-table--competition-ranking tbody tr.dt-rank-row--promote:hover,
.dt-table--competition-ranking tbody tr.dt-rank-row--relegate:hover {
  filter: brightness(1.03) saturate(1.03);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 12%);
}
.dt-table--competition-ranking tbody tr.dt-rank-row--promote:hover {
  filter: brightness(1.05) saturate(1.08);
}
.dt-table--competition-ranking tbody tr.dt-rank-row--step-1  { --dt-rank-step-index: 1; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-2  { --dt-rank-step-index: 2; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-3  { --dt-rank-step-index: 3; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-4  { --dt-rank-step-index: 4; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-5  { --dt-rank-step-index: 5; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-6  { --dt-rank-step-index: 6; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-7  { --dt-rank-step-index: 7; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-8  { --dt-rank-step-index: 8; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-9  { --dt-rank-step-index: 9; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-10 { --dt-rank-step-index: 10; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-11 { --dt-rank-step-index: 11; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-12 { --dt-rank-step-index: 12; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-13 { --dt-rank-step-index: 13; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-14 { --dt-rank-step-index: 14; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-15 { --dt-rank-step-index: 15; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-16 { --dt-rank-step-index: 16; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-17 { --dt-rank-step-index: 17; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-18 { --dt-rank-step-index: 18; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-19 { --dt-rank-step-index: 19; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-20 { --dt-rank-step-index: 20; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-21 { --dt-rank-step-index: 21; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-22 { --dt-rank-step-index: 22; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-23 { --dt-rank-step-index: 23; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-24 { --dt-rank-step-index: 24; }
.dt-table--competition-ranking tbody tr.dt-rank-row--step-25 { --dt-rank-step-index: 25; }

/* Punten kleur: 0-9 rood | 10-19 wit | 20-29 goud | 30+ groen */
.dt-pts--0  { color: var(--danger);  font-weight: 700; }
.dt-pts--10 { color: var(--text);    font-weight: 600; }
.dt-pts--20 { color: var(--yellow);  font-weight: 700; }
.dt-pts--30 { color: var(--success); font-weight: 700; text-shadow: 0 0 8px rgb(16 185 129 / 60%); }

/* Pas% indicator: rood→oranje→geel→groen via kleurschaal */
.dt-pass-pct { display: inline-flex; align-items: center; gap: 4px; }
.dt-pass-pct__bar { display: inline-block; width: 28px; height: 5px; border-radius: 3px; flex-shrink: 0; }
.dt-pass-pct--lo  .dt-pass-pct__bar { background: var(--danger); }
.dt-pass-pct--mid .dt-pass-pct__bar { background: var(--warning); }
.dt-pass-pct--hi  .dt-pass-pct__bar { background: var(--yellow); }
.dt-pass-pct--top .dt-pass-pct__bar { background: var(--success); }

/* Stadium header */
.dt-stadium__header-left { display: flex; align-items: center; gap: var(--space-3); }
.dt-stadium__meta { display: flex; flex-wrap: wrap; gap: var(--space-3) var(--space-6); color: var(--muted); font-size: var(--fs-sm); }
.dt-stadium__meta strong { color: var(--text); }

/* Stat grid */
.dt-stat-grid { display: grid; gap: var(--space-4); }
.dt-stat-grid--4 { grid-template-columns: repeat(4, 1fr); }
.dt-stat-card { background: var(--panel-2); border: 1px solid rgb(255 255 255 / 12%); border-radius: var(--radius); padding: var(--space-5) var(--space-4); display: flex; flex-direction: column; gap: var(--space-1); }
.dt-stat-card--danger { border-color: rgb(239 68 68 / 45%); background: rgb(239 68 68 / 8%); }
.dt-stat-card__label { font-size: var(--fs-xs); color: var(--muted); text-transform: uppercase; letter-spacing: .04em; font-weight: var(--fw-semibold); }
.dt-stat-card__value { font-size: 1.5rem; font-weight: var(--fw-bold); color: var(--text); line-height: 1.15; }
.dt-stat-card__sub { font-size: var(--fs-xs); color: var(--muted); }

/* Health indicator */
.dt-health-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }
.dt-health-item { display: flex; flex-direction: column; gap: var(--space-1); }
.dt-health-item__label { font-size: var(--fs-sm); color: var(--muted); }
.dt-health-item__value { font-size: 1.25rem; font-weight: var(--fw-bold); }
.dt-health-item__sub { font-size: var(--fs-xs); color: var(--muted); }

/* Stadium 2-col grid */
.dt-grid--stadium { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-4); }

/* Empty state */
.dt-empty-state { text-align: center; padding: var(--space-6); color: var(--muted); display: flex; flex-direction: column; align-items: center; gap: var(--space-3); }

/* Concession list */
.dt-concession-type-label { font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .06em; color: var(--muted); font-weight: var(--fw-semibold); margin: var(--space-4) 0 var(--space-2); display: flex; align-items: center; gap: var(--space-2); }
.dt-concession-type-label:first-child { margin-top: 0; }
.dt-concession-list { list-style: none; margin: 0 0 var(--space-2); padding: 0; display: flex; flex-direction: column; gap: 2px; }
.dt-concession-list__item { display: flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-3); border-radius: var(--radius-sm); background: rgb(255 255 255 / 4%); font-size: var(--fs-sm); }
.dt-concession-list__item > span:first-child { flex: 1; }
.dt-concession-list__item--inactive { opacity: .5; }
.dt-concession-list__price { font-weight: var(--fw-semibold); color: var(--accent); }

/* Concession item cards (setup/manage pagina) */
#concession-rows { counter-reset: concession-counter; display: flex; flex-direction: column; gap: var(--space-3); }
.dt-concession-card { counter-increment: concession-counter; }
.dt-concession-card__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-3); }
.dt-concession-card__badge::before { content: counter(concession-counter); }
.dt-concession-card__fields { display: grid; grid-template-columns: 1fr 2fr 96px auto; gap: var(--space-3); align-items: end; }
.dt-concession-card__fields .dt-field { margin-bottom: 0; }
.dt-concession-card__badge.dt-badge--secondary {
  background: linear-gradient(180deg, rgb(212 175 55 / 92%), rgb(184 134 11 / 92%));
  border-color: rgb(255 214 102 / 75%);
  color: #0f172a;
  font-weight: var(--fw-bold);
}
.dt-concession-card__price-input {
  max-width: 96px;
  text-align: right;
}
.dt-concession-card__fields .dt-field--inline {
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
}
.dt-concession-card__fields .dt-field--inline .dt-switch {
  min-height: var(--dt-input-height);
  padding: 0 10px;
  border: 1px solid var(--dt-border);
  border-radius: var(--radius);
  background: var(--dt-surface);
  align-items: center;
  justify-content: flex-start;
  margin: 0;
}
.dt-field__hint--help {
  display: block;
  margin-top: var(--space-2);
  padding: 8px 10px;
  border-left: 3px solid rgb(212 175 55 / 78%);
  background: rgb(212 175 55 / 10%);
  border-radius: 6px;
  color: rgb(230 236 245 / 92%);
  font-size: var(--fs-xs);
  line-height: 1.45;
}
@media (width <= 680px) {
  .dt-concession-card__fields {
    grid-template-columns: 1fr 1fr;
    gap: var(--space-2);
  }
  .dt-concession-card__fields .dt-field:nth-child(1),
  .dt-concession-card__fields .dt-field:nth-child(2) {
    grid-column: 1 / -1;
  }
  .dt-concession-card__fields .dt-field:nth-child(3),
  .dt-concession-card__fields .dt-field:nth-child(4) {
    grid-column: span 1;
    align-self: end;
  }
  .dt-concession-card__fields .dt-field:nth-child(4) {
    justify-self: end;
  }
  .dt-concession-card__price-input {
    max-width: 84px;
  }
  .dt-concession-card__fields .dt-field--inline .dt-switch {
    gap: 8px;
    justify-content: flex-end;
    white-space: nowrap;
  }
}

/* Responsive */
@media (width <= 900px) {
  .dt-stat-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .dt-grid--stadium  { grid-template-columns: 1fr; }
  .dt-health-grid    { grid-template-columns: 1fr; }
}


/* ─── Stadium dashboard widget (Stap 8) ─────────────────────────── */
.dt-card--stadium-widget .dt-card__header { display: flex; align-items: center; gap: var(--space-2); }
.dt-card--stadium-widget .dt-card__header .dt-badge { margin-left: auto; }
.dt-stadium-widget__row { display: flex; align-items: center; justify-content: space-between; padding: var(--space-2) 0; border-bottom: 1px solid rgb(255 255 255 / 6%); }
.dt-stadium-widget__row:last-of-type { border-bottom: none; }
.dt-stadium-widget__label { font-size: var(--fs-sm); color: var(--muted); }
.dt-stadium-widget__value { display: flex; align-items: center; gap: var(--space-2); font-weight: var(--fw-semibold); color: var(--text); }
.dt-stadium-widget__link { margin-top: var(--space-3); width: 100%; justify-content: center; }
.dt-badge--xs { padding: 1px 6px; font-size: .65rem; border-radius: 3px; }

/* ─── Budget debt alert modal (Stap 9C) ────────────────────────── */
.dt-modal--debt-alert .dt-modal__header--danger {
  background: rgb(239 68 68 / 15%);
  border-bottom-color: rgb(239 68 68 / 30%);
  color: var(--danger, #ef4444);
}
.dt-modal--debt-alert .dt-modal__header--danger .dt-icon { color: var(--danger, #ef4444); }
.dt-debt-alert__options { display: flex; flex-direction: column; gap: var(--space-3); margin-top: var(--space-5); }
.dt-modal__footer--center { justify-content: center; }

/* ─── Salary in transfers list (Stap 9D) ───────────────────────── */
.dt-salary-hint { display: block; font-size: var(--fs-xs); color: var(--muted); margin-top: 2px; }
.dt-buy__stat--salary { color: var(--text-muted); }

/* ─── Match cards (Standings wedstrijden tab) ──────────────────── */
.dt-match-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
}

.dt-match-card {
  display: grid;
  grid-template-columns: 80px 1fr;
  gap: var(--space-3);
  align-items: center;
  padding: var(--space-3);
  background: linear-gradient(135deg, rgb(255 255 255 / 5%), rgb(255 255 255 / 2%));
  border: 1px solid rgb(255 255 255 / 12%);
  border-radius: var(--radius-lg);
  transition: all 0.2s ease;
}

.dt-match-card:hover {
  background: linear-gradient(135deg, rgb(255 255 255 / 8%), rgb(255 255 255 / 3%));
  border-color: rgb(255 255 255 / 20%);
}

.dt-match-card__time {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: var(--space-1);
  text-align: center;
}

.dt-match-card__teams {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: var(--space-3);
}

.dt-match-card__team {
  display: flex;
  align-items: center;
  gap: var(--space-2);
  min-width: 0; /* Allow text truncation */
}

.dt-match-card__team:last-child {
  flex-direction: row-reverse;
  text-align: right;
}

.dt-match-card__team-name {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: var(--fw-medium);
}

.dt-match-card__score {
  min-width: 60px;
  text-align: center;
  font-size: var(--fs-lg);
  font-weight: var(--fw-bold);
}

.dt-badge--pulse {
  animation: dt-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes dt-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.6;
  }
}

/* Responsive match cards */
@media (width <= 560px) {
  .dt-match-card {
    grid-template-columns: 1fr;
    gap: var(--space-2);
  }

  .dt-match-card__time {
    flex-direction: row;
    justify-content: space-between;
  }

  .dt-match-card__team-name {
    font-size: var(--fs-sm);
  }
}

/* Tab content visibility */
.dt-tab-content {
  display: none;
}

.dt-tab-content--active {
  display: block;
}

/* ── Wedstrijdenoverzicht per dag (leagues/show) ── */
.dt-match-day-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 20px;
  margin-top: 28px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #eef2f6;
  border-top: 1px solid rgb(255 255 255 / 12%);
  border-bottom: 1px solid rgb(255 255 255 / 12%);
  background: rgb(0 0 0 / 50%);
}

.dt-match-day-header:first-child {
  margin-top: 0;
  border-top: none;
}

.dt-match-day-header__icon {
  width: 14px;
  height: 14px;
  color: var(--gold);
  flex-shrink: 0;
}

.dt-match-row {
  display: grid;
  grid-template-columns: 6rem 1fr auto 1fr;
  align-items: center;
  gap: 20px;
  padding: 14px 20px;
  background: rgb(10 18 30 / 55%);
  border-bottom: 1px solid rgb(255 255 255 / 8%);
  transition: background-color 0.15s;
}

.dt-match-row:last-child {
  border-bottom: none;
}

.dt-match-row:hover {
  background: rgb(10 18 30 / 75%);
}

.dt-match-row__time {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--accent);
  white-space: nowrap;
}

.dt-match-row__clock {
  width: 13px;
  height: 13px;
  color: var(--accent);
  opacity: 0.8;
  flex-shrink: 0;
}

.dt-match-row__home {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  font-weight: 500;
  font-size: 0.875rem;
  color: #eef2f6;
  padding-right: 16px;
}

.dt-match-row__away {
  display: flex;
  align-items: center;
  font-weight: 500;
  font-size: 0.875rem;
  color: #eef2f6;
  padding-left: 16px;
}

.dt-match-row__home a,
.dt-match-row__away a {
  color: inherit;
  text-decoration: none;
}

.dt-match-row__home a:hover,
.dt-match-row__away a:hover {
  color: var(--accent);
}

.dt-match-row__vs {
  font-size: 0.7rem;
  color: var(--muted);
  text-align: center;
  font-weight: 700;
  padding: 4px 10px;
  background: rgb(255 255 255 / 8%);
  border-radius: 4px;
  white-space: nowrap;
}

.dt-match-row__score {
  display: flex;
  align-items: center;
  justify-content: center;
  white-space: nowrap;
}

.dt-match-row__score-badge {
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  padding: 2px 6px;
  border-radius: 3px;
  text-transform: uppercase;
}

.dt-match-row__score-badge--live {
  background: var(--danger);
  color: #fff;
  animation: dt-pulse-live 1.4s ease-in-out infinite;
}

.dt-match-row__score-badge--ft {
  background: rgb(255 255 255 / 22%);
  color: #eef2f6;
  border: 1px solid rgb(255 255 255 / 30%);
}

.dt-match-row__score-value {
  font-size: 0.95rem;
  font-weight: 700;
  color: #eef2f6;
  letter-spacing: 0.03em;
}

.dt-match-row--live .dt-match-row__home a,
.dt-match-row--live .dt-match-row__away a {
  color: #eef2f6;
  font-weight: 600;
}

.dt-match-row--finished .dt-match-row__time {
  opacity: 0.55;
}

@keyframes dt-pulse-live {
  0%, 100% { opacity: 1; }
  50%       { opacity: 0.55; }
}

@media (width <= 640px) {
  .dt-match-row {
    grid-template-columns: 5rem 1fr auto 1fr;
    gap: 10px;
    padding: 10px 12px;
  }

  .dt-match-row__home { padding-right: 6px; }
  .dt-match-row__away { padding-left: 6px; }
  .dt-match-row__vs { padding: 3px 6px; }
}

/* ─── Matches calendar (vandaag +7 dagen) ────────────────────── */
.dt-fixtures { container-type: inline-size; }

/* dt-page__* — generieke paginastructuur | dt-fixtures__* = alias (verwijderen na migratie Fase 5) */
.dt-page__panel,
.dt-fixtures__panel {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  background: var(--dt-surface-glass);
  border-color: rgb(255 255 255 / 16%);
  padding-inline: var(--space-4);
}

.dt-page-layout {
  padding-inline: 0;
}

.dt-page__panel--flush-top {
  padding-top: 0;
}

.dt-page__body {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  /* padding: 0 0 var(--space-4); */
}

.dt-page__body > .dt-dashboard__grid {
  margin-top: 0;
}

.dt-page__body .dt-table-responsive {
  max-width: 100%;
}

.dt-page__intro {
  margin: 0;
  color: var(--text-muted);
  font-size: 0.95rem;
}

.dt-page__header,
.dt-fixtures__header { display: flex; flex-direction: row; align-items: center; gap: 0.75rem; margin-bottom: var(--space-4); }

.dt-page__header .dt-icon--lg,
.dt-fixtures__header .dt-icon--lg { font-size: 2rem; width: 2rem; height: 2rem; line-height: 1; color: var(--gold); }

.dt-page__title,
.dt-fixtures__title { font-family: Orbitron, var(--font-sans); font-size: clamp(1.1rem, 4vw, 1.7rem); font-weight: 900; letter-spacing: clamp(2px, 1vw, 5px); text-transform: uppercase; background: linear-gradient(135deg, #ffd700 20%, #ffe87c 55%, #ffd700 85%); background-clip: text; color: transparent; filter: drop-shadow(0 2px 8px rgb(255 200 0 / 28%)); }

/* Stripe effect op page header (zelfde visuele taal als dt-card__header) */
body.dt-theme--striped .dt-page__header { position: relative; }
body.dt-theme--striped .dt-page__header::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: repeating-linear-gradient(135deg,rgba(255 255 255 / 70%) 0 2px, rgba(255 255 255 / 40%) 2px 4px, transparent 4px 8px); opacity: .10; mask-image: linear-gradient(to right,transparent 0%, transparent 40%, black 100%); }
/* Opt-in variant for page headers without body-level theme class */
.dt-page__header--striped { position: relative; }
.dt-page__header--striped::after { content: ""; position: absolute; inset: 0; pointer-events: none; background-image: repeating-linear-gradient(135deg,rgba(255 255 255 / 70%) 0 2px, rgba(255 255 255 / 40%) 2px 4px, transparent 4px 8px); opacity: .10; mask-image: linear-gradient(to right,transparent 0%, transparent 40%, black 100%); }

/* Flush variant: header bloedt edge-to-edge tegen bovenkant van het panel */
.dt-page__header--flush {
  margin-inline: calc(var(--space-5) * -1);
  margin-top: calc(var(--space-6) * -1);
  padding: var(--space-3) var(--space-5);
  border-radius: var(--radius-lg) var(--radius-lg) 0 0;
  margin-bottom: var(--space-4);
}

.dt-fixture-legend {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 2px 0 4px;
}

.dt-fixture-legend__label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--muted);
  margin-right: 2px;
}

.dt-fixture-list {
  margin: 0 calc(-1 * var(--space-5)) calc(-1 * var(--space-6));
}

.dt-fixture-day {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 18px 20px 10px;
  font-size: 0.82rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--text);
  border-top: 1px solid rgb(255 255 255 / 8%);
  margin-top: var(--space-3);
}

.dt-fixture-day:first-child { border-top: none; margin-top: 0; }

.dt-fixture-day__icon { font-size: 0.9rem; color: var(--accent); opacity: 0.8; }

.dt-fixture-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 11px 20px;
  border-bottom: 1px solid rgb(255 255 255 / 6%);
  transition: background-color 0.15s;
  min-width: 0;
}

.dt-fixture-row:last-child { border-bottom: none; }

.dt-fixture-row:hover { background: rgb(255 255 255 / 4%); }

.dt-fixture-row--live { background: rgb(239 68 68 / 6%); border-left: 2px solid var(--danger); }

.dt-fixture-row--finished .dt-fixture-row__time { opacity: 0.5; }

.dt-fixture-row__time {
  flex: 0 0 48px;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--accent);
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}

.dt-fixture-row__meta {
  flex: 0 0 108px;
  overflow: hidden;
  min-width: 0;
}

.dt-fixture-row__meta-country {
  font-size: 0.72rem;
  color: var(--muted);
  line-height: 1.3;
}

.dt-fixture-row__meta-league {
  font-size: 0.72rem;
  color: var(--muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.3;
}

.dt-fixture-row__home {
  flex: 1;
  text-align: right;
  font-size: 0.875rem;
  color: var(--text);
  padding-right: 10px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dt-fixture-row__score {
  flex: 0 0 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  white-space: nowrap;
}

.dt-fixture-row__away {
  flex: 1;
  font-size: 0.875rem;
  color: var(--text);
  padding-left: 10px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dt-fixture-row__players {
  flex: 0 0 220px;
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  justify-content: flex-end;
  max-width: 200px;
}

.dt-fixture-row__club--bold { font-weight: 700; }

.dt-pos-pill {
  font-size: 0.68rem;
  font-weight: 600;
  padding: 2px 7px;
  border-radius: 3px;
  color: #fff;
  white-space: nowrap;
  line-height: 1.5;
}

.dt-pos-pill--gk  { background: var(--warning); }
.dt-pos-pill--def { background: rgb(59 130 246 / 80%); }
.dt-pos-pill--mid { background: var(--success); }
.dt-pos-pill--fwd { background: var(--danger); }

@media (width <= 760px) {
  .dt-fixture-row__meta,
  .dt-fixture-row__players { display: none; }
}

/* ─── Stadium upgrade page (Stap 10C) ──────────────────────────── */
.dt-stat-grid--3 { grid-template-columns: repeat(3, 1fr); }
.dt-stat-card--highlight { border-color: rgb(99 102 241 / 45%); background: rgb(99 102 241 / 10%); }
.dt-btn--block { display: block; width: 100%; text-align: center; margin-top: var(--space-4); }
.dt-definition-list { list-style: none; padding: 0; margin: 0 0 var(--space-4); }
.dt-definition-list__row { display: flex; justify-content: space-between; align-items: baseline; padding: var(--space-2) 0; border-bottom: 1px solid rgb(255 255 255 / 6%); gap: var(--space-4); }
.dt-definition-list__row:last-child { border-bottom: none; }
.dt-definition-list dt { color: var(--muted); font-size: var(--fs-sm); }
.dt-definition-list dd { font-weight: 600; text-align: right; }
.dt-table__row--active { background: rgb(99 102 241 / 10%); }
.dt-table__row--active td { font-weight: 600; }
@media (width <= 900px) {
  .dt-stat-grid--3 { grid-template-columns: repeat(2, 1fr); }
}
@media (width <= 600px) {
  .dt-stat-grid--3 { grid-template-columns: 1fr; }
}

/* === Evidence Details (Checkout OSS) === */
.dt-evidence-details {
  border: 1px solid var(--dt-border);
  border-radius: var(--dt-radius);
  padding: var(--dt-space-3);
  background: var(--dt-surface-glass);
  margin-bottom: var(--dt-space-3);
}
.dt-evidence-details summary {
  cursor: pointer;
  font-size: var(--dt-text-sm);
  color: var(--dt-text-muted);
  user-select: none;
  list-style: none;
}
.dt-evidence-details summary::-webkit-details-marker { display: none; }
.dt-evidence-details__body {
  padding-top: var(--dt-space-2);
}
.dt-dl-evidence {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: var(--dt-space-1) var(--dt-space-3);
  font-size: var(--dt-text-sm);
  margin: var(--dt-space-2) 0;
}
.dt-dl-evidence dt {
  color: var(--dt-text-muted);
  font-weight: 500;
}
.dt-dl-evidence dd {
  color: var(--dt-text);
  margin: 0;
  font-family: monospace;
  font-size: 0.85em;
}

/* =====================================================================
   ACHIEVEMENT BADGES (dt-achievement)
   CSS-only badge component:
   - 3 kleur-tiers: bronze / silver / gold
   - 5 vormen: circle / square / hexagon / star / octagon
   - SVG voetbal hexagon textuur + metallic rim
   - Lint per tier: 2 dunne strips (brons) · 2 brede strips (zilver) · medaille-lint (goud)
   ===================================================================== */
.dt-achievement {
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  cursor: default;
}

.dt-achievement__wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.dt-achievement__badge {
  position: relative;
  width: 72px;
  height: 72px;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform 0.2s ease;
  filter: drop-shadow(0 5px 16px var(--badge-glow, transparent));
  clip-path: var(--badge-shape, none);
  border-radius: var(--badge-radius, 0);
  overflow: hidden;
  background: linear-gradient(
    135deg,
    rgb(255 255 255 / 70%) 0%,
    rgb(255 255 255 / 20%) 30%,
    rgb(0 0 0 / 20%) 70%,
    rgb(0 0 0 / 40%) 100%
  );
}

.dt-achievement:hover .dt-achievement__badge { transform: translateY(-4px) scale(1.08); }

/* Fill layer — 3px inset zodat metallic rim zichtbaar blijft + SVG hexagon textuur */
.dt-achievement__badge::before {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: inherit;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13.86' height='24'%3E%3Cpolygon points='6.93,0 13.86,4 13.86,12 6.93,16 0,12 0,4' fill='none' stroke='rgba(0,0,0,.1)' stroke-width='.8'/%3E%3Cline x1='6.93' y1='16' x2='6.93' y2='24' stroke='rgba(0,0,0,.1)' stroke-width='.8'/%3E%3C/svg%3E") 0 0 / 13.86px 24px,
    linear-gradient(145deg, var(--badge-light), var(--badge-mid), var(--badge-dark));
}

/* Shine layer */
.dt-achievement__badge::after {
  content: "";
  position: absolute;
  top: 3px;
  left: 3px;
  right: 3px;
  height: 50%;
  background: linear-gradient(180deg, rgb(255 255 255 / 22%), rgb(255 255 255 / 5%), transparent);
  pointer-events: none;
}

.dt-achievement__icon {
  position: relative;
  z-index: 1;
  font-size: 1.4rem;
  color: var(--icon-color, #fff);
  filter: drop-shadow(0 2px 5px rgb(0 0 0 / 55%));
}

/* Ribbon — basis (bronze: 2 dunne strips) */
.dt-achievement__ribbon { display: flex; gap: 5px; margin-top: -6px; }

.dt-achievement__ribbon-strip {
  width: 9px;
  height: 22px;
  clip-path: polygon(0 0, 100% 0, 100% 75%, 50% 100%, 0 75%);
}

.dt-achievement__ribbon-strip:first-child { background: var(--ribbon-a); }
.dt-achievement__ribbon-strip:last-child { background: var(--ribbon-b); }

/* Silver: 2 brede strips */
.dt-achievement--silver .dt-achievement__ribbon { gap: 3px; }

.dt-achievement--silver .dt-achievement__ribbon-strip {
  width: 13px;
  height: 30px;
  clip-path: polygon(0 0, 100% 0, 100% 78%, 50% 100%, 0 78%);
}

/* Gold: enkelvoudig medaille-lint */
.dt-achievement__ribbon--medal {
  margin-top: -4px;
  width: 22px;
  height: 32px;
  clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%);
  background: linear-gradient(
    90deg,
    var(--badge-dark) 0%,
    var(--badge-light) 35%,
    var(--badge-mid) 50%,
    var(--badge-light) 65%,
    var(--badge-dark) 100%
  );
}

/* Labels */
.dt-achievement__label { font-size: 0.7rem; font-weight: 700; color: #94a3b8; text-align: center; max-width: 80px; line-height: 1.3; }
.dt-achievement__points { font-size: 0.65rem; font-weight: 600; color: #00e5a4; }

/* ── Kleur-tiers ───────────────────────────────────────────── */
.dt-achievement--bronze {
  --badge-light: #e8935a;
  --badge-mid: #b45309;
  --badge-dark: #5c2a00;
  --ribbon-a: linear-gradient(180deg, #b45309, #431407);
  --ribbon-b: linear-gradient(180deg, #d97706, #3c1a0e);
  --badge-glow: rgb(180 83 9 / 55%);
  --icon-color: #fff;
}

.dt-achievement--silver {
  --badge-light: #f8fafc;
  --badge-mid: #94a3b8;
  --badge-dark: #334155;
  --ribbon-a: linear-gradient(180deg, #94a3b8, #1e293b);
  --ribbon-b: linear-gradient(180deg, #cbd5e1, #0f172a);
  --badge-glow: rgb(148 163 184 / 40%);
}

.dt-achievement--gold {
  --badge-light: #fef08a;
  --badge-mid: #eab308;
  --badge-dark: #854d0e;
  --ribbon-a: linear-gradient(180deg, #ca8a04, #713f12);
  --ribbon-b: linear-gradient(180deg, #eab308, #92400e);
  --badge-glow: rgb(234 179 8 / 65%);
}

/* ── Vorm-tiers ────────────────────────────────────────────── */
.dt-achievement--circle { --badge-shape: none; --badge-radius: 50%; }
.dt-achievement--square { --badge-shape: none; --badge-radius: 16px; }
.dt-achievement--hexagon { --badge-shape: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%); --badge-radius: 0; }
.dt-achievement--star { --badge-shape: polygon(50% 0%, 64% 31%, 98% 35%, 73% 57%, 79% 91%, 50% 74%, 21% 91%, 27% 57%, 2% 35%, 36% 31%); --badge-radius: 0; }
.dt-achievement--octagon { --badge-shape: polygon(29% 0%, 71% 0%, 100% 29%, 100% 71%, 71% 100%, 29% 100%, 0% 71%, 0% 29%); --badge-radius: 0; }

/* ── Formaat-modifiers ─────────────────────────────────────── */
.dt-achievement--sm .dt-achievement__ribbon { display: none; }
.dt-achievement--lg .dt-achievement__badge { width: 200px; height: 200px; }
.dt-achievement--lg .dt-achievement__icon { font-size: 4rem; }

/* Banner lint (horizontaal, pijlvorm) */
.dt-achievement__ribbon--banner {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-top: 10px;
  padding: 0 20px;
  height: 38px;
  min-width: 180px;
  clip-path: polygon(14px 0%, calc(100% - 14px) 0%, 100% 50%, calc(100% - 14px) 100%, 14px 100%, 0% 50%);
  background: linear-gradient(
    90deg,
    var(--badge-dark) 0%,
    var(--badge-mid) 40%,
    var(--badge-light) 60%,
    var(--badge-mid) 80%,
    var(--badge-dark) 100%
  );
  font-size: 0.8rem;
  font-weight: 700;
  color: #fff;
  text-shadow: 0 1px 4px rgb(0 0 0 / 60%);
  letter-spacing: 0.6px;
  text-transform: uppercase;
  white-space: nowrap;
}

/* ── Vergrendeld-staat ─────────────────────────────────────── */
/* stylelint-disable-next-line declaration-no-important */
.dt-achievement--locked .dt-achievement__badge { filter: grayscale(1) opacity(0.3) !important; }
.dt-achievement--locked .dt-achievement__label { color: #334155; }
.dt-achievement--locked .dt-achievement__points { color: #1e293b; }

/* =====================================================================
   TABS — Uniforme standaard (gebaseerd op auth-style, 2026-03-15)
   Vervangt eerdere inconsistente .dt-tab definities in dit bestand.
   Container: .dt-tabs — pill/segmented control in donkere omgeving
   Tab knop:  .dt-tab  — glass button; .is-active = neon groen/blauw
   ===================================================================== */
.dt-tabs {
  display: grid;
  grid-template-columns: repeat(var(--dt-tab-count, 2), 1fr);
  gap: 6px;
  padding: 5px;
  border-radius: 12px;
  background: rgb(0 0 0 / 28%);
  border: 1px solid rgb(255 255 255 / 10%);
  backdrop-filter: blur(14px) saturate(145%);
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 8%);
}
.dt-tab {
  min-height: 40px;
  background: linear-gradient(180deg, rgb(255 255 255 / 11%), rgb(255 255 255 / 5%));
  border: 1px solid rgb(255 255 255 / 14%);
  color: rgb(226 232 240 / 86%);
  font-weight: var(--fw-semibold);
  font-size: var(--fs-sm);
  font-family: var(--font-sans);
  padding: 10px 14px;
  border-radius: 9px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: background .18s, border-color .18s, box-shadow .18s, color .18s;
}
.dt-tab .dt-icon { color: rgb(45 212 191 / 88%); }
.dt-tab:hover,
.dt-tab:focus-visible {
  background: linear-gradient(180deg, rgb(255 255 255 / 17%), rgb(255 255 255 / 8%));
  border-color: rgb(255 255 255 / 24%);
  color: rgb(241 245 249 / 96%);
  box-shadow: inset 0 0 0 1px rgb(255 255 255 / 8%);
  outline: none;
}
.dt-tab.is-active,
.dt-tab[aria-selected="true"] {
  background: linear-gradient(135deg, rgb(0 229 164 / 24%), rgb(59 130 246 / 24%));
  border-color: rgb(0 229 164 / 45%);
  color: #e9fff7;
  box-shadow: 0 0 0 1px rgb(0 229 164 / 26%), 0 8px 20px -12px rgb(0 229 164 / 55%);
}
.dt-tab.is-active .dt-icon,
.dt-tab[aria-selected="true"] .dt-icon { color: #fbbf24; }
/* Tab-panels: gebruik hidden attribuut of is-hidden klasse */
.dt-tab-panel { display: block; }
.dt-tab-panel.is-hidden,
.dt-tab-panel[hidden] { display: none; }
/* Ruimte tussen tabbar en panelen */
.dt-tabs + .dt-tab-panel,
.dt-tabs + * { margin-top: var(--space-4); }
/* ── Dashboard v4 ── */
.dt-dashboard-v4 { display: block; }
/* Col helpers: 2:1 split in dt-row (3-col grid at ≥1024px) */
@media (width >= 1024px) {
  .dt-col-lg-8 { grid-column: span 2; }
}
/* dashMessages banner */
.dt-dashboard-messages { display: flex; flex-direction: column; gap: 10px; }
.dt-dashboard-msg { display: flex; align-items: center; gap: 12px; padding: 12px 16px; border-radius: 8px; background: rgb(10 18 30 / 55%); border: 1px solid rgb(255 255 255 / 10%); color: #eef2f6; font-size: 0.9rem; }
.dt-dashboard-msg__icon { flex-shrink: 0; }
.dt-dashboard-msg__content { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; min-width: 0; }
.dt-dashboard-msg__title { font-size: 0.875rem; font-weight: 600; line-height: 1.3; }
.dt-dashboard-msg__body { font-size: 0.8125rem; opacity: 0.82; line-height: 1.4; }
.dt-dashboard-msg__close { inline-size: 32px; block-size: 32px; border-radius: 8px; border: 1px solid rgb(255 255 255 / 18%); background: rgb(255 255 255 / 8%); color: #d9e2ef; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; flex: 0 0 auto; }
.dt-dashboard-msg__close:hover,
.dt-dashboard-msg__close:focus-visible { background: rgb(255 255 255 / 14%); border-color: rgb(255 255 255 / 30%); color: #fff; outline: none; box-shadow: var(--dt-focus-ring); }
.dt-dashboard-msg--success { border-color: rgb(0 229 164 / 35%); background: rgb(0 229 164 / 12%); }
.dt-dashboard-msg--warning { border-color: rgb(251 191 36 / 35%); background: rgb(251 191 36 / 10%); }
.dt-dashboard-msg--danger  { border-color: rgb(239 68 68 / 35%);  background: rgb(239 68 68 / 10%); }
.dt-dashboard-msg--badge { border-color: rgb(255 193 7 / 45%); background: linear-gradient(135deg, rgb(255 193 7 / 14%) 0%, rgb(255 140 0 / 8%) 100%); box-shadow: 0 0 0 1px rgb(255 193 7 / 15%), inset 0 1px 0 rgb(255 255 255 / 6%); }
.dt-dashboard-msg--badge .dt-dashboard-msg__icon { color: #ffc107; }
.dt-dashboard-msg--badge .dt-dashboard-msg__title { color: #ffd54f; }
.dt-dashboard-messages__more { display: flex; justify-content: flex-end; margin-top: 2px; }
/* Pitch link wrapper: remove anchor styling, keep pitch clickable */
.dt-pitch-link { display: block; text-decoration: none; color: inherit; border-radius: 12px; overflow: hidden; transition: box-shadow 0.2s; }
.dt-pitch-link:hover, .dt-pitch-link:focus { box-shadow: 0 0 0 2px rgb(0 229 164 / 50%); outline: none; }
/* ── Stat-card tabs ── */
.dt-stat-card-tabs { display: grid; grid-template-columns: repeat(var(--dt-tab-count, 3), 1fr); margin-bottom: var(--space-3); }
@media (width <= 900px) { .dt-stat-card-tabs { grid-template-columns: 1fr; } }
.dt-stat-grid--tabbed { display: block; }
.dt-stat-grid--tabbed > .dt-tab-panel { min-width: 0; width: 100%; display: none; }
.dt-stat-grid--tabbed > .dt-tab-panel.is-active { display: block; }
[data-component="stat-card-tabs"] .dt-stat-grid--tabbed { margin-top: 0; }
/* Sidebar: desktop gestapeld (geen tabs), tabs alleen vanaf ≤1050px */
.dt-dashboard__side .dt-stat-card-tabs { display: none; }
.dt-dashboard__side .dt-stat-grid--tabbed > .dt-tab-panel { display: block; }
@media (width <= 1050px) {
  .dt-dashboard__side .dt-stat-card-tabs { display: grid; }
  .dt-dashboard__side .dt-stat-grid--tabbed > .dt-tab-panel { display: none; }
  .dt-dashboard__side .dt-stat-grid--tabbed > .dt-tab-panel.is-active { display: block; }
}
/* ── team/show: form guide icons ───────────────────────────────────── */
.dt-form-icon { display: inline-flex; align-items: center; justify-content: center; width: 1.25rem; height: 1.25rem; border-radius: .2rem; font-size: .6rem; }
.dt-form-icon--win  { background: rgb(34 197 94 / 20%);  color: #22c55e; }
.dt-form-icon--draw { background: rgb(148 163 184 / 20%); color: #94a3b8; }
.dt-form-icon--loss { background: rgb(239 68 68 / 20%);  color: #ef4444; }
.dt-access-denied { display: flex; flex-direction: column; align-items: center; text-align: center; padding: 3rem 1rem; gap: 1rem; }
.dt-access-denied__icon .dt-icon { font-size: 3rem; color: var(--muted); }
.dt-access-denied__title { font-size: 1.5rem; font-weight: 700; margin: 0; }
.dt-access-denied__text { color: var(--muted); max-width: 36ch; margin: 0; line-height: 1.6; }
