/*
 * YMN HRM Portal - Layout & Motion Layer  (v2.26.0)
 * -------------------------------------------------
 * Ports the YNN reference portal's LAYOUT + ANIMATIONS/EFFECTS onto the
 * existing YMN markup, re-skinned to the original YMN colour scheme
 * (navy #0a1f44 / gold #c9a24b / red #dc2626).
 *
 * Loads AFTER style.css and ymn-ui.css, so it wins on cascade order without
 * needing !important. Removing the 'ymn-hrm-layout' handle from the enqueue
 * list in ymn-hrm-portal.php restores the previous look EXACTLY.
 *
 * NO markup logic, NO workflow, NO permission, NO database change.
 *
 * Sections
 *   01  Tokens (YMN colours mapped onto the reference scale)
 *   02  Motion system + keyframes
 *   03  App shell geometry (sidebar left full-height, topbar in main column)
 *   04  Sidebar
 *   05  Topbar (+ command palette, theme toggle)
 *   06  Content, breadcrumb, page head
 *   07  Surfaces: cards, KPI tiles
 *   08  Buttons, inputs, chips, badges, progress
 *   09  Tables
 *   10  Dropdowns, modals, toasts
 *   11  Auth pages (login / register / complete-profile)
 *   12  Dark mode
 *   13  Responsive + reduced motion + print
 */

/* =====================================================================
 * 01  TOKENS
 * ===================================================================== */
.ymn-portal {
	--l-navy: #0a1f44;
	--l-navy-2: #16356b;
	--l-navy-3: #2b5cab;
	--l-navy-deep: #061630;

	--l-gold: #c9a24b;
	--l-gold-2: #e6c574;
	--l-gold-3: #8a6d1f;

	--l-danger: #dc2626;
	--l-warn: #d97706;
	--l-info: #2f80ed;
	--l-ok: #16a34a;

	--l-text: #0f172a;
	--l-muted: #64748b;
	--l-bg: #f6f8fc;
	--l-card: #ffffff;
	--l-border: #e8ecf3;
	--l-soft: #f1f5f9;

	--l-radius: 14px;
	--l-radius-sm: 9px;
	--l-radius-pill: 999px;

	--l-shadow: 0 1px 2px rgba(10, 31, 68, .06), 0 8px 24px rgba(10, 31, 68, .06);
	--l-shadow-lg: 0 18px 50px rgba(10, 31, 68, .18);

	--l-sidebar-w: 258px;
	--l-ring: 0 0 0 3px rgba(201, 162, 75, .28);
}

/* =====================================================================
 * 02  MOTION SYSTEM + KEYFRAMES
 * ===================================================================== */
@keyframes ymnPop {
	from { transform: translateY(8px) scale(.99); opacity: 0; }
	to   { transform: none; opacity: 1; }
}
@keyframes ymnSlide {
	from { transform: translateX(20px); opacity: 0; }
	to   { transform: none; opacity: 1; }
}
@keyframes ymnRise {
	from { transform: translateY(10px); opacity: 0; }
	to   { transform: none; opacity: 1; }
}
@keyframes ymnFade {
	from { opacity: 0; }
	to   { opacity: 1; }
}
@keyframes ymnBarGrow {
	from { transform: scaleX(0); }
	to   { transform: scaleX(1); }
}

/* staggered reveal of the main content blocks, like the reference */
.ymn-portal .ymn-shell-content > * {
	animation: ymnRise .34s cubic-bezier(.16, 1, .3, 1) both;
}
.ymn-portal .ymn-shell-content > *:nth-child(1) { animation-delay: .02s; }
.ymn-portal .ymn-shell-content > *:nth-child(2) { animation-delay: .06s; }
.ymn-portal .ymn-shell-content > *:nth-child(3) { animation-delay: .10s; }
.ymn-portal .ymn-shell-content > *:nth-child(4) { animation-delay: .14s; }
.ymn-portal .ymn-shell-content > *:nth-child(n+5) { animation-delay: .18s; }

/* reveal-on-scroll (driven by ymn-layout.js) */
.ymn-portal [data-ymn-reveal] {
	opacity: 0;
	transform: translateY(14px);
	transition: opacity .5s cubic-bezier(.16, 1, .3, 1), transform .5s cubic-bezier(.16, 1, .3, 1);
}
.ymn-portal [data-ymn-reveal].is-in {
	opacity: 1;
	transform: none;
}

/* skip link (accessibility pattern from the reference) */
.ymn-skip-link {
	position: absolute; left: -9999px; top: 0; z-index: 100000;
	background: var(--l-navy); color: #fff; padding: .6rem 1rem;
	border-radius: 0 0 var(--l-radius-sm) 0; font-size: .85rem; font-weight: 600;
}
.ymn-skip-link:focus { left: 0; }

/* =====================================================================
 * 03  APP SHELL GEOMETRY
 * The reference shell = full-height sidebar on the left, topbar inside the
 * right-hand column. YMN's markup puts the topbar first, so we re-map it
 * with CSS Grid areas - no template restructuring required. The inline
 * `flex-direction:column` on .ymn-shell becomes inert under display:grid.
 * ===================================================================== */
.ymn-portal.ymn-shell {
	display: flex;
	flex-direction: column;
	min-height: 100vh;
	width: 100%;
	max-width: 100%;
	background: var(--l-bg);
}

/* sidebar column + content column; the topbar now sits inside the content
   column, so the sidebar runs the full height exactly like the reference. */
.ymn-portal .ymn-shell-body {
	display: grid;
	grid-template-columns: var(--l-sidebar-w) minmax(0, 1fr);
	flex: 1;
	min-height: 0;
	width: 100%;
	max-width: 100%;
}

.ymn-portal .ymn-shell-main {
	display: flex;
	flex-direction: column;
	min-width: 0;
	max-width: 100%;
}

/* =====================================================================
 * 04  SIDEBAR
 * ===================================================================== */
.ymn-portal .ymn-shell-sidebar {
	background: linear-gradient(180deg, var(--l-navy), var(--l-navy-deep));
	color: #dfe7f5;
	display: flex;
	flex-direction: column;
	position: sticky;
	top: 0;
	align-self: start;
	height: 100vh;
	max-height: 100vh;
	overflow: hidden;
	border-right: 1px solid rgba(255, 255, 255, .07);
}

.ymn-portal .ymn-shell-brand {
	display: flex;
	align-items: center;
	gap: .6rem;
	padding: 1.05rem 1rem;
	border-bottom: 1px solid rgba(255, 255, 255, .1);
}
.ymn-portal .ymn-shell-brand .ymn-brand-badge {
	background: linear-gradient(135deg, var(--l-gold), var(--l-gold-3));
	color: #12213c;
	font-weight: 800;
	box-shadow: 0 6px 16px rgba(201, 162, 75, .28);
}
.ymn-portal .ymn-shell-brand .ymn-brand-title {
	display: block; font-size: .95rem; color: #fff; font-weight: 700; line-height: 1.2;
}
.ymn-portal .ymn-shell-brand .ymn-brand-sub {
	display: block; font-size: .7rem; opacity: .68; letter-spacing: .01em;
}

/* signed-in identity block */
.ymn-portal .ymn-shell-profile {
	display: flex; align-items: center; gap: .6rem;
	padding: .8rem 1rem;
	border-bottom: 1px solid rgba(255, 255, 255, .08);
	background: rgba(255, 255, 255, .03);
}
.ymn-portal .ymn-shell-profile .ymn-sb-photo,
.ymn-portal .ymn-shell-profile .ymn-profile-avatar {
	width: 38px; height: 38px; border-radius: 50%; object-fit: cover; flex: 0 0 auto;
	display: inline-grid; place-items: center;
	font-size: .8rem; font-weight: 700; color: #fff;
	background: linear-gradient(135deg, var(--l-navy-3), var(--l-navy-2));
	border: 2px solid rgba(201, 162, 75, .45);
}
.ymn-portal .ymn-shell-profile .ymn-profile-name { font-size: .84rem; color: #fff; margin: 0; font-weight: 600; }
.ymn-portal .ymn-shell-profile .ymn-profile-role { font-size: .72rem; color: #9db0d0; margin: 0; }
.ymn-portal .ymn-shell-profile .ymn-sb-dept { font-size: .68rem; color: var(--l-gold-2); margin: 0; }

/* nav - overscroll-behavior stops wheel chaining into the page */
.ymn-portal .ymn-shell-nav {
	flex: 1;
	overflow-y: auto;
	overscroll-behavior: contain;
	padding: .7rem .6rem 1.2rem;
}
.ymn-portal .ymn-shell-nav::-webkit-scrollbar { width: 6px; }
.ymn-portal .ymn-shell-nav::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, .18); border-radius: 8px;
}
.ymn-portal .ymn-shell-nav::-webkit-scrollbar-track { background: transparent; }

.ymn-portal .ymn-shell-nav a,
.ymn-portal .ymn-shell-nav .ymn-nav-parent {
	display: flex;
	align-items: center;
	gap: .6rem;
	padding: .5rem .6rem;
	border-radius: 10px;
	color: #cddaee;
	font-size: .87rem;
	font-weight: 500;
	position: relative;
	width: 100%;
	background: transparent;
	border: 0;
	text-align: left;
	text-decoration: none;
	cursor: pointer;
	transition: background .14s ease, color .14s ease, transform .14s ease, box-shadow .14s ease;
}
.ymn-portal .ymn-shell-nav a .dashicons,
.ymn-portal .ymn-shell-nav .ymn-nav-parent .dashicons {
	font-size: 18px; width: 18px; height: 18px; opacity: .72;
	transition: opacity .14s ease, color .14s ease;
}
.ymn-portal .ymn-shell-nav a:hover,
.ymn-portal .ymn-shell-nav .ymn-nav-parent:hover {
	background: rgba(255, 255, 255, .08);
	color: #fff;
	transform: translateX(2px);
	text-decoration: none;
}
.ymn-portal .ymn-shell-nav a:hover .dashicons,
.ymn-portal .ymn-shell-nav .ymn-nav-parent:hover .dashicons { opacity: 1; }

/* active row: gold inset rail, exactly like the reference's accent rail */
.ymn-portal .ymn-shell-nav a.active,
.ymn-portal .ymn-shell-nav .ymn-nav-parent.active {
	background: rgba(201, 162, 75, .18);
	color: #fff;
	font-weight: 600;
	box-shadow: inset 3px 0 0 var(--l-gold);
}
.ymn-portal .ymn-shell-nav a.active .dashicons,
.ymn-portal .ymn-shell-nav .ymn-nav-parent.active .dashicons {
	opacity: 1;
	color: var(--l-gold-2);
}

/* group labels + carets */
.ymn-portal .ymn-nav-parent .ymn-nav-caret {
	margin-left: auto; font-size: 15px; width: 15px; height: 15px; opacity: .6;
	transition: transform .2s cubic-bezier(.4, 0, .2, 1), opacity .2s ease;
}
.ymn-portal .ymn-nav-group.is-open .ymn-nav-caret { transform: rotate(180deg); opacity: .9; }
.ymn-portal .ymn-nav-sub {
	overflow: hidden;
	max-height: 0;
	opacity: 0;
	transition: max-height .26s cubic-bezier(.4, 0, .2, 1), opacity .2s ease;
}
.ymn-portal .ymn-nav-group.is-open .ymn-nav-sub {
	max-height: 720px;
	opacity: 1;
}
.ymn-portal .ymn-nav-sub a {
	font-size: .82rem;
	padding-left: 2.1rem;
	color: #b6c6de;
}

/* count pill on a nav row */
.ymn-portal .ymn-nav-badge {
	margin-left: auto;
	background: var(--l-danger);
	color: #fff;
	font-size: .68rem;
	font-style: normal;
	font-weight: 700;
	padding: 0 .35rem;
	min-width: 18px;
	text-align: center;
	border-radius: var(--l-radius-pill);
}

.ymn-portal .ymn-shell-footer {
	padding: .8rem 1rem;
	border-top: 1px solid rgba(255, 255, 255, .1);
	font-size: .68rem;
	opacity: .7;
}
.ymn-portal .ymn-shell-footer p { margin: 0; line-height: 1.45; }

/* =====================================================================
 * 05  TOPBAR
 * ===================================================================== */
.ymn-portal .ymn-topbar-slim {
	display: flex;
	align-items: center;
	gap: .8rem;
	padding: .7rem 1.2rem;
	background: rgba(255, 255, 255, .88);
	-webkit-backdrop-filter: blur(8px) saturate(140%);
	backdrop-filter: blur(8px) saturate(140%);
	border-bottom: 1px solid var(--l-border);
	position: sticky;
	top: 0;
	z-index: 50;
	min-width: 0;
}
.ymn-portal .ymn-topbar-brand {
	display: flex; align-items: center; gap: .55rem; min-width: 0;
}
.ymn-portal .ymn-topbar-brand .ymn-brand-badge {
	background: linear-gradient(135deg, var(--l-navy), var(--l-navy-2));
	color: #fff;
	font-weight: 800;
}
.ymn-portal .ymn-topbar-brand-title {
	display: block; font-size: .88rem; font-weight: 700; color: var(--l-navy);
	line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.ymn-portal .ymn-topbar-brand-sub {
	display: block; font-size: .7rem; color: var(--l-muted);
}
.ymn-portal .ymn-topbar-right {
	display: flex; align-items: center; gap: .5rem; margin-left: auto;
}

/* hamburger + icon buttons share the reference's 38x38 / radius-11 shape */
.ymn-portal .ymn-hamburger,
.ymn-portal .ymn-help-btn,
.ymn-portal .ymn-bell-wrap,
.ymn-portal .ymn-theme-toggle {
	width: 38px; height: 38px;
	border-radius: 11px;
	border: 1px solid var(--l-border);
	background: var(--l-card);
	color: var(--l-navy);
	display: inline-grid;
	place-items: center;
	position: relative;
	cursor: pointer;
	padding: 0;
	text-decoration: none;
	transition: background .14s ease, transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
.ymn-portal .ymn-hamburger:hover,
.ymn-portal .ymn-help-btn:hover,
.ymn-portal .ymn-bell-wrap:hover,
.ymn-portal .ymn-theme-toggle:hover {
	background: var(--l-soft);
	border-color: var(--l-gold);
	transform: translateY(-1px);
	box-shadow: var(--l-shadow);
}
.ymn-portal .ymn-hamburger:active,
.ymn-portal .ymn-help-btn:active,
.ymn-portal .ymn-bell-wrap:active,
.ymn-portal .ymn-theme-toggle:active { transform: translateY(0); }
.ymn-portal .ymn-hamburger { display: none; }

.ymn-portal .ymn-bell-badge {
	position: absolute; top: -5px; right: -5px;
	background: var(--l-danger); color: #fff;
	font-size: .65rem; font-style: normal; font-weight: 700;
	min-width: 17px; height: 17px; border-radius: var(--l-radius-pill);
	display: grid; place-items: center; padding: 0 3px;
	box-shadow: 0 0 0 2px var(--l-card);
}

/* --- command palette / global search (Ctrl + K) --- */
.ymn-portal .ymn-global-search {
	position: relative;
	flex: 1;
	max-width: 620px;
	display: flex;
	align-items: center;
	min-width: 0;
}
.ymn-portal .ymn-global-search .dashicons {
	position: absolute; left: .6rem; color: var(--l-muted);
	font-size: 18px; width: 18px; height: 18px; pointer-events: none; z-index: 1;
}
.ymn-portal .ymn-global-search input {
	width: 100%;
	height: 38px;
	margin: 0;
	padding: 0 .9rem 0 2.2rem;
	border-radius: var(--l-radius-pill);
	border: 1px solid var(--l-border);
	background: var(--l-soft);
	color: var(--l-text);
	font: inherit;
	font-size: .85rem;
	transition: border-color .14s ease, box-shadow .14s ease, background .14s ease;
}
.ymn-portal .ymn-global-search input:focus {
	outline: 0;
	background: var(--l-card);
	border-color: var(--l-gold);
	box-shadow: var(--l-ring);
}
.ymn-portal .ymn-search-results {
	position: absolute;
	top: calc(100% + .4rem);
	left: 0; right: 0;
	background: var(--l-card);
	border: 1px solid var(--l-border);
	border-radius: var(--l-radius);
	box-shadow: var(--l-shadow-lg);
	z-index: 70;
	max-height: 380px;
	overflow: auto;
	overscroll-behavior: contain;
	animation: ymnPop .16s ease;
}
.ymn-portal .ymn-search-results[hidden] { display: none; }
.ymn-portal .ymn-search-group {
	padding: .45rem .7rem;
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--l-muted);
	background: var(--l-soft);
}
.ymn-portal .ymn-search-item {
	display: flex; gap: .55rem; align-items: center;
	padding: .5rem .7rem;
	color: var(--l-text);
	border-bottom: 1px solid var(--l-border);
	text-decoration: none;
	font-size: .85rem;
}
.ymn-portal .ymn-search-item:hover,
.ymn-portal .ymn-search-item.active {
	background: var(--l-soft);
	text-decoration: none;
}
.ymn-portal .ymn-search-empty {
	padding: .9rem .8rem; font-size: .84rem; color: var(--l-muted); text-align: center;
}

/* --- profile chip + dropdown --- */
.ymn-portal .ymn-topbar-profile-btn {
	display: flex; align-items: center; gap: .5rem;
	background: var(--l-card);
	border: 1px solid var(--l-border);
	border-radius: var(--l-radius-pill);
	padding: .28rem .7rem .28rem .3rem;
	cursor: pointer;
	font: inherit;
	font-size: .82rem;
	font-weight: 600;
	color: var(--l-navy);
	transition: background .14s ease, border-color .14s ease, box-shadow .14s ease;
}
.ymn-portal .ymn-topbar-profile-btn:hover {
	background: var(--l-soft);
	border-color: var(--l-gold);
	box-shadow: var(--l-shadow);
}
.ymn-portal .ymn-topbar-profile-btn img,
.ymn-portal .ymn-topbar-profile-btn .ymn-avatar-fallback {
	width: 30px; height: 30px; border-radius: 50%; object-fit: cover;
	display: inline-grid; place-items: center;
	font-size: .72rem; font-weight: 700; color: #fff;
	background: linear-gradient(135deg, var(--l-navy), var(--l-navy-3));
}

.ymn-portal .ymn-profile-dropdown {
	position: absolute;
	right: 0;
	top: calc(100% + .45rem);
	min-width: 250px;
	background: var(--l-card);
	border: 1px solid var(--l-border);
	border-radius: var(--l-radius);
	box-shadow: var(--l-shadow-lg);
	padding: .7rem .8rem;
	display: none;
	z-index: 80;
}
.ymn-portal .ymn-profile-dropdown.open {
	display: block;
	animation: ymnPop .16s ease;
}
.ymn-portal .ymn-topbar-profile { position: relative; }

/* =====================================================================
 * 06  CONTENT, BREADCRUMB, PAGE HEAD
 * ===================================================================== */
.ymn-portal .ymn-shell-topbar {
	display: flex;
	flex-wrap: wrap;
	gap: .8rem;
	align-items: flex-start;
	justify-content: space-between;
	padding: 1.1rem 1.6rem .2rem;
	background: transparent;
	border: 0;
}
.ymn-portal .ymn-shell-topbar h1 {
	margin: 0;
	font-size: 1.5rem;
	letter-spacing: -.01em;
	color: var(--l-navy);
	font-weight: 700;
}
.ymn-portal .ymn-shell-topbar p {
	margin: .15rem 0 0;
	color: var(--l-muted);
	font-size: .87rem;
}
.ymn-portal .ymn-shell-topbar .ymn-role-pill {
	background: rgba(201, 162, 75, .16);
	color: var(--l-gold-3);
	border: 1px solid rgba(201, 162, 75, .4);
	border-radius: var(--l-radius-pill);
	font-size: .72rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: .2rem .6rem;
}

.ymn-portal .ymn-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	gap: .4rem;
	align-items: center;
	font-size: .78rem;
	color: var(--l-muted);
	padding: .9rem 1.6rem 0;
}
.ymn-portal .ymn-breadcrumb a { color: var(--l-muted); text-decoration: none; }
.ymn-portal .ymn-breadcrumb a:hover { color: var(--l-navy); text-decoration: underline; }
.ymn-portal .ymn-breadcrumb strong { color: var(--l-navy); font-weight: 600; }

.ymn-portal .ymn-shell-content {
	padding: 1.2rem 1.6rem 2.4rem;
	max-width: none;
	width: 100%;
	min-width: 0;
	flex: 1;
}
@media (min-width: 1800px) {
	.ymn-portal .ymn-shell-content,
	.ymn-portal .ymn-shell-topbar,
	.ymn-portal .ymn-breadcrumb { padding-left: 2.2rem; padding-right: 2.2rem; }
}

/* =====================================================================
 * 07  SURFACES: CARDS + KPI TILES
 * ===================================================================== */
.ymn-portal .ymn-card,
.ymn-portal .ymn-card-v2,
.ymn-portal .ymn-panel {
	background: var(--l-card);
	border: 1px solid var(--l-border);
	border-radius: var(--l-radius);
	box-shadow: var(--l-shadow);
	overflow: hidden;
	transition: transform .18s cubic-bezier(.4, 0, .2, 1), box-shadow .18s cubic-bezier(.4, 0, .2, 1), border-color .18s ease;
}
.ymn-portal .ymn-card:hover,
.ymn-portal .ymn-card-v2:hover,
.ymn-portal .ymn-panel:hover {
	transform: translateY(-2px);
	box-shadow: var(--l-shadow-lg);
	border-color: rgba(201, 162, 75, .35);
}

/* KPI / stat tiles - left tone rail, like the reference .kpi */
.ymn-portal .ymn-stat-card,
.ymn-portal .ymn-stat-card-v2 {
	background: var(--l-card);
	border: 1px solid var(--l-border);
	border-left: 4px solid var(--l-navy-3);
	border-radius: var(--l-radius);
	box-shadow: var(--l-shadow);
	position: relative;
	transition: transform .18s cubic-bezier(.4, 0, .2, 1), box-shadow .18s cubic-bezier(.4, 0, .2, 1);
}
.ymn-portal .ymn-stat-card:hover,
.ymn-portal .ymn-stat-card-v2:hover {
	transform: translateY(-3px);
	box-shadow: var(--l-shadow-lg);
}
.ymn-portal .ymn-stat-card.tone-ok,
.ymn-portal .ymn-stat-card-v2.tone-ok { border-left-color: var(--l-ok); }
.ymn-portal .ymn-stat-card.tone-warn,
.ymn-portal .ymn-stat-card-v2.tone-warn { border-left-color: var(--l-warn); }
.ymn-portal .ymn-stat-card.tone-bad,
.ymn-portal .ymn-stat-card-v2.tone-bad { border-left-color: var(--l-danger); }
.ymn-portal .ymn-stat-card.tone-gold,
.ymn-portal .ymn-stat-card-v2.tone-gold { border-left-color: var(--l-gold); }

/* =====================================================================
 * 08  BUTTONS, INPUTS, CHIPS, BADGES, PROGRESS
 * ===================================================================== */
.ymn-portal .ymn-btn {
	border-radius: 10px;
	font-weight: 600;
	letter-spacing: .01em;
	cursor: pointer;
	transition: transform .12s ease, box-shadow .12s ease, background .12s ease, border-color .12s ease, color .12s ease;
}
.ymn-portal .ymn-btn:hover {
	transform: translateY(-1px);
	box-shadow: var(--l-shadow);
	text-decoration: none;
}
.ymn-portal .ymn-btn:active { transform: translateY(0); box-shadow: none; }
.ymn-portal .ymn-btn:disabled,
.ymn-portal .ymn-btn[disabled] { opacity: .6; transform: none; box-shadow: none; cursor: not-allowed; }

.ymn-portal .ymn-btn-primary {
	background: linear-gradient(135deg, var(--l-navy-2), var(--l-navy));
	border: 0;
	color: #fff;
}
.ymn-portal .ymn-btn-primary:hover {
	background: linear-gradient(135deg, var(--l-navy-3), var(--l-navy-2));
}
.ymn-portal .ymn-btn-gold {
	background: linear-gradient(135deg, var(--l-gold-2), var(--l-gold));
	border: 0;
	color: #12213c;
}

/* focus ring - one consistent gold ring everywhere */
.ymn-portal a:focus-visible,
.ymn-portal button:focus-visible,
.ymn-portal input:focus-visible,
.ymn-portal select:focus-visible,
.ymn-portal textarea:focus-visible {
	outline: 2px solid var(--l-gold);
	outline-offset: 2px;
}

.ymn-portal input:not([type="checkbox"]):not([type="radio"]),
.ymn-portal select,
.ymn-portal textarea {
	border-radius: 10px;
	transition: border-color .12s ease, box-shadow .12s ease, background .12s ease;
}
.ymn-portal input:not([type="checkbox"]):not([type="radio"]):focus,
.ymn-portal select:focus,
.ymn-portal textarea:focus {
	outline: 0;
	border-color: var(--l-gold);
	box-shadow: var(--l-ring);
}

/* progress bars animate their fill */
.ymn-portal .ymn-progress,
.ymn-portal .ymn-bar-track {
	height: 7px;
	border-radius: var(--l-radius-pill);
	background: var(--l-soft);
	overflow: hidden;
}
.ymn-portal .ymn-progress > span,
.ymn-portal .ymn-bar-fill {
	display: block;
	height: 100%;
	border-radius: var(--l-radius-pill);
	background: linear-gradient(90deg, var(--l-gold), var(--l-gold-2));
	transform-origin: left center;
	animation: ymnBarGrow .6s cubic-bezier(.16, 1, .3, 1) both;
	transition: width .5s ease;
}

/* =====================================================================
 * 09  TABLES
 * ===================================================================== */
.ymn-portal .ymn-table-wrap {
	overflow-x: auto;
	overscroll-behavior-x: contain;
	border: 1px solid var(--l-border);
	border-radius: var(--l-radius-sm);
	-webkit-overflow-scrolling: touch;
	background: var(--l-card);
}
.ymn-portal .ymn-table-wrap table { width: 100%; border-collapse: collapse; font-size: .855rem; }
.ymn-portal .ymn-table-wrap thead th {
	text-align: left;
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--l-muted);
	background: var(--l-soft);
	padding: .6rem .7rem;
	white-space: nowrap;
	position: sticky;
	top: 0;
	z-index: 2;
}
.ymn-portal .ymn-table-wrap tbody td {
	padding: .6rem .7rem;
	border-top: 1px solid var(--l-border);
	vertical-align: middle;
}
.ymn-portal .ymn-table-wrap tbody tr {
	transition: background .12s ease;
}
.ymn-portal .ymn-table-wrap tbody tr:hover { background: var(--l-soft); }

/* rows hidden by the command palette filter */
.ymn-portal tr.ymn-filtered-out { display: none; }

/* =====================================================================
 * 10  DROPDOWNS, MODALS, TOASTS
 * ===================================================================== */
.ymn-portal .ymn-modal,
.ymn-portal .ymn-sheet {
	animation: ymnFade .16s ease;
}
.ymn-portal .ymn-modal-panel,
.ymn-portal .ymn-sheet-panel {
	border-radius: 18px;
	box-shadow: var(--l-shadow-lg);
	animation: ymnPop .16s ease;
}

.ymn-toast-stack {
	position: fixed;
	right: 1rem;
	top: 1rem;
	z-index: 99000;
	display: grid;
	gap: .5rem;
	max-width: 340px;
}
.ymn-toast {
	background: #fff;
	border: 1px solid var(--l-border);
	border-left: 4px solid var(--l-info);
	border-radius: var(--l-radius-sm);
	box-shadow: var(--l-shadow-lg);
	padding: .7rem .85rem;
	font-size: .85rem;
	color: #0f172a;
	animation: ymnSlide .2s ease;
	transition: opacity .25s ease, transform .25s ease;
}
.ymn-toast.is-out { opacity: 0; transform: translateX(20px); }
.ymn-toast.ok { border-left-color: var(--l-ok); }
.ymn-toast.bad { border-left-color: var(--l-danger); }
.ymn-toast.warn { border-left-color: var(--l-warn); }

/* =====================================================================
 * 11  AUTH PAGES - the reference's glass card, in YMN navy
 * ===================================================================== */
.ymn-portal.ymn-auth-page {
	min-height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.6rem 1.5rem;
	color: #fff;
	position: relative;
	background-color: #0a1f44;
	background-image: url("../img/ymn-auth-scene.svg");
	background-size: cover;
	background-position: center center;
	background-repeat: no-repeat;
	background-attachment: fixed;
}
.ymn-portal.ymn-auth-page::before {
	content: "";
	position: fixed;
	inset: 0;
	pointer-events: none;
	z-index: 0;
	background:
		radial-gradient(900px 620px at 50% 18%, rgba(201, 162, 75, .18), transparent 70%),
		rgba(4, 14, 32, .28);
}

.ymn-portal.ymn-auth-page .ymn-auth-card {
	position: relative;
	z-index: 1;
	width: min(432px, 100%);
	max-width: 100%;
	margin: auto;
	background: rgba(255, 255, 255, .13);
	border: 1px solid rgba(255, 255, 255, .3);
	border-radius: 26px;
	padding: 2.4rem 2.1rem;
	display: flex;
	flex-direction: column;
	gap: 1.05rem;
	-webkit-backdrop-filter: blur(18px) saturate(150%);
	backdrop-filter: blur(18px) saturate(150%);
	box-shadow:
		0 30px 70px rgba(3, 10, 24, .45),
		inset 0 1px 0 rgba(255, 255, 255, .35);
	animation: ymnPop .3s cubic-bezier(.16, 1, .3, 1);
}
.ymn-portal.ymn-auth-page .ymn-auth-card-wide { width: min(900px, 100%); padding: 1.8rem 1.9rem; gap: .7rem; }

/* logo + heading block */
.ymn-portal.ymn-auth-page .ymn-auth-logo {
	display: block;
	height: auto;
	width: 180px;
	max-width: 70%;
	margin: 0 auto .2rem;
	object-fit: contain;
}
.ymn-portal.ymn-auth-page .ymn-auth-card h1 {
	font-size: 1.9rem;
	margin: .2rem 0 0;
	color: #fff;
	text-align: center;
	letter-spacing: .01em;
	font-weight: 800;
}
.ymn-portal.ymn-auth-page .ymn-auth-sub {
	margin: 0;
	font-size: .8rem;
	color: rgba(255, 255, 255, .72);
	text-align: center;
	font-weight: 700;
}

/* every piece of text on the auth card is bold, like the reference */
.ymn-portal.ymn-auth-page .ymn-auth-card,
.ymn-portal.ymn-auth-page .ymn-auth-card p,
.ymn-portal.ymn-auth-page .ymn-auth-card span,
.ymn-portal.ymn-auth-page .ymn-auth-card label,
.ymn-portal.ymn-auth-page .ymn-auth-card a,
.ymn-portal.ymn-auth-page .ymn-auth-card button,
.ymn-portal.ymn-auth-page .ymn-auth-card input,
.ymn-portal.ymn-auth-page .ymn-auth-card select {
	font-weight: 700;
}

/* underline-only fields */
.ymn-portal.ymn-auth-page .ymn-auth-card label {
	display: grid;
	gap: .3rem;
	font-size: .74rem;
	letter-spacing: .09em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .88);
}
.ymn-portal.ymn-auth-page .ymn-auth-card input:not([type="checkbox"]):not([type="radio"]),
.ymn-portal.ymn-auth-page .ymn-auth-card select,
.ymn-portal.ymn-auth-page .ymn-auth-card textarea {
	width: 100%;
	background: transparent;
	border: 0;
	border-bottom: 2px solid rgba(255, 255, 255, .42);
	border-radius: 0;
	color: #fff;
	padding: .5rem .15rem;
	font-size: 1rem;
	font-family: inherit;
	box-shadow: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.ymn-portal.ymn-auth-page .ymn-auth-card input:focus,
.ymn-portal.ymn-auth-page .ymn-auth-card select:focus,
.ymn-portal.ymn-auth-page .ymn-auth-card textarea:focus {
	outline: none;
	border-bottom-color: var(--l-gold-2);
	box-shadow: 0 1px 0 var(--l-gold-2);
}
.ymn-portal.ymn-auth-page .ymn-auth-card input::placeholder {
	color: rgba(255, 255, 255, .5);
	letter-spacing: normal;
	font-weight: 600;
}
.ymn-portal.ymn-auth-page .ymn-auth-card select { -webkit-appearance: none; appearance: none; }
.ymn-portal.ymn-auth-page .ymn-auth-card select option { color: #0a1f44; background: #fff; }
.ymn-portal.ymn-auth-page .ymn-auth-card input[type="file"] {
	font-size: .84rem; color: rgba(255, 255, 255, .8); border-bottom: 0;
}
.ymn-portal.ymn-auth-page .ymn-auth-card input[type="date"]::-webkit-calendar-picker-indicator {
	filter: invert(1) brightness(2); opacity: 1; cursor: pointer;
}
.ymn-portal.ymn-auth-page .ymn-auth-card input:-webkit-autofill,
.ymn-portal.ymn-auth-page .ymn-auth-card input:-webkit-autofill:focus {
	-webkit-text-fill-color: #fff;
	caret-color: #fff;
	-webkit-box-shadow: 0 0 0 1000px rgba(10, 31, 68, .78) inset;
}
.ymn-portal.ymn-auth-page .ymn-auth-card input[type="checkbox"] {
	width: 15px; height: 15px; border-bottom: 0; accent-color: var(--l-gold-2); cursor: pointer;
}

/* white pill submit button */
.ymn-portal.ymn-auth-page .ymn-auth-card .ymn-btn-primary {
	background: #fff;
	color: var(--l-navy);
	border: 0;
	border-radius: var(--l-radius-pill);
	padding: .85rem 1.1rem;
	font-size: .97rem;
	font-weight: 800;
	letter-spacing: .01em;
	box-shadow: 0 14px 28px rgba(3, 10, 24, .3);
	transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}
.ymn-portal.ymn-auth-page .ymn-auth-card .ymn-btn-primary:hover {
	background: #fff;
	transform: translateY(-1px);
	box-shadow: 0 18px 34px rgba(3, 10, 24, .38);
}
.ymn-portal.ymn-auth-page .ymn-auth-card .ymn-btn-primary:disabled { opacity: .7; transform: none; }

/* remember-me row */
.ymn-portal.ymn-auth-page .ymn-auth-remember {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .75rem;
	flex-wrap: wrap;
}
.ymn-portal.ymn-auth-page .ymn-auth-remember label.ymn-check {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: .45rem;
	font-size: .8rem;
	text-transform: none;
	letter-spacing: normal;
	color: rgba(255, 255, 255, .88);
}

/* password reveal control */
.ymn-password-field { position: relative; width: 100%; }
.ymn-portal.ymn-auth-page .ymn-password-field input { padding-right: 2.65rem; }
.ymn-portal.ymn-auth-page .ymn-password-field input::-ms-reveal,
.ymn-portal.ymn-auth-page .ymn-password-field input::-ms-clear { display: none; }
.ymn-password-toggle {
	position: absolute;
	right: .1rem;
	top: 50%;
	transform: translateY(-50%);
	width: 2.2rem;
	height: 2.2rem;
	padding: .35rem;
	border: 0;
	background: transparent;
	color: #fff;
	display: grid;
	place-items: center;
	cursor: pointer;
	transition: background .15s ease;
}
.ymn-password-toggle:hover,
.ymn-password-toggle:focus {
	color: #fff;
	background: rgba(255, 255, 255, .12);
	border-radius: 50%;
	outline: none;
}
.ymn-password-toggle svg {
	width: 21px; height: 21px; fill: none; stroke: currentColor;
	stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round;
}
.ymn-password-toggle .ymn-eye-closed { display: none; }
.ymn-password-toggle.is-visible .ymn-eye-open { display: none; }
.ymn-password-toggle.is-visible .ymn-eye-closed { display: block; }

/* links, alerts and the footer strip on auth cards */
.ymn-portal.ymn-auth-page .ymn-auth-card a { color: #fff; text-decoration: none; }
.ymn-portal.ymn-auth-page .ymn-auth-card a:hover { text-decoration: underline; }
.ymn-portal.ymn-auth-page .ymn-auth-forgot { text-align: center; margin: 0; }
.ymn-portal.ymn-auth-page .ymn-auth-forgot a { font-size: .8rem; color: var(--l-gold-2); }
.ymn-portal.ymn-auth-page .ymn-auth-footer {
	text-align: center;
	margin: 0;
	font-size: .82rem;
	color: rgba(255, 255, 255, .78);
}
.ymn-portal.ymn-auth-page .ymn-auth-footer a { color: var(--l-gold-2); }

.ymn-portal.ymn-auth-page .ymn-alert {
	background: rgba(255, 255, 255, .15);
	border: 1px solid rgba(255, 255, 255, .32);
	border-radius: var(--l-radius-sm);
	color: #fff;
	padding: .6rem .8rem;
	font-size: .85rem;
}
.ymn-portal.ymn-auth-page .ymn-alert-error,
.ymn-portal.ymn-auth-page .ymn-alert-bad {
	background: rgba(255, 138, 138, .22);
	border-color: rgba(255, 138, 138, .45);
}
.ymn-portal.ymn-auth-page .ymn-alert-success,
.ymn-portal.ymn-auth-page .ymn-alert-ok {
	background: rgba(126, 240, 171, .22);
	border-color: rgba(126, 240, 171, .45);
}

.ymn-portal.ymn-auth-page .ymn-forgot-box {
	background: rgba(255, 255, 255, .1);
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: var(--l-radius);
	padding: 1rem;
	display: grid;
	gap: .8rem;
	animation: ymnRise .24s cubic-bezier(.16, 1, .3, 1);
}
.ymn-portal.ymn-auth-page .ymn-forgot-help {
	margin: 0;
	font-size: .8rem;
	color: rgba(255, 255, 255, .78);
}

/* footer strip with the symbolic mark */
.ymn-auth-foot {
	margin-top: .3rem;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	border-top: 1px solid rgba(255, 255, 255, .2);
	padding-top: .9rem;
	font-size: .71rem;
	color: rgba(255, 255, 255, .7);
	text-align: center;
}
.ymn-auth-foot img { width: 30px; opacity: .9; }

/* =====================================================================
 * 12  DARK MODE  (opt-in via the topbar toggle)
 * ===================================================================== */
html[data-ymn-theme="dark"] .ymn-portal {
	--l-text: #e7edf7;
	--l-muted: #9db0cd;
	--l-bg: #0b1424;
	--l-card: #121d33;
	--l-border: #22314d;
	--l-soft: #17233c;
	--l-shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 8px 24px rgba(0, 0, 0, .28);
	--l-shadow-lg: 0 18px 50px rgba(0, 0, 0, .5);
}
html[data-ymn-theme="dark"] .ymn-portal.ymn-shell { background: var(--l-bg); }
html[data-ymn-theme="dark"] .ymn-portal .ymn-topbar-slim {
	background: rgba(18, 29, 51, .88);
}
html[data-ymn-theme="dark"] .ymn-portal .ymn-topbar-brand-title,
html[data-ymn-theme="dark"] .ymn-portal .ymn-shell-topbar h1,
html[data-ymn-theme="dark"] .ymn-portal .ymn-breadcrumb strong { color: #e7edf7; }
html[data-ymn-theme="dark"] .ymn-portal .ymn-card,
html[data-ymn-theme="dark"] .ymn-portal .ymn-card-v2,
html[data-ymn-theme="dark"] .ymn-portal .ymn-panel,
html[data-ymn-theme="dark"] .ymn-portal .ymn-stat-card,
html[data-ymn-theme="dark"] .ymn-portal .ymn-stat-card-v2,
html[data-ymn-theme="dark"] .ymn-portal .ymn-table-wrap {
	background: var(--l-card);
	border-color: var(--l-border);
	color: var(--l-text);
}
html[data-ymn-theme="dark"] .ymn-portal .ymn-table-wrap thead th,
html[data-ymn-theme="dark"] .ymn-portal .ymn-table-wrap tbody tr:hover { background: var(--l-soft); }
html[data-ymn-theme="dark"] .ymn-portal .ymn-hamburger,
html[data-ymn-theme="dark"] .ymn-portal .ymn-help-btn,
html[data-ymn-theme="dark"] .ymn-portal .ymn-bell-wrap,
html[data-ymn-theme="dark"] .ymn-portal .ymn-theme-toggle,
html[data-ymn-theme="dark"] .ymn-portal .ymn-topbar-profile-btn,
html[data-ymn-theme="dark"] .ymn-portal .ymn-profile-dropdown {
	background: var(--l-card);
	border-color: var(--l-border);
	color: var(--l-text);
}
html[data-ymn-theme="dark"] .ymn-toast { background: #121d33; color: #e7edf7; border-color: #22314d; }

/* =====================================================================
 * 13  RESPONSIVE + REDUCED MOTION + PRINT
 * ===================================================================== */
@media (max-width: 1080px) {
	.ymn-portal .ymn-shell-body { grid-template-columns: minmax(0, 1fr); }
	.ymn-portal .ymn-hamburger { display: inline-grid; }

	/* sidebar becomes an off-canvas drawer, .2s transform like the reference */
	.ymn-portal .ymn-shell-body > .ymn-shell-sidebar {
		position: fixed;
		inset: 0 auto 0 0;
		width: 272px;
		z-index: 130;
		transform: translateX(-100%);
		transition: transform .2s ease;
		box-shadow: var(--l-shadow-lg);
	}
	.ymn-portal .ymn-shell-body > .ymn-shell-sidebar.open { transform: none; }

	.ymn-portal .ymn-sidebar-overlay {
		position: fixed;
		inset: 0;
		background: rgba(4, 14, 32, .5);
		z-index: 125;
		opacity: 0;
		visibility: hidden;
		transition: opacity .2s ease, visibility .2s ease;
	}
	.ymn-portal .ymn-sidebar-overlay.open { opacity: 1; visibility: visible; }
}

@media (max-width: 860px) {
	.ymn-portal .ymn-global-search { display: none; }
}

@media (max-width: 620px) {
	.ymn-portal .ymn-shell-content { padding: .9rem .9rem 2rem; }
	.ymn-portal .ymn-shell-topbar { padding: .9rem .9rem .2rem; }
	.ymn-portal .ymn-breadcrumb { padding: .7rem .9rem 0; }
	.ymn-portal .ymn-topbar-slim { padding: .6rem .8rem; gap: .5rem; }
	.ymn-portal .ymn-topbar-brand-sub { display: none; }
	.ymn-portal .ymn-topbar-profile-btn { padding: .2rem; border: 0; font-size: 0; }
	.ymn-portal .ymn-shell-topbar h1 { font-size: 1.22rem; }
	.ymn-portal.ymn-auth-page { padding: 1rem .9rem; background-attachment: scroll; }
	.ymn-portal.ymn-auth-page .ymn-auth-card { padding: 1.7rem 1.3rem; border-radius: 20px; }
	.ymn-portal.ymn-auth-page .ymn-auth-card h1 { font-size: 1.5rem; }
	.ymn-toast-stack { left: .8rem; right: .8rem; max-width: none; }
}

/* honour the OS "reduce motion" setting - all effects collapse to instant */
@media (prefers-reduced-motion: reduce) {
	.ymn-portal *,
	.ymn-portal *::before,
	.ymn-portal *::after,
	.ymn-toast {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
		scroll-behavior: auto !important;
	}
	.ymn-portal [data-ymn-reveal] { opacity: 1; transform: none; }
}

@media print {
	.ymn-portal .ymn-topbar-slim,
	.ymn-portal .ymn-shell-sidebar,
	.ymn-portal .ymn-breadcrumb,
	.ymn-portal .ymn-sidebar-overlay,
	.ymn-toast-stack,
	.ymn-portal .ymn-global-search { display: none !important; }
	.ymn-portal.ymn-shell {
		display: block;
		background: #fff;
	}
	.ymn-portal .ymn-card,
	.ymn-portal .ymn-card-v2,
	.ymn-portal .ymn-panel { box-shadow: none; break-inside: avoid; }
	.ymn-portal .ymn-shell-content > * { animation: none; }
}

/* =====================================================================
   14. TASK BOARD + LIVE PERFORMANCE  (v2.27.0)
   Reference-portal task layout ported onto the YMN navy/gold palette.
   ===================================================================== */

/* --- Task summary tiles (reference .kpi-grid / .kpi) --- */
.ymn-portal .ymn-tk-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: .7rem;
	margin-bottom: 1rem;
}
.ymn-portal .ymn-tk {
	background: var(--l-card);
	border: 1px solid var(--l-border);
	border-left: 4px solid var(--l-navy-3);
	border-radius: var(--l-radius);
	padding: .75rem .85rem;
	box-shadow: var(--l-shadow);
	animation: ymnRise .26s var(--ymn-ease-out, ease) both;
	transition: transform .14s ease, box-shadow .14s ease;
}
.ymn-portal .ymn-tk:hover { transform: translateY(-2px); box-shadow: var(--l-shadow-lg); }
.ymn-portal .ymn-tk.tone-ok { border-left-color: var(--l-ok); }
.ymn-portal .ymn-tk.tone-warn { border-left-color: var(--l-warn); }
.ymn-portal .ymn-tk.tone-bad { border-left-color: var(--l-danger); }
.ymn-portal .ymn-tk.tone-info { border-left-color: var(--l-gold); }
.ymn-portal .ymn-tk-l {
	display: block;
	font-size: .7rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--l-muted);
}
.ymn-portal .ymn-tk-v {
	display: block;
	font-size: 1.55rem;
	letter-spacing: -.02em;
	line-height: 1.15;
	color: var(--l-text);
}
.ymn-portal .ymn-tk-s { display: block; font-size: .74rem; color: var(--l-muted); }

/* --- Task table (reference ui_table) --- */
.ymn-portal .ymn-tk-wrap { border-radius: var(--l-radius); }
.ymn-portal .ymn-tk-table { width: 100%; }
.ymn-portal .ymn-tk-table td { vertical-align: top; }
.ymn-portal .ymn-tk-title { display: inline-block; font-size: .88rem; margin-right: .4rem; }
.ymn-portal .ymn-tk-sub {
	display: block;
	font-style: normal;
	font-size: .74rem;
	color: var(--l-muted);
	margin-top: .15rem;
}
.ymn-portal .ymn-tk-link {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	font-size: .74rem;
	color: var(--l-navy-3);
	text-decoration: none;
	margin-top: .25rem;
}
.ymn-portal .ymn-tk-link:hover { text-decoration: underline; }
.ymn-portal .ymn-tk-link .dashicons { font-size: 14px; width: 14px; height: 14px; }
.ymn-portal .ymn-tk-late {
	display: block;
	font-style: normal;
	font-size: .73rem;
	color: var(--l-danger);
	margin-top: .35rem;
}
.ymn-portal .ymn-tk-late .dashicons { font-size: 14px; width: 14px; height: 14px; vertical-align: -2px; }
.ymn-portal .ymn-tk-row-over > td {
	background: rgba(220, 38, 38, .05);
	border-color: rgba(220, 38, 38, .28);
}
.ymn-portal .ymn-tk-table .ymn-task-status-form {
	display: flex;
	flex-wrap: wrap;
	gap: .35rem;
	align-items: center;
}
.ymn-portal .ymn-tk-empty {
	text-align: center;
	color: var(--l-muted);
	padding: 26px 16px;
	font-size: .87rem;
}
.ymn-portal .ymn-tk-empty .dashicons { color: var(--l-ok); vertical-align: -3px; }

/* --- Live performance card --- */
.ymn-portal .ymn-live-card { border-top: 3px solid var(--l-gold); }
.ymn-portal .ymn-live-dot {
	display: inline-block;
	margin-left: .4rem;
	font-size: .62rem;
	font-weight: 700;
	letter-spacing: .08em;
	padding: .12rem .45rem;
	border-radius: var(--l-radius-pill);
	color: #fff;
	background: var(--l-ok);
	vertical-align: 2px;
	animation: ymnFade .3s ease both;
}
.ymn-portal .ymn-live-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: .8rem;
	margin-top: .4rem;
}
.ymn-portal .ymn-live-tile {
	border: 1px solid var(--l-border);
	border-radius: var(--l-radius-sm);
	padding: .75rem .85rem;
	background: var(--l-card);
	animation: ymnRise .28s var(--ymn-ease-out, ease) both;
}
.ymn-portal .ymn-live-l {
	display: block;
	font-size: .7rem;
	text-transform: uppercase;
	letter-spacing: .05em;
	color: var(--l-muted);
}
.ymn-portal .ymn-live-v {
	display: block;
	font-size: 1.4rem;
	letter-spacing: -.02em;
	color: var(--l-navy);
	margin: .1rem 0 .4rem;
}
.ymn-portal .ymn-live-bar {
	height: 7px;
	border-radius: var(--l-radius-pill);
	background: var(--l-soft);
	overflow: hidden;
}
.ymn-portal .ymn-live-bar i {
	display: block;
	height: 100%;
	border-radius: inherit;
	background: linear-gradient(90deg, var(--l-navy-2), var(--l-gold));
	transition: width .5s ease;
}
.ymn-portal .ymn-live-s {
	display: block;
	font-size: .73rem;
	color: var(--l-muted);
	margin-top: .4rem;
}

html[data-ymn-theme="dark"] .ymn-portal .ymn-live-v { color: var(--l-gold-2); }
html[data-ymn-theme="dark"] .ymn-portal .ymn-tk-row-over > td { background: rgba(220, 38, 38, .12); }

@media (max-width: 860px) {
	.ymn-portal .ymn-tk-v { font-size: 1.3rem; }
	.ymn-portal .ymn-live-v { font-size: 1.2rem; }
}

@media (prefers-reduced-motion: reduce) {
	.ymn-portal .ymn-tk,
	.ymn-portal .ymn-live-tile,
	.ymn-portal .ymn-live-dot { animation: none; }
	.ymn-portal .ymn-tk:hover { transform: none; }
	.ymn-portal .ymn-live-bar i { transition: none; }
}
