/* ECG Lab UI Foundation v3
   Typography + responsive layout consolidation for desktop, tablet and mobile.
   Loaded last so it can normalize older feature-specific styles without changing ECG morphology. */

:root{
  --font-display:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif;
  --font-text:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Helvetica Neue","Segoe UI",Roboto,Arial,sans-serif;

  --type-display:clamp(2rem,3vw,2.75rem);
  --type-page:clamp(1.65rem,2.3vw,2.125rem);
  --type-title:1.25rem;
  --type-question:1.125rem;
  --type-body:1rem;
  --type-caption:.8125rem;
  --type-metric:clamp(1.8rem,2.6vw,2.5rem);

  --space-1:.25rem;
  --space-2:.5rem;
  --space-3:.75rem;
  --space-4:1rem;
  --space-5:1.25rem;
  --space-6:1.5rem;
  --space-8:2rem;
  --space-10:2.5rem;

  --control-h:44px;
  --content-max:1440px;
  --reading-max:900px;
  --radius-control:14px;
  --radius-card:22px;
  --radius-sheet:28px;
  --surface-v3:rgba(15,33,53,.93);
  --surface-v3-soft:rgba(15,33,53,.74);
  --surface-v3-raised:rgba(18,39,62,.97);
  --border-v3:rgba(255,255,255,.09);
  --border-v3-strong:rgba(255,255,255,.14);
  --shadow-v3:0 16px 44px rgba(0,0,0,.22);
  --shadow-v3-soft:0 8px 24px rgba(0,0,0,.14);
}

html{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  scroll-padding-top:84px;
}
html,body{width:100%;max-width:100%;overflow-x:hidden}
body.ui-foundation-v3{
  min-height:100vh;
  min-height:100dvh;
  font-family:var(--font-text)!important;
  font-size:var(--type-body);
  line-height:1.58;
  letter-spacing:-.005em;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}
body.ui-foundation-v3 button,
body.ui-foundation-v3 input,
body.ui-foundation-v3 textarea,
body.ui-foundation-v3 select{font-family:var(--font-text)!important}

/* ---------- typography hierarchy ---------- */
body.ui-foundation-v3 h1,
body.ui-foundation-v3 .hero h2,
body.ui-foundation-v3 .language-card h1{
  font-family:var(--font-display)!important;
  font-weight:700!important;
  letter-spacing:-.035em!important;
  line-height:1.08!important;
}
body.ui-foundation-v3 h2,
body.ui-foundation-v3 h3,
body.ui-foundation-v3 h4,
body.ui-foundation-v3 h5,
body.ui-foundation-v3 h6,
body.ui-foundation-v3 .section-head h3{
  font-family:var(--font-display)!important;
  font-weight:600!important;
  letter-spacing:-.02em!important;
  line-height:1.25;
}
body.ui-foundation-v3 .topbar h1{font-size:var(--type-page)!important}
body.ui-foundation-v3 .hero h2{font-size:var(--type-display)!important;max-width:850px}
body.ui-foundation-v3 .section-head h3,
body.ui-foundation-v3 .card h3{font-size:var(--type-title)}
body.ui-foundation-v3 .question h2,
body.ui-foundation-v3 .cat-question h2,
body.ui-foundation-v3 .sim-question-panel h2{font-size:var(--type-question)!important;line-height:1.46!important}
body.ui-foundation-v3 p,
body.ui-foundation-v3 li{line-height:1.62}
body.ui-foundation-v3 small,
body.ui-foundation-v3 .muted,
body.ui-foundation-v3 .label{line-height:1.42}
body.ui-foundation-v3 .eyebrow,
body.ui-foundation-v3 .badge{
  font-size:.72rem!important;
  font-weight:600!important;
  letter-spacing:.045em!important;
}
body.ui-foundation-v3 .btn,
body.ui-foundation-v3 .chip,
body.ui-foundation-v3 .answer,
body.ui-foundation-v3 .nav button,
body.ui-foundation-v3 .mobile-nav button{font-weight:600!important}
body.ui-foundation-v3 .stat strong,
body.ui-foundation-v3 .perf-mastery-score>strong,
body.ui-foundation-v3 .perf-area strong,
body.ui-foundation-v3 .perf-skill-row>b,
body.ui-foundation-v3 .cat-result-score strong,
body.ui-foundation-v3 .sim-result strong,
body.ui-foundation-v3 [class*="score"],
body.ui-foundation-v3 [class*="accuracy"],
body.ui-foundation-v3 [class*="percent"],
body.ui-foundation-v3 [class*="timer"]{
  font-variant-numeric:tabular-nums lining-nums;
  font-feature-settings:"tnum" 1,"lnum" 1;
}
body.ui-foundation-v3 .stat strong{font-size:var(--type-metric)!important;font-weight:700!important;letter-spacing:-.035em!important}

/* ---------- global geometry ---------- */
body.ui-foundation-v3 .shell{min-height:100vh;min-height:100dvh}
body.ui-foundation-v3 .main{
  width:100%!important;
  max-width:var(--content-max)!important;
  min-width:0;
  margin:0 auto!important;
  padding:clamp(20px,2vw,30px) clamp(18px,2.2vw,34px) 64px!important;
}
body.ui-foundation-v3 .page{min-width:0;max-width:100%}
body.ui-foundation-v3 .topbar{gap:var(--space-4);min-width:0}
body.ui-foundation-v3 .topbar>div:first-child{min-width:0}
body.ui-foundation-v3 .topbar p{font-size:.92rem;line-height:1.45;max-width:760px}
body.ui-foundation-v3 .actions{flex-wrap:wrap;justify-content:flex-end}
body.ui-foundation-v3 .card{min-width:0;border-radius:var(--radius-card)!important}
body.ui-foundation-v3 .section{padding:clamp(17px,1.6vw,24px)!important}
body.ui-foundation-v3 .section-head{min-width:0;flex-wrap:wrap}
body.ui-foundation-v3 .section-head>*{min-width:0}
body.ui-foundation-v3 .grid{min-width:0}
body.ui-foundation-v3 img,
body.ui-foundation-v3 svg,
body.ui-foundation-v3 canvas{max-width:100%}

/* Long-form learning content stays readable on large monitors. */
body.ui-foundation-v3 .lesson-content,
body.ui-foundation-v3 .study-lesson-body,
body.ui-foundation-v3 .study-reading,
body.ui-foundation-v3 .case-explanation,
body.ui-foundation-v3 .perf-analysis-text{max-width:var(--reading-max)}

/* ---------- controls and forms ---------- */
body.ui-foundation-v3 .btn{
  min-height:var(--control-h)!important;
  padding:10px 16px!important;
  border-radius:var(--radius-control)!important;
  font-size:.9rem!important;
}
body.ui-foundation-v3 .chip{
  min-height:40px!important;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:8px 12px!important;
}
body.ui-foundation-v3 .answer{
  min-height:52px!important;
  padding:13px 15px!important;
  font-size:.96rem!important;
  line-height:1.45!important;
}
body.ui-foundation-v3 input:not([type="range"]):not([type="checkbox"]):not([type="radio"]),
body.ui-foundation-v3 textarea,
body.ui-foundation-v3 select{
  min-height:var(--control-h)!important;
  max-width:100%;
  border:1px solid var(--border-v3)!important;
  border-radius:13px!important;
  background:rgba(4,18,31,.78)!important;
  color:var(--text,#f4f8ff)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025)!important;
  outline:none!important;
  transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease;
}
body.ui-foundation-v3 input:not([type="range"]):focus,
body.ui-foundation-v3 textarea:focus,
body.ui-foundation-v3 select:focus{
  border-color:rgba(76,224,179,.48)!important;
  box-shadow:0 0 0 3px rgba(76,224,179,.09)!important;
  background:rgba(5,21,36,.92)!important;
}
body.ui-foundation-v3 input[type="number"]{
  appearance:textfield;
  -moz-appearance:textfield;
  text-align:center;
  font-variant-numeric:tabular-nums;
  font-weight:600;
  min-width:76px;
}
body.ui-foundation-v3 input[type="number"]::-webkit-inner-spin-button,
body.ui-foundation-v3 input[type="number"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* Unified native-feeling range control. */
body.ui-foundation-v3 input[type="range"]{
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  min-width:0;
  height:44px;
  margin:0;
  padding:0;
  background:transparent!important;
  accent-color:var(--accent,#4ce0b3);
  touch-action:pan-y;
}
body.ui-foundation-v3 input[type="range"]::-webkit-slider-runnable-track{
  height:6px;border-radius:99px;
  background:linear-gradient(90deg,rgba(76,224,179,.28),rgba(110,168,255,.18));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
body.ui-foundation-v3 input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;appearance:none;
  width:22px;height:22px;border-radius:50%;
  margin-top:-8px;
  background:var(--accent,#4ce0b3);
  border:3px solid #0c1d30;
  box-shadow:0 4px 14px rgba(0,0,0,.28),0 0 0 3px rgba(76,224,179,.12);
}
body.ui-foundation-v3 input[type="range"]::-moz-range-track{
  height:6px;border:0;border-radius:99px;background:rgba(110,168,255,.18)
}
body.ui-foundation-v3 input[type="range"]::-moz-range-progress{
  height:6px;border-radius:99px;background:linear-gradient(90deg,var(--accent,#4ce0b3),var(--accent2,#6ea8ff))
}
body.ui-foundation-v3 input[type="range"]::-moz-range-thumb{
  width:18px;height:18px;border-radius:50%;background:var(--accent,#4ce0b3);border:3px solid #0c1d30;box-shadow:0 4px 14px rgba(0,0,0,.28)
}

/* ---------- progress bars: one predictable geometry ---------- */
body.ui-foundation-v3 .progress,
body.ui-foundation-v3 .perf-skill-bar,
body.ui-foundation-v3 .perf-xp-bar,
body.ui-foundation-v3 .cat-progress,
body.ui-foundation-v3 .sim-progress,
body.ui-foundation-v3 .sim-progress-bar{
  width:100%!important;
  min-width:0;
  height:8px!important;
  overflow:hidden!important;
  border-radius:999px!important;
  background:rgba(132,161,190,.14)!important;
}
body.ui-foundation-v3 .progress>i,
body.ui-foundation-v3 .perf-skill-bar>i,
body.ui-foundation-v3 .perf-xp-bar>i,
body.ui-foundation-v3 .cat-progress>i,
body.ui-foundation-v3 .sim-progress>i,
body.ui-foundation-v3 .sim-progress-bar>i{
  display:block!important;
  height:100%!important;
  min-width:0;
  max-width:100%;
  border-radius:999px!important;
  transform:none!important;
  animation:none!important;
}

/* ---------- dashboard ---------- */
body.ui-foundation-v3 .hero{padding:clamp(22px,2.4vw,34px)!important;gap:var(--space-6)}
body.ui-foundation-v3 .hero p{font-size:1rem;max-width:720px}
body.ui-foundation-v3 .stats{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px}
body.ui-foundation-v3 .stat{padding:clamp(16px,1.5vw,21px)!important}
body.ui-foundation-v3 .two{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr)!important;gap:16px}
body.ui-foundation-v3 .list-item{min-width:0}
body.ui-foundation-v3 .list-item>div:nth-child(2){min-width:0}
body.ui-foundation-v3 .list-item h4,
body.ui-foundation-v3 .list-item p{overflow-wrap:anywhere}

/* ---------- training ---------- */
body.ui-foundation-v3 #treinar,
body.ui-foundation-v3 #simulados,
body.ui-foundation-v3 #desempenho,
body.ui-foundation-v3 #trilha{min-width:0}
body.ui-foundation-v3 #treinar .training,
body.ui-foundation-v3 #treinar .cat-runner-layout,
body.ui-foundation-v3 #treinar .cat-question-layout{
  grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr)!important;
  gap:16px!important;
}
body.ui-foundation-v3 #treinar .ecg-card,
body.ui-foundation-v3 #treinar .question,
body.ui-foundation-v3 #treinar [class*="setup"],
body.ui-foundation-v3 #treinar [class*="custom"]{min-width:0}
body.ui-foundation-v3 #treinar .toolbar{gap:10px}
body.ui-foundation-v3 #treinar .tools,
body.ui-foundation-v3 #treinar .viewer-tools{gap:7px}
body.ui-foundation-v3 #treinar .viewer-tools .chip{min-width:44px}
body.ui-foundation-v3 #treinar .ecg-wrap,
body.ui-foundation-v3 #treinar .ecg-wrap.enhanced{
  width:100%!important;
  height:clamp(360px,56vh,620px)!important;
  min-height:0!important;
}
body.ui-foundation-v3 #treinar .ecg-wrap img,
body.ui-foundation-v3 #treinar .ecg-wrap canvas{
  width:100%!important;height:100%!important;object-fit:contain!important
}
/* The custom count row can no longer look like raw browser controls. */
body.ui-foundation-v3 #treinar input[type="range"]{flex:1 1 240px}
body.ui-foundation-v3 #treinar input[type="number"]{width:84px!important;flex:0 0 84px}
body.ui-foundation-v3 #treinar label:has(input[type="range"]),
body.ui-foundation-v3 #treinar div:has(>input[type="range"]){min-width:0}

/* ---------- simulations ---------- */
body.ui-foundation-v3 #simulados .sim-question-layout{
  grid-template-columns:minmax(0,1.08fr) minmax(360px,.92fr)!important;
  gap:16px!important;
}
body.ui-foundation-v3 #simulados .sim-ecg-stage{
  width:100%;min-width:0;min-height:360px!important;max-height:620px
}
body.ui-foundation-v3 #simulados .sim-ecg-image,
body.ui-foundation-v3 #simulados .sim-review-ecg{width:100%!important;height:auto!important;object-fit:contain!important}
body.ui-foundation-v3 #simulados .sim-summary-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
body.ui-foundation-v3 #simulados .sim-history-item{min-width:0}
body.ui-foundation-v3 #simulados .sim-chart-card{min-width:0;overflow:hidden}
body.ui-foundation-v3 #simulados .sim-chart{width:100%!important;max-width:100%!important}

/* ---------- My Performance ---------- */
body.ui-foundation-v3 .perf-page{gap:18px!important;min-width:0}
body.ui-foundation-v3 .perf-head{gap:16px!important}
body.ui-foundation-v3 .perf-head h2{font-size:var(--type-page)!important;margin:0 0 5px!important}
body.ui-foundation-v3 .perf-periods{max-width:100%;min-width:0}
body.ui-foundation-v3 .perf-periods .chip{min-width:68px}
body.ui-foundation-v3 .perf-mastery{grid-template-columns:minmax(0,1fr) auto!important;gap:20px!important;padding:clamp(19px,2vw,27px)!important}
body.ui-foundation-v3 .perf-mastery-score>strong{font-size:clamp(2.7rem,5vw,3.7rem)!important;font-weight:700!important;letter-spacing:-.045em!important}
body.ui-foundation-v3 .perf-kpis{grid-template-columns:repeat(3,minmax(0,1fr))!important}
body.ui-foundation-v3 .perf-two{grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr)!important;gap:16px!important}
body.ui-foundation-v3 .perf-chart-wrap{width:100%!important;min-width:0!important;overflow:hidden!important}
body.ui-foundation-v3 .perf-chart{width:100%!important;min-width:0!important;max-width:100%!important;height:auto!important}
body.ui-foundation-v3 .perf-skill-list{gap:10px!important}
body.ui-foundation-v3 .perf-skill-row{
  grid-template-columns:minmax(190px,1.25fr) minmax(160px,1fr) 56px!important;
  gap:14px!important;
  min-width:0;
  padding:13px 14px;
  border:1px solid rgba(255,255,255,.07);
  border-radius:15px;
  background:rgba(255,255,255,.018);
}
body.ui-foundation-v3 .perf-skill-row>div:first-child{min-width:0}
body.ui-foundation-v3 .perf-skill-row strong{font-size:.91rem!important;line-height:1.3!important;overflow-wrap:anywhere}
body.ui-foundation-v3 .perf-skill-row small{font-size:.75rem!important}
body.ui-foundation-v3 .perf-skill-row>b{font-size:.95rem!important;min-width:48px;text-align:right!important}
body.ui-foundation-v3 .perf-area-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
body.ui-foundation-v3 .perf-plan-list{grid-template-columns:repeat(3,minmax(0,1fr))!important}
body.ui-foundation-v3 .perf-activity-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}

/* ---------- study path / case content ---------- */
body.ui-foundation-v3 .module-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
body.ui-foundation-v3 .module{min-width:0}
body.ui-foundation-v3 [class*="study-"]{min-width:0}
body.ui-foundation-v3 [class*="case-"]{min-width:0}
body.ui-foundation-v3 .admin-table{display:block;max-width:100%;overflow:auto;-webkit-overflow-scrolling:touch}

/* ---------- floating tutor ---------- */
body.ui-foundation-v3 .nav [data-page="tutor"],
body.ui-foundation-v3 .mobile-nav [data-page="tutor"]{display:none!important}
body.ui-foundation-v3 .ft2-panel{max-width:min(480px,40vw)!important}
body.ui-foundation-v3 .ft2-compose textarea{font-size:16px!important}

/* ---------- modals, language gate and auth ---------- */
body.ui-foundation-v3 .modal,
body.ui-foundation-v3 .sim-modal,
body.ui-foundation-v3 .cat-modal{max-width:min(520px,calc(100vw - 32px))}
body.ui-foundation-v3 .language-card{width:min(520px,calc(100vw - 28px));max-width:100%}
body.ui-foundation-v3 .language-options button{min-height:64px}
body.ui-foundation-v3 .auth-modal{max-height:calc(100dvh - 32px);overflow:auto}

/* ---------- tablet / notebook ---------- */
@media(max-width:1279px){
  body.ui-foundation-v3 .main{padding-left:22px!important;padding-right:22px!important}
  body.ui-foundation-v3 .perf-plan-list{grid-template-columns:1fr!important}
  body.ui-foundation-v3 .perf-two{grid-template-columns:1fr!important}
  body.ui-foundation-v3 .module-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

@media(max-width:1023px){
  body.ui-foundation-v3 #treinar .training,
  body.ui-foundation-v3 #treinar .cat-runner-layout,
  body.ui-foundation-v3 #treinar .cat-question-layout,
  body.ui-foundation-v3 #simulados .sim-question-layout{
    grid-template-columns:1fr!important;
  }
  body.ui-foundation-v3 #treinar .ecg-wrap,
  body.ui-foundation-v3 #treinar .ecg-wrap.enhanced{height:clamp(330px,50vh,520px)!important}
  body.ui-foundation-v3 #simulados .sim-ecg-stage{min-height:300px!important}
  body.ui-foundation-v3 .perf-area-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.ui-foundation-v3 .stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.ui-foundation-v3 .two{grid-template-columns:1fr!important}
  body.ui-foundation-v3 .ft2-panel{max-width:min(460px,58vw)!important}
}

/* ---------- mobile foundation ---------- */
@media(max-width:767px){
  :root{
    --type-display:clamp(1.85rem,8vw,2.2rem);
    --type-page:clamp(1.55rem,6.5vw,1.8rem);
    --type-title:1.08rem;
    --type-question:1.03rem;
    --type-body:.9375rem;
    --type-caption:.78rem;
    --type-metric:clamp(1.65rem,8vw,2.1rem);
    --control-h:46px;
  }
  html{scroll-padding-top:70px}
  body.ui-foundation-v3{font-size:var(--type-body);line-height:1.55}
  body.ui-foundation-v3 .shell{display:block!important;min-height:100dvh!important}
  body.ui-foundation-v3 .sidebar{display:none!important}
  body.ui-foundation-v3 .main{
    max-width:none!important;
    padding:12px 14px calc(104px + env(safe-area-inset-bottom))!important;
  }
  body.ui-foundation-v3 .topbar{
    position:sticky!important;
    top:max(4px,env(safe-area-inset-top))!important;
    z-index:70!important;
    align-items:flex-start!important;
    margin:0 0 14px!important;
    padding:10px 11px!important;
    border-radius:17px!important;
  }
  body.ui-foundation-v3 .topbar p{font-size:.82rem!important;margin-top:3px!important;line-height:1.35!important}
  body.ui-foundation-v3 .topbar .actions{gap:6px;flex:0 0 auto}
  body.ui-foundation-v3 .topbar .actions .btn{min-height:42px!important;padding:8px 11px!important;font-size:.78rem!important}
  body.ui-foundation-v3 .hide-mobile{display:none!important}

  body.ui-foundation-v3 .card{border-radius:19px!important}
  body.ui-foundation-v3 .section{padding:15px!important}
  body.ui-foundation-v3 .hero{padding:20px!important;border-radius:22px!important;min-height:0!important}
  body.ui-foundation-v3 .hero p{font-size:.92rem!important;line-height:1.56!important}
  body.ui-foundation-v3 .cta{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
  body.ui-foundation-v3 .cta .btn{width:100%!important}

  body.ui-foundation-v3 .btn,
  body.ui-foundation-v3 .chip,
  body.ui-foundation-v3 .answer{touch-action:manipulation}
  body.ui-foundation-v3 .chip{min-height:44px!important;min-width:44px}
  body.ui-foundation-v3 .answer{min-height:54px!important;padding:14px 15px!important;font-size:.95rem!important}

  /* Five primary destinations fit without sideways page scroll; Tutor remains floating. */
  body.ui-foundation-v3 .mobile-nav{
    display:grid!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    left:8px!important;right:8px!important;
    bottom:max(8px,env(safe-area-inset-bottom))!important;
    width:auto!important;
    min-height:64px!important;
    padding:6px!important;
    gap:2px!important;
    overflow:visible!important;
    border-radius:20px!important;
  }
  body.ui-foundation-v3 .mobile-nav button{
    min-width:0!important;
    width:100%!important;
    min-height:52px!important;
    padding:5px 2px!important;
    border-radius:14px!important;
    font-size:17px!important;
    white-space:nowrap;
  }
  body.ui-foundation-v3 .mobile-nav button small{
    display:block;
    margin-top:1px;
    font-size:clamp(.56rem,2.3vw,.68rem)!important;
    line-height:1.05!important;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  body.ui-foundation-v3 .stats,
  body.ui-foundation-v3 .perf-kpis,
  body.ui-foundation-v3 #simulados .sim-summary-grid,
  body.ui-foundation-v3 .perf-area-grid,
  body.ui-foundation-v3 .perf-activity-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
  }
  body.ui-foundation-v3 .stat{padding:15px!important;min-height:104px!important}

  body.ui-foundation-v3 .module-grid,
  body.ui-foundation-v3 .sim-grid{grid-template-columns:1fr!important}

  /* Training becomes ECG → question → answers → navigation. */
  body.ui-foundation-v3 #treinar .training,
  body.ui-foundation-v3 #treinar .cat-runner-layout,
  body.ui-foundation-v3 #treinar .cat-question-layout,
  body.ui-foundation-v3 #simulados .sim-question-layout{display:grid!important;grid-template-columns:1fr!important;gap:10px!important}
  body.ui-foundation-v3 #treinar .ecg-card,
  body.ui-foundation-v3 #treinar .question,
  body.ui-foundation-v3 #simulados .sim-ecg-panel,
  body.ui-foundation-v3 #simulados .sim-question-panel{padding:13px!important}
  body.ui-foundation-v3 #treinar .ecg-wrap,
  body.ui-foundation-v3 #treinar .ecg-wrap.enhanced{
    height:clamp(240px,48vh,390px)!important;
    min-height:240px!important;
    border-radius:14px!important;
  }
  body.ui-foundation-v3 #simulados .sim-ecg-stage{min-height:235px!important;border-radius:14px!important}
  body.ui-foundation-v3 #treinar .toolbar,
  body.ui-foundation-v3 #simulados .sim-ecg-head{align-items:flex-start!important}
  body.ui-foundation-v3 #treinar .viewer-tools{width:100%!important;display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important}
  body.ui-foundation-v3 #treinar .viewer-tools .chip{width:100%!important;padding:7px 4px!important;font-size:.72rem!important}

  /* Personalized count: vertical, touch-friendly, never raw browser UI. */
  body.ui-foundation-v3 #treinar input[type="range"]{width:100%!important;flex:1 1 100%!important}
  body.ui-foundation-v3 #treinar input[type="number"]{width:100%!important;max-width:100%!important;flex:1 1 100%!important;min-height:48px!important}
  body.ui-foundation-v3 #treinar label:has(input[type="range"]),
  body.ui-foundation-v3 #treinar div:has(>input[type="range"]){width:100%!important;display:grid!important;grid-template-columns:1fr!important;gap:8px!important}

  /* My Performance uses one or two columns only. */
  body.ui-foundation-v3 .perf-head{align-items:flex-start!important;flex-direction:column!important}
  body.ui-foundation-v3 .perf-periods{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;width:100%!important;gap:5px!important}
  body.ui-foundation-v3 .perf-periods .chip{min-width:0!important;width:100%!important;padding:7px 5px!important;font-size:.72rem!important}
  body.ui-foundation-v3 .perf-mastery{grid-template-columns:1fr!important;padding:17px!important}
  body.ui-foundation-v3 .perf-mastery-change{text-align:left!important;min-width:0!important}
  body.ui-foundation-v3 .perf-two{grid-template-columns:1fr!important}
  body.ui-foundation-v3 .perf-chart-wrap{overflow:hidden!important}
  body.ui-foundation-v3 .perf-chart{min-width:0!important;width:100%!important;max-width:100%!important}
  body.ui-foundation-v3 .perf-skill-row{
    grid-template-columns:minmax(0,1fr) 52px!important;
    grid-template-rows:auto auto!important;
    gap:8px 10px!important;
    padding:12px!important;
  }
  body.ui-foundation-v3 .perf-skill-row .perf-skill-bar,
  body.ui-foundation-v3 .perf-skill-row>div:nth-child(2){grid-column:1/-1!important;grid-row:2!important;width:100%!important}
  body.ui-foundation-v3 .perf-skill-row>b{grid-column:2!important;grid-row:1!important;align-self:center!important}
  body.ui-foundation-v3 .perf-plan-list{grid-template-columns:1fr!important}
  body.ui-foundation-v3 .perf-focus-cta{align-items:stretch!important;flex-direction:column!important}
  body.ui-foundation-v3 .perf-focus-cta .btn{width:100%!important}

  /* Sheets instead of small centered dialogs. */
  body.ui-foundation-v3 .modal-backdrop,
  body.ui-foundation-v3 .sim-modal-backdrop,
  body.ui-foundation-v3 .cat-modal-backdrop{place-items:end center!important;padding:0!important}
  body.ui-foundation-v3 .modal,
  body.ui-foundation-v3 .sim-modal,
  body.ui-foundation-v3 .cat-modal{
    width:100%!important;
    max-width:none!important;
    max-height:88dvh!important;
    overflow:auto!important;
    border-radius:var(--radius-sheet) var(--radius-sheet) 0 0!important;
    padding:20px 16px calc(18px + env(safe-area-inset-bottom))!important;
  }
  body.ui-foundation-v3 .modal:before,
  body.ui-foundation-v3 .sim-modal:before,
  body.ui-foundation-v3 .cat-modal:before{
    content:"";display:block;width:42px;height:5px;margin:-7px auto 14px;border-radius:99px;background:rgba(255,255,255,.22)
  }

  /* Tutor becomes a true mobile sheet without shrinking the activity underneath. */
  body.ui-foundation-v3 .ft2-panel{
    left:0!important;right:0!important;bottom:0!important;top:auto!important;
    width:100%!important;max-width:none!important;
    height:min(72dvh,720px)!important;max-height:calc(100dvh - env(safe-area-inset-top) - 18px)!important;
    border-radius:26px 26px 0 0!important;
    padding-bottom:env(safe-area-inset-bottom)!important;
  }
  body.ui-foundation-v3 .ft2-fab{bottom:calc(84px + env(safe-area-inset-bottom))!important;right:14px!important}

  body.ui-foundation-v3 .toast{
    left:12px!important;right:12px!important;bottom:calc(84px + env(safe-area-inset-bottom))!important;width:auto!important;text-align:center
  }
}

@media(max-width:479px){
  body.ui-foundation-v3 .main{padding-left:12px!important;padding-right:12px!important}
  body.ui-foundation-v3 .stats,
  body.ui-foundation-v3 .perf-kpis,
  body.ui-foundation-v3 #simulados .sim-summary-grid,
  body.ui-foundation-v3 .perf-area-grid,
  body.ui-foundation-v3 .perf-activity-grid{grid-template-columns:1fr!important}
  body.ui-foundation-v3 .topbar{gap:8px!important}
  body.ui-foundation-v3 .topbar .actions .btn{padding-left:9px!important;padding-right:9px!important}
  body.ui-foundation-v3 .mobile-nav{left:6px!important;right:6px!important}
  body.ui-foundation-v3 .mobile-nav button small{font-size:.56rem!important}
  body.ui-foundation-v3 .perf-periods{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.ui-foundation-v3 #treinar .viewer-tools{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  body.ui-foundation-v3 .language-card{width:calc(100vw - 20px)!important;padding:20px 16px!important}
}

/* Large monitors: prevent stretched reading and preserve density. */
@media(min-width:1600px){
  body.ui-foundation-v3 .main{max-width:1500px!important;padding-left:36px!important;padding-right:36px!important}
  body.ui-foundation-v3 .hero{min-height:320px}
  body.ui-foundation-v3 .perf-chart-card,
  body.ui-foundation-v3 .sim-chart-card{padding:24px!important}
}

/* Accessibility: user preference wins. */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto!important}
  body.ui-foundation-v3 *,
  body.ui-foundation-v3 *:before,
  body.ui-foundation-v3 *:after{
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
    scroll-behavior:auto!important;
  }
}

/* ECG fidelity guardrail. */
body.ui-foundation-v3 .ecg-wrap img,
body.ui-foundation-v3 .ecg-wrap canvas,
body.ui-foundation-v3 .sim-ecg-image,
body.ui-foundation-v3 .sim-review-ecg,
body.ui-foundation-v3 .case-ecg-image,
body.ui-foundation-v3 .cat-review-ecg img{
  filter:none!important;
  text-shadow:none!important;
  box-shadow:none!important;
}
