﻿:root{
  --navy:#0D3B66;
  --gold:#F4D35E;
  --orange:#EE964B;
  --cream:#FAF0CA;
  --bg:#f7f7f7;
  --text:#1f2a37;
  --good:#1f9d55;
  --mid:#d69e2e;
  --bad:#e02424;
  --mobile-header-height: 54px; /* single consistent value */
  --true-vh: 100dvh;
}

/* ---- Global ---- */
*{box-sizing:border-box}
html,body{
  margin:0;
  padding:0;
  background:var(--bg);
  color:var(--text);
  font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
}
button{
  background: var(--navy);
  color:#fff;
  border:none;
  border-radius:8px;
  padding:10px 14px;
  cursor:pointer;
}
button.secondary{
  background: var(--orange);
  color:#fff;
}
input,select{
  padding:10px;
  border:1px solid #e5e7eb;
  border-radius:8px;
  background:#fff;
}
hr{border:none;border-top:1px solid #e5e7eb;margin:16px 0}

/* ---- Sidebar ---- */
.sidebar {
  width: 220px;
  background: #fffdf2;
  border-right: 2px solid var(--gold);
  padding: 12px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 6px;
  position: relative;

  /* Keep natural height for sign-out placement */
  align-self: flex-start;

  /* Visually stretch background to bottom of viewport */
  min-height: 100vh;
  box-sizing: border-box;
}



.sidebar-logo {
  display: block;
  max-width: 190px;
  height: auto;
  margin: 0 auto 20px auto;
  object-fit: contain;
}

/* Desktop logout positioning fix */
#logoutContainerDesktop {
  margin-top: 12px;              /* small spacing after last menu */
  padding-top: 12px;
  border-top: 1px solid #eee;
  display: flex;
  justify-content: center;
  align-items: center;
  position: relative;
  bottom: auto;                  /* prevent it from sticking to page bottom */
}

#desktopSidebarLogout {
  width: 100%;
  background: var(--gold);
  color: #4d2f13;
  font-weight: 700;
  border: none;
  border-radius: 8px;
  padding: 10px 12px;
  cursor: pointer;
  transition: filter 0.2s ease;
}

#desktopSidebarLogout:hover {
  filter: brightness(0.95);
}

.nav-item{
  padding:10px;
  border-radius:8px;
  cursor:pointer;
}
.nav-item.active{
  background:var(--cream);
  border:1px solid var(--gold);
}
.nav-item:hover{
  background:var(--gold);
  color:#4d2f13;
}

/* ---- Main ---- */
.app {
  display: flex;
  align-items: flex-start;
  min-height: 100vh;
  align-content: stretch;
}

.main {
  flex:1;
  padding:16px;
  max-width:1200px;
  margin:0 auto;
}

/* ---- Cards ---- */
.cards{display:grid;grid-template-columns:repeat(2, minmax(220px, 1fr));gap:16px}
.card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:16px}
.score{font-size:28px;font-weight:800}
.score.good{color:var(--good)}
.score.mid{color:var(--mid)}
.score.bad{color:var(--bad)}
.rubric-dashboard-shell,
.rubric-analytics-shell{
  display:flex;
  flex-direction:column;
  gap:20px;
}
.rubric-stats-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(180px, 1fr));
  gap:12px;
}
.rubric-stat-card{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.rubric-stat-label,
.rubric-subtitle,
.rubric-panel-title{
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#6b7280;
}
.rubric-stat-text{
  font-size:18px;
  font-weight:800;
  color:#111827;
}
.rubric-dashboard-grid,
.rubric-analytics-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:20px;
}
.rubric-panel{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.rubric-rider-shell{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.rubric-rider-hero{
display:flex;
flex-direction:column;
gap:16px;
padding:22px;
border-radius:22px;
background:linear-gradient(180deg, #f8f3e7 0%, #efe5d2 100%);
border:1px solid rgba(77,47,19,.12);
box-shadow:0 16px 32px rgba(77,47,19,.08);
}
.rubric-rider-kicker{
font-size:12px;
font-weight:800;
letter-spacing:.08em;
text-transform:uppercase;
color:#355e3b;
display:inline-flex;
align-items:center;
gap:12px;
}
.rubric-rider-title{
margin:0;
font-size:28px;
line-height:1.1;
color:#1f2f46;
}
.rubric-rider-copy{
margin:0;
font-size:15px;
line-height:1.6;
color:#4d2f13;
}
.rubric-rider-grid,
.rider-journal-grid{
display:grid;
grid-template-columns:repeat(2, minmax(0, 1fr));
gap:16px;
}
.rubric-rider-card,
.rider-journal-card{
display:flex;
flex-direction:column;
gap:12px;
padding:18px;
border-radius:18px;
background:#fffdf8;
border:1px solid rgba(77,47,19,.10);
box-shadow:0 10px 24px rgba(77,47,19,.06);
transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.rubric-rider-card:hover,
.rider-journal-card:hover{
transform:translateY(-2px);
box-shadow:0 14px 28px rgba(77,47,19,.10);
border-color:rgba(53,94,59,.22);
}
.rider-journal-card-title{
display:flex;
align-items:center;
gap:10px;
font-size:16px;
font-weight:800;
color:#1f2f46;
}
.rubric-rider-kicker::before,
.rider-journal-card-title::before,
.rubric-rider-pill::before,
.rider-badge-art::before,
.rider-checkin-art::before{
display:inline-block;
font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;
line-height:1;
}
.rubric-rider-kicker::before{
content:"\01F3C7";
font-size:20px;
}
.rider-journal-grid > .rider-journal-card:nth-child(1) .rider-journal-card-title::before{
content:"\01F3C6";
font-size:18px;
}
.rider-journal-grid > .rider-journal-card:nth-child(2) .rider-journal-card-title::before{
content:"\01F955";
font-size:18px;
}
.rider-journal-grid > .rider-journal-card:nth-child(3) .rider-journal-card-title::before{
content:"\01F5FA";
font-size:18px;
}
.rider-journal-grid > .rider-journal-card:nth-child(4) .rider-journal-card-title::before{
content:"\01F4AC";
font-size:18px;
}
.rider-journal-badges .rider-journal-card-title::before{
content:"\01F3C5";
font-size:18px;
}
.rider-journal-future .rider-journal-card-title::before{
content:"\01F305";
font-size:18px;
}
#riderSelfGrade.rubric-rider-shell > #submitRiderSelfBtn{
display:none !important;
}
.rubric-rider-pill-row{
display:flex;
flex-wrap:wrap;
gap:12px;
}
.rubric-rider-pill{
position:relative;
display:inline-flex;
align-items:center;
gap:10px;
padding:12px 16px 12px 58px;
border-radius:18px;
background:#f3f7ff;
color:#1f2f46;
font-size:13px;
font-weight:800;
border:1px solid rgba(31,47,70,.08);
box-shadow:0 10px 20px rgba(31,47,70,.08);
transition:background .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.rubric-rider-pill::before{
content:"\01F434";
position:absolute;
left:14px;
top:50%;
transform:translateY(-50%);
width:34px;
height:34px;
display:grid;
place-items:center;
border-radius:50%;
background:#fff;
font-size:20px;
box-shadow:0 6px 14px rgba(31,47,70,.10);
}
.rider-journal-hero[data-pony-mood="spicy"] .rubric-rider-pill{
background:#fff1ea;
border-color:rgba(196,93,53,.22);
box-shadow:0 10px 20px rgba(196,93,53,.12);
}
.rider-journal-hero[data-pony-mood="calm"] .rubric-rider-pill{
background:#eef7ef;
border-color:rgba(53,94,59,.20);
box-shadow:0 10px 20px rgba(53,94,59,.10);
}
.rider-journal-hero[data-pony-mood="lazy"] .rubric-rider-pill{
background:#f5efe5;
border-color:rgba(141,98,54,.20);
box-shadow:0 10px 20px rgba(141,98,54,.10);
}
.rider-journal-hero[data-pony-mood="partner"] .rubric-rider-pill{
background:#f7f2ff;
border-color:rgba(95,76,158,.18);
box-shadow:0 10px 20px rgba(95,76,158,.12);
}
.rider-journal-badges,
.rider-journal-future{
background:#f8f3e7;
}
.rider-journal-toggle{
margin-top:auto;
}
.rider-journal-toggle summary,
.rider-badge-summary,
.rider-next-action summary{
list-style:none;
cursor:pointer;
}
.rider-journal-toggle summary::-webkit-details-marker,
.rider-badge-summary::-webkit-details-marker,
.rider-next-action summary::-webkit-details-marker{
display:none;
}
.rider-journal-action{
display:inline-flex;
align-items:center;
justify-content:center;
min-height:40px;
padding:10px 14px;
border-radius:999px;
background:#355e3b;
color:#fff;
font-size:13px;
font-weight:800;
box-shadow:0 8px 18px rgba(53,94,59,.18);
}
.rider-journal-secret{
margin-top:10px;
padding:12px 14px;
border-radius:14px;
background:#f6efe0;
border:1px dashed rgba(77,47,19,.18);
color:#4d2f13;
font-size:14px;
line-height:1.5;
}
.rider-badge-grid{
display:grid;
grid-template-columns:repeat(auto-fit, minmax(170px, 1fr));
gap:12px;
}
.rider-badge-tile{
position:relative;
border-radius:18px;
background:#fff;
border:1px solid rgba(77,47,19,.10);
box-shadow:0 10px 22px rgba(77,47,19,.06);
overflow:hidden;
}
.rider-badge-summary{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:10px;
min-height:140px;
padding:18px 14px;
text-align:center;
}
.rider-badge-art{
width:54px;
height:54px;
display:grid;
place-items:center;
border-radius:16px;
background:#f8f3e7;
box-shadow:inset 0 0 0 1px rgba(77,47,19,.08);
}
.rider-badge-art::before{
font-size:28px;
}
.rider-badge-tile--star .rider-badge-art::before{
content:"\2B50";
}
.rider-badge-tile--quest .rider-badge-art::before{
content:"\01F5FA";
}
.rider-badge-tile--boots .rider-badge-art::before{
content:"\01F97E";
}
.rider-badge-label{
font-size:14px;
font-weight:800;
color:#1f2f46;
}
.rider-badge-pop{
padding:0 14px 16px;
color:#4d2f13;
font-size:13px;
line-height:1.5;
}
.rider-badge-tile[open]::after{
content:"";
position:absolute;
inset:0;
pointer-events:none;
background:
  radial-gradient(circle at 18% 20%, rgba(255,209,102,.55) 0 6px, transparent 7px),
  radial-gradient(circle at 78% 24%, rgba(53,94,59,.28) 0 5px, transparent 6px),
  radial-gradient(circle at 28% 78%, rgba(31,47,70,.22) 0 5px, transparent 6px),
  radial-gradient(circle at 82% 72%, rgba(238,180,86,.45) 0 6px, transparent 7px);
animation:riderBadgeConfetti .6s ease-out;
}
.rider-next-action{
margin-top:2px;
}
.rider-next-action-btn{
display:flex;
align-items:center;
justify-content:center;
padding:16px 18px;
border-radius:20px;
background:#1f2f46;
color:#fff;
font-size:15px;
font-weight:800;
box-shadow:0 12px 24px rgba(31,47,70,.18);
}
.rider-next-action-btn::before{
content:"\01F434";
display:inline-block;
margin-right:10px;
font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;
font-size:20px;
line-height:1;
}
.rider-next-action-note{
margin-top:10px;
padding:14px 16px;
border-radius:16px;
background:#eef4ea;
border:1px solid rgba(53,94,59,.12);
color:#355e3b;
font-size:14px;
line-height:1.5;
}
.rider-checkin-panel{
display:flex;
flex-direction:column;
gap:18px;
margin-top:12px;
padding:18px;
border-radius:18px;
background:#fffaf0;
border:1px solid rgba(77,47,19,.10);
box-shadow:inset 0 0 0 1px rgba(255,255,255,.4);
}
.rider-checkin-note{
margin:0;
padding:14px 16px;
border-radius:16px;
background:#eef4ea;
border:1px solid rgba(53,94,59,.12);
color:#355e3b;
font-size:14px;
line-height:1.5;
}
.rider-checkin-step{
display:flex;
flex-direction:column;
gap:12px;
}
.rider-checkin-step-title{
font-size:15px;
font-weight:800;
color:#1f2f46;
}
.rider-checkin-row{
display:flex;
flex-direction:column;
gap:8px;
}
.rider-checkin-row-label{
font-size:13px;
font-weight:800;
color:#4d2f13;
}
.rider-checkin-choice-grid{
display:grid;
grid-template-columns:repeat(2, minmax(0, 1fr));
gap:10px;
}
.rider-checkin-choice-grid--mini{
grid-template-columns:repeat(4, minmax(0, 1fr));
}
.rider-checkin-choice{
display:flex;
flex-direction:column;
align-items:center;
justify-content:center;
gap:10px;
min-height:108px;
padding:14px 12px;
border-radius:18px;
background:#fff;
border:1px solid rgba(77,47,19,.10);
box-shadow:0 10px 20px rgba(77,47,19,.05);
cursor:pointer;
font:inherit;
color:#1f2f46;
transition:transform .18s ease, border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.rider-checkin-choice:hover{
transform:translateY(-2px);
border-color:rgba(53,94,59,.20);
box-shadow:0 14px 24px rgba(53,94,59,.10);
}
.rider-checkin-choice.is-selected{
background:#eef4ea;
border-color:#355e3b;
box-shadow:0 14px 24px rgba(53,94,59,.14);
}
.rider-checkin-choice--mini{
min-height:auto;
padding:12px 10px;
border-radius:999px;
font-size:13px;
font-weight:800;
}
.rider-checkin-art{
width:56px;
height:56px;
display:grid;
place-items:center;
border-radius:18px;
background:#f8f3e7;
box-shadow:inset 0 0 0 1px rgba(77,47,19,.08);
}
.rider-checkin-art::before{
font-size:28px;
}
.rider-checkin-art--spicy::before{
content:"\01F680";
}
.rider-checkin-art--calm::before{
content:"\01F33F";
}
.rider-checkin-art--lazy::before{
content:"\01F422";
}
.rider-checkin-art--partner::before{
content:"\2B50";
}
.rider-checkin-art--carrot::before{
content:"\01F955";
}
.rider-checkin-art--apple::before{
content:"\01F34E";
}
.rider-checkin-art--peppermint::before{
content:"\01F36C";
}
.rider-checkin-art--curry::before{
content:"\2728";
}
.rider-checkin-label{
font-size:13px;
font-weight:800;
text-align:center;
color:#1f2f46;
}
.rider-checkin-actions{
display:flex;
justify-content:flex-start;
}
.rider-checkin-save{
min-height:44px;
padding:12px 16px;
border:0;
border-radius:999px;
background:#355e3b;
color:#fff;
font:inherit;
font-size:14px;
font-weight:800;
box-shadow:0 10px 20px rgba(53,94,59,.18);
cursor:pointer;
}
.rider-checkin-save[disabled]{
opacity:.5;
cursor:not-allowed;
box-shadow:none;
}
.rider-checkin-complete{
padding:14px 16px;
border-radius:16px;
background:#fff5dd;
border:1px solid rgba(223,172,57,.28);
color:#7b5b12;
font-size:14px;
line-height:1.6;
}
@keyframes riderBadgeConfetti{
from{
opacity:0;
transform:scale(.96);
}
to{
opacity:1;
transform:scale(1);
}
}
@media (max-width: 900px){
.rubric-rider-grid,
.rider-journal-grid{
grid-template-columns:1fr;
}
.rubric-rider-title{
font-size:24px;
}
.rider-badge-grid{
grid-template-columns:1fr;
}
.rider-checkin-choice-grid,
.rider-checkin-choice-grid--mini{
grid-template-columns:1fr 1fr;
}
}
@media (max-width: 640px){
.rider-checkin-choice-grid,
.rider-checkin-choice-grid--mini{
grid-template-columns:1fr;
}
.rider-checkin-actions{
justify-content:stretch;
}
.rider-checkin-save{
width:100%;
}
}
.legacy-benchmark-header{
display:none;
}
@media (max-width: 900px){
.rubric-rider-grid,
.rider-journal-grid{
grid-template-columns:1fr;
}
.rubric-rider-title{
font-size:24px;
}
}
.rubric-rider-overline{
  font-size:12px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#6b7280;
}
.rubric-rider-title{
  font-size:28px;
  font-weight:900;
  line-height:1.1;
  color:#111827;
}
.rubric-rider-copy{
  font-size:14px;
  line-height:1.6;
  color:#4b5563;
}
.rubric-rider-pill-row{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.rubric-rider-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:10px 14px;
  border-radius:999px;
  background:#eef2ff;
  color:#1f2937;
  font-size:13px;
  font-weight:700;
}
.rubric-rider-grid,
.rubric-rider-progress-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit, minmax(220px, 1fr));
  gap:16px;
}
.rubric-rider-card{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.rubric-rider-card-title{
  font-size:13px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#6b7280;
}
.rubric-rider-mission{
  font-size:22px;
  font-weight:900;
  line-height:1.2;
  color:#111827;
}
.rubric-rider-list{
  display:grid;
  gap:10px;
}
.rubric-rider-list-item{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:12px;
  border-radius:14px;
  background:#f9fafb;
}
.rubric-rider-list-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.rubric-rider-skill{
  font-size:16px;
  font-weight:800;
  color:#111827;
}
.rubric-rider-status{
  font-size:12px;
  font-weight:800;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:#4f46e5;
}
.rubric-insight-panel{
  min-height:100%;
}
#progressChart,
#dashboardSkillChart,
#radarChart,
#analyticsCategoryChart,
#analyticsQualityChart,
#analyticsSkillTrendChart{
  display:block;
  width:100% !important;
  max-width:100%;
  min-width:0;
  flex:0 0 auto;
}
#progressChart{
  height:220px !important;
  max-height:220px;
}
#dashboardSkillChart,
#analyticsCategoryChart,
#analyticsQualityChart{
  height:240px !important;
  max-height:240px;
}
#radarChart,
#analyticsSkillTrendChart{
  height:220px !important;
  max-height:220px;
}
.rubric-insight-list{
  display:grid;
  gap:8px;
  font-size:14px;
  line-height:1.45;
}
.rubric-detail-panel{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.rubric-detail-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
}
.rubric-score-list{
  display:grid;
  gap:8px;
  font-size:13px;
}
.rubric-score-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:7px 10px;
  border-radius:10px;
  background:#f9fafb;
}
.rubric-empty-state{
  color:#6b7280;
  font-size:14px;
  line-height:1.45;
  padding:10px 0;
}
.rubric-evidence-list{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:8px;
}
.rubric-evidence-item{
  display:grid;
  gap:4px;
  padding:10px 12px;
  border-radius:10px;
  background:#f9fafb;
}

/* ---- Tables ---- */
.table-wrap{overflow:auto}
.table{width:100%;border-collapse:separate;border-spacing:0 8px}
.table th{
  font-size:12px;
  text-transform:uppercase;
  color:#6b7280;
  text-align:left;
  cursor:pointer;
}
.table td,.table th{padding:10px 12px;background:#fff}
.rubric-heatmap{
  overflow:auto;
  padding-bottom:4px;
}
.rubric-heatmap-grid{
  display:grid;
  gap:10px;
  min-width:100%;
  width:max-content;
}
.rubric-heatmap-row{
  display:grid;
  grid-template-columns:160px repeat(var(--rubric-heatmap-cols, 8), minmax(72px, 1fr));
  gap:10px;
}
.rubric-heatmap-cell{
  border:none;
  border-radius:10px;
  padding:11px 9px;
  font-size:11px;
  line-height:1.3;
}
.rubric-heatmap-label{
  background:#fff;
  border:1px solid #e5e7eb;
  font-weight:700;
  color:#374151;
}
.rubric-heatmap-value{
  color:#111827;
  font-weight:800;
}
.rubric-evidence-table-wrap{
  max-width:100%;
  overflow:auto;
  padding-bottom:4px;
}
.rubric-evidence-table-wrap .table{
  min-width:720px;
  font-size:12px;
  border-spacing:0 10px;
}
.rubric-evidence-table-wrap .table td,
.rubric-evidence-table-wrap .table th{
  padding:11px 12px;
}
.rubric-evidence-row td{
  vertical-align:top;
  border-top:1px solid #eef2f7;
  border-bottom:1px solid #eef2f7;
}
.rubric-evidence-date-cell,
.rubric-evidence-meta-cell{
  white-space:nowrap;
  font-size:11px;
}
.rubric-evidence-text-cell{
  white-space:pre-wrap;
  word-break:break-word;
  font-size:12px;
  line-height:1.55;
}
.rubric-evidence-pill,
.rubric-evidence-skill{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:4px 10px;
  border-radius:999px;
  font-size:11px;
  font-weight:700;
}
.rubric-evidence-pill{
  background:#FEF3C7;
  color:#92400E;
}
.rubric-evidence-skill{
  background:#EFF6FF;
  color:#1D4ED8;
}
@media (max-width: 900px){
  .rubric-stats-grid,
  .rubric-dashboard-grid,
  .rubric-analytics-grid,
  .rubric-detail-grid{
    grid-template-columns:1fr;
  }
  .rubric-dashboard-shell,
  .rubric-analytics-shell{
    gap:16px;
  }
  .rubric-dashboard-grid,
  .rubric-analytics-grid,
  .rubric-detail-grid{
    gap:14px;
  }
  .rubric-panel{
    gap:12px;
  }
  #progressChart,
  #radarChart,
  #analyticsSkillTrendChart{
    height:200px !important;
    max-height:200px;
  }
  #dashboardSkillChart,
  #analyticsCategoryChart,
  #analyticsQualityChart{
    height:220px !important;
    max-height:220px;
  }
  .rubric-heatmap-row{
    grid-template-columns:132px repeat(var(--rubric-heatmap-cols, 8), minmax(64px, 1fr));
  }
  .rubric-heatmap-cell{
    padding:8px 6px;
    font-size:11px;
  }
  .rubric-evidence-table-wrap .table{
    min-width:640px;
  }
}
.th-sort-asc::after{content:" \25B2"}
.th-sort-desc::after{content:" \25BC"}

/* ---- Sections ---- */
.section{display:none}
.section.active{display:block}

/* ---- Modal ---- */
.modal {
  display:none;
  position:fixed;
  z-index:1000;
  left:0; top:0;
  width:100%; height:100%;
  background:rgba(0,0,0,0.6);
  justify-content:center;
  align-items:center;
}

.modal-content {
  background: #fff;
  padding: 20px;
  border-radius: 12px;
  width: 90%;        /* fill most of the screen on mobile */
  max-width: 360px;  /* keep it neat on desktop */
  box-sizing: border-box;
}

/* ---- Skills Form Layout ---- */
#skillsForm {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:20px;
  justify-items:stretch;
}
#skillsForm .category {
  background:#fdfdfd;
  border:1px solid #e5e7eb;
  border-radius:10px;
  padding:16px;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}
#skillsForm .category h4 {
  margin:0 0 12px;
  font-size:15px;
  font-weight:700;
  color:#4d2f13;
  border-bottom:1px solid rgba(0,0,0,.08);
  padding-bottom:6px;
}
#skillsForm .category label {
  display:flex;
  justify-content:space-between;
  align-items:center;
  font-size:13px;
  margin:4px 0;
}
#skillsForm input[type=number] {
  width:70px;
  margin-left:8px;
}

/* ---- Disabled score input visual cue ---- */
#skillsForm input[disabled] {
  background: #f3f3f3;     /* light grey background */
  color: #888;             /* dimmed text */
  opacity: 0.8;            /* subtle fade */
  cursor: not-allowed;     /* shows disabled hand cursor */
  border-color: #ddd;      /* lighter border */
}

#skillsForm input[disabled]:hover {
  opacity: 1;
  background: #eee;
}

/* ---- Rider + Date Row ---- */
.rider-date-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}

.rider-select {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rider-select label {
  font-weight: 600;
}

.benchmark-date {
  font-style: italic;
  color: #555;
  font-size: 14px;
}

/* ---- Rider + Date Column ---- */
.rider-date-column {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  align-items: center;
  margin-bottom: 12px;
}

.rider-select, .date-select {
  display: flex;
  align-items: center;
  gap: 8px;
}

.rider-select label,
.date-select label {
  font-weight: 600;
}

#entryDate {
  padding: 8px;
  border: 1px solid #ccc;
  border-radius: 6px;
  cursor: pointer;
}

/* ---- Submit Scores Button ---- */
#submitScoresBtn {
  display:block;
  margin:20px auto 40px auto;
  padding:6px 18px;
  font-size:14px;
  font-weight:700;
  background:var(--gold);
  color:#4d2f13;
  border:none;
  border-radius:6px;
  cursor:pointer;
  width:auto;
  height:auto;
  line-height:1.2;
}
#submitScoresBtn:hover {
  background:#e6c44d;
}

.rider-trend-chip{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 9px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.12);
  font-size: 12px;
  font-weight: 800;
}
.rider-trend-new_focus{
  background: #eef2ff;
  color: #3730a3;
}
.rider-trend-still_building{
  background: #f1f5f9;
  color: #334155;
}
.rider-trend-improving{
  background: #ecfdf3;
  color: #166534;
}
.rider-trend-plateau{
  background: #fffbeb;
  color: #92400e;
}
.rider-trend-regressed{
  background: #fef2f2;
  color: #991b1b;
}
.rider-trend-breakthrough{
  background: #eff6ff;
  color: #1d4ed8;
}
.rider-skill-signal-row{
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.rider-skill-chip{
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.12);
  font-size: 12px;
  font-weight: 700;
  color: #1f2937;
  background: #f8fafc;
}
.rider-progress-context{
  margin-top: 8px;
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 10px;
  padding: 8px 10px;
  background: #fafafa;
  font-size: 12px;
  line-height: 1.45;
  color: #374151;
}
.rider-progress-context-title{
  font-weight: 800;
  margin-bottom: 4px;
  color: #111827;
}

/* ---- Responsive ---- */
@media (max-width: 900px){
  .app{flex-direction:column}
  .sidebar{display:none}
  .cards{grid-template-columns:1fr}
}
@media (max-width: 600px){
  #skillsForm {grid-template-columns:1fr}
  #skillsForm .category {min-height:auto;padding:12px}
  .main {max-width:100%;padding:12px}
  #submitScoresBtn {width:100%;margin:20px 0 40px 0}
}

/* Login screen background */
body.login-page {
  background: #fffdf2;
}

.login-logo {
  display: block;
  margin: 0 auto 16px auto;
  width: 80%;
  max-width: 220px;
  height: auto;
  object-fit: contain;
}

@media (max-width: 500px) {
  .login-logo { max-width: 160px; }
}

.login-container {
  background: #fffdf2;
  border: 1px solid #e5e7eb;
  border-radius: 12px;
  padding: 20px;
  width: 90%;
  max-width: 360px;
  box-shadow: 0 4px 10px rgba(0,0,0,.1);
  margin: auto;
}

.login-container input {
  font-size: 16px;
  width: 100%;
  box-sizing: border-box;
}
input, select, textarea {
  -webkit-text-size-adjust: 100%;
}

/* Profile Section */
#profileSection .card {
  max-width: 400px;
  margin: 20px auto;
  text-align: left;
}
#profileSection h3 { margin-bottom: 12px; }
#profileSection button {
  margin-top: 16px;
  background: var(--gold);
  color: #4d2f13;
  font-weight: 600;
}

/* ---- Hamburger Menu (mobile only) ---- */
.hamburger-container {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 5002;
  display: none; /* shown in mobile media query */
  padding: 0;
}

/* ---- Hamburger Button ---- */
.hamburger {
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  width: 26px;
  height: 20px;
  padding: 0;
  margin-left: 16px;   /* small space from left edge */
  /* margin-top removed (handled by header layout) */
}

.hamburger-line {
  height: 3px;
  width: 100%;
  background: #fff;
  border-radius: 2px;
}

.hamburger-menu .hamburger-item:hover {
  background: var(--gold);
  color: #4d2f13;
}

/* ==== HAMBURGER DRAWER ==== */
.hamburger-menu {
  position: fixed;
  top: 0;    /* starts at very top */
  left: 0;
  height: 100vh;
  width: 190px;
  background: #fffdf2;   /* keep drawer background cream */
  border-right: 2px solid var(--gold);
  box-shadow: 2px 0 10px rgba(0,0,0,0.25);
  display: none;
  flex-direction: column;
  align-items: stretch;
  gap: 12px;
  padding: 12px;
  transform: translateX(-100%);
  transition: transform 0.3s ease-in-out;
  z-index: 5003;  /* above header + mobile modal screens */
  overflow-y: auto;
}

.hamburger-menu.open {
  display: flex;
  transform: translateX(0);
}

.hamburger-menu > * { flex: 0 0 auto; }

.hamburger-menu .hamburger-item {
  padding: 12px 14px;
  font-size: 16px;
  cursor: pointer;
  border-radius: 6px;
  line-height: 1.5;
  transition: background 0.2s ease;
}

/* Active state for hamburger menu items */
.hamburger-item.active {
  background: var(--cream);
  border: 1px solid var(--gold);
  border-radius: 6px;
  color: #4d2f13;
  font-weight: 600;
}

.hamburger-item:hover {
  background: var(--gold);
  color: #4d2f13;
  transition: background 0.2s ease;
}

/* Backdrop for drawer */
.drawer-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,0.25);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease-in-out;
  z-index: 5001;
}
.drawer-backdrop.open {
  opacity: 1;
  pointer-events: auto;
}

/* Logo inside drawer */
.hamburger-logo {
  display: block;
  width: 180px;
  max-width: 100%;
  height: auto;
  object-fit: contain;
  margin: 8px auto 6px auto;
}

.hamburger-list {
  display: flex;
  flex-direction: column;
  margin: 0;
}
.hamburger-list .hamburger-item + .hamburger-item {
  border-top: 1px solid #eee;
}

/* Logout */
.hamburger-logout {
  margin-top: 8px !important;
  width: 100%;
  align-self: stretch;
  padding: 10px 12px;
  border: none;
  border-radius: 8px;
  background: var(--gold);
  color: #4d2f13;
  font-weight: 700;
  cursor: pointer;
  border-top: 1px solid #eee;
}
.hamburger-logout:hover { filter: brightness(0.95); }

/* MOBILE FINAL */
@media (max-width: 900px) {
  .hamburger-container { display: block; }
  .sidebar { display: none !important; }

  /* offset all content below fixed mobile header */
  .main {
    margin-top: var(--mobile-header-height);
    padding-top: 12px;
  }

  .section > h3:first-child { margin-top: 0 !important; }
}


/* ---- Mobile Header ---- */
.mobile-header {
  display: none; /* hidden by default */
  position: fixed;
  top: 0; 
  left: 0; 
  right: 0;
  height: var(--mobile-header-height);
  background: #4d2f13;
  color: #fff;
  align-items: flex-end;
  padding: 0 20px 10px 20px;
  z-index: 5002;
  box-shadow: 0 2px 6px rgba(0,0,0,.15);
}


.mobile-header-left {
  display: flex;
  align-items: center;
  gap: 12px;
}


.mobile-header-title {
  font-size: 16px;
  font-weight: 700;
  color: #fff;
}

/* ---- Mobile Overrides ---- */
@media (max-width: 900px) {
  .mobile-header {
    display: flex; /* only show on mobile */
  }

  .main {
    margin-top: var(--mobile-header-height); /* push below fixed header */
    padding-top: 12px; /* small breathing space */
  }

  .section > h3:first-child {
    margin-top: 0 !important;
  }
}

/* Sidebar logo + copy */
.sidebar-logo-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 20px;
}
.sidebar-copy {
  font-size: 11px;
  color: #6b7280;
  margin-top: 4px;
}

/* Hamburger logo + copy row */
.hamburger-logo-wrap {
  display: flex;
  flex-direction: row;        /* side by side */
  align-items: center;
  justify-content: space-between;
  padding: 8px 12px;
  margin-bottom: 10px;
}

.hamburger-copy {
  font-size: 6px;       /* smaller text for mobile */
  color: #6b7280;
  margin-right: 8px;
  white-space: nowrap;  /* prevents wrapping */
}

/* Global footer */
.app-footer {
  text-align: center;
  font-size: 12px;
  color: #6b7280;
  padding: 12px 8px;
  background: none;       /* remove cream background */
  border-top: none;       /* remove top border */
}
@media (max-width: 900px) {
  .app-footer {
    margin-bottom: 56px;  /* keep space above bottom nav on mobile */
  }
}

/* ---- Benchmark Header ---- */
.benchmark-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.benchmark-title {
  margin: 0;
}

.benchmark-date {
  font-style: italic;
  color: #555;
  font-size: 14px;
}

/* ---- Ensure calendar icon appears on mobile ---- */
input[type="date"] {
  position: relative;
  background-color: #fff;
  padding-right: 32px; /* space for icon */
  cursor: pointer;
}

/* Restore native icon for Chrome / Edge */
input[type="date"]::-webkit-calendar-picker-indicator {
  opacity: 1;
  display: block;
  background: url('data:image/svg+xml;utf8,<svg fill="%234d2f13" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 4h-1V2h-2v2H8V2H6v2H5a2.006 2.006 0 0 0-2 2v14a2.006 2.006 0 0 0 2 2h14a2.006 2.006 0 0 0 2-2V6a2.006 2.006 0 0 0-2-2Zm0 16H5V10h14Zm0-12H5V6h14Z"/></svg>') no-repeat center;
  background-size: 18px 18px;
  cursor: pointer;
}

/* For Firefox */
input[type="date"]::-moz-focus-inner {
  border: 0;
}

/* For Safari (forces default icon visibility) */
input[type="date"]::-webkit-inner-spin-button,
input[type="date"]::-webkit-clear-button {
  display: none;
}

/* ---- Custom calendar icon overlay (for Safari) ---- */
.date-select {
  position: relative;
}


/* ---- Cross-browser visible calendar icon ---- */
.date-wrapper {
  position: relative;
  display: inline-block;
}

.date-wrapper input[type="date"] {
  padding-right: 36px;  /* make space for the icon */
}

/* Custom icon positioned over the right edge */
.calendar-icon {
  position: absolute;
  right: 10px;
  top: 50%;
  width: 18px;
  height: 18px;
  transform: translateY(-50%);
  pointer-events: none;
  background: url('data:image/svg+xml;utf8,<svg fill="%234d2f13" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 4h-1V2h-2v2H8V2H6v2H5a2.006 2.006 0 0 0-2 2v14a2.006 2.006 0 0 0 2 2h14a2.006 2.006 0 0 0 2-2V6a2.006 2.006 0 0 0-2-2Zm0 16H5V10h14Zm0-12H5V6h14Z"/></svg>') no-repeat center;
  background-size: 18px 18px;
  opacity: 0.85;
}


/* ---- Make Rider + Date fields compact and aligned on mobile ---- */
@media (max-width: 700px) {
  /* Stack vertically (but keep compact spacing) */
  .rider-date-column {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }

  /* Labels */
  .rider-select label,
  .date-select label {
    display: block;
    font-size: 15px;        /* smaller label text */
    font-weight: 600;
    margin-bottom: 4px;
    color: #4d2f13;
    white-space: nowrap;    /* prevents label wrapping */
  }

  /* Select + Date inputs */
  .rider-select select,
  .date-wrapper input[type="date"] {
    width: 100%;
    font-size: 14px;        /* smaller text */
    padding: 6px 10px;      /* shorter height */
    border: 1.5px solid var(--gold);
    border-radius: 6px;
    background: #fffdf2;
  }

  /* Calendar icon alignment */
  .date-wrapper {
    position: relative;
    width: 100%;
  }

  .calendar-icon {
    width: 16px;
    height: 16px;
    right: 10px;
    background-size: 16px 16px;
  }
}



#formStatus {
  margin-top: 8px;
  font-size: 16px;
  color: #4d2f13;
}

@media (max-width: 700px) {
  #formStatus {
    font-size: 18px;
    margin-top: 10px;
  }
}

#submitScoresBtn:disabled {
  background: #d6d6d6;
  color: #888;
  cursor: not-allowed;
}

#correctionModal textarea {
  resize: vertical;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  padding: 8px;
}

#requestCorrectionBtn {
  margin-top: 8px;
}

#correctionModal label {
  display: block;
  margin-bottom: 4px;
  color: #4d2f13;
  font-size: 14px;
}

#correctionModal select,
#correctionModal input[type=number],
#correctionModal textarea {
  width: 100%;
  font-size: 14px;
  margin-bottom: 10px;
  padding: 8px;
  border-radius: 6px;
  border: 1px solid #ddd;
}

.approve-btn {
  background: #1f9d55;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 4px 8px;
  cursor: pointer;
  font-size: 12px;
}
.reject-btn {
  background: #e02424;
  color: #fff;
  border: none;
  border-radius: 6px;
  padding: 4px 8px;
  cursor: pointer;
  font-size: 12px;
}
.reject-btn.secondary {
  background: #e76f51;
}
.approve-btn:hover, .reject-btn:hover {
  filter: brightness(0.9);
}

.modal-close {
  position: absolute;
  top: 10px;
  right: 12px;
  background: transparent;
  border: none;
  font-size: 22px;
  color: #888;
  cursor: pointer;
  line-height: 1;
}
.modal-close:hover {
  color: #4d2f13;
}

tr.pending td {
  background-color: #fff9e6; /* soft yellow background */
}

#riderDashboard .card {
  padding: 16px 20px;
  background: var(--card-bg, #fff);
  border-radius: 12px;
  box-shadow: 0 2px 6px rgba(0,0,0,.08);
}

#riderDashboard .category label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 6px 0;
}


#submitRiderSelfBtn {
  display: block;
  margin: 20px auto 40px auto;
  padding: 6px 18px;
  font-size: 14px;
  font-weight: 700;
  background: var(--gold);
  color: #4d2f13;
  border: none;
  border-radius: 6px;
  cursor: pointer;
}
#submitRiderSelfBtn:hover {
  background: #e6c44d;
}

#riderSelfForm {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  justify-items: stretch;
}

#riderSelfForm .category {
  background: #fdfdfd;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

#riderSelfForm .category h4 {
  margin: 0 0 12px;
  font-size: 15px;
  font-weight: 700;
  color: #4d2f13;
  border-bottom: 1px solid rgba(0,0,0,.08);
  padding-bottom: 6px;
}

#riderSelfForm .category label {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 13px;
  margin: 4px 0;
}

#riderSelfForm input[type=number] {
  width: 70px;
  margin-left: 8px;
}

/* -------- Responsive layout for Rider Benchmarking form -------- */
@media (max-width: 768px) {
  #riderSelfForm {
    grid-template-columns: 1fr; /* stack vertically on mobile */
    gap: 14px;
  }

  #riderSelfForm .category {
    width: 100%;
  }

  #riderSelfForm .category h4 {
    font-size: 14px;
  }
}

/* ================================
   Video Thumbnails + Expand Modal
   ================================ */

.muted {
  color: #6b7280;
  font-size: 14px;
}

/* Grid for video cards */
.video-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
  margin-top: 10px;
}

/* Each video card */
.video-card {
  border: 1px solid #e5e7eb;
  background: #fff;
  border-radius: 12px;
  padding: 10px;
}

:root.dark .video-card {
  background: #0f172a;
  border-color: #1f2937;
}

/* Small thumbnail video */
.video-thumb {
  width: 100%;
  height: 120px;
  border-radius: 10px;
  background: #000;
  object-fit: cover;
  display: block;
}

/* NEW: Mobile/app override - Rider group thumbnails should be 9:16 like Shorts */
@media (max-width: 700px) {
  #allVideos .video-thumb {
    height: auto;
    aspect-ratio: 9 / 16;
  }
}


/* Title/skill line */
.video-meta {
  margin-top: 8px;
  font-size: 13px;
  line-height: 1.3;
}

.video-transcript-status{
  width: 100%;
  margin-top: 6px;
  padding: 6px 8px;
  border: 1px solid rgba(0,0,0,0.08);
  border-radius: 8px;
  background: rgba(13,59,102,0.04);
}
.video-transcript-status-text{
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: #374151;
}
.video-transcript-status-progress{
  width: 100%;
  margin-top: 6px;
  height: 8px;
}

/* Button row */
.video-actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}

/* NEW: YouTube-style duration badge (bottom-right) */
.video-duration-badge{
  position: absolute;
  right: 8px;
  bottom: 8px;
  z-index: 12;

  background: rgba(0,0,0,0.78);
  color: #fff;
  font-weight: 800;
  font-size: 11px;
  line-height: 1;

  padding: 5px 7px;
  border-radius: 8px;

  pointer-events: none; /* badge shouldn''t steal taps/clicks */
}


.video-expand-btn {
  width: 100%;
  padding: 8px 10px;
  border-radius: 8px;
  font-weight: 700;
  background: var(--gold);
  color: #4d2f13;
  border: none;
  cursor: pointer;
}

.video-expand-btn:hover {
  filter: brightness(0.97);
}

/* Video modal sizing */
.video-modal-content {
  width: min(1320px, 92vw);
  max-width: 1320px;
  position: relative;
  height: min(92vh, 860px);
  max-height: 92vh;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
.yt-modal{
  padding:18px;
}
.yt-modal-grid{
  display: grid;
  grid-template-columns: 1.25fr 1fr; /* video left, comments right */
  gap: 14px;
  align-items: stretch;
  min-height: 0;
}
.yt-modal-left{
  display:flex;
  flex-direction:column;
  min-height:0;
  height:100%;
}
.video-snapshot-stack{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:8px;
  min-height:0;
  flex:1 1 auto;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:4px;
}
.video-snapshot-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 12px;
  border:1px solid rgba(13,59,102,0.12);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(250,240,202,0.92) 0%, rgba(255,255,255,0.98) 100%);
}
.video-snapshot-title{
  font-size:12px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#0D3B66;
}
.video-snapshot-copy{
  font-size:12px;
  line-height:1.35;
  color:#6b7280;
  text-align:right;
}
#videoV23SummaryShell{
  flex:1 1 auto;
  min-height:0;
  display:none;
}
#videoV23SummaryShell > .video-v23-shell{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:0;
}
.yt-comments-area{
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 14px;
  padding: 12px 12px 16px;
  background: #fff;
  height: 100%;
  max-height: none;
  min-height: 0;
  display: flex;
  flex-direction: column;
  overflow: hidden; /* inner panels scroll */
}
.video-ai-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex:0 0 auto;
  padding:10px 12px;
  border:1px solid rgba(13,59,102,0.10);
  border-radius:14px;
  background:#fff;
  margin-bottom:12px;
}
.video-ai-tabs{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.video-ai-tab{
  border:1px solid rgba(13,59,102,0.18);
  background:#f3f4f6;
  color:#4b5563;
  border-radius:999px;
  padding:8px 12px;
  font-size:12px;
  font-weight:800;
  white-space:nowrap;
}
.video-ai-tab.active,
.video-ai-tab.is-active{
  background:#0b2545;
  color:#FFFFFF;
  border-color:#0b2545;
  box-shadow:0 2px 6px rgba(11,37,69,0.20);
}
.video-ai-panel{
  flex:1 1 auto;
  min-height:0;
}
.video-ai-scroll{
  display:flex;
  flex-direction:column;
  gap:12px;
  height:100%;
  min-height:0;
  overflow:auto;
  padding-right:4px;
  padding-bottom:24px;
}
.video-ai-rich-summary{
  display:flex;
  flex-direction:column;
  gap:12px;
}
@media (max-width: 1100px){
  .video-modal-content{
    width:min(1120px, 96vw);
    max-width:1120px;
  }
  .yt-modal-grid{
    grid-template-columns:minmax(0, 1fr);
  }
}
@media (max-width: 600px){
  .video-modal-content{
    width:100vw;
    max-width:none;
    height:calc(var(--true-vh, 100dvh) - var(--mobile-header-height));
    max-height:calc(var(--true-vh, 100dvh) - var(--mobile-header-height));
    border-radius:18px 18px 0 0;
  }
  .yt-modal{
    padding:14px 12px calc(14px + env(safe-area-inset-bottom, 0px));
  }
  .video-snapshot-head{
    flex-direction:column;
    align-items:flex-start;
  }
}
.video-v23-shell{
  border:1px solid rgba(0,0,0,0.12);
  border-radius:12px;
  background:#fff;
  padding:10px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.video-v23-head{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:6px;
}
.video-v23-level,
.video-v23-trend{
  font-size:12px;
  font-weight:800;
  padding:3px 8px;
  border-radius:999px;
  background:#f3f4f6;
  color:#111827;
}
.video-v23-coach-note{
  font-size:14px;
  line-height:1.4;
  font-weight:700;
  color:#111827;
  margin-bottom:8px;
}
.video-v23-card{
  border:1px solid rgba(0,0,0,0.10);
  border-radius:10px;
  background:#f8fafc;
  padding:8px;
  margin-top:0;
}
.video-v23-card-title{
  font-weight:800;
  font-size:13px;
  margin-bottom:4px;
  color:#111827;
}
.video-v23-line{
  font-size:13px;
  line-height:1.35;
  color:#1f2937;
}
.video-v23-journey-label{
  display:inline-block;
  min-width:72px;
  font-size:11px;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:#6b7280;
}
.video-v23-journey-text{
  font-size:13px;
  color:#111827;
}
.video-v23-progress{
  margin-top:6px;
  font-size:12px;
  font-weight:700;
  color:#374151;
}
.video-v23-badge-row{
  border:1px solid rgba(0,0,0,0.08);
  border-radius:8px;
  background:#ffffff;
  padding:6px 8px;
}
.video-v23-badge-row + .video-v23-badge-row{
  margin-top:6px;
}
.video-v23-badge-label{
  font-size:12px;
  font-weight:800;
  color:#111827;
}
.video-v23-badge-reason{
  font-size:12px;
  color:#374151;
  margin-top:2px;
}
.video-v23-signal-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}
.video-v23-signal-row + .video-v23-signal-row{
  margin-top:6px;
}
.video-v23-signal-skill{
  font-size:12px;
  font-weight:700;
  color:#1f2937;
}
.video-v23-signal-chip{
  font-size:11px;
  font-weight:800;
  border-radius:999px;
  padding:3px 8px;
  background:#e5e7eb;
  color:#1f2937;
}
.video-v23-recap-wrap{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.video-v23-recap-chip{
  display:inline-flex;
  align-items:center;
  border:1px solid rgba(0,0,0,0.10);
  border-radius:999px;
  background:#ffffff;
  padding:4px 9px;
  font-size:11px;
  font-weight:700;
  color:#374151;
}
@media (max-width: 600px){
  .video-v23-shell{
    padding:8px;
  }
  .video-v23-line{
    font-size:12px;
  }
}

@media (max-width: 600px) {
  #videoModal .video-modal-content{
    height: calc(var(--true-vh, 100dvh) - var(--mobile-header-height));
    max-height: calc(var(--true-vh, 100dvh) - var(--mobile-header-height));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    box-sizing: border-box;
    padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
  }
  #videoModalPlayer{
    max-height: 40vh;
  }
  #videoTranscriptWrap{
    flex: 1;
    min-height: 0;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  #videoTranscript{
    flex: 1;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px));
    scroll-padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px));
  }
}

/* Admin delete button for videos */
.video-delete-btn{
  width: 100%;
  padding: 8px 10px;
  border-radius: 8px;
  font-weight: 800;
  border: none;
  cursor: pointer;
  background: #e02424;
  color: #fff;
}
.video-delete-btn:hover{
  filter: brightness(0.95);
}

#videoUploadCard{
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 24px;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(13,59,102,0.12);
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(13,59,102,0.08);
}
#videoUploadCard .upload-card-head{
  background: #fffdf2;
  color: var(--navy, #0D3B66);
  padding: 12px 14px;
  border-bottom: 1px solid rgba(13,59,102,0.12);
}
#videoUploadCard .upload-card-head h4{
  margin: 0;
}
#videoUploadCard .upload-card-head p{
  margin: 4px 0 0;
  font-size: 12px;
  opacity: 0.85;
}
#videoUploadCard .upload-picker-grid,
#videoUploadCard .upload-meta-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
  padding: 12px 14px 0;
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}
#videoUploadCard .upload-field{
  display: flex;
  flex-direction: column;
  gap: 4px;
}
#videoUploadCard .upload-label{
  display: block;
  margin-bottom: 4px;
  font-weight: 700;
  color: var(--navy, #0D3B66);
  font-size: 12px;
}
#videoUploadCard #adminTrainerPickWrap,
#videoUploadCard #uploadRiderPickWrap{
  margin-bottom: 0 !important;
}
#videoUploadCard .upload-dropzone{
  padding: 12px 14px 0;
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}
#videoUploadCard #videoFile{
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
#videoUploadCard .upload-dropzone label{
  display: block;
  width: 100%;
  border: 2px dashed var(--gold, #F4D35E);
  border-radius: 10px;
  padding: 16px 12px;
  text-align: center;
  font-weight: 700;
  color: var(--navy, #0D3B66);
  background: #fffdf2;
  cursor: pointer;
}
#videoUploadCard .upload-dropzone .dropzone-text-mobile{
  display: none;
}
#videoUploadCard .upload-dropzone .dropzone-text-desktop{
  display: inline;
}
#videoUploadCard .upload-title-row{
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  gap: 10px;
  padding: 12px 14px 0;
  align-items: center;
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}
#videoUploadCard select,
#videoUploadCard input[type="text"]{
  width: 100%;
}
#videoUploadCard #uploadVideoBtn{
  white-space: nowrap;
  min-width: 132px;
  min-height: 42px;
  padding: 10px 18px;
  border: none;
  border-radius: 10px;
  box-shadow: 0 8px 18px rgba(13,59,102,0.16);
  transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
  font-weight: 800;
}
#videoUploadCard #uploadStatus{
  margin: 10px 14px 14px !important;
  max-width: 820px;
  margin-left: auto !important;
  margin-right: auto !important;
}
#videoUploadCard .upload-sheet-handle{
  width: 56px;
  height: 5px;
  border-radius: 999px;
  background: rgba(0,0,0,0.22);
  margin: 10px auto 4px auto;
}
#videoUploadCard .upload-card-head{
  position: relative;
  text-align: center;
  padding-top: 8px;
}
#videoUploadCard .upload-card-close{
  position: absolute;
  right: 10px;
  top: 8px;
  border: 0;
  background: transparent;
  color: var(--navy, #0D3B66);
  font-weight: 900;
  font-size: 14px;
  cursor: pointer;
}
#videoUploadCard .upload-preview-card{
  padding: 12px 14px 0;
  max-width: 820px;
  margin-left: auto;
  margin-right: auto;
}
#videoUploadCard .upload-preview-media-wrap{
  position: relative;
  border: 1px solid rgba(13,59,102,0.18);
  border-radius: 12px;
  overflow: hidden;
  background: #0b1220;
  aspect-ratio: 16 / 9;
}
#videoUploadCard .upload-preview-media{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  pointer-events: none;
}
#videoUploadCard .upload-preview-pill{
  position: absolute;
  bottom: 8px;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 8px;
  border-radius: 999px;
  color: #fff;
  background: rgba(17,24,39,0.72);
  max-width: 48%;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
#videoUploadCard .upload-preview-pill-left{ left: 8px; }
#videoUploadCard .upload-preview-pill-right{ right: 8px; }
#videoUploadCard .upload-preview-meta-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
}
#videoUploadCard .upload-preview-meta{
  font-size: 12px;
  color: var(--text, #222);
}
#videoUploadCard .upload-change-file{
  border: 0;
  background: transparent;
  color: var(--navy, #0D3B66);
  text-decoration: underline;
  text-underline-offset: 2px;
  font-weight: 700;
  cursor: pointer;
}
#videoUploadCard #uploadVideoBtn{
  width: 100%;
  min-width: 0;
  background: var(--navy, #0D3B66);
  color: #fff;
}
#videoGallery{
  margin-top: 10px;
}
.rider-group-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 10px 0;
}
.rider-group-title{
  margin:0;
  font-size:18px;
  font-weight:800;
  color: var(--navy,#0D3B66);
}
.rider-group-upload-btn{
  background: var(--gold,#F4D35E);
  color:#4d2f13;
  border:none;
  border-radius:999px;
  padding:8px 12px;
  font-weight:900;
  cursor:pointer;
}
.rider-group-upload-btn:active{
  transform: scale(0.98);
}
.videos-upload-launch{
  margin: 0 0 10px 0;
}
#openUploadVideoDialogBtn,
.videos-upload-btn{
  background: var(--navy, #0D3B66);
  color: #fff;
  border: none;
  border-radius: 10px;
  min-height: 42px;
  padding: 10px 14px;
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
  cursor: pointer;
  box-shadow: 0 8px 18px rgba(13,59,102,0.16);
  transition: transform 0.16s ease, box-shadow 0.16s ease, filter 0.16s ease;
}
#openUploadVideoDialogBtn .upload-plus,
.videos-upload-btn .upload-plus{
  font-size: 20px;
  font-weight: 900;
  line-height: 1;
}
#openUploadVideoDialogBtn .upload-text,
.videos-upload-btn .upload-text{
  font-size: 14px;
  font-weight: 800;
}
#openUploadVideoDialogBtn:hover,
.videos-upload-btn:hover{
  filter: brightness(0.98);
  transform: translateY(-1px);
  box-shadow: 0 10px 22px rgba(13,59,102,0.18);
}
#openUploadVideoDialog{
  color: var(--navy, #0D3B66);
  font-weight: 800;
  text-decoration: underline;
  text-underline-offset: 2px;
}
#uploadVideoModal .upload-video-modal-content{
  width: 96vw;
  max-width: 1040px;
  position: relative;
  max-height: calc(100vh - 24px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
}
#uploadVideoModal{
  align-items: center;
}
#uploadVideoModal .upload-video-modal-content{
  width: min(680px, 94vw);
  max-width: 680px;
  border-radius: 16px;
  background: #fffdf2;
  border: 1px solid rgba(13,59,102,0.14);
  box-shadow: 0 14px 34px rgba(0,0,0,0.2);
  overflow: hidden;
}
#uploadVideoModal #uploadVideoModalMount{
  width: 100%;
}
#uploadVideoModal #uploadVideoModalClose{
  display: none;
}
#videoUploadProgress{
  width: 100%;
  margin-top: 8px;
  display: block;
}
#uploadStatusBadge{
  display: inline-block;
  margin-top: 8px;
}
#videoUploadCard #uploadVideoBtn.is-busy{
  position: relative;
  padding-left: 36px;
}
#videoUploadCard #uploadVideoBtn.is-busy::before{
  content: "";
  position: absolute;
  left: 14px;
  top: 50%;
  width: 14px;
  height: 14px;
  margin-top: -7px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.45);
  border-top-color: #fff;
  animation: upload-btn-spin 0.8s linear infinite;
}
@keyframes upload-btn-spin{
  to { transform: rotate(360deg); }
}
@media (max-width: 600px){
  .rider-group-head{
    min-width:0;
  }
  .rider-group-title{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  #uploadStatusBadge{
    font-size: 12px;
  }
  #videoUploadCard .upload-picker-grid,
  #videoUploadCard .upload-meta-grid,
  #videoUploadCard .upload-title-row{
    grid-template-columns: 1fr;
  }
  #videoUploadCard .upload-card-head,
  #videoUploadCard .upload-picker-grid,
  #videoUploadCard .upload-meta-grid,
  #videoUploadCard .upload-dropzone,
  #videoUploadCard .upload-title-row{
    padding-left: 12px;
    padding-right: 12px;
    max-width: none;
  }
  #videoUploadCard #uploadVideoBtn{
    width: 100%;
    min-width: 0;
  }
  #videoUploadCard #uploadStatus{
    max-width: none;
  }
  #videoUploadCard .upload-dropzone .dropzone-text-desktop{
    display: none !important;
  }
  #videoUploadCard .upload-dropzone .dropzone-text-mobile{
    display: inline !important;
  }
  #uploadVideoModal .upload-video-modal-content{
    width:100vw;
    max-width:none;
    max-height: 92vh;
    border-radius: 18px 18px 0 0;
    background: #fffdf2;
    box-shadow: 0 -10px 30px rgba(0,0,0,0.18);
    overflow:hidden;
  }
  #uploadVideoModal{
    align-items:flex-end;
    padding-top: calc(var(--mobile-header-height) + 8px);
  }
  #videoUploadCard{
    margin-bottom: 0;
    border-radius: 18px 18px 0 0;
    max-width: none;
    border: 0;
    box-shadow: none;
  }
  #videoUploadCard .upload-preview-meta-row{
    align-items: flex-start;
    flex-direction: column;
  }
  #videoUploadCard.has-file .upload-card-head,
  #videoUploadCard.has-file .upload-picker-grid,
  #videoUploadCard.has-file .upload-meta-grid,
  #videoUploadCard.has-file .upload-dropzone,
  #videoUploadCard.has-file .upload-preview-card,
  #videoUploadCard.has-file .upload-title-row{
    padding-top: 8px;
    padding-bottom: 0;
  }
  #videoUploadCard.has-file .upload-picker-grid,
  #videoUploadCard.has-file .upload-meta-grid{
    gap: 4px;
  }
  #videoUploadCard.has-file .upload-preview-card{
    padding-top: 6px;
  }
  #videoUploadCard.has-file .upload-preview-media-wrap{
    aspect-ratio: auto;
    height: 140px;
  }
  #videoUploadCard.has-file{
    padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px));
  }
  #videoUploadCard.has-file #uploadVideoBtn{
    position: sticky;
    bottom: calc(8px + env(safe-area-inset-bottom, 0px));
    z-index: 2;
  }
}

/* Analytics filters */
.filter-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.filter-row select {
  min-width: 220px;
}
.rubric-toolbar{
  display:flex;
  align-items:flex-end;
  gap:12px;
  flex-wrap:wrap;
}
.rubric-toolbar-group{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.rubric-toolbar-group label{
  font-size:12px;
  font-weight:700;
  color:#4b5563;
}
.rubric-toolbar select{
  min-width:180px;
}
/* Transcript UI */
.video-v23-card + .video-v23-card{
  margin-top:8px;
}
#videoV23Signals,
#videoV23Recap{
  font-size:12px;
  line-height:1.35;
  color:#374151;
}
#videoV23Tip{
  font-size:12px;
  font-weight:700;
  color:#1f2937;
}
#videoV23Tip:not(:empty)::before{
  content:"Pro Tip";
  display:block;
  font-size:12px;
  font-weight:800;
  margin-bottom:4px;
  color:#111827;
}
.transcript-line{
  display:flex;
  gap:12px;
  align-items:flex-start;
  padding:10px 0;
  border-bottom:1px solid rgba(13,59,102,0.08);
}

.transcript-line.is-current{
  background: rgba(56, 189, 248, 0.22);
  border-left: 4px solid rgba(56, 189, 248, 0.85);
  border-radius: 10px;
  padding-left: 8px;
}
.transcript-ts{
  flex:0 0 auto;
  border:1px solid rgba(13,59,102,0.14);
  background:#fff;
  color:#0D3B66;
  border-radius:999px;
  padding:2px 8px;
  cursor:pointer;
  font-size:12px;
  line-height:18px;
  font-weight:800;
}
.transcript-text{
  flex:1 1 auto;
  font-size:14px;
  line-height:20px;
  opacity:.95;
  color:#111827;
}
#videoModal .video-transcript-wrap,
#mobileTranscriptWrap,
#mobileHighlightsWrap{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}
#videoModal .video-transcript,
#mobileTranscript,
#mobileHighlights{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  padding-bottom:28px;
  scroll-padding-bottom:28px;
}
#videoModal #videoAiSummaryScroll{
  padding-bottom:88px;
  scroll-padding-bottom:88px;
}
#videoModal .video-session-summary-card,
#videoModal .video-v23-shell{
  border:1px solid rgba(13,59,102,0.12);
  border-radius:16px;
  background:linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(250,240,202,0.56) 100%);
  box-shadow:0 6px 18px rgba(13,59,102,0.08);
}
#videoModal .video-session-summary-card{
  padding:12px 14px;
  margin-bottom:0;
}
#videoModal #videoSessionSummaryCard,
#videoModal #videoRiderSummary,
#videoModal #videoSessionSummaryText{
  display:none !important;
}
#videoModal .video-v23-shell{
  padding:12px 14px;
}
#videoModal #videoV23SummaryShell{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding-right:4px;
  scrollbar-gutter:stable;
  display:block;
}
#videoModal #videoV23SummaryShell > .video-v23-shell{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px 12px;
}
#videoModal .video-v23-trivia-overlay,
#mobileVideoScreen .video-v23-trivia-overlay{
  position:fixed;
  inset:0;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(13,59,102,0.28);
  z-index:1006;
}
#videoModal .video-v23-trivia-overlay.is-open,
#mobileVideoScreen .video-v23-trivia-overlay.is-open{
  display:flex;
}
#videoModal .video-v23-trivia-dialog,
#mobileVideoScreen .video-v23-trivia-dialog{
  position:relative;
  width:min(520px, calc(100vw - 48px));
  max-height:min(78vh, 720px);
  overflow:auto;
  border:1px solid rgba(13,59,102,0.16);
  border-radius:18px;
  background:#fffdf7;
  box-shadow:0 18px 40px rgba(13,59,102,0.22);
  padding:20px 20px 18px;
}
#videoModal .video-ai-youth-dialog,
#mobileVideoScreen .video-ai-youth-dialog{
  width:min(420px, calc(100vw - 48px));
  padding:18px 18px 16px;
}
#videoModal .video-ai-youth-dialog .video-v23-trivia-progress,
#mobileVideoScreen .video-ai-youth-dialog .video-v23-trivia-progress{
  display:none;
}
#videoModal .video-ai-youth-dialog-section + .video-ai-youth-dialog-section,
#mobileVideoScreen .video-ai-youth-dialog-section + .video-ai-youth-dialog-section{
  margin-top:10px;
}
#videoModal .video-ai-youth-dialog-label,
#mobileVideoScreen .video-ai-youth-dialog-label{
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#4d2f13;
  margin-bottom:4px;
}
#videoModal .video-ai-youth-dialog-copy,
#mobileVideoScreen .video-ai-youth-dialog-copy{
  font-size:13px;
  line-height:1.45;
  color:#111827;
}
#videoModal .video-ai-youth-dialog-meta,
#mobileVideoScreen .video-ai-youth-dialog-meta{
  font-size:12px;
  line-height:1.4;
  font-weight:800;
  color:#166534;
}
#videoModal .video-v23-trivia-close,
#mobileVideoScreen .video-v23-trivia-close{
  position:absolute;
  top:12px;
  right:12px;
  width:32px;
  height:32px;
  border:1px solid rgba(13,59,102,0.16);
  border-radius:999px;
  background:#ffffff;
  color:#0f172a;
  font-size:16px;
  font-weight:800;
  line-height:1;
  cursor:pointer;
}
#videoModal .video-v23-trivia-header,
#mobileVideoScreen .video-v23-trivia-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  padding-right:36px;
  margin-bottom:14px;
}
#videoModal .video-v23-trivia-kicker,
#mobileVideoScreen .video-v23-trivia-kicker{
  font-size:18px;
  font-weight:900;
  color:#4d2f13;
}
#videoModal .video-v23-trivia-progress,
#mobileVideoScreen .video-v23-trivia-progress{
  font-size:12px;
  font-weight:800;
  color:#6b7280;
  white-space:nowrap;
}
#videoModal .video-v23-trivia-body,
#mobileVideoScreen .video-v23-trivia-body{
  display:flex;
  flex-direction:column;
  gap:14px;
}
#videoModal .video-v23-trivia-question,
#mobileVideoScreen .video-v23-trivia-question{
  font-size:16px;
  line-height:1.45;
  font-weight:800;
  color:#111827;
}
#videoModal .video-v23-trivia-answers,
#mobileVideoScreen .video-v23-trivia-answers{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}
#videoModal .video-v23-trivia-answer,
#mobileVideoScreen .video-v23-trivia-answer{
  text-align:left;
  border:1px solid rgba(13,59,102,0.14);
  border-radius:12px;
  background:#ffffff;
  color:#111827;
  font-size:14px;
  line-height:1.35;
  font-weight:700;
  padding:12px 14px;
}
#videoModal .video-v23-trivia-answer:hover,
#mobileVideoScreen .video-v23-trivia-answer:hover{
  background:#fff7d6;
}
#videoModal .video-v23-trivia-answer.is-correct,
#mobileVideoScreen .video-v23-trivia-answer.is-correct{
  background:#ecfdf3;
  border-color:rgba(22,101,52,0.28);
  color:#166534;
}
#videoModal .video-v23-trivia-answer.is-wrong,
#mobileVideoScreen .video-v23-trivia-answer.is-wrong{
  background:#fef2f2;
  border-color:rgba(153,27,27,0.24);
  color:#991b1b;
}
#videoModal .video-v23-trivia-feedback,
#mobileVideoScreen .video-v23-trivia-feedback{
  border-radius:14px;
  padding:12px 14px;
}
#videoModal .video-v23-trivia-feedback.is-correct,
#mobileVideoScreen .video-v23-trivia-feedback.is-correct{
  background:#f0fdf4;
  border:1px solid rgba(22,101,52,0.16);
}
#videoModal .video-v23-trivia-feedback.is-wrong,
#mobileVideoScreen .video-v23-trivia-feedback.is-wrong{
  background:#fff7ed;
  border:1px solid rgba(194,65,12,0.16);
}
#videoModal .video-v23-trivia-feedback-title,
#mobileVideoScreen .video-v23-trivia-feedback-title{
  font-size:14px;
  font-weight:900;
  color:#111827;
}
#videoModal .video-v23-trivia-explanation,
#mobileVideoScreen .video-v23-trivia-explanation{
  margin-top:6px;
  font-size:13px;
  line-height:1.45;
  color:#374151;
}
#videoModal .video-v23-trivia-reward,
#mobileVideoScreen .video-v23-trivia-reward{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 10px;
  border-radius:999px;
  background:#ffffff;
  border:1px solid rgba(22,101,52,0.16);
  margin-bottom:8px;
}
#videoModal .video-v23-trivia-reward-star,
#mobileVideoScreen .video-v23-trivia-reward-star{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  border-radius:999px;
  background:#facc15;
  color:#4d2f13;
  font-size:14px;
  font-weight:900;
}
#videoModal .video-v23-trivia-reward-label,
#mobileVideoScreen .video-v23-trivia-reward-label{
  font-size:12px;
  font-weight:800;
  color:#166534;
}
#videoModal .video-v23-trivia-footer,
#mobileVideoScreen .video-v23-trivia-footer{
  display:flex;
  justify-content:flex-end;
  gap:8px;
}
#videoModal .video-v23-trivia-footer-btn,
#mobileVideoScreen .video-v23-trivia-footer-btn{
  border:1px solid rgba(13,59,102,0.14);
  border-radius:10px;
  background:#ffffff;
  color:#0f172a;
  font-size:13px;
  font-weight:800;
  padding:9px 12px;
  cursor:pointer;
}
#videoModal .video-v23-trivia-review,
#mobileVideoScreen .video-v23-trivia-review{
  display:flex;
  flex-direction:column;
  gap:10px;
}
#videoModal .video-v23-trivia-review-card,
#mobileVideoScreen .video-v23-trivia-review-card{
  border:1px solid rgba(13,59,102,0.10);
  border-radius:14px;
  background:#ffffff;
  padding:12px 14px;
}
#videoModal .video-v23-trivia-review-title,
#mobileVideoScreen .video-v23-trivia-review-title{
  font-size:12px;
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:#6b7280;
  margin-bottom:6px;
}
#videoModal .video-v23-trivia-review-answer,
#mobileVideoScreen .video-v23-trivia-review-answer{
  margin-top:8px;
  font-size:13px;
  font-weight:800;
  color:#166534;
}
#videoModal #videoV23SummaryShell .video-v23-card{
  padding:8px 10px;
  margin-top:4px;
}
#videoModal #videoV23SummaryShell .video-v23-card + .video-v23-card{
  margin-top:4px;
}
#videoModal #videoV23SummaryShell .video-v23-card-title{
  margin-bottom:2px;
}
#videoModal #videoV23SummaryShell .video-v23-line,
#videoModal #videoV23SummaryShell .video-v24-moment-text,
#videoModal #videoV23SummaryShell .video-v24-learning-link{
  font-size:12px;
  line-height:1.25;
}
#videoModal #videoV23SummaryShell .video-v23-trivia-trigger{
  margin-top:8px;
  padding:0;
  border:none;
  background:transparent;
  color:#1d4ed8;
  font-size:12px;
  font-weight:800;
  text-decoration:underline;
  cursor:pointer;
}
#videoModal #videoV23SummaryShell .video-v23-trivia-trigger:hover{
  color:#1e3a8a;
}
#videoModal #videoV23SummaryShell .video-v24-learning-links{
  gap:4px;
}
#videoModal .video-snapshot-head{
  padding:8px 10px;
}
#videoModal .video-snapshot-copy{
  font-size:11px;
  line-height:1.2;
}
#videoModal .video-v23-card{
  background:#fff;
  border-color:rgba(13,59,102,0.10);
}
#videoModal .video-rider-summary,
#mobileSessionSummaryCard .video-rider-summary{
  font-size:13px;
  line-height:1.6;
  color:#111827;
}
.mobile-video-v25 .mobile-v25-tabs{
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:10px 0 8px;
  margin:0;
  position:sticky;
  top:0;
  background:#fff;
  z-index:2;
  border-bottom:1px solid rgba(13,59,102,0.10);
}
.mobile-video-v25 #mobileVideoTabShell{
  display:flex !important;
  flex:1 1 auto;
  flex-direction:column;
  min-height:0;
  overflow:hidden;
  width:100%;
}
.mobile-video-v25 #mobileVideoTabs{
  display:flex;
  flex:0 0 auto;
}
.mobile-video-v25 .mobile-v25-tabs button{
  flex:0 0 auto;
  white-space:nowrap;
  border:1px solid rgba(13,59,102,0.12);
  background:#f8fafc;
  color:#0D3B66;
  font-weight:800;
  border-radius:999px;
  padding:8px 12px;
}
.mobile-video-v25 .mobile-v25-tabs button.active{
  background:#0D3B66;
  color:#fff;
  border-color:#0D3B66;
}
.mobile-video-v25 .mobile-v25-tab-panels{
  flex:1 1 0;
  min-height:0;
  overflow:hidden;
  padding:0 0 env(safe-area-inset-bottom, 0px) 0;
  scroll-padding-bottom:env(safe-area-inset-bottom, 0px);
}
.mobile-video-v25 #mobileVideoTabPanels{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-height:0;
}
.mobile-video-v25 .mobile-v25-panel{
  display:none;
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  touch-action:pan-y;
  width:100%;
}
.mobile-video-v25 .mobile-v25-panel.active,
.mobile-video-v25 .mobile-v25-panel.is-active{
  display:flex;
  flex-direction:column;
}
.video-ai-youth-layout{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-height:0;
}
.video-ai-youth-dashboard{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:10px;
  min-width:0;
  align-content:start;
}
#mobileSessionSummaryYouth .video-ai-youth-dashboard{
  grid-template-columns:1fr;
}
.video-ai-youth-card{
  border:1px solid rgba(0,0,0,0.10);
  border-radius:14px;
  background:linear-gradient(180deg, rgba(250,240,202,0.55) 0%, rgba(255,255,255,0.98) 100%);
  padding:10px 12px;
  box-shadow:0 2px 8px rgba(0,0,0,0.06);
  min-width:0;
}
.video-ai-youth-card-compact{
  padding:8px 10px;
}
.video-ai-youth-card-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
}
.video-ai-youth-card-text{
  min-width:0;
  flex:1 1 auto;
}
.video-ai-youth-card-motivation{
  grid-column:1 / -1;
  background:linear-gradient(135deg, rgba(13,59,102,0.94) 0%, rgba(238,150,75,0.92) 100%);
  color:#fff;
}
.video-ai-youth-title{
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.video-ai-youth-copy{
  font-size:13px;
  line-height:1.45;
  color:#111827;
}
.video-ai-youth-card-motivation .video-ai-youth-copy,
.video-ai-youth-card-motivation .video-ai-youth-meta{
  color:#fff;
}
.video-ai-youth-meta{
  margin-top:6px;
  font-size:12px;
  font-weight:700;
  color:#374151;
}
.video-ai-youth-copy-compact{
  font-size:12px;
  line-height:1.35;
}
.video-ai-youth-meta-compact{
  margin-top:4px;
  font-size:11px;
}
.video-ai-youth-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:5px 10px;
  background:rgba(255,255,255,0.18);
  border:1px solid rgba(255,255,255,0.22);
  font-size:12px;
  font-weight:800;
}
.video-ai-youth-options,
.video-ai-youth-emoji-row,
.video-ai-youth-badges,
.video-ai-youth-short-row{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
}
.video-ai-youth-actions-end{
  display:flex;
  justify-content:flex-end;
  align-items:flex-start;
  gap:6px;
  flex:0 0 auto;
}
.video-ai-youth-option,
.video-ai-youth-emoji,
.video-ai-youth-short-btn,
.video-ai-youth-mission{
  border:1px solid rgba(13,59,102,0.18);
  border-radius:999px;
  background:#fff;
  color:#0d3b66;
  padding:6px 10px;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}
.video-ai-youth-option.is-active,
.video-ai-youth-emoji.is-active{
  background:#0d3b66;
  color:#fff;
  border-color:#0d3b66;
}
.video-ai-youth-missions{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.video-ai-youth-mission{
  width:100%;
  justify-content:space-between;
  display:flex;
  align-items:center;
  gap:10px;
  border-radius:12px;
}
.video-ai-youth-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border-radius:999px;
  padding:5px 10px;
  background:#fff7db;
  color:#6b4c16;
  border:1px solid rgba(244,211,94,0.65);
  font-size:12px;
  font-weight:800;
}
.video-ai-youth-coach{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.video-ai-youth-short-status{
  font-size:12px;
  line-height:1.4;
  color:#374151;
}
.video-ai-youth-empty{
  font-size:12px;
  line-height:1.4;
  color:#6b7280;
}
@media (max-width: 900px){
  .video-ai-youth-dashboard{
    grid-template-columns:1fr;
  }
}
@media (max-width: 600px){
  .video-ai-youth-layout{
    gap:10px;
  }
  .video-ai-youth-dashboard{
    gap:8px;
  }
  .video-ai-youth-card{
    padding:9px;
  }
  .video-ai-youth-option,
  .video-ai-youth-emoji,
  .video-ai-youth-short-btn,
  .video-ai-youth-mission{
    width:100%;
    justify-content:center;
  }
}


/* --- Transcript / Highlights (AI segments) --- */
.seg-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:8px 0;
  border-bottom:1px solid rgba(0,0,0,0.08);
}

/* Active transcript line (sync with video time) */
.seg-row.is-current{
  background: rgba(56, 189, 248, 0.18);
  border-radius: 10px;
  padding-left: 6px;
  padding-right: 6px;
}

.seg-row.is-current .seg-ts{
  border-color: rgba(56, 189, 248, 0.65);
}
.seg-ts{
  flex:0 0 auto;
  min-width:54px;
  padding:4px 8px;
  border-radius:10px;
  border:1px solid rgba(0,0,0,0.15);
  background:transparent;
  font-weight:600;
  cursor:pointer;
}
.seg-sp{
  flex:0 0 auto;
  padding:3px 8px;
  border-radius:999px;
  border:1px solid rgba(0,0,0,0.15);
  font-size:12px;
  line-height:1.2;
  opacity:0.9;
  margin-top:2px;
}
.seg-txt{
  flex:1 1 auto;
  white-space:pre-wrap;
  line-height:1.35;
}
#videoTranscript, #videoHighlights{
  font-size: 13px;
  padding:2px 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  touch-action: pan-y;
  overscroll-behavior: contain;
  max-height: none;
  height: 100%;
  min-height: 0;
  padding-bottom:12px;
  scroll-padding-bottom:12px;
}
@media (max-width: 600px){
  #videoTranscript, #videoHighlights{
    max-height: 46vh;
  }
}


/* ============================
   Video Modal: MOBILE-SAFE
   ============================ */

/* Base modal alignment */
.video-modal{
  align-items:center;
  padding:12px 10px;
}

/* Mobile-specific behavior */
@media (max-width: 600px){
  .video-modal{
    align-items:flex-start;
    padding-top: var(--mobile-header-height);
    height: var(--true-vh, 100dvh);
    max-height: var(--true-vh, 100dvh);
    padding-bottom: calc(40px + env(safe-area-inset-bottom, 0px));
    overflow: hidden;
  }

  .video-modal-content{
    max-height: calc(var(--true-vh, 100dvh) - var(--mobile-header-height) - env(safe-area-inset-bottom, 0px));
  }
}

/* Modal content scrolling */
.video-modal-content{
  position: relative;
  max-height: 92vh;
  overflow: hidden;
  -webkit-overflow-scrolling: touch;
  padding-top: 44px; /* space reserved for close button */
}

/* Close button always visible BELOW mobile header */
.video-modal-content .modal-close{
  position: sticky;
  top: 0;
  margin-left: auto;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 20;

  background: rgba(255,255,255,0.98);
  border-radius: 12px;

  width: 44px;
  height: 44px;

  font-size: 26px;
  font-weight: 800;
  color: #4d2f13;

  box-shadow: 0 4px 12px rgba(0,0,0,0.18);
  cursor: pointer;
}


/* AI toolbar row: tabs left, regen right */
.video-ai-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:12px;
  margin-bottom:10px;
}
.video-ai-tabs{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

/* Tabs: default neutral, active distinct */
.video-ai-tab{
  appearance:none;
  border:1px solid #d1d5db;
  background:#f3f4f6;
  color:#111827;
  font-weight:700;
  padding:6px 10px;
  border-radius:10px;
  cursor:pointer;
  pointer-events:auto;
}
.video-ai-tab.active,
.video-ai-tab.is-active{
  background:#1A1A1A;
  color:#FFFFFF;
  border-color:#1A1A1A;
  font-weight:800;
}
#videoAiTabTranscript.active, #videoAiTabTranscript.is-active{
  background:#1A1A1A;
  color:#FFFFFF;
  border-color:#1A1A1A;
  font-weight:800;
}
#videoAiTabHighlights.active, #videoAiTabHighlights.is-active{
  background:#1A1A1A;
  color:#FFFFFF;
  border-color:#1A1A1A;
  font-weight:800;
}
.video-ai-tab:active{ transform:translateY(1px); }
.video-ai-tab:focus{ outline:2px solid rgba(59,130,246,0.35); outline-offset:2px; }

/* Regen button: stays distinct */
.video-ai-regen{
  appearance:none;
  border:1px solid #d1d5db;
  background:var(--gold);
  color:#4d2f13;
  font-weight:800;
  padding:6px 10px;
  border-radius:10px;
  cursor:pointer;
  pointer-events:auto;
  white-space:nowrap;
}
.video-ai-regen:disabled{ opacity:0.6; cursor:not-allowed; }
.video-ai-regen.is-busy{
  position: relative;
  padding-left: 28px;
}
.video-ai-regen.is-busy::before{
  content: "";
  position: absolute;
  left: 10px;
  top: 50%;
  width: 12px;
  height: 12px;
  margin-top: -6px;
  border-radius: 50%;
  border: 2px solid rgba(77,47,19,0.35);
  border-top-color: #4d2f13;
  animation: upload-btn-spin 0.8s linear infinite;
}

.modal-transcript-processing-row{
  margin-bottom: 8px;
  padding: 8px 10px;
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 10px;
  background: rgba(13,59,102,0.04);
}
.modal-transcript-processing-text{
  display: block;
  font-size: 12px;
  font-weight: 700;
  color: #374151;
}
.modal-transcript-processing-progress{
  width: 100%;
  margin-top: 6px;
  height: 8px;
}

/* Transcript/Highlights container scroll */
.video-ai-panel .video-transcript{
  height:100%;
  min-height:0;
  overflow-y:auto;
  touch-action: pan-y;
  overscroll-behavior: contain;
  border:1px solid rgba(0,0,0,0.12);
  border-radius:10px;
  padding:10px;
  background:#fff;
}

/* Seg timestamp readability */
.seg-ts{
  background:#eef2ff;
  color:#111827;
  border-color:rgba(0,0,0,0.10);
}
.dark .seg-ts{
  background:#1f2937;
  color:#f9fafb;
  border-color:rgba(255,255,255,0.15);
}

/* Dark mode tweaks */
.dark .video-ai-tab{
  background:#111827;
  border-color:#374151;
  color:#f9fafb;
}
.dark .video-ai-tab.active,
.dark .video-ai-tab.is-active{
  background:#0b1220;
  border-color:#6b7280;
}
.dark .video-modal-content .modal-close{
  background:rgba(17,24,39,0.92);
  color:#f9fafb;
}
.dark .video-ai-panel .video-transcript{
  background:#0b1220;
  border-color:#374151;
}



/* =========================================================
   NEW (2026-02): Shorts-style Videos + YouTube-style modal
   - Additive overrides only (keeps existing styles intact)
   ========================================================= */

/* --- Shorts-style thumbnail layout (9:16) --- */
.video-grid.video-shorts-grid,
#videoGallery.video-grid,
#allVideos .video-grid {
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 10px;
}

.video-card.video-shorts-card,
#videoGallery .video-card,
#allVideos .video-card {
  position: relative;
  padding: 0;
  overflow: hidden;
  border-radius: 14px;
}

/* Use 9:16 portrait thumbnail like YouTube Shorts */
.video-thumb.video-shorts-thumb,
#videoGallery .video-thumb,
#allVideos .video-thumb {
  width: 100%;
  height: auto;              /* let aspect-ratio drive height */
  aspect-ratio: 9 / 16;
  border-radius: 0;
  display: block;
  background: #000;
  object-fit: cover;
}

/* Overlay title like Shorts */
.video-meta.video-shorts-meta,
#videoGallery .video-meta,
#allVideos .video-meta {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 10px 10px 12px 10px;
  color: #fff;
  font-weight: 700;
  font-size: 12px;
  line-height: 1.2;
  background: linear-gradient(to top, rgba(0,0,0,0.85), rgba(0,0,0,0.0));
  margin: 0;
  pointer-events: none;
}

/* Actions: keep but tuck at top-right (desktop hover friendly) */
#videoGallery .video-actions,
#allVideos .video-actions{
  position: absolute;
  top: 8px;
  right: 8px;
  left: auto;
  margin: 0;
  gap: 8px;
  display: flex;
  flex-direction: column;
  pointer-events: auto;
}

#videoGallery .video-expand-btn,
#videoGallery .video-delete-btn,
#allVideos .video-expand-btn,
#allVideos .video-delete-btn{
  width: auto;
  padding: 8px 10px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 800;
  box-shadow: 0 4px 10px rgba(0,0,0,0.18);
}

/* On small screens: keep actions visible (app needs Play/Delete) */
@media (max-width: 600px){
  #videoGallery .video-actions,
  #allVideos .video-actions{
    display: flex;
  }

  #videoGallery .video-expand-btn,
  #videoGallery .video-delete-btn,
  #allVideos .video-expand-btn,
  #allVideos .video-delete-btn{
    padding: 7px 9px;
    font-size: 12px;
    border-radius: 10px;
  }
}


/* --- YouTube-style modal layout (Option 2 desktop side-by-side) --- */
.yt-modal{
  width: min(1100px, 96vw);
  max-width: 1100px;
  padding-top: 16px; /* close button still has space */
}

.yt-modal-grid{
  display: grid;
  grid-template-columns: 1.25fr 1fr; /* video left, comments right */
  gap: 14px;
  align-items: stretch;
  flex: 1 1 auto;
  min-height: 0;
}

.yt-modal-left{
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 0;
  height: 100%;
  overflow: hidden;
}

.yt-comments-area{
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 14px;
  padding: 12px 12px 10px;
  background: #fff;
  height: 100%;
  max-height: none;
  min-height: 0;
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  overflow: hidden; /* inner panels scroll */
}

/* Transcript/Highlights scroll inside the "comments" area */
.video-transcript-wrap .video-transcript{
  max-height: none;
  height: 100%;
  min-height: 0;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

#videoModal #videoV23SummaryShell{
  border:0;
  background:transparent;
  box-shadow:none;
  padding:0;
  margin-top:8px !important;
  max-height:100%;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
}
#videoModal #videoV23SummaryShell > .video-v23-shell{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:10px 12px;
}
#videoModal #videoV23SummaryShell .video-v23-head{
  gap:6px;
  margin-bottom:2px;
}
#videoModal #videoV23SummaryShell .video-v23-coach-note{
  font-size:13px;
  line-height:1.3;
  margin-bottom:4px;
}
#videoModal #videoV23SummaryShell .video-v23-card{
  padding:8px 10px;
  margin-top:4px;
}
#videoModal #videoV23SummaryShell .video-v23-card-title{
  margin-bottom:2px;
}
#videoModal #videoV23SummaryShell .video-v23-line,
#videoModal #videoV23SummaryShell .video-v24-blueprint-text,
#videoModal #videoV23SummaryShell .video-v24-moment-text{
  font-size:12px;
  line-height:1.25;
}
#videoModal .video-snapshot-head{
  padding:8px 10px;
}
#videoModal .video-snapshot-copy{
  font-size:11px;
  line-height:1.2;
}

/* Mobile bottom-sheet behavior */
.yt-sheet-handle{
  display: none;
}

@media (max-width: 600px){
  /* Modal becomes a bottom sheet */
  .video-modal{
    align-items: flex-start;
    padding: 0;
    padding-top: var(--mobile-header-height);
    height: var(--true-vh, 100dvh);
    max-height: var(--true-vh, 100dvh);
    padding-bottom: calc(40px + env(safe-area-inset-bottom, 0px));
    overflow: hidden;
  }

  .video-modal-content.yt-modal{
    width: 100vw;
    max-width: 100vw;
    height: calc(var(--true-vh, 100dvh) - var(--mobile-header-height) - env(safe-area-inset-bottom, 0px));
    max-height: calc(var(--true-vh, 100dvh) - var(--mobile-header-height) - env(safe-area-inset-bottom, 0px));
    border-radius: 18px 18px 0 0;
    overflow: hidden; /* sheet internal scroll */
    padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
    position: relative;              /* ensure handle is positioned correctly */
    padding: 18px 14px calc(14px + env(safe-area-inset-bottom, 0px)) 14px;
    transform: translateY(0);
    will-change: transform;
  }
  .video-modal-content.yt-modal{
    padding-top: 18px !important;
  }

  /* Hide close button ONLY on mobile */
  .video-modal-content.yt-modal .modal-close{
    display: none !important;
  }

  .yt-sheet-handle{
    display: none !important;
    visibility: hidden;
    height: 0;
    margin: 0;
    padding: 0;
  }

  /* Stack video above comments like YouTube app */
  .yt-modal-grid{
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .yt-comments-area{
    max-height: none;
    flex: 1 1 auto;
    height: auto;
    overflow: hidden;
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    min-height: 0;
  }

  .yt-comments-area .video-ai-toolbar{
    gap: 6px;
    padding: 6px 8px;
    margin-top: 8px;
    margin-bottom: 6px;
  }
  .yt-comments-area .video-ai-tabs{
    overflow-x: auto;
    overflow-y: hidden;
    flex-wrap: nowrap;
    white-space: nowrap;
    -webkit-overflow-scrolling: touch;
  }
  .yt-comments-area .video-ai-tab{
    flex: 0 0 auto;
  }
  .yt-comments-area .video-ai-panel{
    flex: 1 1 auto;
    min-height: 0;
  }
  .yt-comments-area .video-transcript-wrap{
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  .video-transcript-wrap .video-transcript{
    max-height: none;
    height: 100%;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px));
    scroll-padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px));
  }

  /* ID-scoped mobile fallback (applies even if class selectors differ) */
  #videoModal .video-modal-content{
    height: calc(var(--true-vh, 100dvh) - var(--mobile-header-height) - env(safe-area-inset-bottom, 0px));
    max-height: calc(var(--true-vh, 100dvh) - var(--mobile-header-height) - env(safe-area-inset-bottom, 0px));
    display: flex;
    flex-direction: column;
    min-height: 0;
    overflow: hidden;
  }
  #videoModal #videoModalPlayer{
    max-height: 40vh;
    flex: 0 0 auto;
  }
  #videoModal #videoModalPlayer::cue,
  #mobileVideoPlayer::cue{
    color: #ffffff;
    background-color: rgba(15, 23, 42, 0.76);
    font-size: 16px;
    font-weight: 700;
    line-height: 1.35;
  }
  #videoModal #videoModalPlayer::cue(.coach),
  #mobileVideoPlayer::cue(.coach){
    color: #d1d5db;
    font-size: 13px;
    font-style: italic;
    font-weight: 500;
  }
  #videoModal .video-ai-toolbar{
    gap: 6px;
    padding: 6px 8px;
    margin-top: 6px;
    margin-bottom: 6px;
  }
  #videoModal .video-ai-tabs{
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    flex-wrap: nowrap;
    -webkit-overflow-scrolling: touch;
  }
  #videoModal #videoTranscriptWrap,
  #videoModal .video-transcript-wrap{
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    padding-bottom: env(safe-area-inset-bottom, 0px);
    overflow: hidden;
  }
  #videoModal #videoTranscript,
  #videoModal .video-transcript{
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px));
    scroll-padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px));
    background: #fff;
    color: inherit;
  }
}

/* =========================================================
   NEW (2026-02): Session Summary Card in Video Modal
   - Additive styles only
   ========================================================= */

.video-session-summary-card{
  border: 1px solid rgba(0,0,0,0.10);
  border-radius: 14px;
  background: #fff;
  padding: 10px 12px;
  margin-bottom: 10px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06);
}
.video-v24-blueprint-row{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:4px;
}
.video-v24-blueprint-label{
  display:inline-flex;
  align-items:center;
  font-size:11px;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
  color:#6b7280;
  min-width:54px;
}
.video-v24-blueprint-text{
  font-size:13px;
  line-height:1.4;
  color:#111827;
}
.video-v24-moment-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  margin-top:6px;
}
.video-v24-moment-text{
  font-size:13px;
  line-height:1.35;
  color:#1f2937;
}
.video-v24-timestamp-btn{
  border:1px solid rgba(0,0,0,0.14);
  background:#ffffff;
  border-radius:999px;
  padding:2px 8px;
  font-size:11px;
  font-weight:800;
  color:#1f2937;
  cursor:pointer;
}
.video-v24-learning-links{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.video-v24-learning-link{
  font-size:13px;
  font-weight:700;
  color:#1d4ed8;
  text-decoration:none;
}
.video-v24-learning-link:hover{
  text-decoration:underline;
}
.video-v24-challenge-btn{
  margin-top:8px;
  border:1px solid rgba(0,0,0,0.16);
  border-radius:999px;
  background:#ffffff;
  color:#111827;
  font-size:12px;
  font-weight:800;
  padding:6px 10px;
  cursor:pointer;
}
.video-v24-challenge-btn.video-v24-is-active{
  background:#e8f7ec;
  border-color:#3ba45d;
  color:#14532d;
}
.video-v24-tip-line{
  margin-top:8px;
  font-size:12px;
  font-weight:700;
  color:#1f2937;
}

.video-session-summary-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 6px;
}

.video-session-summary-title{
  font-weight: 900;
  font-size: 13px;
  color: #4d2f13;
}

.video-session-summary-status{
  font-size: 12px;
  font-weight: 700;
  color: #6b7280;
}

.video-session-summary-text{
  font-size: 13px;
  line-height: 1.35;
  color: #111827;
  white-space: pre-wrap;
}

/* Rider Friendly Summary (inside Video Summary card) */
.video-rider-summary{
  font-size: 14px;      /* <-- adjust this */
  line-height: 1.55;
  color: #111827;
  white-space: pre-wrap;
}
.video-rider-summary .rider-summary-header{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.video-rider-summary .rider-level-pill{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 3px 10px;
  border-radius: 999px;
  font-size: 11px;
  font-weight: 800;
  background: #e0ecff;
  color: #1e3a8a;
  border: 1px solid rgba(30,58,138,0.22);
}
.video-rider-summary .rider-biggest-focus{
  font-size: 14px;
  font-weight: 800;
  color: #0f172a;
}
.video-rider-summary .rider-strength-line{
  margin-top: 2px;
  color: #1f2937;
}
.video-rider-summary .rider-weekly-quest{
  margin-top: 8px;
  border: 1px solid rgba(0,0,0,0.10);
  background: #f8fafc;
  border-radius: 10px;
  padding: 8px 10px;
}
.video-rider-summary .rider-why-line{
  margin-top: 4px;
}
.video-rider-summary .rider-traffic-row{
  margin-top: 8px;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.video-rider-summary .traffic-chip{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.12);
  font-size: 12px;
  font-weight: 800;
}
.video-rider-summary .signal-green{
  background: #ecfdf3;
  color: #166534;
  border-color: rgba(22,101,52,0.25);
}
.video-rider-summary .signal-yellow{
  background: #fffbeb;
  color: #92400e;
  border-color: rgba(146,64,14,0.25);
}
.video-rider-summary .signal-red{
  background: #fef2f2;
  color: #991b1b;
  border-color: rgba(153,27,27,0.25);
}
.video-rider-summary .rider-pro-tip{
  margin-top: 8px;
  border-left: 3px solid #1e3a8a;
  background: #f8fafc;
  border-radius: 8px;
  padding: 8px 10px;
}
:root.dark .video-rider-summary .rider-level-pill{
  background: #0f172a;
  color: #bfdbfe;
  border-color: rgba(191,219,254,0.30);
}
:root.dark .video-rider-summary .rider-biggest-focus,
:root.dark .video-rider-summary .rider-strength-line{
  color: #e5e7eb;
}
:root.dark .video-rider-summary .rider-weekly-quest,
:root.dark .video-rider-summary .rider-pro-tip{
  background: #111827;
  border-color: rgba(255,255,255,0.15);
}
:root.dark .video-rider-summary .signal-green{
  background: rgba(22,101,52,0.20);
  color: #86efac;
}
:root.dark .video-rider-summary .signal-yellow{
  background: rgba(146,64,14,0.20);
  color: #fde68a;
}
:root.dark .video-rider-summary .signal-red{
  background: rgba(153,27,27,0.22);
  color: #fca5a5;
}
@media (max-width: 600px){
  .video-rider-summary .rider-weekly-quest,
  .video-rider-summary .rider-pro-tip{
    padding: 8px;
  }
}

.video-rider-summary strong{
  font-weight: 800;
}


.video-session-summary-chips{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.video-session-summary-chip{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.12);
  background: #f8fafc;
  font-size: 12px;
  font-weight: 800;
  color: #111827;
}

@media (max-width: 600px){
  #mobileSessionSummaryCard{
    display:block;
    flex:1 1 auto;
    min-height:0;
    width:100%;
    max-width:100%;
    padding:12px;
    margin-top:0;
    border-radius:14px;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
  }
#mobileSessionSummaryYouth{
  display:none;
  width:100%;
  max-width:100%;
  margin-top:10px;
}
#mobileSessionSummaryYouth .video-ai-youth-dashboard{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
  #mobileSessionSummaryTitle{
    display:block;
    margin:0 0 6px 0;
    text-align:left;
    line-height:1.3;
  }
  #mobileSessionSummaryStatus{
    display:block;
    margin:0 0 8px 0;
    text-align:left;
    line-height:1.35;
  }
  #mobileSessionSummaryText{
    display:block;
    margin:0 0 10px 0;
    text-align:left;
    line-height:1.45;
    white-space:normal;
    word-break:break-word;
  }
  #mobileRiderSummary{
    display:block;
    width:100%;
    max-width:100%;
    margin-top:8px;
    text-align:left;
    line-height:1.5;
    white-space:normal;
    word-break:break-word;
  }
  #mobileSessionSummaryCompact{
    display:none;
    width:100%;
    max-width:100%;
    margin-top:0;
    padding:12px;
    box-sizing:border-box;
  }
  #mobileSessionSummaryCompact > .video-v23-shell{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  #mobileSessionSummaryYouth .video-ai-youth-card{
    border-radius:14px;
    padding:10px 12px;
  }
  #mobileSessionSummaryCompact .video-v23-card{
    padding:10px 12px;
    margin-top:0;
    border-radius:14px;
    background:linear-gradient(180deg, rgba(250,240,202,0.55) 0%, rgba(255,255,255,0.98) 100%);
    border:1px solid rgba(13,59,102,0.10);
    box-shadow:0 2px 8px rgba(0,0,0,0.06);
  }
  #mobileSessionSummaryCompact .video-v23-card-title{
    margin-bottom:6px;
    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#6b7280;
  }
  #mobileSessionSummaryCompact .video-v23-line,
  #mobileSessionSummaryCompact .video-v24-moment-text,
  #mobileSessionSummaryCompact .video-v24-learning-link{
    font-size:12px;
    line-height:1.4;
  }
  #mobileSessionSummaryCompact .video-v23-trivia-trigger{
    margin-top:8px;
    padding:0;
    border:none;
    background:transparent;
    color:#1d4ed8;
    font-size:12px;
    font-weight:800;
    text-decoration:underline;
    cursor:pointer;
  }
  #mobileSessionSummaryCompact .video-v24-learning-links{
    gap:8px;
  }
  #mobileSessionSummaryCard .video-v24-moment-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:10px;
    width:100%;
    flex-wrap:wrap;
  }
  #mobileSessionSummaryCard .video-v24-moment-text{
    flex:1 1 auto;
    min-width:0;
    line-height:1.42;
    word-break:break-word;
  }
  #mobileSessionSummaryCard .video-v24-moment-ts{
    flex:0 0 auto;
    min-width:58px;
    text-align:center;
    white-space:nowrap;
    align-self:flex-start;
  }
  #mobileSessionSummaryCard .video-v24-timestamp-btn{
    flex:0 0 auto;
    min-width:58px;
    text-align:center;
    white-space:nowrap;
    align-self:flex-start;
  }
  #mobileRiderSummary .rider-summary-header{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-start;
    gap:6px;
    margin-bottom:8px;
  }
  #mobileRiderSummary .rider-weekly-quest,
  #mobileRiderSummary .rider-pro-tip,
  #mobileRiderSummary .rider-progress-context{
    margin-top:8px;
    margin-bottom:0;
  }
  #mobileRiderSummary .rider-traffic-row,
  #mobileRiderSummary .rider-skill-signal-row{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
  }
  #mobileRiderSummary .traffic-chip,
  #mobileRiderSummary .rider-skill-chip{
    display:inline-flex;
    max-width:100%;
    white-space:normal;
  }
  #mobileRiderSummary .video-v23-shell{
    margin-top:10px;
    gap:8px;
  }
  #mobileRiderSummary .video-v23-card{
    padding:9px 10px;
    margin:0;
  }
  #mobileRiderSummary .video-v23-head{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px;
  }
  #mobileRiderSummary .video-v23-line{
    margin-top:4px;
    line-height:1.4;
  }
  #mobileRiderSummary .video-v23-signal-row{
    display:flex;
    flex-wrap:wrap;
    align-items:flex-start;
    gap:6px;
  }
  #mobileRiderSummary .video-v23-signal-skill{
    min-width:0;
    max-width:100%;
  }
  #mobileRiderSummary .video-v23-recap-wrap{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
  }
  #mobileRiderSummary .video-v23-journey-label{
    display:block;
    min-width:0;
    margin-bottom:2px;
  }
  #mobileRiderSummary .video-v23-journey-text{
    display:block;
    margin-left:0;
    line-height:1.4;
  }
}

:root.dark .video-session-summary-card{
  background: #0b1220;
  border-color: #374151;
}
:root.dark .video-session-summary-title{
  color: #f9fafb;
}
:root.dark .video-session-summary-text{
  color: #e5e7eb;
}
:root.dark .video-session-summary-chip{
  background: #111827;
  border-color: rgba(255,255,255,0.15);
  color: #f9fafb;
}

/* Additive: keep AI toolbar visually separate from summary card */
.yt-modal-right .video-session-summary-card + .video-ai-toolbar{
  margin-top: 12px;
}
.yt-modal-right .video-ai-toolbar{
  border: 1px solid rgba(0,0,0,0.12);
  border-radius: 12px;
  background: #ffffff;
  padding: 8px 10px;
  box-shadow: 0 1px 6px rgba(0,0,0,0.06);
}
:root.dark .yt-modal-right .video-ai-toolbar{
  background: #0b1220;
  border-color: rgba(255,255,255,0.16);
  box-shadow: 0 1px 6px rgba(0,0,0,0.35);
}

/* Additive: desktop edge-resize support + transcript end visibility */
@media (min-width: 601px){
  .video-modal-content.yt-modal.is-edge-resizable{
    min-width: 760px;
    min-height: 520px;
  }
  .video-modal-content.yt-modal.is-edge-resizable.is-resizing{
    user-select: none;
  }
  .yt-comments-area{
    display: flex;
    flex-direction: column;
    min-height: 0;
    height: 100%;
  }
  .yt-comments-area .video-ai-panel{
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }
  .yt-comments-area .video-transcript-wrap{
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1 1 auto;
  }
  .yt-comments-area .video-transcript-wrap .video-transcript{
    max-height: none;
    height: 100%;
    min-height: 0;
    overflow-y: auto;
    padding-bottom: 12px;
    scroll-padding-bottom: 12px;
  }
}
body.video-modal-resizing{
  user-select: none;
}
@media (max-width: 900px){
  body.mobile-screen-open { overflow: hidden; }

  .mobile-video-v25{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    min-height:0;
    overflow:visible;
    transform:translateY(0);
    opacity:1;
    transition:transform 180ms cubic-bezier(0.22, 0.61, 0.36, 1), opacity 180ms cubic-bezier(0.22, 0.61, 0.36, 1);
    will-change:transform, opacity;
  }
  .mobile-video-v25.is-dragging{
    transition:none;
  }
  .mobile-video-v25.is-settling{
    transition:transform 220ms cubic-bezier(0.22, 0.61, 0.36, 1), opacity 220ms cubic-bezier(0.22, 0.61, 0.36, 1);
  }
  #mobileVideoScreen #mobileVideoPlayerShell{
    flex:0 0 auto;
    flex-shrink:0;
    width:100%;
    min-height:0;
  }
  .mobile-video-v25 .m-video{
    position:sticky;
    top:48px;
    z-index:3;
    flex:0 0 auto;
    width:100%;
    aspect-ratio:16 / 9;
    height:auto;
    border-radius:0 0 14px 14px;
    background:#000;
    display:block;
    margin:0;
    line-height:0;
  }
  .mobile-v25-tabs{
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding:0;
    margin:0;
    position:sticky;
    top:0;
    background:#fff;
    z-index:2;
    border-bottom:1px solid #e5e7eb;
    -webkit-overflow-scrolling:touch;
  }
  #mobileVideoScreen #mobileVideoTabShell{
    display:flex !important;
    flex:1 1 auto;
    flex-direction:column;
    min-height:0;
    overflow:hidden;
    width:100%;
  }
  #mobileVideoScreen #mobileVideoTabs{
    display:flex !important;
  }
  .mobile-v25-tabs button{
    flex:0 0 auto;
    white-space:nowrap;
    border:1px solid #d1d5db;
    background:#f8fafc;
    color:#111827;
    font-weight:700;
    border-radius:999px;
    padding:8px 12px;
  }
  .mobile-v25-tabs button.active{
    background:#ffffff;
    border-color:#9ca3af;
  }
  .mobile-v25-tab-panels{
    flex:1 1 0;
    min-height:0;
    overflow:hidden;
    padding:0 0 env(safe-area-inset-bottom, 0px) 0;
    margin:0;
    box-sizing:border-box;
    scroll-padding-bottom:env(safe-area-inset-bottom, 0px);
    align-self:stretch;
  }
  #mobileVideoScreen #mobileVideoTabPanels{
    display:flex !important;
    flex-direction:column;
    flex:1 1 auto;
    min-height:0;
  }
  .mobile-v25-tab-panels.gesture-surface{
    touch-action:pan-y;
  }
  .mobile-v25-panel{
    display:none;
    flex:1 1 auto;
    min-height:0;
    overflow-y:auto;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    touch-action:pan-y;
    width:100%;
    margin-top:0;
    padding-bottom:env(safe-area-inset-bottom, 0px);
    box-sizing:border-box;
  }
  .mobile-v25-panel.is-active{
    display:flex;
    flex-direction:column;
  }
  .mobile-v25-panel.active{
    display:flex;
    flex-direction:column;
  }

  .m-screen{
    position: fixed;
    top: var(--mobile-header-height, 0px);
    left: 0; right: 0;
    height: calc(100dvh - var(--mobile-header-height, 0px));
    display:flex;
    flex-direction:column;
    min-height:0;
    overflow: hidden;
    background: #fff;
    z-index: 4000;
    padding: 0 12px calc(16px + env(safe-area-inset-bottom, 0px));
    box-sizing: border-box;
  }

  .m-topbar{
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    position: sticky;
    top: 0;
    background: #fff;
    z-index: 2;
    padding: 6px 0;
    border-bottom: 1px solid #e5e7eb;
  }
  #mobileVideoCloseBtn{
    margin-left: auto;
    order: 2;
  }
  #mobileVideoCloseBtn,
  #mobileTranscriptBackBtn{
    background:#ffffff;
    border:1px solid #d1d5db;
    color:#111827;
    border-radius:10px;
    font-size:18px;
    font-weight:800;
    line-height:1;
  }
  #mobileVideoTitle{
    order: 1;
  }

  .m-title{
    font-weight: 700;
  }

  .m-tabs{
    height: 48px;
    display: flex;
    align-items: center;
    gap: 10px;
    position: sticky;
    top: 48px;
    background: #fff;
    z-index: 2;
    padding: 6px 0;
    border-bottom: 1px solid #e5e7eb;
  }
  .m-tabs .btn.tab{
    appearance:none;
    border:1px solid #d1d5db;
    background:#f8fafc;
    color:#111827;
    font-weight:700;
    padding:6px 10px;
    border-radius:10px;
  }
  .m-tabs .btn.tab.is-active{
    background:#ffffff;
    border-color:#9ca3af;
  }
  #mobileAiTabTranscript.btn.tab.is-active{
    background:#e0f2fe;
    border-color:#38bdf8;
  }
  #mobileAiTabHighlights.btn.tab.is-active{
    background:#dcfce7;
    border-color:#22c55e;
  }

  .m-video{
    width: 100%;
    height: 240px;
    border-radius: 14px;
    background: #000;
    display:block;
    margin:0;
  }

  .m-actions{
    display: flex;
    gap: 10px;
    margin-top: 12px;
  }
  .mobile-video-v25 .m-actions{
    display:none;
  }
  .mobile-video-v25 #mobileVideoPlayer{
    margin-bottom:0;
  }
  .mobile-video-v25 .m-topbar #mobileRegenerateTranscriptBtn{
    margin-left:auto;
    order:2;
    font-size:13px;
    font-weight:700;
    padding:8px 10px;
    border-radius:999px;
  }
  .mobile-video-v25 .m-topbar #mobileVideoCloseBtn{
    order:3;
  }

  .m-actions .btn{
    flex: 1;
    border:1px solid #d1d5db;
    border-radius:10px;
    padding:6px 10px;
    font-weight:800;
    background:#ffffff;
    color:#111827;
  }
  .m-actions .btn.primary{
    background:var(--gold);
    color:#4d2f13;
  }
  #mobileOpenTranscriptBtn,
  #mobileRegenerateTranscriptBtn{
    font-size: 16px;
    padding-top: 12px;
    padding-bottom: 12px;
  }
  #mobileTranscriptScreen .m-tabs .btn{
    font-size: 15px;
  }

  .m-pinned-video{
    position: sticky;
    top: 96px; /* 48px topbar + 48px tabs */
    z-index: 3;
    background: #fff;
    padding: 8px 0;
  }

  .m-pinned-video video{
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    border-radius: 14px;
    background: #000;
    display: block;
  }

  #mobileTranscriptScreen .video-transcript-wrap,
  #mobileTranscriptScreen .video-transcript,
  #mobileTranscriptScreen .transcript-line,
  #mobileTranscriptScreen .seg-row{
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }
  #mobileTranscriptScreen .video-transcript-wrap{
    overflow: hidden;
  }
  #mobileTranscriptScreen .video-transcript{
    border:1px solid rgba(0,0,0,0.12);
    border-radius:10px;
    padding:10px;
    background:#fff;
    color:inherit;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  #mobileTranscriptScreen .transcript-line,
  #mobileTranscriptScreen .seg-row,
  #mobileTranscript .transcript-line,
  #mobileTranscript .seg-row,
  #mobileHighlights .transcript-line,
  #mobileHighlights .seg-row{
    display:flex;
    align-items:flex-start;
    gap:10px;
    padding:8px 0;
    border-bottom:1px solid rgba(0,0,0,0.08);
  }
  #mobileTranscriptScreen .transcript-ts,
  #mobileTranscriptScreen .seg-ts,
  #mobileTranscript .transcript-ts,
  #mobileTranscript .seg-ts,
  #mobileHighlights .transcript-ts,
  #mobileHighlights .seg-ts{
    flex:0 0 auto;
    min-width:54px;
    padding:4px 8px;
    border-radius:10px;
    border:1px solid rgba(0,0,0,0.15);
    background:transparent;
    font-weight:600;
    cursor:pointer;
  }
  #mobileTranscriptScreen .transcript-text,
  #mobileTranscriptScreen .seg-txt,
  #mobileTranscript .transcript-text,
  #mobileTranscript .seg-txt,
  #mobileHighlights .transcript-text,
  #mobileHighlights .seg-txt{
    flex:1 1 auto;
    white-space:pre-wrap;
    line-height:1.35;
    font-size: inherit;
    opacity: 1;
  }
  #mobileTranscript,
  #mobileHighlights{
    font-size: 13px;
    overflow: visible;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    background:#fff;
    color:inherit;
  }
  .mobile-video-v25 #mobileTranscriptWrap,
  .mobile-video-v25 #mobileHighlightsWrap{
    margin-top:12px;
    overflow:hidden;
    min-height:0;
    flex:1 1 auto;
  }
  .mobile-video-v25 #mobileTranscript,
  .mobile-video-v25 #mobileHighlights{
    flex:1 1 auto;
    max-height:none;
    min-height:0;
    border:1px solid rgba(0,0,0,0.12);
    border-radius:10px;
    padding:10px 10px calc(24px + env(safe-area-inset-bottom, 0px)) 10px;
    box-sizing:border-box;
    overflow-y:auto;
    overflow-x:hidden;
    height:100%;
    touch-action:pan-y;
  }
  #mobileHighlights .seg-row.is-current,
  #mobileTranscript .seg-row.is-current{
    background: rgba(56, 189, 248, 0.18);
    border-radius: 10px;
    padding-left: 6px;
    padding-right: 6px;
  }
  #mobileHighlights .transcript-line.is-current,
  #mobileTranscript .transcript-line.is-current{
    background: rgba(56, 189, 248, 0.22);
    border-left: 4px solid rgba(56, 189, 248, 0.85);
    border-radius: 10px;
    padding-left: 8px;
  }
  body.mobile-screen-open #videoModal { display: none !important; }
}
