/* ---- style.css ---- */
:root {
  --ink: #1b241f;
  --muted: #697268;
  --paper: #f6f5f0;
  --line: #e0e2d9;
  --green: #214d39;
  --gold: #ba974e;
  --gold-light: #f1e6cc;
  --white: #fff;
  --danger: #a03f32;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font:
    15px/1.5 -apple-system,
    BlinkMacSystemFont,
    "Segoe UI",
    sans-serif;
}
button,
input,
textarea,
select {
  font: inherit;
}
button,
a,
input,
select,
textarea {
  -webkit-tap-highlight-color: transparent;
}
button,
a {
  touch-action: manipulation;
}
button {
  cursor: pointer;
}
button:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}
a {
  color: inherit;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible {
  outline: 3px solid #b89a50;
  outline-offset: 3px;
}
button {
  border: 0;
}
h1,
h2,
h3,
p {
  margin: 0;
}
h1 {
  font-size: clamp(30px, 3.5vw, 48px);
  line-height: 1.12;
  letter-spacing: -1.6px;
  font-weight: 620;
}
h2 {
  font-size: 25px;
  line-height: 1.2;
  letter-spacing: -0.65px;
  font-weight: 620;
}
h3 {
  font-size: 17px;
  font-weight: 600;
}
.muted {
  color: var(--muted);
}
.eyebrow {
  font-size: 11px;
  letter-spacing: 1.8px;
  font-weight: 700;
  text-transform: uppercase;
  color: var(--muted);
  margin-bottom: 12px;
}
.small {
  font-size: 12px;
}
.shell {
  display: grid;
  grid-template-columns: 234px 1fr;
  min-height: 100vh;
}
.sidebar {
  position: sticky;
  top: 0;
  height: 100dvh;
  background: #19221d;
  color: #eff1e9;
  padding: 34px 24px;
  display: flex;
  flex-direction: column;
}
.brand {
  display: flex;
  align-items: center;
  gap: 11px;
  letter-spacing: 3px;
  font-size: 17px;
  font-weight: 600;
  text-decoration: none;
}
.brand img {
  width: 35px;
  height: 35px;
  object-fit: contain;
}
.room-tag {
  margin: 38px 0 20px;
  padding-top: 22px;
  border-top: 1px solid #3b443e;
}
.sidebar .eyebrow {
  color: #99a599;
  font-size: 10px;
}
.sidebar h3 {
  font-size: 15px;
}
.nav {
  display: flex;
  flex-direction: column;
  gap: 7px;
  margin-top: 12px;
}
.nav button {
  padding: 13px 14px;
  border-radius: 7px;
  text-align: left;
  color: #b8c0b8;
  background: transparent;
  display: flex;
  gap: 11px;
  align-items: center;
  font-size: 13px;
}
.nav button.active {
  background: #303c33;
  color: #fff;
}
.nav button:hover {
  background: #2b352e;
}
.nav .num {
  margin-left: auto;
  background: #576847;
  font-size: 10px;
  border-radius: 10px;
  padding: 1px 6px;
}
.side-bottom {
  margin-top: auto;
  padding-top: 32px;
}
.side-bottom p {
  color: #94a190;
  font-size: 11px;
}
.side-bottom strong {
  display: block;
  color: #e5e8de;
  font-size: 12px;
  margin-bottom: 5px;
}
.avatar {
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  background: #cfbb85;
  color: #1b241f;
  border-radius: 50%;
  font-size: 11px;
  font-weight: 700;
}
.account {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 23px 0 0;
}
.account button {
  background: none;
  color: #c4cbbf;
  font-size: 11px;
  padding: 0;
}
.main {
  padding: 0 46px 50px;
  max-width: 1640px;
  width: 100%;
}
.topbar {
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-bottom: 1px solid var(--line);
  margin-bottom: 37px;
}
.topbar .breadcrumb {
  font-size: 12px;
  color: var(--muted);
}
.top-status {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 11px;
  color: var(--muted);
}
.dot {
  height: 6px;
  width: 6px;
  border-radius: 50%;
  background: #779865;
}
.page-heading {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 29px;
}
.page-heading p {
  margin-top: 13px;
  color: var(--muted);
  max-width: 610px;
}
.badge {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border-radius: 30px;
  padding: 5px 10px;
  font-size: 10px;
  line-height: 1.3;
  font-weight: 650;
  text-transform: uppercase;
  letter-spacing: 0.7px;
  background: #e9ede6;
  color: #466044;
}
.badge.gold {
  background: var(--gold-light);
  color: #7c6228;
}
.badge.gray {
  background: #eee;
  color: #777;
}
.badge.red {
  background: #f7e8e2;
  color: #944935;
}
.btn {
  padding: 12px 17px;
  border-radius: 6px;
  background: var(--green);
  color: #fff;
  font-weight: 600;
  font-size: 12px;
  display: inline-flex;
  gap: 10px;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  min-height: 42px;
}
.btn.secondary {
  background: #e9ece4;
  color: #344331;
}
.btn.outline {
  background: transparent;
  color: var(--ink);
  border: 1px solid var(--line);
}
.btn.gold {
  background: #c4a764;
  color: #17201a;
}
.btn.full {
  width: 100%;
}
.btn.small {
  padding: 8px 12px;
  min-height: 34px;
  font-size: 11px;
}
.text-btn {
  background: none;
  color: var(--green);
  font-size: 12px;
  font-weight: 600;
  padding: 5px 0;
}
.notice {
  display: flex;
  gap: 12px;
  background: #f0eadb;
  color: #746443;
  padding: 12px 17px;
  border: 1px solid #e8dfc8;
  border-radius: 7px;
  font-size: 12px;
  margin-bottom: 23px;
}
.grid2 {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 24px;
}
.grid-even {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.grid3 {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
}
.card {
  background: white;
  border: 1px solid var(--line);
  border-radius: 10px;
  overflow: hidden;
}
.pad {
  padding: 26px;
}
.card-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  padding: 22px 26px;
  border-bottom: 1px solid var(--line);
}
.card-head h3 {
  font-size: 14px;
}
.card-head .eyebrow {
  margin: 0;
}
.hero {
  background: #22382a;
  color: white;
  position: relative;
  overflow: hidden;
  border-radius: 11px;
  padding: 36px;
  min-height: 280px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
}
.hero .eyebrow {
  color: #b4c4ad;
}
.hero h2 {
  font-size: 32px;
  max-width: 450px;
  line-height: 1.18;
}
.hero p {
  color: #c0cebb;
  font-size: 13px;
  max-width: 400px;
  margin: 16px 0 24px;
}
.hero svg {
  position: absolute;
  right: -35px;
  bottom: -65px;
  width: 350px;
  opacity: 0.18;
}
.hero .content {
  position: relative;
  z-index: 1;
}
.stats {
  display: flex;
  gap: 28px;
  margin: 28px 0;
}
.stat {
  padding-right: 30px;
  border-right: 1px solid var(--line);
}
.stat:last-child {
  border: 0;
}
.stat strong {
  font-size: 29px;
  font-weight: 550;
  letter-spacing: -1px;
  display: block;
}
.stat span {
  font-size: 11px;
  color: var(--muted);
}
.section-heading {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 29px 0 14px;
}
.section-heading h2 {
  font-size: 18px;
  letter-spacing: -0.3px;
}
.row {
  padding: 18px 22px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid var(--line);
}
.row:last-child {
  border-bottom: 0;
}
.row h3 {
  font-size: 14px;
}
.row p {
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}
.row .index {
  font-size: 11px;
  color: #94a18d;
  width: 20px;
  flex-shrink: 0;
}
.row .grow {
  flex: 1;
}
.circle {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: #f0f2ec;
  color: #5d7155;
  flex-shrink: 0;
  font-size: 15px;
}
.empty {
  padding: 45px 30px;
  text-align: center;
  color: var(--muted);
  font-size: 13px;
}
.empty h3 {
  color: var(--ink);
  margin-bottom: 8px;
}
.empty p {
  max-width: 360px;
  margin: auto;
}
.steps {
  display: flex;
  margin: 24px 0 25px;
  gap: 8px;
}
.step {
  flex: 1;
  padding-top: 12px;
  border-top: 3px solid #dce2d7;
  font-size: 11px;
  color: #8a9385;
  display: flex;
  justify-content: space-between;
}
.step.active {
  border-color: var(--green);
  color: var(--green);
  font-weight: 600;
}
.step.done {
  border-color: #96b08b;
  color: #476740;
}
.lesson-layout {
  display: grid;
  grid-template-columns: 1.45fr 1fr;
  gap: 25px;
  align-items: start;
}
.video-frame {
  background: #111913;
  position: relative;
  aspect-ratio: 16/9;
  display: flex;
  align-items: center;
  justify-content: center;
}
.video-frame video,
.video-frame img {
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.media-caption {
  padding: 13px 20px;
  background: white;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 11px;
  color: var(--muted);
}
.source-label {
  position: absolute;
  top: 12px;
  left: 12px;
  background: #18211ddd;
  color: #fff;
  font-size: 9px;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 5px 8px;
  border-radius: 4px;
  pointer-events: none;
}
.field {
  display: block;
  margin-bottom: 18px;
}
.field span {
  display: block;
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 7px;
}
.field small {
  display: block;
  color: var(--muted);
  font-size: 11px;
  margin-top: 5px;
}
input,
textarea,
select {
  width: 100%;
  padding: 12px 13px;
  border: 1px solid #dce1d5;
  border-radius: 6px;
  color: var(--ink);
  background: #fff;
  outline: 0;
  font-size: 13px;
}
textarea {
  min-height: 110px;
  resize: vertical;
}
input:focus,
textarea:focus,
select:focus {
  border-color: var(--green);
}
input[type="checkbox"],
input[type="radio"] {
  width: auto;
  accent-color: var(--green);
  flex-shrink: 0;
}
.choice {
  display: flex;
  gap: 10px;
  border: 1px solid var(--line);
  padding: 13px;
  border-radius: 6px;
  margin-bottom: 8px;
  font-size: 12px;
  align-items: flex-start;
  cursor: pointer;
}
.choice:has(input:checked) {
  border-color: var(--green);
  background: #f1f5ec;
}
.choice input {
  margin-top: 3px;
}
.check {
  display: flex;
  gap: 10px;
  font-size: 12px;
  margin: 15px 0;
  align-items: flex-start;
}
.check input {
  margin-top: 4px;
}
.question {
  margin: 10px 0 23px;
  font-size: 23px;
  line-height: 1.3;
  letter-spacing: -0.5px;
}
.subtle-box {
  padding: 17px;
  background: #f7f7f2;
  border: 1px solid #e9ece2;
  border-radius: 7px;
  font-size: 12px;
  color: #64705d;
  margin: 16px 0;
}
.subtle-box strong {
  color: #36452f;
}
.quote {
  font-size: 19px;
  line-height: 1.6;
  letter-spacing: -0.25px;
  border-left: 3px solid #c6ae76;
  padding-left: 19px;
  margin: 20px 0;
  color: #354b30;
}
.citation {
  font-size: 11px;
  color: var(--muted);
  margin-top: 12px;
}
.citation code {
  font: 10px monospace;
}
audio {
  width: 100%;
  height: 36px;
  margin: 15px 0;
}
details {
  border-top: 1px solid var(--line);
  padding: 14px 0;
  font-size: 12px;
}
summary {
  cursor: pointer;
  font-size: 12px;
  font-weight: 550;
  list-style-position: inside;
}
details p,
details li {
  color: var(--muted);
  margin-top: 10px;
}
details pre {
  white-space: pre-wrap;
  word-break: break-word;
  font-size: 10px;
}
details ul {
  padding-left: 18px;
}
progress {
  width: 100%;
  height: 5px;
  accent-color: var(--green);
  margin: 13px 0;
}
.job {
  cursor: pointer;
}
.job:hover {
  background: #fafbf7;
}
.job .status {
  font-size: 10px;
  color: var(--muted);
}
.job h3 {
  overflow-wrap: anywhere;
}
.transcript-row {
  display: grid;
  grid-template-columns: 74px 1fr;
  gap: 13px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  font-size: 13px;
}
.timestamp {
  font-variant-numeric: tabular-nums;
  color: var(--green);
  background: #eff3e9;
  border-radius: 4px;
  font-size: 11px;
  padding: 5px;
  height: 30px;
}
.searchbar {
  display: flex;
  gap: 10px;
  margin-bottom: 24px;
}
.searchbar input {
  flex: 1;
}
.timeline {
  border-left: 1px solid #d5ddce;
  margin-left: 6px;
  padding-left: 25px;
}
.timeline-item {
  padding: 0 0 25px;
  position: relative;
}
.timeline-item:before {
  content: "";
  position: absolute;
  left: -30px;
  top: 5px;
  width: 8px;
  height: 8px;
  background: #789469;
  border-radius: 50%;
  border: 1px solid #fff;
}
.timeline-item h3 {
  font-size: 13px;
}
.timeline-item p {
  font-size: 12px;
  color: var(--muted);
  margin-top: 4px;
}
.timeline-item time {
  font-size: 10px;
  color: #919986;
}
.record-text {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.review-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 25px;
}
.upload {
  border: 1px dashed #acbaa1;
  border-radius: 8px;
  padding: 22px;
  background: #f7f9f3;
}
.upload input {
  padding: 8px;
  background: none;
  border: 0;
  font-size: 12px;
}
.upload input::file-selector-button {
  border: 0;
  border-radius: 5px;
  padding: 10px;
  background: #e4ebdd;
  font-weight: 600;
  margin-right: 10px;
  cursor: pointer;
}
.login {
  min-height: 100dvh;
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.login-story {
  padding: 55px 65px;
  background: #1b2a20;
  color: white;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}
.login-story .brand {
  font-size: 20px;
}
.login-story h1 {
  font-size: clamp(44px, 5vw, 72px);
  line-height: 1.04;
  max-width: 500px;
  font-weight: 520;
  letter-spacing: -3px;
  margin: auto 0 20px;
  position: relative;
  z-index: 1;
}
.login-story p {
  color: #b8c6b3;
  max-width: 370px;
  margin-bottom: auto;
  font-size: 15px;
  position: relative;
  z-index: 1;
}
.login-story .bottom {
  font-size: 11px;
  color: #a0b397;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  margin-top: 50px;
}
.login-story svg.field-lines {
  position: absolute;
  inset: auto -70px 80px auto;
  width: 500px;
  opacity: 0.1;
}
.login-form {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 50px;
}
.login-inner {
  width: 100%;
  max-width: 365px;
}
.login-inner h2 {
  font-size: 30px;
  margin-bottom: 10px;
}
.login-inner > p {
  font-size: 13px;
  color: var(--muted);
  margin-bottom: 28px;
}
.login-inner .eyebrow {
  margin-bottom: 18px;
}
.login-foot {
  margin-top: 26px !important;
  font-size: 11px !important;
}
.error {
  color: var(--danger);
  font-size: 12px;
  margin: 12px 0;
}
.mobile-brand {
  display: none;
}
#toast {
  position: fixed;
  bottom: 25px;
  left: 50%;
  transform: translateX(-50%);
  background: #1a2a1d;
  color: white;
  border-radius: 8px;
  padding: 14px 24px;
  box-shadow: 0 5px 35px #0002;
  max-width: 90vw;
  font-size: 12px;
  z-index: 100;
  display: none;
}
#toast.show {
  display: block;
}
.loading {
  padding: 80px;
  text-align: center;
}
.stack > * + * {
  margin-top: 18px;
}
.review-reason {
  padding: 20px;
  background: #edf3e6;
  border: 1px solid #d9e4d0;
  border-radius: 8px;
}
.review-reason h3 {
  font-size: 16px;
  margin: 8px 0;
}
.review-reason p {
  font-size: 13px;
  color: #4c6242;
}
.divider {
  height: 1px;
  background: var(--line);
  margin: 24px 0;
}
.split {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
}
.mb {
  margin-bottom: 20px;
}
.mt {
  margin-top: 20px;
}
.nowrap {
  white-space: nowrap;
}
.danger {
  color: var(--danger);
}
.pill-nav {
  display: flex;
  gap: 7px;
  margin-bottom: 23px;
}
.pill-nav button {
  padding: 9px 15px;
  border-radius: 30px;
  background: #e9ece3;
  color: #626f59;
  font-size: 12px;
}
.pill-nav button.active {
  background: var(--green);
  color: white;
}
.chips {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 12px 0;
}
.chip {
  padding: 5px 9px;
  background: #f0f2ea;
  border-radius: 4px;
  font-size: 10px;
  color: #64745b;
}
.source-result {
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.source-result blockquote {
  margin: 12px 0;
  font-size: 16px;
  line-height: 1.6;
}
.progress-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 15px 0;
}
.progress-list span {
  font-size: 10px;
  padding: 5px 8px;
  border-radius: 4px;
  background: #f0f2ea;
}
.progress-list .done {
  background: #deead4;
  color: #3b592d;
}
.source-id {
  font-family: monospace;
  font-size: 10px;
  overflow-wrap: anywhere;
}
.muted-line {
  font-size: 11px;
  color: #8b9685;
  margin-top: 8px;
}
@media (max-width: 1100px) {
  .shell {
    grid-template-columns: 190px 1fr;
  }
  .sidebar {
    padding: 30px 18px;
  }
  .brand {
    font-size: 13px;
    letter-spacing: 2px;
  }
  .main {
    padding: 0 26px 45px;
  }
  .grid2,
  .lesson-layout {
    grid-template-columns: 1.15fr 1fr;
  }
  .pad {
    padding: 22px;
  }
  .hero {
    padding: 27px;
  }
  .hero h2 {
    font-size: 27px;
  }
  .login-story {
    padding: 40px;
  }
}
@media (max-width: 800px) {
  .shell {
    display: block;
  }
  .sidebar {
    position: fixed;
    top: auto;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 67px;
    padding: 6px 12px;
    z-index: 20;
    border-top: 1px solid #33422e;
    display: block;
  }
  .sidebar > .brand,
  .sidebar > .room-tag,
  .side-bottom {
    display: none;
  }
  .nav {
    flex-direction: row;
    justify-content: space-around;
    margin: 0;
    gap: 4px;
  }
  .nav button {
    padding: 8px 12px;
    flex: 1;
    text-align: center;
    justify-content: center;
    flex-direction: column;
    gap: 2px;
    font-size: 10px;
    border-radius: 6px;
  }
  .nav button .nav-icon {
    font-size: 16px;
    line-height: 1.2;
  }
  .nav .num {
    display: none;
  }
  .main {
    padding: 0 20px 95px;
  }
  .topbar {
    height: 66px;
    margin-bottom: 26px;
  }
  .topbar .breadcrumb {
    display: none;
  }
  .mobile-brand {
    display: flex;
    gap: 7px;
    align-items: center;
    letter-spacing: 2px;
    font-size: 12px;
    font-weight: 700;
  }
  .mobile-brand img {
    width: 23px;
  }
  .top-status {
    font-size: 10px;
  }
  .page-heading {
    margin-bottom: 21px;
    align-items: flex-start;
  }
  .page-heading h1 {
    font-size: 34px;
  }
  .page-heading p {
    font-size: 13px;
  }
  .page-heading > .btn {
    padding: 10px;
    min-width: 80px;
    font-size: 10px;
  }
  .grid2,
  .grid-even,
  .lesson-layout,
  .review-columns {
    grid-template-columns: 1fr;
  }
  .grid3 {
    grid-template-columns: 1fr;
  }
  .hero {
    padding: 27px;
    min-height: 255px;
  }
  .hero h2 {
    font-size: 29px;
  }
  .hero p {
    max-width: 300px;
  }
  .stats {
    gap: 18px;
    margin: 23px 0;
  }
  .stat {
    padding-right: 21px;
  }
  .stat strong {
    font-size: 26px;
  }
  .stat span {
    font-size: 10px;
  }
  .notice {
    padding: 11px 13px;
    font-size: 11px;
  }
  .pad {
    padding: 21px;
  }
  .card-head {
    padding: 18px 21px;
  }
  .row {
    padding: 17px 19px;
  }
  .steps {
    gap: 5px;
    margin: 20px 0;
  }
  .step {
    font-size: 9px;
    padding-top: 9px;
  }
  .question {
    font-size: 22px;
  }
  .lesson-layout .card {
    border-radius: 8px;
  }
  .login {
    display: block;
  }
  .login-story {
    padding: 24px;
    min-height: 250px;
  }
  .login-story .brand {
    font-size: 14px;
  }
  .login-story .brand img {
    width: 29px;
  }
  .login-story h1 {
    font-size: 40px;
    letter-spacing: -1.5px;
    margin: 37px 0 13px;
    max-width: 290px;
  }
  .login-story p {
    font-size: 12px;
    max-width: 260px;
  }
  .login-story .bottom {
    display: none;
  }
  .login-story svg.field-lines {
    width: 270px;
    right: -20px;
    bottom: -60px;
  }
  .login-form {
    padding: 32px 24px;
  }
  .login-inner h2 {
    font-size: 25px;
  }
  .login-inner .eyebrow {
    font-size: 10px;
  }
  .login-inner > p {
    margin-bottom: 24px;
  }
  .login-foot {
    margin-top: 21px !important;
  }
  .card-head .badge {
    font-size: 8px;
  }
  .quote {
    font-size: 17px;
  }
  .transcript-row {
    grid-template-columns: 60px 1fr;
    font-size: 12px;
  }
  .review-reason {
    padding: 17px;
  }
  .btn {
    min-height: 44px;
  }
  .pill-nav {
    overflow-x: auto;
    white-space: nowrap;
  }
  .page-heading .badge {
    max-width: 105px;
  }
  .topbar .text-btn {
    font-size: 10px;
  }
  .searchbar {
    gap: 7px;
  }
  .searchbar .btn {
    padding: 10px;
  }
  .progress-list {
    gap: 5px;
  }
  .media-caption {
    font-size: 10px;
    padding: 11px 15px;
  }
  .card .subtle-box {
    font-size: 11px;
  }
  .grid-even .empty {
    padding: 30px 20px;
  }
}
@media (prefers-reduced-motion: no-preference) {
  button,
  a {
    transition: background 0.15s ease;
  }
  #app {
    animation: appear 0.2s ease;
  }
  @keyframes appear {
    from {
      opacity: 0.6;
    }
    to {
      opacity: 1;
    }
  }
}
.cycle-selector {
  max-width: 650px;
  margin: 20px 0;
}
.cycle-selector select {
  width: 100%;
  text-overflow: ellipsis;
}
button.row.job {
  width: 100%;
  color: inherit;
  text-align: left;
  background: transparent;
  font: inherit;
  border: 0;
  border-bottom: 1px solid var(--line);
  cursor: pointer;
}
button.row.job:hover {
  background: #f4f2eb;
}
:focus-visible {
  outline: 3px solid #a87826;
  outline-offset: 3px;
}
.form-error {
  margin-top: 14px;
}
.upload-cancel {
  margin-top: 10px;
  min-height: 44px;
}

/* ---- workbench.css ---- */
/* Shared source + data workbench. No third-party fonts or network dependencies. */
.main {
  min-width: 0;
}
.workbench {
  --soft-green: #edf2e8;
}
.workbench .page-heading {
  margin-bottom: 26px;
}
.workbench .page-heading h1 {
  max-width: 880px;
}
.workbench .page-heading p {
  max-width: 700px;
}
.workspace-toolbar {
  display: flex;
  gap: 18px;
  align-items: center;
  justify-content: space-between;
  margin: 0 0 18px;
}
.segmented {
  display: inline-flex;
  gap: 3px;
  padding: 4px;
  border: 1px solid #dce1d6;
  border-radius: 9px;
  background: #e9ede4;
  flex-shrink: 0;
}
.segmented button {
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  background: none;
  padding: 9px 14px;
  min-height: 40px;
  font-size: 12px;
  color: #556052;
}
.segmented button.selected {
  background: #fff;
  color: #23452f;
  box-shadow: 0 1px 4px #223b2315;
  font-weight: 650;
}
.workspace-status {
  color: #697368;
  font-size: 11px;
}
.sample-banner {
  display: flex;
  align-items: center;
  gap: 14px;
  background: #f1e9d4;
  color: #6b5627;
  padding: 12px 15px;
  border-radius: 7px;
  font-size: 12px;
  margin-bottom: 16px;
}
.sample-mark {
  font-size: 9px;
  letter-spacing: 1.5px;
  border: 1px solid #bfa873;
  border-radius: 3px;
  padding: 3px 5px;
  font-weight: 750;
}
.sample-banner .btn {
  margin-left: auto;
}
.wb-tabs {
  display: flex;
  gap: 24px;
  border-bottom: 1px solid var(--line);
  margin-bottom: 28px;
  overflow: auto;
  scrollbar-width: thin;
}
.wb-tabs button {
  background: none;
  color: #687365;
  padding: 13px 0;
  white-space: nowrap;
  font-size: 13px;
  border-bottom: 2px solid transparent;
}
.wb-tabs button[aria-current] {
  color: var(--green);
  border-bottom-color: var(--green);
  font-weight: 700;
}
.metric-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 26px;
}
.metric-card {
  padding: 21px 23px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: #fff;
  min-width: 0;
}
.metric-card > span {
  display: block;
  color: #616b5f;
  font-size: 12px;
}
.metric-card > strong {
  display: block;
  margin: 5px 0;
  font-size: 34px;
  line-height: 1.2;
  letter-spacing: -1px;
  font-weight: 550;
  font-variant-numeric: tabular-nums;
}
.metric-card > small {
  display: block;
  font-size: 10px;
  color: #7a8474;
}
.import-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 22px;
}
.import-card {
  display: flex;
  flex-direction: column;
}
.import-card > .btn {
  margin-top: auto;
}
.import-card .file-drop {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 24px 16px;
  min-height: 165px;
  text-align: center;
  border: 1px dashed #b4c4ae;
  border-radius: 7px;
  background: #f8faf5;
  margin: 22px 0 17px;
  cursor: pointer;
}
.file-drop:focus-within {
  outline: 3px solid #b89a50;
  outline-offset: 3px;
}
.file-drop:hover {
  background: #eef3e8;
  border-color: var(--green);
}
.file-drop span:not(.file-symbol) {
  color: var(--muted);
  font-size: 11px;
}
.file-symbol {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #e3eadb;
  color: #315336;
  font-size: 22px;
}
.file-drop input {
  width: 100%;
  max-width: 280px;
  min-height: 30px;
  font-size: 11px;
  color: #5b6954;
  border: 0;
  padding: 0;
  background: transparent;
}
.file-drop input::file-selector-button {
  border: 0;
  border-radius: 4px;
  background: #e5e9dc;
  color: #334e2c;
  padding: 6px 10px;
  margin-right: 8px;
  font: inherit;
}
.import-card .check {
  margin: 0 0 20px;
}
.form-status {
  font-size: 12px;
  margin-top: 10px;
  overflow-wrap: anywhere;
}
.form-status:empty {
  margin: 0;
}
.media-bridge {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  border-bottom: 1px solid var(--line);
  padding: 24px 0;
  margin-bottom: 16px;
}
.media-bridge p {
  font-size: 12px;
  color: var(--muted);
  margin-top: 5px;
}
.job-item {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 21px 24px;
  border-bottom: 1px solid var(--line);
}
.job-item:last-child {
  border-bottom: 0;
}
.job-icon {
  display: grid;
  place-items: center;
  flex: 0 0 34px;
  height: 34px;
  background: #ecf1e6;
  border-radius: 7px;
  color: #4e6941;
  font-size: 18px;
}
.job-icon.danger {
  background: #fae7e2;
  color: #a03f32;
}
.job-main {
  flex: 1;
  min-width: 0;
}
.job-main strong {
  font-size: 13px;
  overflow-wrap: anywhere;
}
.job-main p {
  font-size: 11px;
  color: var(--muted);
  margin-top: 4px;
}
.job-main progress {
  width: 100%;
  height: 4px;
  accent-color: var(--green);
}
.job-actions {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.wb-empty {
  padding: 42px 20px;
}
.empty-symbol {
  display: block;
  font-size: 28px;
  color: #7b936a;
  margin-bottom: 14px;
}
.wb-empty p {
  max-width: 480px;
  margin: 9px auto 0;
}
.wb-empty .button-row {
  justify-content: center;
  margin-top: 20px;
}
.searchbar {
  display: flex;
  align-items: stretch;
  gap: 10px;
  margin-bottom: 25px;
}
.searchbar input {
  border: 1px solid #d7ddcf;
  background: white;
  border-radius: 7px;
  padding: 14px 16px;
  flex: 1;
  min-width: 0;
}
.source-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
}
.source-card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 9px;
  padding: 23px;
  text-align: left;
  color: var(--ink);
  transition:
    border-color 0.15s,
    box-shadow 0.15s;
  min-height: 230px;
}
.source-card:hover {
  border-color: #a2b393;
  box-shadow: 0 5px 15px #1d39230a;
}
.document-icon {
  display: grid;
  place-items: center;
  width: 39px;
  height: 46px;
  background: #edf1e6;
  border: 1px solid #dce4d0;
  border-radius: 4px 10px 4px 4px;
  font-size: 10px;
  letter-spacing: 0.5px;
  color: #587246;
}
.source-card h3 {
  margin: 23px 0 9px;
  font-size: 16px;
  line-height: 1.35;
  overflow-wrap: anywhere;
}
.source-card > p {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.source-foot {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-top: auto;
  padding-top: 24px;
  font-size: 10px;
  color: #668054;
}
.inspector-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(260px, 1fr);
  gap: 24px;
  align-items: start;
}
.stack {
  display: grid;
  gap: 18px;
}
.source-downloads {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin: 20px 0;
}
.source-text {
  max-height: 760px;
  overflow: auto;
  border-top: 1px solid var(--line);
}
.source-text article {
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
}
.source-text p {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font-size: 14px;
  line-height: 1.8;
  margin-top: 8px;
}
.workbench details summary {
  font-size: 12px;
  min-height: 32px;
  cursor: pointer;
  padding: 7px 0;
  color: #64725c;
}
.workbench details p {
  font-size: 12px;
  margin: 10px 0;
}
.workbench details pre {
  font-size: 11px;
  overflow: auto;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.dataset-picker {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 22px;
}
.dataset-picker .field {
  margin: 0;
  min-width: 0;
  flex: 1;
  max-width: 540px;
}
.dataset-picker select {
  width: 100%;
}
.button-row {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.dataset-card {
  overflow: hidden;
}
.data-tabs {
  display: flex;
  gap: 4px;
  padding: 10px 16px;
  background: #fff;
  border-bottom: 1px solid var(--line);
}
.data-tabs button {
  background: none;
  font-size: 12px;
  color: #6b7861;
  padding: 10px 15px;
  border-radius: 5px;
}
.data-tabs button.active {
  color: #33502a;
  background: #eaf0e2;
  font-weight: 650;
}
.filter-bar {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr auto auto;
  align-items: end;
  gap: 10px;
  padding: 20px;
  background: #f9faf6;
  border-bottom: 1px solid var(--line);
}
.filter-bar label {
  min-width: 0;
}
.filter-bar label > span {
  display: block;
  font-size: 10px;
  color: #78836e;
  margin-bottom: 6px;
}
.filter-bar input,
.filter-bar select {
  border: 1px solid #dce2d5;
  border-radius: 5px;
  background: #fff;
  padding: 9px 10px;
  font-size: 12px;
  min-height: 39px;
  width: 100%;
}
.filter-bar button {
  min-height: 39px;
}
.table-wrap {
  width: 100%;
  overflow: auto;
  overscroll-behavior-x: contain;
}
.data-table {
  border-collapse: collapse;
  width: 100%;
  font-size: 12px;
  text-align: left;
  font-variant-numeric: tabular-nums;
}
.data-table th {
  background: #f9faf6;
  border-bottom: 1px solid var(--line);
  color: #69765e;
  font-weight: 600;
  font-size: 11px;
  white-space: nowrap;
}
.data-table th small {
  display: block;
  color: #9aa38f;
  font-size: 9px;
  font-weight: 400;
  margin-top: 3px;
}
.data-table th,
.data-table td {
  padding: 13px 18px;
}
.data-table td {
  border-bottom: 1px solid #edf0e7;
  max-width: 380px;
  min-width: 95px;
  overflow-wrap: anywhere;
}
.data-table td:first-child {
  min-width: 46px;
}
.data-table tr:hover td {
  background: #fbfcf9;
}
.data-table .row-number {
  color: #97a08c;
  font-size: 10px;
  width: 45px;
}
.missing-cell {
  font-size: 10px;
  color: #927f57;
  background: #f3edde;
  border-radius: 3px;
  padding: 2px 5px;
}
.pagination {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 17px 20px;
  font-size: 11px;
  color: var(--muted);
}
.pagination > div {
  display: flex;
  gap: 8px;
}
.dataset-footer {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 10px;
  color: #819176;
  padding: 12px 20px;
  background: #f8faf5;
  border-top: 1px solid var(--line);
}
.quality-note p {
  font-size: 12px;
  color: var(--muted);
  margin-top: 8px;
  max-width: 650px;
}
.analysis-controls {
  display: grid;
  grid-template-columns: 1.3fr 1.2fr 1fr auto;
  gap: 16px;
  align-items: end;
  padding: 24px;
}
.analysis-controls .field {
  margin: 0;
  min-width: 0;
}
.chart-area {
  padding: 0 26px 30px;
}
.chart-area .section-heading {
  margin: 8px 0 24px;
}
.bar-chart {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.bar-row {
  display: grid;
  grid-template-columns: minmax(70px, 150px) minmax(60px, 1fr) 70px;
  align-items: center;
  gap: 16px;
  font-size: 12px;
}
.bar-label {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.bar-row > strong {
  text-align: right;
  font-size: 12px;
}
.bar-track {
  background: #eff2e8;
  height: 24px;
  border-radius: 3px;
  overflow: hidden;
}
.bar-fill {
  background: linear-gradient(90deg, #284f38, #739b59);
  height: 100%;
  min-width: 1px;
  border-radius: 3px;
}
.saved-views {
  padding: 16px 20px;
  border-top: 1px solid var(--line);
  background: #fff;
}
.saved-views summary {
  font-size: 12px;
}
.saved-views form {
  display: flex;
  gap: 10px;
  margin-top: 12px;
  max-width: 500px;
}
.saved-views input {
  min-width: 0;
  flex: 1;
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 5px;
}
.saved-views ul {
  list-style: none;
  padding: 0;
  margin: 12px 0 0;
}
.saved-views li {
  display: flex;
  gap: 10px;
  align-items: center;
  padding: 8px 0;
  border-top: 1px solid var(--line);
}
.saved-views li > :first-child {
  flex: 1;
  text-align: left;
}
.insights-lead {
  position: relative;
  overflow: hidden;
  background: #233d2c;
  color: #f3f5ec;
  border-radius: 10px;
  padding: 33px 35px;
  display: flex;
  justify-content: space-between;
  margin-bottom: 24px;
}
.insights-lead .eyebrow {
  color: #a9bd94;
}
.insights-lead h2 {
  font-size: 36px;
  letter-spacing: -1px;
}
.insights-lead p {
  margin-top: 12px;
  max-width: 570px;
  font-size: 13px;
  color: #bac8af;
}
.insights-glyph {
  color: #adc18f;
  font-size: 95px;
  line-height: 1;
  align-self: center;
  margin: 0 10px 0 25px;
}
.insights-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 22px;
}
.insights-grid .section-heading {
  margin: 0 0 23px;
}
.activity-funnel > div {
  display: flex;
  align-items: center;
  gap: 17px;
  padding: 14px 0;
}
.funnel-index {
  color: #b0bca3;
  font-size: 10px;
}
.funnel-main {
  flex: 1;
  font-size: 12px;
}
.funnel-track {
  height: 5px;
  background: #edf1e6;
  border-radius: 5px;
  margin-top: 9px;
  overflow: hidden;
}
.funnel-track i {
  display: block;
  height: 100%;
  background: #739258;
}
.activity-funnel strong {
  font-size: 20px;
  font-weight: 550;
  min-width: 30px;
  text-align: right;
}
.insight-action {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 14px;
  background: none;
  color: var(--ink);
  padding: 22px 0;
  border-bottom: 1px solid var(--line);
  text-align: left;
}
.insight-action:last-child {
  border-bottom: 0;
}
.insight-action > span:nth-child(2) {
  flex: 1;
  min-width: 0;
}
.insight-action strong {
  font-size: 13px;
  display: block;
}
.insight-action small {
  font-size: 11px;
  display: block;
  color: var(--muted);
  margin-top: 5px;
}
.circle {
  width: 34px;
  height: 34px;
  background: #edf2e5;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #6c8657;
  flex-shrink: 0;
}
.workbench-entry {
  padding: 27px 30px;
  background: #e8eddc;
  border: 1px solid #d4dfc6;
  border-radius: 9px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 22px;
  margin-top: 27px;
}
.workbench-entry p {
  max-width: 500px;
  font-size: 13px;
  color: #66735c;
  margin-top: 10px;
}
.workbench-entry .eyebrow {
  color: #6e8558;
}
.loading-line {
  height: 5px;
  border-radius: 3px;
  width: 90px;
  background: #c9d7ba;
  margin-bottom: 20px;
}
.error-panel {
  border: 1px solid #e2bfb7;
  background: #fff7f4;
  padding: 25px;
  border-radius: 9px;
}
.error-panel p {
  margin: 12px 0 20px;
  font-size: 13px;
}
@media (min-width: 801px) {
  .staff-shell .sidebar {
    padding-top: 26px;
  }
  .staff-shell .room-tag {
    margin-top: 25px;
  }
  .staff-shell .nav {
    gap: 4px;
  }
}
@media (max-width: 1200px) {
  .filter-bar {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .source-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .workspace-toolbar {
    align-items: flex-start;
    flex-direction: column;
    gap: 8px;
  }
  .metric-card {
    padding: 18px;
  }
  .insights-grid {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 950px) {
  .import-grid,
  .inspector-grid {
    grid-template-columns: 1fr;
  }
  .analysis-controls {
    grid-template-columns: 1fr 1fr;
  }
  .metric-grid {
    gap: 10px;
  }
  .metric-card {
    padding: 16px;
  }
  .metric-card strong {
    font-size: 28px;
  }
  .workbench-entry {
    flex-direction: column;
    align-items: flex-start;
  }
}
@media (max-width: 800px) {
  .sidebar {
    padding-bottom: calc(6px + env(safe-area-inset-bottom));
    height: calc(67px + env(safe-area-inset-bottom));
  }
  .main {
    padding-bottom: calc(100px + env(safe-area-inset-bottom));
  }
  .staff-shell .nav button {
    padding: 8px 3px;
    min-width: 0;
    font-size: 9px;
  }
  .staff-shell .nav {
    gap: 2px;
  }
  .staff-shell .nav button:nth-child(5) {
    display: none;
  }
  .workspace-toolbar {
    gap: 10px;
  }
  .segmented {
    width: 100%;
  }
  .segmented button {
    flex: 1;
    padding: 9px 8px;
    min-height: 44px;
    font-size: 11px;
  }
  .workspace-status {
    font-size: 10px;
  }
  .sample-banner {
    font-size: 11px;
    flex-wrap: wrap;
    gap: 8px;
  }
  .sample-banner > span:nth-child(2) {
    flex: 1;
  }
  .sample-banner .btn {
    margin: 4px 0 0;
    width: 100%;
  }
  .wb-tabs {
    gap: 20px;
    margin-bottom: 21px;
  }
  .wb-tabs button {
    font-size: 12px;
    min-height: 44px;
  }
  .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .metric-card {
    padding: 17px;
  }
  .metric-card strong {
    font-size: 30px;
  }
  .metric-card small {
    font-size: 10px;
  }
  .import-grid {
    gap: 17px;
  }
  .media-bridge {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
  }
  .job-item {
    padding: 18px;
    gap: 12px;
    flex-wrap: wrap;
  }
  .job-main {
    flex-basis: calc(100% - 48px);
  }
  .job-actions {
    margin-left: 46px;
    justify-content: flex-start;
  }
  .workbench .btn.small,
  .workbench .text-btn,
  .data-tabs button {
    min-height: 44px;
  }
  .source-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 13px;
  }
  .source-card {
    padding: 17px;
  }
  .source-card .badge {
    font-size: 8px;
  }
  .source-card h3 {
    font-size: 14px;
  }
  .source-foot {
    font-size: 9px;
  }
  .dataset-picker {
    flex-direction: column;
    align-items: stretch;
    gap: 14px;
  }
  .dataset-picker .field {
    max-width: none;
  }
  .filter-bar {
    grid-template-columns: 1fr 1fr;
    padding: 16px;
    gap: 12px;
  }
  .filter-bar input,
  .filter-bar select {
    min-height: 44px;
    font-size: 13px;
  }
  .data-tabs {
    padding: 8px;
    gap: 0;
  }
  .data-tabs button {
    flex: 1;
    padding: 8px 4px;
    font-size: 11px;
  }
  .dataset-metrics {
    margin-bottom: 17px;
  }
  .pagination {
    padding: 14px 16px;
    flex-direction: column;
    align-items: flex-start;
  }
  .pagination > div {
    width: 100%;
  }
  .pagination > div > button {
    flex: 1;
  }
  .dataset-footer {
    flex-direction: column;
    padding: 12px 16px;
    gap: 4px;
  }
  .analysis-controls {
    padding: 18px;
    gap: 13px;
  }
  .analysis-controls select {
    font-size: 12px;
  }
  .chart-area {
    padding: 0 18px 25px;
  }
  .chart-area .section-heading {
    flex-direction: column;
    align-items: flex-start;
    gap: 5px;
  }
  .bar-row {
    grid-template-columns: 80px minmax(40px, 1fr) 46px;
    gap: 10px;
    font-size: 10px;
  }
  .bar-row > strong {
    font-size: 10px;
  }
  .bar-track {
    height: 20px;
  }
  .insights-lead {
    padding: 26px;
  }
  .insights-lead h2 {
    font-size: 29px;
  }
  .insights-glyph {
    font-size: 55px;
    margin: 0 0 0 14px;
  }
  .insights-lead p {
    font-size: 12px;
  }
  .workbench-entry {
    padding: 24px;
  }
  .workbench details > summary {
    min-height: 44px;
  }
  .workbench .field input,
  .workbench .field select,
  .workbench .field textarea {
    font-size: 16px;
  }
}
@media (max-width: 480px) {
  .source-grid {
    grid-template-columns: 1fr;
  }
  .source-card {
    min-height: 195px;
  }
  .source-card h3 {
    font-size: 17px;
  }
  .source-card .badge {
    font-size: 10px;
  }
  .source-foot {
    font-size: 11px;
  }
  .workbench .page-heading h1 {
    font-size: 31px;
    letter-spacing: -1.1px;
  }
  .insights-glyph {
    display: none;
  }
  .searchbar {
    gap: 7px;
  }
  .searchbar input {
    font-size: 13px;
    padding: 12px;
  }
  .searchbar .btn {
    padding: 12px;
    font-size: 12px;
  }
  .section-heading h2 {
    font-size: 21px;
  }
  .top-status {
    font-size: 9px;
  }
  .mobile-brand {
    letter-spacing: 1px;
    font-size: 11px;
  }
  .saved-views form {
    flex-wrap: wrap;
  }
  .saved-views input {
    flex-basis: 100%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .source-card {
    transition: none;
  }
}
.sample-invite {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 21px 24px;
  margin-bottom: 24px;
  border: 1px solid #d3dec4;
  border-radius: 8px;
  background: #edf2e6;
}
.sample-invite strong {
  font-size: 13px;
}
.sample-invite p {
  color: #6e7b62;
  font-size: 12px;
  margin-top: 5px;
}
.analysis-summary {
  font-size: 13px;
  line-height: 1.7;
  margin-top: 15px;
}
.bar-track {
  position: relative;
}
.bar-fill {
  position: absolute;
}
.bar-fill.negative {
  background: #b58b56;
}
.bar-zero {
  position: absolute;
  height: 100%;
  width: 1px;
  background: #aab69f;
}
@media (max-width: 800px) {
  .sample-invite {
    flex-direction: column;
    align-items: flex-start;
    padding: 20px;
  }
}
/* SOP-05: PDF import needs poppler on this host. Calm note, not an error. */
.pdf-needs-poppler {
  margin: 16px 0 0;
  padding: 12px 14px;
  border-radius: 12px;
  background: var(--accent-soft, #eef3fc);
  color: var(--ink, #1d1d1f);
  font-size: 14px;
  line-height: 1.45;
}
.pdf-needs-poppler strong {
  color: var(--accent, #1046ab);
  font-weight: 600;
}

/* P02 · page images beside text, Visio structure and embedded pictures (Pearl). */
.wb-page-view,.wb-diagram,.wb-embedded{margin-bottom:20px;min-width:0}
.wb-page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.wb-page-head h3{margin:4px 0 0}
.wb-page-nav{display:flex;align-items:center;gap:8px}
.wb-page-nav .btn{min-width:44px;min-height:44px}
.wb-page-nav select{min-height:44px;border:1px solid var(--line,#e5e6ea);border-radius:10px;padding:0 12px;background:#fff;font:inherit}
.wb-page-pair{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start}
.wb-page-image{margin:0;min-width:0}
.wb-page-image img{display:block;width:100%;height:auto;border:1px solid var(--line,#e5e6ea);border-radius:12px;background:#fff;box-shadow:0 8px 24px -20px #20263240}
.wb-page-image figcaption{font-size:12px;color:var(--muted,#686b73);margin-top:8px}
.wb-page-text{min-width:0;max-height:78vh;overflow:auto;padding:16px 18px;border:1px solid var(--line,#e5e6ea);border-radius:12px;background:#fbfbfd}
.wb-page-text p{margin:0 0 12px;line-height:1.55;overflow-wrap:anywhere}
.wb-page-text .citation{display:block;font-size:11px;color:var(--muted,#686b73)}
.wb-page-note{margin:0 0 16px;padding:12px 16px;border-radius:12px;background:#f5f6f8;color:#3d4250;font-size:14px}
.wb-all-text>summary{cursor:pointer;color:var(--accent,#1046ab);font-weight:600;min-height:44px;display:flex;align-items:center}
.wb-diagram h4{margin:16px 0 8px;font-size:13px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted,#686b73)}
.wb-diagram-page{border-top:1px solid var(--line,#e5e6ea);padding:12px 0}
.wb-diagram-page>summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center;overflow-wrap:anywhere}
.wb-connectors,.wb-shapes{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wb-connectors li,.wb-shapes li{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line,#e5e6ea);border-radius:10px;background:#fff;min-width:0;overflow-wrap:anywhere}
.wb-connectors span,.wb-shapes span{font-size:14px;color:#3d4250}
.wb-shapes small{font-size:12px;color:var(--muted,#686b73)}
.wb-uncertain{color:var(--gold,#966323)!important;font-size:13px}
.wb-embedded-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;margin-top:12px}
.wb-embedded-grid figure{margin:0;display:grid;gap:8px;min-width:0}
.wb-embedded-grid img{width:100%;aspect-ratio:4/3;object-fit:contain;background:#f5f6f8;border:1px solid var(--line,#e5e6ea);border-radius:10px;image-rendering:auto}
.wb-embedded-grid figcaption{display:grid;gap:2px;font-size:12px;color:var(--muted,#686b73);overflow-wrap:anywhere}
.wb-embedded-grid figcaption strong{color:var(--ink,#1d1d1f);font-size:13px}
@media (max-width:900px){.wb-page-pair{grid-template-columns:1fr}.wb-page-text{max-height:none}}
@media (max-width:420px){.wb-page-head{align-items:stretch}.wb-page-nav{width:100%}.wb-page-nav label{flex:1}.wb-page-nav select{width:100%}}

/* ---- glass.css ---- */
/* Collective: a quiet, optical layer over the working application. */
:root {
  color-scheme: light;
  --ink: #202126;
  --muted: #64666f;
  --paper: #f1f2f5;
  --line: rgba(43, 48, 62, .11);
  --green: #282a31;
  --gold: #737782;
  --gold-light: #eceef2;
  --danger: #a53736;
  --accent: #1857cc;
  --accent-deep: #1648a6;
  --accent-soft: #e9f1ff;
  --glass: rgba(255, 255, 255, .63);
  --glass-edge: rgba(255, 255, 255, .9);
  --glass-shadow: 0 12px 38px -20px rgba(34, 42, 61, .22), 0 1px 3px rgba(34, 42, 61, .035);
}
html { min-width: 280px; background: var(--paper); }
body {
  background: radial-gradient(ellipse at 95% 8%, rgba(86, 147, 245, .14), transparent 48%), linear-gradient(145deg, #fafbfe 0%, #f2f4f9 42%, #e7edf7 100%);
  background-attachment: fixed;
  font-family: var(--app-font, ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif);
  font-size: 14px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
button, input, textarea, select { font-family: inherit; }
button, .btn, .text-btn, summary { -webkit-tap-highlight-color: transparent; }
button, .btn, .text-btn { min-height: 44px; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, summary:focus-visible, :focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 4px;
}
h1, h2, h3 { font-weight: 600; color: var(--ink); }
h1 { font-size: clamp(34px, 4vw, 50px); line-height: 1.12; letter-spacing: -.055em; }
h2 { letter-spacing: -.04em; font-size: 24px; line-height: 1.25; }
h3 { letter-spacing: -.018em; }
.eyebrow { font-size: 10px; letter-spacing: .11em; font-weight: 650; color: var(--muted); }
.shell { display: block; min-height: 100dvh; padding: 18px 28px 0; }
.shell .sidebar {
  position: sticky;
  top: 18px;
  bottom: auto;
  left: auto;
  z-index: 30;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  width: 100%;
  max-width: 1376px;
  height: 72px;
  margin: 0 auto;
  padding: 10px 18px 10px 25px;
  color: var(--ink);
  background: linear-gradient(165deg, rgba(255, 255, 255, .83), rgba(255, 255, 255, .47));
  border: 1px solid var(--glass-edge);
  border-radius: 26px;
  box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 rgba(255, 255, 255, .6), var(--glass-shadow);
  -webkit-backdrop-filter: blur(26px) saturate(1.45);
  backdrop-filter: blur(26px) saturate(1.45);
}
.sidebar > .brand { display: flex; min-width: 0; width: fit-content; gap: 11px; }
.brand { color: var(--ink); font-size: 15px; letter-spacing: -.03em; font-weight: 650; }
.brand img, .brand .brand-logo-light { display: block; width: 36px; height: 39px; object-fit: contain; flex-shrink: 0; }
.brand-name { white-space: nowrap; }
.shell .nav { flex-direction: row; align-items: center; gap: 4px; margin: 0; padding: 4px; }
.shell .nav button {
  min-width: 93px;
  min-height: 44px;
  padding: 11px 17px;
  border: 1px solid transparent;
  border-radius: 17px;
  color: #656770;
  background: transparent;
  flex: initial;
  flex-direction: row;
  justify-content: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
.shell .nav button:hover { background: rgba(255, 255, 255, .68); color: var(--ink); }
.shell .nav button.active {
  color: var(--accent-deep);
  background: linear-gradient(165deg, #fff, rgba(215, 231, 255, .74));
  border-color: rgba(136, 177, 245, .28);
  box-shadow: 0 3px 10px rgba(41, 49, 72, .07), inset 0 1px 0 #fff;
}
.nav-icon { width: 17px; height: 17px; display: inline-grid; place-items: center; flex-shrink: 0; }
.nav-icon svg { width: 17px; height: 17px; }
.shell .nav .num { margin-left: 0; color: var(--accent-deep); background: var(--accent-soft); }
.account-menu { display: flex; justify-content: flex-end; align-items: center; gap: 9px; min-width: 0; }
.account-name { font-size: 11px; font-weight: 600; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 110px; }
.appearance-trigger, .signout-btn {
  min-width: 44px;
  min-height: 44px;
  padding: 9px 12px;
  border-radius: 15px;
  background: transparent;
  color: var(--muted);
  font-size: 11px;
}
.appearance-trigger { font-weight: 650; color: #454750; background: rgba(255, 255, 255, .43); border: 1px solid rgba(255, 255, 255, .8); }
.appearance-trigger svg, .signout-btn svg { display: block; width: 18px; height: 18px; }
.appearance-trigger:hover, .signout-btn:hover { background: #fff; color: var(--ink); }
.main { max-width: 1184px; margin: 0 auto; padding: 0 32px 64px; min-width: 0; }
.main .topbar { min-height: 56px; height: auto; margin: 14px 0 34px; padding: 12px 0; border: 0; gap: 20px; }
.topbar .breadcrumb { display: block; font-size: 11px; color: #747680; }
.top-status { font-size: 10px; color: #747680; gap: 7px; }
.dot { width: 5px; height: 5px; background: #7e8a80; }
.home-intro { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin: 0 0 34px; }
.home-intro > div { min-width: 0; }
.home-intro > .btn { flex-shrink: 0; }
.home-intro h1 { font-size: clamp(36px, 4.6vw, 54px); font-weight: 550; }
.home-intro p { color: var(--muted); font-size: 14px; margin-top: 13px; max-width: 580px; }
.workspace-summary { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; color: var(--muted); font-size: 12px; margin-top: 16px; }
.workspace-summary strong { color: #444751; font-weight: 600; }
.workspace-summary > span + span { position: relative; }
.workspace-summary > span + span::before { content: ''; width: 3px; height: 3px; border-radius: 50%; background: #a4a8b0; position: absolute; top: calc(50% - 1.5px); left: -10px; }
.focus-card, .surface, .card, .metric-card, .source-card, .insights-lead {
  background: var(--glass);
  border: 1px solid var(--glass-edge);
  border-radius: 24px;
  box-shadow: inset 0 1px 0 #fff, var(--glass-shadow);
  color: var(--ink);
}
.focus-card {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
  min-height: 247px;
  padding: 36px 40px;
  margin: 0 0 24px;
  background: linear-gradient(122deg, rgba(255, 255, 255, .94), rgba(255, 255, 255, .55) 58%, rgba(180, 208, 251, .4));
  box-shadow: inset 0 1px 0 #fff, inset 0 -1px 0 rgba(255, 255, 255, .7), 0 15px 38px -24px rgba(30, 43, 70, .24);
  overflow: hidden;
  -webkit-backdrop-filter: blur(20px);
  backdrop-filter: blur(20px);
}
.focus-copy { min-width: 0; max-width: 690px; }
.focus-copy .eyebrow { color: var(--accent); margin-bottom: 14px; }
.focus-copy h2 { font-size: clamp(25px, 2.9vw, 35px); letter-spacing: -.045em; font-weight: 550; }
.focus-copy > p { margin-top: 13px; max-width: 535px; font-size: 13px; color: var(--muted); }
.focus-copy .button-row { margin-top: 26px; gap: 12px; }
.focus-meta { flex-shrink: 0; min-width: 142px; display: flex; flex-direction: column; align-items: flex-end; justify-content: center; gap: 7px; padding-left: 32px; border-left: 1px solid var(--line); color: var(--muted); font-size: 11px; text-align: right; }
.focus-meta strong { display: block; font-size: 44px; font-weight: 450; line-height: 1.2; letter-spacing: -.05em; color: var(--ink); }
.focus-meta > span { font-size: 11px; }
.home-columns { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 22px; align-items: stretch; }
.surface { padding: 25px 29px; min-width: 0; }
.surface-heading { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 17px; }
.surface-heading > svg { color: var(--accent); }
.surface-heading h2 { font-size: 17px; font-weight: 600; letter-spacing: -.03em; }
.surface-heading .text-btn { font-size: 11px; white-space: nowrap; }
.room-row { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 14px; padding: 16px 0; min-height: 65px; border-bottom: 1px solid var(--line); color: var(--ink); background: none; text-align: left; font: inherit; }
.room-row:last-child { border: 0; padding-bottom: 4px; }
.room-row:first-child { padding-top: 2px; }
.room-row > div { flex: 1; min-width: 0; }
.room-row > .avatar { flex: 0 0 34px; width: 34px; height: 34px; font-size: 10px; }
.room-row strong, .room-row h3 { font-size: 13px; font-weight: 600; }
.room-row p, .room-row small, .room-row .muted { font-size: 11px; color: var(--muted); display: block; margin-top: 4px; }
.room-row > span:last-child { color: #757983; font-size: 12px; }
.room-row button { flex-shrink: 0; }
.source-entry { min-height: 137px; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 22px; }
.source-entry p { font-size: 13px; line-height: 1.7; color: var(--muted); max-width: 340px; }
.source-entry .btn { font-size: 12px; }
.quiet-note { color: var(--muted); margin-top: 24px; padding: 12px 2px; }
details.quiet-note, .quiet-note details { border: 0; }
.quiet-note summary { font-size: 11px; min-height: 44px; display: flex; gap: 8px; align-items: center; list-style: none; }
.quiet-note summary::before { content: '+'; color: #747984; font-size: 16px; }
.quiet-note[open] summary::before, .quiet-note details[open] summary::before { content: '−'; }
.quiet-note summary::-webkit-details-marker { display: none; }
.quiet-note p { max-width: 720px; font-size: 12px; }
.cycle-line { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: 11px; color: var(--muted); margin: 24px 0; }
.cycle-line span { display: inline-flex; align-items: center; gap: 7px; }
.cycle-line .done, .cycle-line .active { color: var(--ink); font-weight: 600; }
.context-nav { display: flex; gap: 5px; padding: 5px; margin: 0 0 28px; width: fit-content; max-width: 100%; overflow-x: auto; background: rgba(212, 218, 229, .4); border: 1px solid rgba(255, 255, 255, .6); border-radius: 17px; }
.context-nav button { min-height: 44px; padding: 10px 17px; border-radius: 12px; color: #677080; background: transparent; font-size: 12px; white-space: nowrap; }
.context-nav button.active, .context-nav button[aria-current='page'] { color: var(--accent-deep); background: rgba(255, 255, 255, .9); box-shadow: 0 2px 7px rgba(39, 50, 70, .05); }
.page-heading { margin-bottom: 29px; }
.page-heading h1 { font-weight: 550; }
.page-heading p { font-size: 13px; }
.btn, .btn.gold { color: #fff; background: linear-gradient(160deg, #286bea, #1d55c7); border: 1px solid #225aca; border-radius: 14px; min-height: 46px; padding: 12px 19px; font-size: 12px; font-weight: 600; box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), 0 4px 10px rgba(31, 36, 49, .08); }
.btn:hover { background: var(--accent-deep); }
.btn.secondary, .btn.outline { color: #3d414b; background: rgba(255, 255, 255, .7); border: 1px solid rgba(91, 101, 125, .15); box-shadow: inset 0 1px 0 #fff, 0 2px 4px rgba(24, 35, 55, .025); }
.btn.secondary:hover, .btn.outline:hover { background: #fff; border-color: rgba(78, 87, 108, .25); }
.btn.small { min-height: 44px; border-radius: 12px; padding: 9px 14px; font-size: 11px; }
.text-btn { color: var(--accent-deep); padding: 9px 2px; font-size: 12px; }
.text-btn:hover { color: #113982; text-decoration: underline; text-underline-offset: 3px; }
.badge, .badge.gold, .badge.gray { color: #616570; background: #edf0f3; text-transform: none; font-size: 10px; letter-spacing: 0; font-weight: 600; padding: 5px 9px; }
.badge.red { color: #9b3636; background: #faeaea; }
input, textarea, select, .searchbar input, .filter-bar input, .filter-bar select, .saved-views input {
  color: var(--ink);
  background: rgba(255, 255, 255, .74);
  border: 1px solid rgba(64, 75, 96, .16);
  border-radius: 12px;
  min-height: 46px;
  padding: 12px 14px;
  font-size: 13px;
  box-shadow: inset 0 1px 2px rgba(41, 51, 69, .02);
}
input::placeholder, textarea::placeholder { color: #80848f; opacity: 1; }
input:focus, textarea:focus, select:focus { border-color: var(--accent); background: #fff; }
input[type='checkbox'], input[type='radio'] { min-height: auto; box-shadow: none; }
input[type='file'] { max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.field span { font-size: 11px; color: #525661; font-weight: 600; margin-bottom: 8px; }
.field small { font-size: 11px; }
.card, .surface { overflow: hidden; }
.pad { padding: 28px; }
.card-head { padding: 22px 28px; }
.row { padding: 18px 25px; }
.row .index, .row p, .row h3 + p { color: var(--muted); }
.circle, .avatar, .job-icon, .file-symbol, .document-icon { color: var(--accent-deep); background: var(--accent-soft); border-color: #d7e5fb; }
.choice { border-radius: 12px; padding: 15px; }
.choice:has(input:checked) { border-color: #83a9ed; background: var(--accent-soft); }
.notice, .subtle-box, .review-reason, .sample-banner, .sample-invite, .workbench-entry { color: #5c6271; background: rgba(233, 237, 244, .66); border: 1px solid rgba(127, 140, 164, .15); border-radius: 17px; }
.subtle-box strong, .review-reason p, .workbench-entry p, .workbench-entry .eyebrow, .sample-invite p { color: #5a606d; }
.quote { border-color: #a7b0c2; color: #454c5c; }
.timestamp { color: #515b70; background: #edf0f5; min-height: 36px; height: fit-content; }
.steps { gap: 12px; }
.step { border-color: #d5d9e0; color: #727783; }
.step.active, .step.done { color: var(--accent-deep); border-color: #83a9ed; }
.upload { border-radius: 17px; background: rgba(255, 255, 255, .48); border-color: #b8beca; }
.upload input::file-selector-button, .file-drop input::file-selector-button { background: #e5e9f0; color: #495263; border-radius: 8px; min-height: 36px; }
.job:hover, button.row.job:hover { background: rgba(255, 255, 255, .65); }
.timeline { border-color: #d4d9e2; }
.timeline-item::before { background: #939eb3; }
.timeline-item time, .muted-line { color: #727885; }
.chip, .progress-list span { background: #edf0f4; color: #626a79; border-radius: 6px; }
.progress-list .done { background: #e4eaf2; color: #4d5d72; }
.pill-nav { padding: 4px; background: rgba(210, 216, 226, .34); border-radius: 16px; width: fit-content; max-width: 100%; gap: 4px; }
.pill-nav button { border-radius: 12px; color: #616875; background: none; min-height: 44px; }
.pill-nav button.active { color: #303640; background: rgba(255, 255, 255, .9); box-shadow: 0 2px 6px rgba(34, 41, 58, .06); }
.media-caption { background: rgba(255, 255, 255, .65); }
#toast { background: rgba(39, 42, 51, .93); border: 1px solid #5b5e68; border-radius: 16px; -webkit-backdrop-filter: blur(18px); backdrop-filter: blur(18px); padding: 14px 22px; font-size: 12px; }
.workbench { --soft-green: #edf0f5; }
.workspace-toolbar { margin-bottom: 22px; }
.segmented { padding: 4px; background: rgba(216, 222, 232, .48); border: 1px solid rgba(255, 255, 255, .7); border-radius: 16px; }
.segmented button { min-height: 44px; color: #616875; border-radius: 12px; font-size: 11px; padding: 10px 15px; }
.segmented button.selected { color: #333945; background: rgba(255, 255, 255, .92); box-shadow: 0 2px 7px rgba(34, 41, 58, .06); }
.workspace-status, .metric-card > span, .metric-card > small, .source-foot, .job-main p, .filter-bar label > span, .dataset-footer, .workbench details summary { color: #686f7c; }
.sample-mark { border-color: #bfc8d7; color: #5c677b; border-radius: 5px; }
.wb-tabs { gap: 25px; margin-bottom: 27px; }
.wb-tabs button { min-height: 48px; color: #727984; font-size: 12px; }
.wb-tabs button[aria-current] { color: var(--accent-deep); border-color: var(--accent); }
.metric-grid { gap: 14px; }
.metric-card { border-radius: 19px; padding: 22px 25px; box-shadow: inset 0 1px 0 #fff, 0 4px 15px rgba(40, 51, 72, .025); }
.metric-card > span { font-size: 11px; }
.metric-card > strong { font-size: 33px; font-weight: 450; letter-spacing: -.045em; }
.metric-card > small { font-size: 10px; }
.import-card .file-drop { border-color: #bcc4d2; border-radius: 16px; background: rgba(238, 242, 248, .6); }
.file-drop:hover { background: #edf1f7; border-color: #8592a9; }
.file-drop:focus-within { outline-color: #687fa5; }
.file-drop input { color: #626c7d; }
.source-card { border-radius: 21px; padding: 25px; }
.source-card:hover { border-color: #c0c9d9; box-shadow: 0 8px 25px rgba(51, 64, 91, .07), inset 0 1px 0 #fff; }
.document-icon { border-radius: 7px 12px 7px 7px; }
.empty-symbol { color: #8390a5; }
.data-tabs { background: rgba(255, 255, 255, .45); }
.data-tabs button { border-radius: 12px; color: #6a7280; min-height: 44px; }
.data-tabs button.active { color: var(--accent-deep); background: var(--accent-soft); }
.filter-bar, .data-table th, .dataset-footer { background: rgba(237, 241, 247, .64); }
.data-table th { color: #626d80; }
.data-table th small, .data-table .row-number { color: #798394; }
.data-table td { border-color: var(--line); }
.data-table tr:hover td { background: rgba(255, 255, 255, .68); }
.missing-cell { background: #eee9dd; color: #786442; }
.saved-views { background: rgba(255, 255, 255, .35); }
.bar-track, .funnel-track { background: #e5eaf2; border-radius: 6px; }
.bar-fill { background: linear-gradient(90deg, #386ed6, #89aff1); border-radius: 6px; }
.bar-fill.negative { background: #bd9473; }
.bar-zero { background: #a4afc2; }
.insights-lead { padding: 32px; }
.insights-lead h2 { font-size: 30px; }
.insights-lead p, .insights-lead .eyebrow { color: var(--muted); }
.insights-glyph { color: #b0bacb; }
.funnel-index { color: #929cb0; }
.funnel-track i { background: #5485df; }
.loading-line { background: #b8c3d7; }
.login {
  min-height: 100dvh;
  display: grid;
  grid-template-columns: 1fr;
  place-items: center;
  padding: 56px 24px;
}
.login-inner {
  width: 100%;
  max-width: 422px;
  padding: 38px;
  border: 1px solid var(--glass-edge);
  border-radius: 32px;
  background: linear-gradient(145deg, rgba(255, 255, 255, .85), rgba(255, 255, 255, .45));
  box-shadow: inset 0 1px 0 #fff, 0 22px 70px -40px rgba(48, 62, 93, .32), 0 1px 3px rgba(32, 45, 72, .04);
  -webkit-backdrop-filter: blur(28px);
  backdrop-filter: blur(28px);
}
.login-brand { display: flex; align-items: center; gap: 12px; margin: 0 0 36px; color: var(--ink); }
.login-brand img { display: block; width: 43px; height: 48px; object-fit: contain; }
.login-brand span { font-size: 19px; font-weight: 600; letter-spacing: -.035em; }
.login-heading { margin-bottom: 30px; }
.login-heading h1 { font-size: 32px; letter-spacing: -.055em; font-weight: 550; }
.login-heading p { margin-top: 10px; font-size: 13px; color: var(--muted); }
.login-inner .field { margin-bottom: 18px; }
.login-inner .field input { background: rgba(255, 255, 255, .78); font-size: 14px; min-height: 48px; }
.login-inner .btn.full { min-height: 49px; margin-top: 7px; }
.login-inner .login-foot { color: #777b85; line-height: 1.7; font-size: 10px !important; margin: 24px 0 0 !important; }
#toggle-join { width: 100%; min-height: 44px; margin-top: 13px; font-size: 11px; }
.appearance-dialog {
  width: min(480px, calc(100vw - 32px));
  max-height: calc(100dvh - 40px);
  overflow: auto;
  padding: 29px;
  margin: auto;
  border: 1px solid rgba(255, 255, 255, .9);
  border-radius: 28px;
  color: var(--ink);
  background: linear-gradient(145deg, rgba(255, 255, 255, .96), rgba(243, 246, 251, .92));
  box-shadow: 0 24px 90px rgba(34, 45, 66, .22), inset 0 1px 0 #fff;
  -webkit-backdrop-filter: blur(32px);
  backdrop-filter: blur(32px);
  font-family: inherit;
}
.appearance-dialog::backdrop { background: rgba(52, 61, 79, .22); -webkit-backdrop-filter: blur(9px); backdrop-filter: blur(9px); }
.appearance-heading { display: flex; justify-content: space-between; align-items: center; gap: 20px; }
.appearance-heading h2 { font-size: 24px; }
.appearance-close { width: 44px; height: 44px; padding: 10px; border-radius: 50%; background: rgba(214, 221, 233, .42); color: #656d7c; font-size: 22px; }
.appearance-close svg { width: 18px; height: 18px; }
.appearance-intro { color: var(--muted); font-size: 12px; margin: 9px 0 22px; }
.appearance-options { padding: 0; margin: 0; border: 0; display: grid; gap: 9px; }
.appearance-option { display: flex; gap: 12px; align-items: center; border: 1px solid var(--line); border-radius: 16px; padding: 14px 16px; cursor: pointer; background: rgba(255, 255, 255, .5); }
.appearance-option:has(input:checked) { border-color: #83a9ed; background: var(--accent-soft); }
.appearance-option input { width: 17px; height: 17px; margin: 0; accent-color: var(--accent); }
.appearance-option strong { display: block; font-size: 13px; font-weight: 600; }
.appearance-option span { display: block; font-size: 11px; color: var(--muted); margin-top: 2px; }
.appearance-upload { margin-top: 20px; }
.appearance-upload > label, .appearance-preview > label, .appearance-preview > span { display: block; color: #5f6879; font-size: 11px; font-weight: 600; margin-bottom: 8px; }
.appearance-upload input { width: 100%; background: rgba(255, 255, 255, .55); font-size: 11px; padding: 9px; }
.appearance-upload input::file-selector-button { min-height: 34px; border: 0; border-radius: 8px; background: #e4eaf4; color: #566278; padding: 8px 11px; font: inherit; margin-right: 10px; }
.appearance-file-name { font-size: 11px; color: var(--muted); overflow-wrap: anywhere; margin-top: 7px; }
.appearance-preview { border-top: 1px solid var(--line); margin-top: 23px; padding-top: 21px; }
.appearance-preview p, .appearance-preview output { display: block; font-size: 23px; line-height: 1.35; letter-spacing: -.035em; overflow-wrap: anywhere; }
.appearance-preview small { display: block; color: var(--muted); font-size: 13px; margin-top: 7px; }
.appearance-status { font-size: 11px; color: #5c6c83; margin-top: 13px; }
.appearance-error { font-size: 12px; color: var(--danger); margin-top: 13px; }
.appearance-error:empty, .appearance-status:empty { display: none; }
.appearance-actions { display: flex; justify-content: flex-end; align-items: center; gap: 8px; margin-top: 25px; }
.appearance-actions button { min-height: 44px; padding: 10px 14px; border-radius: 12px; color: #5a6373; background: transparent; font-size: 11px; }
.appearance-actions .appearance-reset { margin-right: auto; padding-left: 0; }
.appearance-actions .appearance-cancel { border: 1px solid var(--line); background: rgba(255, 255, 255, .6); }
.appearance-actions .appearance-save { background: var(--accent); color: #fff; padding-inline: 20px; }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
@media (min-width: 801px) and (max-width: 1100px) {
  .shell { padding: 14px 18px 0; }
  .shell .sidebar { top: 14px; padding-inline: 18px; }
  .brand-name { display: none; }
  .shell .nav button { min-width: 80px; padding-inline: 13px; }
  .account-name { display: none; }
  .main { padding-inline: 22px; }
}
@media (max-width: 800px) {
  .shell { padding: 14px 16px 0; }
  .shell .sidebar {
    position: relative;
    top: 0;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    gap: 12px;
    height: 54px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }
  .sidebar > .brand { display: flex; gap: 9px; }
  .brand { font-size: 14px; }
  .brand img, .brand .brand-logo-light { width: 30px; height: 35px; }
  .shell .nav {
    position: fixed;
    z-index: 40;
    left: 16px;
    right: 16px;
    bottom: calc(13px + env(safe-area-inset-bottom));
    display: flex;
    flex-direction: row;
    gap: 4px;
    padding: 6px;
    min-height: 65px;
    margin: 0 auto;
    max-width: 500px;
    border: 1px solid rgba(255, 255, 255, .93);
    border-radius: 25px;
    background: linear-gradient(165deg, rgba(255, 255, 255, .88), rgba(241, 243, 248, .72));
    box-shadow: inset 0 1px 0 #fff, 0 8px 30px rgba(34, 45, 71, .14);
    -webkit-backdrop-filter: blur(25px) saturate(1.5);
    backdrop-filter: blur(25px) saturate(1.5);
  }
  .shell .nav button { display: flex; flex: 1; min-width: 0; min-height: 51px; flex-direction: column; gap: 3px; padding: 6px 4px; font-size: 10px; border-radius: 19px; }
  .shell .nav button.active { box-shadow: 0 2px 8px rgba(40, 50, 73, .08), inset 0 1px 0 #fff; }
  .nav-icon, .nav-icon svg { width: 18px; height: 18px; }
  .shell .nav .num { display: none; }
  .account-menu { gap: 3px; }
  .account-name { display: none; }
  .appearance-trigger, .signout-btn { min-width: 44px; padding: 9px; font-size: 10px; }
  .main { padding: 0 0 calc(110px + env(safe-area-inset-bottom)); max-width: 650px; }
  .main .topbar { margin: 9px 0 23px; padding: 6px 0; min-height: 30px; gap: 12px; }
  .topbar .breadcrumb { font-size: 10px; }
  .top-status { font-size: 9px; }
  .home-intro { align-items: flex-start; flex-direction: column; gap: 18px; margin-bottom: 27px; }
  .home-intro h1 { font-size: 38px; }
  .home-intro p { font-size: 12px; margin-top: 10px; max-width: 325px; }
  .workspace-summary { font-size: 10px; gap: 7px 17px; margin-top: 14px; }
  .focus-card { min-height: 0; padding: 27px 25px; margin-bottom: 18px; border-radius: 23px; flex-direction: column; align-items: stretch; gap: 23px; }
  .focus-copy h2 { font-size: 28px; line-height: 1.23; }
  .focus-copy > p { font-size: 12px; }
  .focus-copy .eyebrow { margin-bottom: 12px; font-size: 9px; }
  .focus-copy .button-row { margin-top: 23px; gap: 8px; }
  .focus-meta { padding: 18px 0 0; border-left: 0; border-top: 1px solid var(--line); align-items: flex-start; min-width: 0; text-align: left; flex-direction: row; justify-content: flex-start; gap: 8px; flex-wrap: wrap; }
  .focus-meta strong { display: inline; font-size: 17px; letter-spacing: -.02em; }
  .focus-meta > span { font-size: 10px; }
  .home-columns { grid-template-columns: 1fr; gap: 18px; }
  .surface { padding: 21px 24px; border-radius: 23px; }
  .surface-heading { margin-bottom: 10px; }
  .surface-heading h2 { font-size: 17px; }
  .source-entry { min-height: 135px; gap: 20px; }
  .source-entry p { font-size: 12px; }
  .room-row { padding-block: 14px; }
  .quiet-note { margin-top: 17px; }
  .cycle-line { gap: 8px 13px; font-size: 10px; }
  .page-heading { margin-top: 6px; gap: 12px; flex-wrap: wrap; }
  .page-heading h1, .workbench .page-heading h1 { font-size: 34px; letter-spacing: -.05em; }
  .page-heading p { font-size: 12px; }
  .page-heading > .btn { font-size: 11px; padding: 10px 14px; }
  .btn, .btn.small { min-height: 46px; padding: 11px 15px; font-size: 11px; }
  .pad { padding: 22px; }
  .card-head { padding: 20px 22px; }
  .card, .lesson-layout .card { border-radius: 22px; }
  .field input, .field textarea, .field select, .searchbar input, .workbench .field input, .workbench .field select, .workbench .field textarea { font-size: 16px; }
  .metric-grid { gap: 11px; }
  .metric-card { padding: 17px; border-radius: 18px; }
  .metric-card > strong { font-size: 29px; }
  .metric-card > small { font-size: 9px; }
  .wb-tabs { gap: 22px; margin-bottom: 22px; }
  .wb-tabs button { font-size: 11px; }
  .source-card { padding: 23px; }
  .source-card h3 { font-size: 17px; }
  .sample-banner, .sample-invite { padding: 16px; font-size: 11px; }
  .analysis-controls, .filter-bar { padding: 18px; }
  .filter-bar input, .filter-bar select { font-size: 13px; padding: 10px; }
  .bar-row { grid-template-columns: 70px minmax(35px, 1fr) 40px; gap: 8px; }
  #toast { bottom: calc(98px + env(safe-area-inset-bottom)); }
  .login { padding: 30px 20px; }
  .login-inner { max-width: 390px; padding: 31px 27px; border-radius: 30px; }
  .login-brand { margin-bottom: 31px; }
  .login-heading h1 { font-size: 30px; }
  .login-inner .field input { font-size: 16px; }
  .appearance-dialog { padding: 23px; border-radius: 25px; }
}
@media (max-width: 360px) {
  .shell { padding-inline: 13px; }
  .brand-name { font-size: 12px; }
  .appearance-trigger, .signout-btn { font-size: 9px; padding-inline: 7px; }
  .shell .nav { left: 12px; right: 12px; }
  .main .topbar { gap: 8px; }
  .top-status { font-size: 8px; }
  .home-intro h1 { font-size: 34px; }
  .focus-card, .surface { padding: 22px 20px; }
  .focus-copy h2 { font-size: 25px; }
  .focus-copy .button-row > .btn { flex: 1; white-space: nowrap; padding-inline: 10px; }
  .surface-heading h2 { font-size: 16px; }
  .surface-heading .text-btn { font-size: 10px; }
  .room-row { gap: 10px; }
  .login { padding: 20px 13px; }
  .login-inner { padding: 27px 23px; }
  .appearance-dialog { padding: 20px; }
  .appearance-actions { gap: 6px; }
  .appearance-actions button { padding-inline: 10px; font-size: 10px; }
  .appearance-actions .appearance-save { padding-inline: 14px; }
}
@media (prefers-reduced-motion: no-preference) {
  .btn, .source-card, .appearance-trigger { transition: background .16s ease, border-color .16s ease, box-shadow .16s ease; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
@media (prefers-reduced-transparency: reduce) {
  .shell .sidebar, .shell .nav, .focus-card, .surface, .card, .metric-card, .source-card, .login-inner, .appearance-dialog { background: #f9fafc; -webkit-backdrop-filter: none; backdrop-filter: none; }
  .appearance-dialog::backdrop { background: rgba(35, 44, 61, .45); -webkit-backdrop-filter: none; backdrop-filter: none; }
  #toast { background: #303540; -webkit-backdrop-filter: none; backdrop-filter: none; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .shell .sidebar, .shell .nav, .focus-card, .login-inner { background: #f7f9fc; }
}

/* Final composition spacing. */
.home-intro + .workspace-summary { margin: -14px 0 22px; }
.login-foot { display: flex; align-items: center; justify-content: space-between; gap: 15px; }
.login-foot .appearance-trigger { display: inline-flex; align-items: center; gap: 7px; }
.focus-meta .cycle-line { max-width: 230px; justify-content: flex-end; }
.btn.text-btn { background: transparent; border-color: transparent; box-shadow: none; color: var(--accent-deep); padding-inline: 5px; }
@media(max-width:800px) { .focus-meta .cycle-line { flex-basis: 100%; max-width: none; justify-content: flex-start; margin: 6px 0 0; } }

.workbench .workspace-summary { margin: 0 0 24px; }
.appearance-upload[hidden] { display: none; }

/* ---- consumer.css ---- */
/* Consumer training: clear actions, editorial rhythm, glass on navigation. */
body { background: #f5f6f7; }
.brand-wordmark { font-size: 15px; font-weight: 800; letter-spacing: .045em; }
.shell .sidebar { max-width: 1456px; border-radius: 19px; height: 74px; }
.shell .nav button { border-radius: 12px; font-size: 12px; font-weight: 650; }
.shell .nav button.active { color: #174aaa; }
.shell .brand img { width: 29px; height: 34px; }
.consumer-shell { --ink: #171b22; --muted: #666c77; --line: #dfe2e7; }
.consumer-shell .main { max-width: 1320px; padding: 0 32px 65px; }
.consumer-shell .main .topbar { margin: 8px 0 19px; min-height: 44px; padding: 9px 0; }
.consumer-shell .top-status, .consumer-shell .breadcrumb { font-size: 10px; color: #626976; }
.consumer-shell .eyebrow, .training-kicker { font-size: 10px; font-weight: 750; letter-spacing: .14em; text-transform: uppercase; }
.consumer-shell .btn { border-radius: 9px; min-height: 48px; padding: 13px 20px; box-shadow: none; }
.consumer-shell .btn.secondary, .consumer-shell .btn.outline { background: #fff; border-color: #d8dce4; color: #343e4e; }
.consumer-shell .btn.secondary:hover, .consumer-shell .btn.outline:hover { border-color: #839bc0; background: #f5f8ff; }
.consumer-shell .btn.text-btn { background: transparent; border-color: transparent; }
.consumer-shell .text-btn { font-size: 12px; }
.consumer-shell .page-heading h1 { font-size: clamp(34px, 3.6vw, 48px); letter-spacing: -.05em; font-weight: 650; }
.consumer-shell .page-heading p { max-width: 590px; color: var(--muted); }
.training-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; margin-bottom: 29px; }
.training-header > div { min-width: 0; }
.training-header .eyebrow { margin-bottom: 10px; color: #315d9c; }
.training-header h1 { font-size: clamp(36px, 3.75vw, 52px); line-height: 1.08; letter-spacing: -.055em; font-weight: 650; }
.training-header p, .training-header small { display: block; margin-top: 12px; font-size: 13px; color: var(--muted); }
.training-header > .btn { flex-shrink: 0; }
.consumer-shell .btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; }
.consumer-shell .btn svg { width: 17px; height: 17px; flex-shrink: 0; }
.training-greeting { font-size: 12px; color: var(--muted); }
.training-layout { display: grid; grid-template-columns: minmax(0, 1fr) 305px; gap: 25px; align-items: stretch; }
.training-feature { position: relative; isolation: isolate; min-width: 0; min-height: 510px; display: flex; align-items: flex-end; padding: 37px; overflow: hidden; border-radius: 12px; background: #1d2631; color: #fff; }
.training-image { position: absolute; z-index: -3; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.training-shade { position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg, rgba(5, 13, 25, .78), rgba(5, 13, 25, .28) 80%), linear-gradient(0deg, rgba(5, 13, 25, .86), rgba(5, 13, 25, 0) 80%); }
.training-copy { width: 100%; max-width: 610px; position: relative; padding-right: 72px; }
.training-kicker { display: inline-flex; align-items: center; gap: 9px; color: #dbe8ff; margin: 0 0 19px; }
.training-kicker::before { content: ''; width: 6px; height: 6px; background: #87adff; flex-shrink: 0; }
.training-copy h2 { max-width: 11.5ch; color: #fff; font-size: clamp(44px, 4.5vw, 64px); font-weight: 750; letter-spacing: -.055em; line-height: 1.02; text-wrap: balance; }
.training-copy > p { color: #e0e4eb; max-width: 355px; font-size: 13px; line-height: 1.65; margin: 19px 0 0; }
.training-copy .button-row { margin-top: 26px; gap: 11px; }
.training-copy .btn { min-height: 49px; }
.training-copy .btn.outline, .training-copy .btn.secondary { border-color: rgba(255, 255, 255, .35); color: #fff; background: rgba(255, 255, 255, .09); }
.training-copy .btn.outline:hover, .training-copy .btn.secondary:hover { background: rgba(255, 255, 255, .18); }
.training-stamp { position: absolute; right: 25px; bottom: 35px; display: flex; flex-direction: column; align-items: flex-end; gap: 5px; max-width: 120px; font-size: 9px; line-height: 1.5; color: #d9e0ed; text-align: right; letter-spacing: .04em; }
.training-stamp strong { display: block; color: #fff; font-size: 14px; font-weight: 800; letter-spacing: .01em; }
.training-stamp span { display: block; }
.training-rail { display: flex; flex-direction: column; min-width: 0; padding: 26px 24px 22px; border: 1px solid #e1e4e9; border-radius: 12px; background: #fff; }
.rail-heading { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; margin-bottom: 25px; }
.rail-heading h2 { font-size: 26px; line-height: 1.15; font-weight: 600; letter-spacing: -.045em; }
.rail-heading > span { font-size: 10px; color: #687280; }
.rail-count { display: flex; align-items: center; gap: 15px; margin: 0 0 19px; padding: 1px 0 22px; border-bottom: 1px solid var(--line); }
.rail-count strong { font-size: 58px; line-height: 1; font-weight: 650; letter-spacing: -.06em; color: #1b2230; }
.rail-count span { max-width: 115px; font-size: 11px; line-height: 1.6; color: #667080; }
.training-step { display: flex; align-items: center; gap: 12px; width: 100%; min-width: 0; min-height: 74px; padding: 15px 0; background: transparent; color: var(--ink); border: 0; border-bottom: 1px solid #e7e9ed; text-align: left; text-decoration: none; }
.training-step .step-number { flex: 0 0 23px; font-size: 10px; font-weight: 650; color: #717b8c; font-variant-numeric: tabular-nums; align-self: flex-start; padding-top: 3px; }
.training-step .step-info { display: block; flex: 1; min-width: 0; }
.training-step .step-info strong, .training-step .step-info h3 { display: block; font-size: 12px; line-height: 1.4; font-weight: 700; color: #303846; }
.training-step .step-info span, .training-step .step-info p, .training-step .step-info small { display: block; color: #6d7480; font-size: 10px; line-height: 1.5; margin-top: 5px; }
.training-step > svg { flex: 0 0 16px; width: 16px; height: 16px; color: #7c8798; }
.training-step.active, .training-step.chosen, .training-step[aria-current='step'] { color: #1c53b4; }
.training-step.active .step-number, .training-step.chosen .step-number, .training-step.active .step-info strong, .training-step.chosen .step-info strong { color: #1c53b4; }
button.training-step:hover { background: #f5f8fd; }
button.training-step:disabled { opacity: .65; cursor: default; }
button.training-step:disabled:hover { background: transparent; }
.training-step.completed .step-number { color: #1857cc; }
.rail-note { margin-top: auto; padding-top: 23px; font-size: 10px; line-height: 1.65; color: #717987; }
.rail-note strong { color: #3f4a5c; }
.training-lower { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 38px; margin-top: 36px; }
.activity-panel { min-width: 0; padding: 0; }
.activity-panel > h2, .activity-panel .surface-heading h2 { font-size: 18px; font-weight: 700; letter-spacing: -.03em; }
.activity-panel .surface-heading { margin-bottom: 7px; }
.activity-list { margin: 0; padding: 0; list-style: none; }
.activity-item { display: flex; align-items: center; gap: 14px; min-height: 80px; padding: 17px 0; border-bottom: 1px solid var(--line); }
.activity-item > .avatar { flex: 0 0 35px; width: 35px; height: 35px; border-radius: 9px; font-size: 11px; color: #2458ae; background: #e8eef9; }
.activity-item > div:not(.avatar) { flex: 1; min-width: 0; }
.activity-item h3, .activity-item strong { color: #323a48; font-size: 13px; font-weight: 650; }
.activity-item p, .activity-item small { display: block; margin-top: 4px; color: #6b7481; font-size: 11px; }
.activity-item .badge { flex-shrink: 0; font-size: 9px; }
.training-empty { display: flex; gap: 18px; align-items: center; padding: 28px 0; color: var(--muted); }
.training-empty svg { width: 28px; height: 28px; flex-shrink: 0; color: var(--accent); }
.training-empty h3 { font-size: 16px; font-weight: 600; }
.training-empty p { margin-top: 7px; font-size: 12px; }
.feedback-editorial { padding: 22px 0; }
.feedback-editorial h3 { font-size: 23px; line-height: 1.35; margin: 12px 0; max-width: 32ch; }
.feedback-editorial p { font-size: 13px; color: var(--muted); }
.coach-note { padding: 24px 0 0 28px; border-left: 1px solid #d8dde6; }
.coach-note .eyebrow { font-size: 9px; color: #3768ad; margin-bottom: 13px; }
.coach-note h2 { max-width: 16ch; font-size: 28px; font-weight: 650; line-height: 1.17; letter-spacing: -.045em; }
.coach-note p { font-size: 12px; color: #687281; line-height: 1.75; margin-top: 13px; max-width: 340px; }
.coach-note .btn, .coach-note .text-btn { margin-top: 16px; }
.training-toolbar { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; margin-top: 23px; padding: 13px 0 0; border-top: 1px solid var(--line); }
.training-toolbar .btn, .training-toolbar button, .training-toolbar a { min-height: 44px; padding: 10px 0; border: 0; border-radius: 0; box-shadow: none; background: none; color: #40526d; text-decoration: none; font-size: 11px; font-weight: 600; }
.training-toolbar button:hover, .training-toolbar a:hover { color: #174aaa; text-decoration: underline; text-underline-offset: 4px; }
.consumer-shell .quiet-note { margin-top: 18px; }
.consumer-shell .card, .consumer-shell .surface, .consumer-shell .review-reason { border-radius: 10px; background: #fff; border: 1px solid #e0e4e9; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.consumer-shell .pad { padding: 25px; }
.consumer-shell .card-head { padding: 19px 25px; }
.consumer-shell .row { padding: 18px 23px; }
.consumer-shell .surface { padding: 24px; }
.consumer-shell .section-heading { margin-top: 27px; }
.consumer-shell .context-nav { padding: 0; gap: 24px; border: 0; border-bottom: 1px solid #dbe0e8; border-radius: 0; background: transparent; width: 100%; margin-bottom: 28px; }
.consumer-shell .context-nav button { padding: 12px 0; border: 0; border-bottom: 2px solid transparent; border-radius: 0; font-size: 12px; background: transparent; box-shadow: none; }
.consumer-shell .context-nav button[aria-current='page'], .consumer-shell .context-nav button.active { color: #1c53b4; border-bottom-color: #2459b8; }
.consumer-shell input, .consumer-shell textarea, .consumer-shell select { border-radius: 8px; background: #fff; }
.consumer-shell .upload, .consumer-shell .subtle-box, .consumer-shell .choice { border-radius: 8px; }
.consumer-shell .review-reason { border-left: 3px solid #2459b8; }
.consumer-shell .lesson-layout { grid-template-columns: minmax(0, 1.55fr) minmax(280px, 1fr); gap: 24px; }
.consumer-shell .video-frame { background: #111721; }
.consumer-shell .video-frame video, .consumer-shell .video-frame img { object-fit: contain; }
.film-layout { display: grid; grid-template-columns: minmax(0, 1.65fr) minmax(270px, 1fr); align-items: start; gap: 28px; margin: 24px 0; }
.film-layout > .card { overflow: hidden; }
.film-layout .video-frame { aspect-ratio: 16/10; background: #0e1520; }
.film-layout .media-caption { padding: 16px 20px; font-size: 11px; background: #fff; }
.film-aside { padding: 12px 0; min-width: 0; }
.film-aside .eyebrow { color: #315d9c; }
.film-aside h2 { font-size: 32px; line-height: 1.12; letter-spacing: -.045em; margin-bottom: 15px; }
.film-aside p { font-size: 13px; color: #656e7b; line-height: 1.75; }
.film-aside .btn { margin-top: 23px; }
.film-facts { display: grid; margin-top: 24px; }
.film-facts span { padding: 13px 0; font-size: 11px; color: var(--muted); border-bottom: 1px solid var(--line); }
.film-aside dl { margin: 25px 0; }
.film-aside dl > div { display: flex; justify-content: space-between; gap: 14px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.film-aside dt, .film-aside dd { margin: 0; font-size: 11px; }
.film-aside dt { color: #707988; }
.film-aside dd { color: #263348; font-weight: 600; }
.training-progress { display: flex; width: 100%; gap: 16px; margin: 24px 0 28px; }
.training-progress > span, .training-progress > div, .training-progress > button { flex: 1; min-width: 0; padding: 12px 0 0; border-top: 2px solid #d9dee6; background: transparent; border-radius: 0; color: #6c7685; font-size: 10px; text-align: left; }
.training-progress .active, .training-progress .done { color: #2154a9; border-top-color: #2e63bb; }
.training-progress strong { display: block; color: inherit; font-size: 11px; font-weight: 650; }
.login.consumer-login { display: grid; grid-template-columns: minmax(0, 1.13fr) minmax(370px, 1fr); place-items: stretch; min-height: 100dvh; padding: 0; gap: 0; background: #f6f7f9; }
.login-editorial { position: relative; display: flex; flex-direction: column; justify-content: center; min-height: 100dvh; padding: 62px 64px; color: #fff; overflow: hidden; background: #1746a0; }
.login-index { position: absolute; top: 44px; left: 64px; font-size: 10px; letter-spacing: .15em; font-weight: 650; color: #cedcf6; }
.login-statement { position: relative; display: flex; flex-direction: column; gap: 0; color: #fff; font-size: clamp(42px, 5.4vw, 82px); font-weight: 800; letter-spacing: -.055em; line-height: 1.04; }
.login-statement span { display: block; color: inherit; }
.login-statement span:nth-child(2) { color: #b5caf3; }
.login-statement .outline-word { color: transparent; -webkit-text-stroke: 1px rgba(255, 255, 255, .9); }
.login-editorial-foot { position: absolute; left: 64px; right: 64px; bottom: 43px; padding-top: 22px; border-top: 1px solid rgba(255, 255, 255, .25); color: #d7e2f7; font-size: 11px; letter-spacing: .01em; }
.login-editorial-foot span { display: block; margin-top: 5px; }
.consumer-login .login-inner { align-self: center; justify-self: center; width: calc(100% - 80px); max-width: 375px; padding: 38px 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; }
.consumer-login .login-brand { margin-bottom: 49px; gap: 12px; }
.consumer-login .login-brand img { width: 38px; height: 42px; }
.consumer-login .login-brand .brand-wordmark { font-size: 15px; font-weight: 800; letter-spacing: .055em; }
.consumer-login .login-heading { margin-bottom: 30px; }
.consumer-login .login-heading h1 { font-size: 37px; font-weight: 650; letter-spacing: -.05em; }
.consumer-login .login-heading p { font-size: 13px; color: #626b7b; }
.consumer-login .field span { font-size: 11px; color: #465267; }
.consumer-login .field input { border-radius: 8px; min-height: 49px; background: #fff; }
.consumer-login .btn { border-radius: 8px; box-shadow: none; }
.consumer-login .login-foot { border-top: 1px solid #dce1e9; padding-top: 17px; }
@media (min-width: 801px) and (max-width: 1120px) {
  .brand-wordmark { font-size: 12px; letter-spacing: .02em; }
  .shell .sidebar { padding-inline: 16px; }
  .consumer-shell .main { padding-inline: 14px; }
  .training-layout { grid-template-columns: minmax(0, 1fr) 265px; gap: 19px; }
  .training-feature { padding: 30px; min-height: 525px; }
  .training-copy { padding-right: 0; padding-bottom: 34px; }
  .training-copy h2 { font-size: 49px; }
  .training-stamp { right: 26px; bottom: 20px; flex-direction: row; align-items: center; max-width: none; gap: 9px; }
  .training-stamp strong { font-size: 10px; }
  .training-stamp span { font-size: 9px; }
  .training-rail { padding: 24px 20px; }
  .training-lower { gap: 25px; }
  .login-editorial { padding: 50px 37px; }
  .login-index, .login-editorial-foot { left: 37px; right: 37px; }
  .login-statement { font-size: 57px; }
  .consumer-login .login-inner { width: calc(100% - 52px); }
}
@media (max-width: 800px) {
  .shell .sidebar { height: 58px; border-radius: 0; }
  .shell .brand { gap: 8px; }
  .shell .brand img { width: 26px; height: 31px; }
  .brand-wordmark { font-size: 12px; letter-spacing: .035em; }
  .shell .nav { border-radius: 19px; }
  .shell .nav button { font-size: 10px; border-radius: 14px; }
  .consumer-shell .main { padding: 0 0 calc(108px + env(safe-area-inset-bottom)); }
  .consumer-shell .main .topbar { margin: 5px 0 23px; min-height: 28px; }
  .consumer-shell .top-status, .consumer-shell .breadcrumb { font-size: 9px; }
  .training-header { align-items: flex-start; margin-bottom: 23px; gap: 15px; flex-wrap: wrap; }
  .training-header h1 { font-size: 36px; line-height: 1.08; max-width: 12ch; }
  .training-header p, .training-header small { margin-top: 10px; font-size: 12px; }
  .training-header .eyebrow { font-size: 9px; margin-bottom: 9px; }
  .training-header > .btn { min-height: 44px; font-size: 11px; padding: 11px 14px; }
  .training-layout { grid-template-columns: 1fr; gap: 19px; }
  .training-feature { min-height: 448px; padding: 27px 25px; border-radius: 10px; }
  .training-copy { padding: 58px 0 0; max-width: none; }
  .training-copy h2 { font-size: 40px; max-width: 11ch; }
  .training-copy > p { margin-top: 17px; font-size: 12px; max-width: 290px; }
  .training-kicker { font-size: 9px; margin-bottom: 16px; }
  .training-copy .button-row { gap: 9px; margin-top: 24px; }
  .training-copy .btn { font-size: 11px; padding: 12px 15px; min-height: 46px; }
  .training-stamp { top: 23px; right: 23px; bottom: auto; gap: 3px; font-size: 8px; }
  .training-stamp strong { font-size: 11px; }
  .training-rail { padding: 24px; border-radius: 10px; }
  .rail-heading { margin-bottom: 14px; }
  .rail-count { margin-bottom: 7px; padding-bottom: 19px; }
  .rail-count strong { font-size: 46px; }
  .rail-count span { max-width: none; font-size: 11px; }
  .training-step { min-height: 76px; padding: 16px 0; }
  .training-step .step-info strong, .training-step .step-info h3 { font-size: 13px; }
  .training-step .step-info p, .training-step .step-info span, .training-step .step-info small { font-size: 11px; }
  .rail-note { padding-top: 19px; }
  .training-lower { grid-template-columns: 1fr; gap: 30px; margin-top: 30px; }
  .activity-item { padding: 16px 0; gap: 12px; }
  .activity-item h3, .activity-item strong { font-size: 12px; }
  .activity-item p { font-size: 10px; }
  .activity-item .badge { font-size: 8px; padding: 5px 7px; }
  .coach-note { padding: 24px 0 0; border-left: 0; border-top: 1px solid #d8dde6; }
  .coach-note h2 { font-size: 28px; }
  .training-toolbar { gap: 8px 22px; margin-top: 24px; padding-top: 10px; }
  .training-toolbar button, .training-toolbar a, .training-toolbar .btn { font-size: 10px; }
  .consumer-shell .page-heading h1 { font-size: 34px; }
  .consumer-shell .pad, .consumer-shell .surface { padding: 21px; }
  .consumer-shell .card-head { padding: 18px 21px; }
  .consumer-shell .row { padding: 17px 20px; }
  .consumer-shell .context-nav { gap: 23px; margin-bottom: 25px; }
  .consumer-shell .lesson-layout, .film-layout { grid-template-columns: 1fr; gap: 22px; }
  .film-layout { margin: 19px 0; }
  .film-layout .video-frame { aspect-ratio: 16/10; }
  .film-aside { padding: 0; }
  .film-aside h2 { font-size: 29px; }
  .film-aside p { font-size: 12px; }
  .film-aside .btn { margin-top: 18px; }
  .training-progress { gap: 8px; margin: 20px 0 24px; }
  .training-progress > span, .training-progress > div, .training-progress > button { font-size: 9px; padding-top: 9px; }
  .training-progress strong { font-size: 9px; }
  .login.consumer-login { grid-template-columns: 1fr; }
  .login-editorial { min-height: 0; padding: 57px 27px 29px; }
  .login-index { top: 22px; left: 27px; font-size: 8px; }
  .login-statement { font-size: clamp(37px, 8vw, 52px); line-height: 1.02; letter-spacing: -.045em; }
  .login-statement span:last-child { max-width: 9ch; }
  .login-editorial-foot { position: static; padding-top: 15px; margin-top: 23px; font-size: 9px; }
  .consumer-login .login-inner { width: calc(100% - 48px); max-width: 420px; padding: 34px 0 28px; }
  .consumer-login .login-brand { margin-bottom: 28px; }
  .consumer-login .login-brand img { width: 31px; height: 35px; }
  .consumer-login .login-brand .brand-wordmark { font-size: 13px; }
  .consumer-login .login-heading h1 { font-size: 31px; }
  .consumer-login .login-heading { margin-bottom: 26px; }
  .consumer-login .field input { font-size: 16px; }
}
@media (max-width: 360px) {
  .shell .brand { gap: 7px; }
  .brand-wordmark { font-size: 10px; letter-spacing: .035em; }
  .shell .brand img { width: 24px; height: 28px; }
  .training-header h1 { font-size: 33px; }
  .training-feature { padding: 25px 21px; min-height: 431px; }
  .training-copy h2 { font-size: 36px; }
  .training-copy > p { font-size: 11px; }
  .training-copy .btn { font-size: 10px; padding-inline: 12px; }
  .training-rail { padding: 21px; }
  .activity-item { gap: 9px; }
  .activity-item > .avatar { flex-basis: 31px; width: 31px; height: 31px; }
  .training-progress { gap: 6px; }
  .training-progress > span, .training-progress > div, .training-progress > button, .training-progress strong { font-size: 8px; }
  .consumer-login .login-inner { width: calc(100% - 42px); }
  .login-editorial { padding-inline: 23px; }
  .login-index { left: 23px; }
  .login-statement { font-size: 35px; }
}
@media (prefers-reduced-transparency: reduce) {
  .training-copy .btn.outline, .training-copy .btn.secondary { background: #303c50; }
}
@media (forced-colors: active) {
  .login-statement .outline-word { color: CanvasText; -webkit-text-stroke: 0; }
}

/* Drill submissions replace the featured source film. */
.training-upload { min-height: 410px; background: linear-gradient(125deg, #1746a0, #10316f); }
.training-upload .training-copy { padding-right: 0; }
.training-upload .training-copy .btn { color: #1648a6; background: #fff; border-color: #fff; }
.training-upload .training-copy .btn:hover { background: #e9f1ff; }
.drill-account-note { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 22px 25px; margin: 0 0 28px; border: 1px solid #d4e1f5; border-radius: 12px; background: #edf3fc; }
.drill-account-note strong { font-size: 15px; }
.drill-account-note p { margin-top: 5px; font-size: 12px; color: #53647e; }
.drill-account-note .btn { flex-shrink: 0; }
@media(max-width:800px) {
 .training-upload { min-height: 340px; }
 .training-upload .training-copy { padding-top: 0; }
 .drill-account-note { align-items: flex-start; flex-direction: column; padding: 20px; gap: 14px; }
}

/* Keep the current action readable and close to the top on a phone. */
.training-upload { min-height: 330px; }
.training-upload .training-copy h2 { max-width: 16ch; font-size: clamp(34px, 4vw, 52px); }
.training-upload .training-copy > p { font-size: 15px; max-width: 42ch; }
.submission-row .grow { min-width: 0; }
.submission-row p { overflow-wrap: anywhere; }
.consumer-shell .field > span, .consumer-shell .check { font-size: 14px; }
.consumer-shell .btn { font-size: 14px; }
.consumer-shell .steps { flex-wrap: wrap; }
.consumer-shell .step { font-size: 12px; }
@media (max-width: 800px) {
  .consumer-shell { font-size: 16px; }
  .training-header h1 { font-size: 32px; }
  .consumer-shell .main .topbar { margin-bottom: 14px; }
  .training-upload { min-height: 0; padding: 25px 23px; }
  .training-upload .training-copy h2 { font-size: 34px; }
  .training-upload .training-copy > p { font-size: 15px; line-height: 1.5; margin-top: 14px; }
  .training-upload .button-row { margin-top: 20px; }
  .training-upload .btn { width: 100%; }
  .consumer-shell .page-heading p, .consumer-shell .small, .consumer-shell .muted-line,
  .consumer-shell .quiet-note p, .consumer-shell .check, .drill-account-note p,
  .training-empty p, .feedback-editorial p, .coach-note p { font-size: 14px; line-height: 1.55; }
  .consumer-shell .field > span, .consumer-shell .field small { font-size: 14px; }
  .consumer-shell .field input, .consumer-shell .field textarea, .consumer-shell .field select { font-size: 16px; }
  .training-step .step-info strong, .activity-item h3 { font-size: 15px; }
  .training-step .step-info small, .activity-item p, .rail-note { font-size: 13px; }
  .consumer-shell .badge, .activity-item .badge { font-size: 11px; }
  .consumer-shell .steps { gap: 8px 14px; }
  .consumer-shell .step { flex: 0 1 auto; min-width: 0; font-size: 12px; }
  .consumer-shell .submission-row { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; padding: 20px 16px; }
  .submission-row .circle { grid-column: 1; grid-row: 1; }
  .submission-row .grow { grid-column: 2 / -1; }
  .submission-row h3 { font-size: 16px; }
  .submission-row .badge { grid-column: 2; justify-self: start; }
  .submission-row > .btn { grid-column: 3; }
  .consumer-shell details > summary { min-height: 44px; padding-block: 11px; font-size: 14px; }
  .shell .nav button { font-size: 11px; }
  .consumer-shell input, .consumer-shell textarea, .consumer-shell select { scroll-margin-bottom: 115px; }
  .drill-upload-layout #practice { order: -1; }
}

/* ---- motion.css ---- */
/* The personal upload and movement experience. Kept separate from team tools. */
.motion-app, .motion-auth {
  --motion-ink: #17191d;
  --motion-muted: #73757d;
  --motion-line: #e4e5e8;
  --motion-blue: #2156ee;
  --motion-paper: #fafaf8;
  color: var(--motion-ink);
  background: var(--motion-paper);
  font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 14px;
  line-height: 1.6;
  color-scheme: light;
}
.motion-auth { min-height: 100dvh; }
.motion-app *, .motion-auth * { box-sizing: border-box; }
.motion-app button, .motion-auth button { font-family: inherit; }
.motion-app h1, .motion-auth h1, .motion-app h2, .motion-auth h2, .motion-app h3 { color: var(--motion-ink); }
.motion-app button:focus-visible, .motion-auth button:focus-visible,
.motion-app input:focus-visible, .motion-auth input:focus-visible,
.motion-app a:focus-visible, .motion-auth a:focus-visible { outline: 2px solid var(--motion-blue); outline-offset: 4px; }
.motion-app [hidden], .motion-auth [hidden] { display: none !important; }
.motion-app svg, .motion-auth svg { width: 21px; height: 21px; flex-shrink: 0; }
.motion-brand { display: inline-flex; align-items: center; gap: 10px; color: var(--motion-ink); text-decoration: none; width: fit-content; }
.motion-brand img, .motion-brand .brand-logo-light { width: 32px; height: 37px; object-fit: contain; filter: none; }
.motion-brand span { font-size: 12px; font-weight: 800; letter-spacing: .06em; }
.motion-auth-header { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 108px; max-width: 1280px; margin: 0 auto; padding: 20px 48px; }
.motion-auth-header { max-width: 1400px; }
.motion-text { display: inline-flex; align-items: center; justify-content: center; gap: 8px; border: 0; background: transparent; color: #5d6068; font-size: 12px; font-weight: 650; padding: 10px 0; min-height: 44px; line-height: 1.4; }
.motion-text:hover { color: var(--motion-blue); }
.motion-primary { display: inline-flex; justify-content: center; align-items: center; gap: 32px; min-height: 52px; padding: 15px 23px; border: 1px solid var(--motion-blue); border-radius: 8px; background: var(--motion-blue); color: #fff; font-size: 12px; font-weight: 650; line-height: 1.5; box-shadow: none; text-decoration: none; }
.motion-primary:hover { background: #1745d0; border-color: #1745d0; }
.motion-primary:disabled { opacity: .42; }
.motion-primary svg { width: 18px; height: 18px; }
.motion-eyebrow { display: block; font-size: 12px; letter-spacing: .16em; font-weight: 750; color: #626975; }
.motion-auth-layout { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(340px, .8fr); align-items: center; max-width: 1200px; gap: 80px; padding: 58px 48px 80px; margin: 0 auto; min-height: calc(100dvh - 108px); }
.motion-auth-intro { align-self: center; padding-bottom: 38px; }
.motion-auth-intro h1 { font-size: clamp(58px, 6.5vw, 88px); letter-spacing: -.066em; line-height: 1.03; font-weight: 600; margin: 25px 0 28px; }
.motion-auth-intro h1 span { color: var(--motion-blue); }
.motion-auth-intro > p { font-size: 15px; line-height: 1.9; color: #626975; max-width: 350px; }
.motion-auth-foot { margin-top: 81px; font-size: 12px; color: #626975; }
.motion-auth-form { width: 100%; max-width: 364px; justify-self: end; }
.motion-auth-form > h2 { font-size: 27px; letter-spacing: -.045em; font-weight: 650; }
.motion-auth-form > p { margin: 12px 0 25px; font-size: 12px; color: #626975; }
.motion-auth-form .field { margin-bottom: 18px; gap: 8px; }
.motion-auth-form .field span { color: #434750; font-size: 12px; font-weight: 650; }
.motion-auth-form .field input { min-height: 49px; font-size: 13px; color: var(--motion-ink); border: 1px solid #dddfe4; border-radius: 7px; background: #fff; box-shadow: none; padding: 12px 13px; }
.motion-auth-form .field input::placeholder { color: #626975; }
.motion-auth-form .error { font-size: 12px; margin: 12px 0; }
.motion-auth-form .error:empty { display: none; }
.motion-auth-form .motion-primary { width: 100%; justify-content: space-between; margin-top: 4px; }
.motion-auth-form .motion-primary span { font-size: 20px; line-height: 1; }
.motion-auth-form .motion-invite { margin-top: 12px; font-size: 12px; }
.motion-auth-form .motion-auth-note { font-size: 12px; line-height: 1.8; color: #626975; margin: 23px 0 0; border-top: 1px solid #e3e4e7; padding-top: 21px; }
.motion-main { max-width: 1184px; margin: 0 auto; padding: 69px 48px 84px; }
.motion-page-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 38px; }
.motion-page-heading .motion-eyebrow { margin-bottom: 16px; }
.motion-page-heading h1 { font-size: clamp(34px, 3.5vw, 45px); font-weight: 600; line-height: 1.13; letter-spacing: -.055em; overflow-wrap: anywhere; }
.motion-page-heading p { color: #626975; font-size: 12px; margin-top: 12px; }
.motion-page-heading > button { flex-shrink: 0; }
.motion-upload-layout { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(230px, 1fr); gap: 74px; align-items: start; }
.motion-upload-layout form { min-width: 0; }
.motion-drop { min-height: 294px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 32px 16px; text-align: center; border: 1px dashed #c9cdd5; border-radius: 11px; background: #fff; transition: background .15s, border-color .15s; }
.motion-drop.dragging { border-color: var(--motion-blue); background: #f0f4ff; }
.motion-upload-symbol { display: grid; place-items: center; width: 48px; height: 48px; color: #3b5fc7; background: #f0f3fa; border-radius: 50%; margin-bottom: 18px; }
.motion-upload-symbol svg { width: 22px; height: 22px; }
.motion-drop h2 { font-size: 20px; letter-spacing: -.035em; font-weight: 650; }
.motion-drop > p { margin-top: 7px; font-size: 12px; color: #626975; }
.motion-file-actions { display: flex; align-items: center; flex-direction: column; gap: 4px; margin-top: 22px; }
.motion-file-actions .motion-primary { min-height: 44px; font-size: 12px; padding: 11px 20px; gap: 24px; }
.motion-file-actions .motion-text { font-size: 12px; }
.motion-file-actions .motion-text svg { width: 15px; height: 15px; }
.motion-file-limits { color: #626975; font-size: 12px; margin-top: 14px; }
.motion-file-input { position: absolute; width: 1px; height: 1px; opacity: 0; overflow: hidden; clip-path: inset(50%); }
.motion-selection { display: flex; align-items: center; gap: 13px; border: 1px solid #dfe3ec; background: #f0f3fa; border-radius: 8px; padding: 14px; margin-top: 13px; }
.motion-file-icon { display: grid; place-items: center; color: #4263b1; width: 28px; }
.motion-selection > div:nth-child(2) { flex: 1; min-width: 0; }
.motion-selection strong { display: block; overflow-wrap: anywhere; font-size: 12px; font-weight: 650; line-height: 1.5; }
.motion-selection span { font-size: 12px; color: #626975; }
.motion-icon-button { display: grid; place-items: center; width: 36px; min-height: 36px; background: transparent; color: #626975; }
.motion-icon-button svg { width: 17px; height: 17px; }
.motion-permission { margin: 20px 0 21px; }
.motion-permission label { display: flex; gap: 10px; align-items: start; font-size: 12px; color: #626975; line-height: 1.65; }
.motion-permission input { width: 15px; height: 15px; padding: 0; accent-color: var(--motion-blue); margin: 2px 0 0; flex-shrink: 0; }
.motion-permission p { margin: 8px 0 0 25px; font-size: 12px; line-height: 1.75; color: #626975; }
.motion-submit { width: 100%; justify-content: space-between; }
.motion-capture-guide { padding-top: 4px; }
.motion-capture-guide h2 { margin-top: 17px; font-size: 26px; font-weight: 600; letter-spacing: -.05em; }
.motion-capture-guide ol { list-style: none; margin: 26px 0 0; padding: 0; }
.motion-capture-guide li { display: flex; gap: 15px; padding-bottom: 25px; }
.motion-capture-guide li > span { font-size: 12px; color: #626975; padding-top: 3px; }
.motion-capture-guide li strong { font-size: 12px; font-weight: 700; }
.motion-capture-guide li p { color: #626975; font-size: 12px; line-height: 1.7; margin-top: 6px; max-width: 205px; }
.motion-estimate-note { border-top: 1px solid var(--motion-line); padding-top: 22px; font-size: 12px; line-height: 1.9; color: #626975; max-width: 265px; }
.motion-message-error { color: #a33a30; font-size: 12px; line-height: 1.6; margin: 12px 0; }
.motion-message-error:empty, .motion-availability:empty { display: none; }
.motion-availability { font-size: 12px; line-height: 1.7; color: #775923; background: #f4efe5; border: 1px solid #e9dfca; border-radius: 7px; padding: 10px 15px; margin-bottom: 15px; }
.motion-availability .motion-text { display: block; min-height: 34px; font-size: 12px; padding-block: 6px; color: #664a1a; }
.motion-upload-progress > div { display: flex; justify-content: space-between; align-items: center; font-size: 12px; gap: 15px; }
.motion-upload-progress .motion-text { font-size: 12px; }
.motion-app progress { display: block; appearance: none; -webkit-appearance: none; width: 100%; height: 5px; border: 0; border-radius: 4px; background: #e4e8f1; overflow: hidden; }
.motion-app progress::-webkit-progress-bar { background: #e4e8f1; }
.motion-app progress::-webkit-progress-value { background: var(--motion-blue); }
.motion-app progress::-moz-progress-bar { background: var(--motion-blue); }
.motion-library { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 33px 23px; }
.motion-clip { display: block; min-width: 0; width: 100%; padding: 0; border: 0; background: transparent; color: var(--motion-ink); text-align: left; }
.motion-thumbnail { position: relative; aspect-ratio: 16/10; border-radius: 9px; background: #e9ebef; display: grid; place-items: center; overflow: hidden; }
.motion-thumbnail > svg { width: 33px; height: 33px; color: #9aa3b3; }
.motion-thumbnail img { width: 100%; height: 100%; object-fit: cover; }
.motion-clip:hover .motion-thumbnail { box-shadow: 0 0 0 2px #aabcf2; }
.motion-clip-status { position: absolute; bottom: 12px; left: 12px; padding: 5px 9px; color: #33415d; font-size: 12px; line-height: 1.5; font-weight: 650; background: #fff; border-radius: 5px; }
.motion-clip-status.failed { color: #9b4138; }
.motion-clip h2 { font-size: 12px; font-weight: 650; letter-spacing: -.015em; margin: 12px 0 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.motion-clip > p { font-size: 12px; color: #626975; }
.motion-library-empty { display: flex; min-height: 300px; flex-direction: column; justify-content: center; align-items: center; text-align: center; border: 1px dashed #d7dbe3; border-radius: 10px; gap: 14px; padding: 32px 20px; }
.motion-library-empty > svg { width: 38px; height: 38px; margin-bottom: 8px; color: #9aa6bf; }
.motion-library-empty h2 { font-size: 24px; }
.motion-library-empty p { color: #626975; font-size: 12px; }
.motion-back { margin-top: -29px; margin-bottom: 20px; font-size: 12px; }
.motion-back svg { width: 17px; height: 17px; }
.motion-detail-heading { margin-bottom: 24px; }
.motion-detail-heading h1 { font-size: clamp(25px, 3vw, 35px); }
.motion-delete { font-size: 12px; color: #626975; white-space: nowrap; }
.motion-processing, .motion-failed { text-align: center; min-height: 370px; border-radius: 11px; border: 1px solid var(--motion-line); padding: 60px 35px; display: flex; align-items: center; justify-content: center; flex-direction: column; }
.motion-processing h2, .motion-failed h2 { font-size: 26px; margin: 19px 0 12px; }
.motion-processing > p, .motion-failed p { color: #626975; font-size: 12px; max-width: 440px; }
.motion-failed-video { width: 100%; max-width: 480px; max-height: 60vh; border-radius: 9px; background: #000; }
.motion-processing progress { width: 260px; max-width: 100%; margin-top: 24px; }
.motion-processing .motion-processing-note { font-size: 12px; margin-top: 25px; }
.motion-failed .motion-primary { margin-top: 27px; }
.motion-failed .motion-text { font-size: 12px; margin-top: 8px; }
.motion-orbit { width: 32px; height: 32px; border: 2px solid #e2e7f4; border-top-color: #4771dc; border-radius: 50%; margin-bottom: 26px; animation: motion-orbit 1.1s linear infinite; }
@keyframes motion-orbit { to { transform: rotate(360deg); } }
.motion-viewer { border: 1px solid var(--motion-line); border-radius: 10px; overflow: hidden; background: #fff; }
.motion-video-wrap { position: relative; display: block; width: 100%; aspect-ratio: 16/9; max-height: 64vh; min-height: 180px; background: #111318; margin: 0 auto; }
.motion-video-wrap video { width: 100%; height: 100%; display: block; object-fit: contain; }
.motion-video-wrap canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.motion-viewer-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 14px 20px; }
.motion-overlay-toggle { display: inline-flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 650; white-space: nowrap; cursor: pointer; }
.motion-overlay-toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.motion-switch { width: 31px; height: 18px; padding: 2px; border-radius: 12px; background: #b8beca; display: inline-block; }
.motion-switch::before { content: ''; display: block; width: 14px; height: 14px; border-radius: 50%; background: #fff; transition: transform .15s; }
.motion-overlay-toggle input:checked + .motion-switch { background: var(--motion-blue); }
.motion-overlay-toggle input:checked + .motion-switch::before { transform: translateX(13px); }
.motion-overlay-toggle input:focus-visible + .motion-switch { outline: 2px solid var(--motion-blue); outline-offset: 3px; }
.motion-viewer-toolbar > span { font-size: 12px; line-height: 1.6; text-align: right; color: #626975; }
.motion-viewer-toolbar .motion-text { font-size: 12px; min-height: 26px; padding: 0; }
.motion-viewer-notes { display: flex; justify-content: space-between; gap: 35px; margin-top: 28px; }
.motion-viewer-notes h2 { font-size: 18px; font-weight: 650; }
.motion-viewer-notes p { max-width: 555px; font-size: 12px; line-height: 1.8; color: #626975; margin-top: 10px; }
.motion-coverage { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.motion-coverage strong { font-size: 34px; font-weight: 600; letter-spacing: -.05em; }
.motion-coverage span { font-size: 12px; color: #626975; line-height: 1.6; }
.motion-low-coverage { margin-top: 20px; font-size: 12px; color: #626975; }
.motion-delete-dialog { width: min(400px, calc(100vw - 40px)); border: 1px solid #dfe2e9; border-radius: 12px; padding: 27px; box-shadow: 0 20px 80px #0002; color: var(--motion-ink); background: #fff; }
.motion-delete-dialog::backdrop { background: #13192265; }
.motion-delete-dialog h2 { font-size: 23px; }
.motion-delete-dialog > p { font-size: 12px; line-height: 1.8; color: #626975; margin: 14px 0 23px; }
.motion-delete-dialog > div { display: flex; justify-content: flex-end; gap: 23px; }
.motion-delete-dialog .motion-primary { background: #a63d34; border-color: #a63d34; font-size: 12px; min-height: 44px; padding: 12px 18px; }
.motion-embedded { margin-top: -8px; background: transparent; }
.motion-embedded .motion-main { padding: 20px 0 40px; }
.motion-embedded .motion-back { margin-top: 0; }
@media (max-width: 980px) {
  .motion-auth-layout { gap: 44px; }
  .motion-auth-intro h1 { font-size: 66px; }
  .motion-main { padding-inline: 32px; }
  .motion-upload-layout { gap: 40px; grid-template-columns: minmax(0, 1.5fr) minmax(210px, 1fr); }
}
@media (max-width: 680px) {
  .motion-auth-header { min-height: 79px; padding: 18px 24px; }
  .motion-brand img, .motion-brand .brand-logo-light { width: 26px; height: 31px; }
  .motion-brand span { font-size: 12px; letter-spacing: .04em; }
  .motion-auth-layout { grid-template-columns: 1fr; gap: 38px; padding: 35px 27px 42px; min-height: auto; max-width: 430px; }
  .motion-auth-intro { padding: 0; }
  .motion-auth-intro .motion-eyebrow { font-size: 12px; }
  .motion-auth-intro h1 { font-size: clamp(51px, 12vw, 68px); margin: 19px 0 20px; }
  .motion-auth-intro > p { font-size: 12px; line-height: 1.8; }
  .motion-auth-foot { display: none; }
  .motion-auth-form { max-width: none; justify-self: stretch; }
  .motion-auth-form > h2 { font-size: 22px; }
  .motion-auth-form > p { margin: 8px 0 22px; font-size: 12px; }
  .motion-auth-form .field input { font-size: 16px; }
  .motion-auth-form .field { margin-bottom: 15px; }
  .motion-auth-form .motion-auth-note { margin-top: 18px; font-size: 12px; padding-top: 17px; }
  .motion-auth-form .motion-primary { min-height: 49px; }
  .motion-main { padding: 40px 23px 50px; }
  .motion-page-heading { gap: 20px; align-items: start; flex-direction: column; margin-bottom: 26px; }
  .motion-page-heading h1 { font-size: 34px; }
  .motion-page-heading p { font-size: 12px; margin-top: 11px; }
  .motion-page-heading .motion-eyebrow { font-size: 12px; margin-bottom: 14px; }
  .motion-upload-layout { grid-template-columns: 1fr; gap: 38px; }
  .motion-drop { min-height: 282px; padding-inline: 12px; }
  .motion-drop h2 { font-size: 20px; }
  .motion-file-limits { font-size: 12px; }
  .motion-capture-guide { border-top: 1px solid var(--motion-line); padding-top: 26px; }
  .motion-capture-guide h2 { font-size: 24px; margin-top: 12px; }
  .motion-capture-guide ol { margin-top: 23px; }
  .motion-capture-guide li { padding-bottom: 21px; }
  .motion-capture-guide li p { max-width: none; }
  .motion-estimate-note { max-width: none; font-size: 12px; }
  .motion-permission label { font-size: 12px; }
  .motion-library { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 14px; }
  .motion-library .motion-thumbnail { aspect-ratio: 1; }
  .motion-clip-status { left: 7px; bottom: 7px; font-size: 12px; padding: 4px 6px; }
  .motion-clip h2 { font-size: 12px; }
  .motion-clip > p { font-size: 12px; }
  .motion-library-empty h2 { font-size: 23px; }
  .motion-back { margin-top: -13px; margin-bottom: 18px; }
  .motion-detail-heading { gap: 10px; }
  .motion-detail-heading h1 { font-size: 27px; }
  .motion-detail-heading .motion-delete { min-height: 26px; padding: 3px 0; }
  .motion-viewer-toolbar { gap: 12px; padding: 12px; align-items: start; }
  .motion-overlay-toggle { font-size: 12px; gap: 6px; }
  .motion-viewer-toolbar > span { font-size: 12px; }
  .motion-viewer-notes { flex-direction: column; gap: 22px; }
  .motion-viewer-notes h2 { font-size: 18px; }
  .motion-viewer-notes p { font-size: 12px; }
  .motion-coverage strong { font-size: 29px; }
  .motion-video-wrap { min-height: 150px; }
  .motion-processing, .motion-failed { padding: 40px 23px; min-height: 340px; }
  .motion-processing h2, .motion-failed h2 { font-size: 23px; }
  .motion-processing > p, .motion-failed p { font-size: 12px; }
  .motion-processing .motion-eyebrow { font-size: 12px; }
  .motion-embedded .motion-main { padding-top: 9px; }
}
@media (prefers-reduced-motion: reduce) { .motion-app *, .motion-auth * { transition: none !important; } .motion-orbit { animation: none; } }

/* Comfortable reading sizes and controls on every screen. */
.motion-text, .motion-primary { font-size: 14px; }
.motion-eyebrow, .motion-auth-intro .motion-eyebrow, .motion-page-heading .motion-eyebrow, .motion-processing .motion-eyebrow { font-size: 10px; }
.motion-auth-intro > p, .motion-auth-form > p, .motion-page-heading p,
.motion-drop > p, .motion-permission label, .motion-capture-guide li strong,
.motion-capture-guide li p, .motion-library-empty p, .motion-processing > p,
.motion-failed p, .motion-viewer-notes p, .motion-delete-dialog > p { font-size: 14px; }
.motion-auth-form .field span { font-size: 12px; }
.motion-auth-form .field input { font-size: 16px; }
.motion-auth-form .motion-invite, .motion-auth-form .motion-auth-note,
.motion-auth-foot,
.motion-file-actions .motion-text, .motion-file-limits,
.motion-permission p, .motion-estimate-note, .motion-clip-status,
.motion-clip > p, .motion-viewer-toolbar > span, .motion-coverage span,
.motion-low-coverage { font-size: 12px; }
.motion-file-actions .motion-primary,
.motion-clip h2, .motion-overlay-toggle { font-size: 14px; }
.motion-permission label { min-height: 44px; align-items: center; cursor: pointer; }
.motion-permission input { width: 18px; height: 18px; margin-top: 0; }
.motion-permission p { margin-left: 28px; }
.motion-overlay-toggle { min-height: 44px; }
.motion-message-error, .motion-availability { font-size: 14px; }
.motion-file-limits { max-width: 32ch; line-height: 1.8; }
.motion-drop { padding-block: 30px; }
.motion-capture-guide li p { max-width: 265px; }
.motion-viewer-toolbar > span { color: #626975; }
@media (max-width: 680px) {
  .motion-viewer-toolbar { flex-wrap: wrap; }
  .motion-viewer-toolbar > span { text-align: left; }
  .motion-delete, .motion-detail-heading .motion-delete { min-height: 44px; }
  .motion-capture-guide li p { max-width: none; }
  .motion-file-limits { max-width: 27ch; }
}

/* Optional movement tools stay out of the way until selected. */
.motion-insights { margin-top: 18px; color: #233247; }
.motion-insights [hidden] { display: none !important; }
.motion-insights h2 { font-size: 20px; font-weight: 650; letter-spacing: -.035em; margin: 0 0 15px; }
.motion-insights p { font-size: 14px; line-height: 1.65; }
.insights-analysis-status { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; margin-bottom: 13px; }
.insights-status { color: #626975; font-size: 13px; }
.insights-options { margin: 0; border: 1px solid #dde4ee; border-radius: 12px; background: #fff; padding: 0 18px; }
.insights-options > summary { cursor: pointer; min-height: 52px; padding: 15px 0; color: #334e76; font-size: 14px; font-weight: 650; }
.insights-options > summary span { font-size: 12px; font-weight: 400; color: #626975; margin-left: 12px; }
.insights-toggle-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 5px 14px; padding: 0 0 17px; }
.insights-toggle-grid label { display: flex; align-items: center; gap: 9px; min-height: 44px; font-size: 14px; color: #40536e; cursor: pointer; }
.insights-toggle-grid input { width: 17px; height: 17px; min-height: 0; padding: 0; flex-shrink: 0; accent-color: #225bd7; }
.insights-button { min-height: 44px; padding: 10px 14px; font-size: 13px; line-height: 1.5; border: 1px solid #d9e2ef; background: #fff; border-radius: 8px; color: #285791; font-weight: 600; }
.insights-button:hover { background: #edf3fc; border-color: #a8bcda; }
.insights-button:disabled { opacity: .5; }
.insights-button[aria-pressed="true"] { border-color: #225bd7; background: #eaf1ff; }
.insights-frame-tools { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; padding: 16px 0 3px; }
.insights-frame-tools label, .insights-inline-label { display: flex; align-items: center; gap: 9px; color: #546780; font-size: 13px; }
.insights-frame-tools select, .insights-inline-label select { width: auto; min-width: 90px; min-height: 44px; padding: 8px; font-size: 14px; background: #fff; border: 1px solid #d9e2ef; border-radius: 8px; }
#insights-frame-time { font-size: 12px; color: #626975; font-variant-numeric: tabular-nums; }
#insights-angle-tools { margin-top: 16px; }
.insights-note { font-size: 12px !important; color: #626975; line-height: 1.75; margin: 12px 0; }
.insights-panel { padding: 23px; border: 1px solid #dde4ee; border-radius: 12px; background: #fff; margin-top: 16px; }
.insights-metrics { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 19px; }
.insights-metrics > div { min-width: 0; }
.insights-metrics span { display: block; font-size: 13px; color: #626975; }
.insights-metrics strong { display: block; font-size: 26px; font-weight: 600; letter-spacing: -.035em; margin: 8px 0; }
.insights-metrics small { display: block; font-size: 12px; color: #626975; }
.insights-events { list-style: none; padding: 0; margin: 0; }
.insights-events li { padding: 12px 0; border-bottom: 1px solid #e4e9f0; }
.insights-events li:first-child { padding-top: 0; }
.insights-events .insights-button { background: transparent; border: 0; padding: 7px 0; color: #2f5d9d; text-align: left; }
.insights-events li > span { display: block; font-size: 12px; color: #626975; }
.insights-events p { margin: 6px 0 0; font-size: 12px; color: #626975; }
.insights-edit-row { display: flex; align-items: flex-end; flex-wrap: wrap; gap: 10px; margin-top: 15px; }
.insights-edit-row label, .insights-ball-coordinates label, .insights-practice-fields label, .insights-compare-fields label, .insights-field { display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: #43536b; min-width: 0; }
.motion-insights input:not([type=checkbox]), .motion-insights select, .motion-insights textarea { min-height: 44px; min-width: 0; width: 100%; border: 1px solid #d9e2ef; padding: 10px 12px; border-radius: 8px; background: #fff; color: #233247; font-size: 16px; font-family: inherit; }
.motion-insights textarea { line-height: 1.65; min-height: 94px; resize: vertical; }
.motion-insights input::placeholder { font-size: 13px; color: #6d7888; }
.insights-edit-row select { min-width: 160px; }
.insights-ball-coordinates { display: grid; grid-template-columns: 1fr 1fr auto; align-items: end; gap: 12px; margin: 20px 0; }
.insights-practice-fields, .insights-compare-fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 15px; margin: 18px 0; }
.insights-field { margin: 18px 0; }
.insights-save-bar { display: flex; align-items: center; flex-wrap: wrap; gap: 10px 16px; margin-top: 18px; padding: 17px 0; border-top: 1px solid #dfe5ef; }
.insights-save-bar > span { flex: 1 1 200px; font-size: 13px; color: #626975; }
#insights-save { background: #225bd7; color: #fff; border-color: #225bd7; }
.insights-error { color: #a33c32; font-size: 14px; margin-top: 12px; }
.insights-error:empty { display: none; }
.insights-table-wrap { overflow-x: auto; width: 100%; }
.insights-table-wrap table { width: 100%; border-collapse: collapse; text-align: left; font-size: 14px; }
.insights-table-wrap th, .insights-table-wrap td { vertical-align: top; padding: 14px 12px; border-bottom: 1px solid #e1e7f0; font-weight: 400; min-width: 130px; }
.insights-table-wrap thead th { font-size: 12px; font-weight: 650; color: #526680; }
.insights-table-wrap small { display: block; font-size: 12px; color: #626975; line-height: 1.6; margin-top: 6px; overflow-wrap: anywhere; }
.insights-comparing { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); align-items: start; gap: 0 14px; }
.insights-comparing > * { grid-column: 1 / -1; }
.insights-comparing > .motion-viewer { grid-column: 1; }
.insights-comparing > .insights-reference-stage { grid-column: 2; }
.insights-comparing > .motion-viewer { min-width: 0; }
.insights-comparing .motion-video-wrap { min-height: 0; }
.insights-reference-stage { background: #fff; border: 1px solid #dde4ee; border-radius: 10px; overflow: hidden; min-width: 0; }
.insights-reference-stage h3 { padding: 12px 15px; font-size: 13px; color: #425878; }
.insights-reference-stage > p { padding: 12px 15px; font-size: 12px; color: #626975; overflow-wrap: anywhere; }
.insights-reference-video { position: relative; aspect-ratio: 16/9; max-height: 64vh; background: #111318; }
.insights-reference-video video { width: 100%; height: 100%; display: block; object-fit: contain; }
.insights-reference-video canvas { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.insights-reference-notice { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-align: center; background: #111318ed; color: #fff; padding: 20px; font-size: 14px; line-height: 1.7; }
@media(max-width:680px) {
  .insights-toggle-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px 10px; }
  .insights-toggle-grid label { font-size: 13px; gap: 7px; }
  .insights-options { padding-inline: 14px; }
  .insights-options > summary span { display: none; }
  .insights-panel { padding: 19px; }
  .insights-metrics { grid-template-columns: 1fr; }
  .insights-practice-fields, .insights-compare-fields { grid-template-columns: 1fr; }
  .insights-ball-coordinates { grid-template-columns: 1fr 1fr; }
  .insights-ball-coordinates > button { grid-column: 1 / -1; }
  .insights-comparing { gap: 0 7px; }
  .insights-comparing .motion-viewer-toolbar { padding: 8px; }
  .insights-comparing .motion-overlay-toggle { font-size: 11px; }
  .insights-comparing #motion-pose-status { display: none; }
  .insights-reference-stage h3, .insights-reference-stage > p { padding: 8px; font-size: 11px; }
  .insights-reference-notice { font-size: 12px; padding: 10px; }
}

.insights-ball-region { margin: 5px 0 18px; border-bottom: 1px solid #e1e7f0; padding-bottom: 12px; }
.insights-ball-region > summary { min-height: 44px; padding: 10px 0; cursor: pointer; font-size: 13px; color: #43536b; }
.insights-region-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.insights-region-fields label { display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: #43536b; min-width: 0; }

/* Keep active tracking controls immediately against the video. */
.motion-detail-heading h1 { font-size:clamp(30px,4vw,42px); }
.motion-video-wrap { max-height:42vh; }
#motion-controls-dock .insights-options { margin:0; border:0; border-top:1px solid #e1e7f0; border-radius:0; padding:10px 18px; }
#motion-controls-dock .insights-options > summary { padding:4px 0; font-size:12px; }
#motion-controls-dock .insights-toggle-grid { grid-template-columns:repeat(6,minmax(0,1fr)); gap:3px 12px; margin-top:8px; }
#motion-controls-dock .insights-toggle-grid label {font-size:11px;min-height:34px;}
@media(max-width:800px){#motion-controls-dock .insights-toggle-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px 8px}#motion-controls-dock .insights-toggle-grid label{font-size:11px;min-height:36px}}

/* Optional video measurements share review saving and frame controls. */
.insights-chain-hand { justify-content: space-between; max-width: 340px; margin: 18px 0; }
.insights-chain-hand select { max-width: 190px; }
.insights-markers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin: 18px 0; }
.insights-markers > div { display: flex; flex-direction: column; align-items: stretch; gap: 8px; padding: 14px; background: #f6f8fc; border-radius: 10px; min-width: 0; }
.insights-markers > div > span { font-size: 12px; color: #526680; }
.insights-markers small { font-size: 11px; color: #626975; line-height: 1.5; }
.insights-mark-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.insights-mark-actions > button { flex: 1; padding-inline: 9px; white-space: nowrap; }
.insights-chain-segments { list-style: none; margin: 16px 0; padding: 0; }
.insights-chain-segments li { display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid #e1e7f0; padding: 14px 0; }
.insights-chain-segments strong { font-size: 14px; font-weight: 600; }
.insights-chain-segments small, .insights-chain-order small { display: block; margin-top: 4px; font-size: 11px; font-weight: 400; color: #626975; line-height: 1.5; }
.insights-chain-segments .insights-button { flex-shrink: 0; min-width: 125px; }
.insights-chain-segments .insights-note { margin: 0; text-align: right; max-width: 125px; }
.insights-chain-order { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px 0; }
.insights-chain-order > span:first-child { flex-basis: 100%; font-size: 12px; color: #526680; }
.insights-chain-arrow { color: #8c99aa; }
.insights-running-fields { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap: 12px; margin-top: 18px; }
.insights-running-fields label { display: flex; flex-direction: column; gap: 8px; font-size: 13px; color: #43536b; }
.insights-running-frames { align-items: center; }
#insights-running-current { font-size: 12px; color: #626975; font-variant-numeric: tabular-nums; }
.insights-running-result { margin: 15px 0; }
.insights-running-result > span { color: #626975; font-size: 12px; }
.insights-running-result > strong { display: block; font-size: 36px; font-weight: 600; letter-spacing: -.04em; margin: 5px 0; }
.insights-running-result > strong small { color: #626975; font-size: 17px; font-weight: 400; letter-spacing: 0; }
.insights-running-result > p { margin: 6px 0 14px; }
@media(max-width:420px) {
  .insights-markers { gap: 8px; }
  .insights-markers > div { padding: 10px; }
  .insights-markers .insights-button { font-size: 12px; padding-inline: 8px; }
  .insights-chain-segments li { align-items: flex-start; gap: 8px; }
  .insights-chain-segments .insights-button { min-width: 112px; padding-inline: 8px; }
}
/* Every player's position (web/motion-positions.js). */
.mp-panel { margin-top: 16px; padding: 20px; border: 1px solid var(--motion-line, #e2e7ef); border-radius: 20px; background: #fff; }
.mp-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.mp-head h2 { font-size: 19px; letter-spacing: -.02em; }
.mp-head p, .mp-note { margin-top: 6px; color: var(--motion-muted, #686b73); font-size: 13px; line-height: 1.55; }
.mp-error { color: #ac343d; }
.mp-start { margin-top: 10px; font-weight: 600; }
.mp-legend { display: flex; flex-wrap: wrap; gap: 8px 16px; margin: 12px 0 0; padding: 0; list-style: none; font-size: 13px; color: var(--motion-ink, #1d1d1f); }
.mp-legend li.is-brief { color: var(--motion-muted, #686b73); }
.mp-key { display: inline-block; width: 12px; height: 12px; margin-right: 6px; border: 2px solid #fff; border-radius: 50%; background: var(--mp); box-shadow: 0 0 0 1px #c9d2df; vertical-align: -2px; }
.mp-limits { margin-top: 12px; font-size: 13px; color: var(--motion-muted, #686b73); }
.mp-limits summary { cursor: pointer; color: var(--motion-blue, #1046ab); }
.mp-limits ul { margin: 8px 0 0 18px; padding: 0; line-height: 1.55; }

/* Video tools links on a rep (web/video-tools.js) */
.motion-video-tools { display: flex; flex-wrap: wrap; gap: 8px 18px; margin: 14px 0 4px; }
.motion-video-tools a { color: var(--accent, #1046ab); font-size: 14px; font-weight: 600; text-decoration: none; }

/* DM12: Pro tools fold on the Rep page (web/ia/rep.js). */
.motion-pro .motion-main { padding: 0; }
.motion-pro .motion-viewer { margin-top: 8px; }
/* Connection lost mid-upload: a calm amber note; the upload keeps waiting and resumes by itself. */
#motion-upload-form[data-connection="lost"] #motion-upload-label { color: #775923; }
#motion-upload-form[data-connection="lost"] #motion-progress { opacity: .55; }

/* ---- motion-criteria.css ---- */
.mc-panel{--mc-ink:#1c2e3f;--mc-muted:#647584;--mc-line:rgba(36,61,76,.1);color:var(--mc-ink);font:inherit;padding:20px;border:1px solid rgba(255,255,255,.8);border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(245,250,252,.78));box-shadow:0 12px 40px rgba(30,51,64,.05),inset 0 1px 0 #fff;backdrop-filter:blur(24px);min-width:0}
.mc-panel *{box-sizing:border-box}.mc-panel [hidden]{display:none!important}.mc-heading,.mc-section-title,.mc-coach h4,.mc-footer{display:flex;justify-content:space-between;align-items:center;gap:12px}.mc-eyebrow{font-size:10px;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--mc-muted)}.mc-heading h2{font-size:22px;letter-spacing:-.7px;margin:4px 0 0;font-weight:570;line-height:1.1}.mc-pill{font-size:10px;color:var(--mc-muted);border:1px solid var(--mc-line);padding:6px 8px;border-radius:20px;white-space:nowrap}.mc-measures{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.mc-measure{padding:15px 12px;min-width:0;background:rgba(255,255,255,.62);border:1px solid var(--mc-line);border-radius:16px;display:flex;flex-direction:column;gap:9px}.mc-label{font-size:11px;color:var(--mc-muted)}.mc-measure strong{font-size:25px;font-weight:500;letter-spacing:-1px;font-variant-numeric:tabular-nums;line-height:1.2}.mc-detail{font-size:10px;line-height:1.4;color:var(--mc-muted)}.mc-angle-select{display:flex;flex-wrap:wrap;gap:4px}.mc-angle-select select{font:inherit;font-size:11px;color:var(--mc-muted);border:0;background:transparent;padding:0;max-width:100%;min-height:20px}.mc-markers{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 22px}.mc-panel button{font:inherit;cursor:pointer;border:1px solid var(--mc-line);background:rgba(255,255,255,.78);color:var(--mc-ink);border-radius:10px;transition:background .15s}.mc-panel button:hover{background:#fff}.mc-panel button:focus-visible,.mc-panel input:focus-visible,.mc-panel select:focus-visible{outline:2px solid #377b89;outline-offset:3px}.mc-panel button:disabled{opacity:.6;cursor:default}.mc-markers button{display:flex;align-items:flex-start;flex-direction:column;padding:10px;text-align:left;font-size:10px;color:var(--mc-muted);gap:4px}.mc-markers b{font-weight:550;color:var(--mc-ink);font-size:12px}.mc-markers span{font-size:9px}.mc-section-title h3{margin:0;font-size:15px;font-weight:550;letter-spacing:-.25px}.mc-section-title button{padding:7px 10px;font-size:11px}.mc-section-title button span{margin-left:8px}.mc-note{margin:7px 0 14px;color:var(--mc-muted);font-size:10px;line-height:1.5}.mc-empty{border:1px dashed var(--mc-line);border-radius:14px;display:flex;gap:10px;align-items:center;justify-content:center;padding:17px}.mc-empty>span{border:1px solid var(--mc-line);border-radius:50%;width:28px;height:28px;display:grid;place-items:center;color:var(--mc-muted)}.mc-empty p{font-size:11px;margin:0;line-height:1.5}.mc-empty small{display:block;color:var(--mc-muted);font-size:10px}.mc-coach{border-top:1px solid var(--mc-line);padding:12px 0 4px}.mc-coach h4{font-size:12px;font-weight:600;margin:0 0 9px}.mc-coach h4 span{font-size:10px;font-weight:400;color:var(--mc-muted)}.mc-table-wrap{overflow-x:auto}.mc-panel table{border-collapse:collapse;width:100%;font-size:10px;text-align:left}.mc-panel th{color:var(--mc-muted);font-weight:400;font-size:9px;padding:0 5px 8px}.mc-panel td{padding:9px 5px;border-top:1px solid var(--mc-line);font-variant-numeric:tabular-nums;white-space:nowrap}.mc-panel td:first-child{white-space:normal;min-width:105px}.mc-panel td b{font-weight:500}.mc-panel td small{display:block;color:var(--mc-muted);font-size:9px;margin-top:3px}.mc-result{display:inline-block;border-radius:20px;padding:4px 6px;font-size:9px}.mc-within{background:#e5f1ed;color:#256651}.mc-outside{background:#f7eadb;color:#946023}.mc-pending{background:#edf0f3;color:#667683}.mc-panel .mc-remove{width:26px;height:26px;padding:0;background:transparent;border:0;font-size:17px;color:var(--mc-muted)}.mc-footer{border-top:1px solid var(--mc-line);align-items:flex-start;margin-top:17px;padding-top:12px;font-size:9px;line-height:1.5;color:var(--mc-muted);flex-wrap:wrap}.mc-form{padding:14px;background:rgba(234,242,245,.65);border-radius:14px;display:grid;grid-template-columns:1fr 1fr;gap:11px;margin:12px 0}.mc-form label{display:flex;flex-direction:column;gap:5px;font-size:10px;color:var(--mc-muted);min-width:0}.mc-form input,.mc-form select{width:100%;min-width:0;border:1px solid var(--mc-line);border-radius:8px;background:rgba(255,255,255,.85);padding:8px;font:inherit;font-size:12px;color:var(--mc-ink)}.mc-bounds{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px}.mc-bounds label{display:block}.mc-bounds input{margin-top:5px}.mc-bounds label span{font-size:9px;float:right}.mc-form-actions{grid-column:1/-1;display:flex;gap:7px;align-items:center;flex-wrap:wrap}.mc-form-actions>span{font-size:9px;color:var(--mc-muted);flex:1}.mc-form-actions button{padding:8px 10px;font-size:10px}.mc-form-actions button[type=submit]{background:#253e4d;color:#fff}.mc-error{font-size:11px;color:#a2473a;line-height:1.4;margin:0 0 10px}.mc-error:empty{display:none}.mc-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
@media(max-width:480px){.mc-panel{padding:16px;border-radius:20px}.mc-heading h2{font-size:20px}.mc-measure{padding:12px 10px}.mc-measure strong{font-size:23px}.mc-form{grid-template-columns:1fr}.mc-panel td,.mc-panel th{padding-left:3px;padding-right:3px}}
@media(prefers-reduced-transparency:reduce){.mc-panel{background:#f7fafb;backdrop-filter:none}}

/* ---- journey.css ---- */
/* The learner's current task is the primary product surface. */
.consumer-shell .main { max-width: 1120px; padding-top: 32px; }
.consumer-shell .topbar { display: none; }
.journey-home, .session-page, .coach-overview { width: 100%; max-width: 720px; margin: 0 auto; }
.journey-heading { margin: 0 0 28px; }
.journey-heading .eyebrow { color: #58708e; margin-bottom: 10px; }
.journey-heading h1 { font-size: clamp(32px, 4vw, 46px); letter-spacing: -.055em; line-height: 1.1; font-weight: 650; }
.journey-heading > p:not(.eyebrow) { margin-top: 12px; color: #647083; font-size: 15px; }
.today-task, .session-surface { padding: 32px; border: 1px solid #e0e5ed; border-radius: 22px; background: #fff; color: #1a2230; }
.today-task.training-upload { min-height: 0; background: #fff; }
.session-label { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 25px; font-size: 13px; color: #626f81; }
.today-task h2 { max-width: 24ch; font-size: clamp(26px, 3vw, 34px); line-height: 1.14; font-weight: 650; letter-spacing: -.04em; }
.task-description { font-size: 16px; line-height: 1.6; color: #586779; margin-top: 14px; max-width: 54ch; }
.session-purpose { margin: 24px 0; border-left: 3px solid #b9d2ff; padding: 2px 0 2px 16px; }
.session-purpose > span { font-size: 12px; font-weight: 650; color: #315d9b; }
.session-purpose p { font-size: 14px; color: #4b586a; margin-top: 5px; line-height: 1.55; }
.today-task > .btn { margin-top: 24px; min-height: 52px; border-radius: 13px; font-size: 15px; background: #225bd7; color: #fff; }
.journey-path { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; padding: 22px 0 0; margin: 26px 0 0; border-top: 1px solid #e8ebf1; }
.journey-path li { font-size: 12px; color: #788293; line-height: 1.45; }
.journey-path li > span { display: block; width: 22px; height: 22px; border: 1px solid #d6dce7; border-radius: 50%; text-align: center; line-height: 20px; font-size: 11px; margin-bottom: 8px; }
.journey-path li.current { color: #215aca; font-weight: 650; }
.journey-path li.current > span { background: #225bd7; color: white; border-color: #225bd7; }
.journey-detail { margin-top: 14px; padding: 0 20px; border-bottom: 1px solid #e0e5ed; }
.journey-detail > summary { min-height: 52px; padding: 15px 0; font-size: 14px; color: #44546b; cursor: pointer; }
.journey-detail[open] { padding-bottom: 20px; }
.journey-detail p { color: #5f6b7b; font-size: 15px; line-height: 1.65; }
.journey-detail h3 { margin-top: 18px; font-size: 16px; }
.journey-links { display: flex; flex-wrap: wrap; gap: 8px 24px; padding: 16px 0; }
.journey-links button { min-height: 44px; background: none; color: #285da9; font-size: 14px; text-align: left; }
.session-header { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin: -10px 0 18px; }
.session-header > span { font-size: 13px; color: #6b788b; }
.session-header .text-btn { min-height: 44px; font-size: 14px; }
.session-surface h2 { font-size: 25px; line-height: 1.25; margin-bottom: 16px; }
.session-surface > .muted { line-height: 1.6; font-size: 15px; }
.session-surface .video-frame { margin: -32px -32px 0; border-radius: 21px 21px 0 0; overflow: hidden; aspect-ratio: 16/9; }
.session-surface .video-frame video, .session-surface .video-frame img { width: 100%; height: 100%; object-fit: contain; }
.session-surface audio { width: 100%; margin: 20px 0; }
.session-surface .quote { font-size: 23px; line-height: 1.45; margin: 20px 0; }
.session-surface .choice { font-size: 15px; line-height: 1.5; padding: 16px; }
.session-surface .field textarea { min-height: 116px; }
.session-primary { margin-top: 22px; min-height: 52px !important; }
.session-footnote { font-size: 12px; line-height: 1.55; color: #778292; margin-top: 16px; }
.session-surface details { margin: 20px 0 0; }
.session-surface details p { font-size: 14px; color: #607087; line-height: 1.65; }
.lesson-intent h2 { font-size: 20px; line-height: 1.4; max-width: 54ch; }
.lesson-intent { margin-bottom: 24px; }
.lesson-intent .journey-detail { margin: 10px 0 0; padding-inline: 0; }
.lesson-explanation { font-size: 16px; line-height: 1.7; color: #39485a; }
.source-caption { font-size: 12px; color: #788294; margin: 14px 0 24px; }
.playback-tools { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-top: 18px; }
.playback-tools button { background: #eff4fc; color: #315b97; border-radius: 9px; min-height: 44px; padding: 10px 18px; font-size: 14px; }
.playback-tools label { display: flex; align-items: center; gap: 10px; font-size: 14px; color: #5a6880; }
.playback-tools select { min-height: 44px; padding: 8px; font-size: 16px; width: 90px; }
.practice-brief { margin-bottom: 22px; padding: 0 4px; }
.practice-brief > p { font-size: 16px; line-height: 1.65; color: #38485e; margin-top: 8px; }
.practice-brief details p { font-size: 14px; color: #617087; line-height: 1.6; }
.practice-brief summary { color: #345b92; }
.session-page > .session-page { max-width: none; }
.feedback-byline { font-size: 12px; color: #61738f; display: block; margin-bottom: 15px; }
.next-step-panel { border-left: 3px solid var(--accent, #2960d2); background: var(--surface-tint, #f2f6fd); color: var(--ink, #1d1d1f); margin: 24px -12px; padding: 22px; border-radius: 0 12px 12px 0; }
.next-step-panel h2 { margin: 9px 0 0; font-size: 22px; }
.history-item { padding-block: 22px; border-bottom: 1px solid #e1e5eb; }
.history-item time { font-size: 12px; color: #7a8697; }
.history-item p { margin-top: 10px; }
.history-item video { width: 100%; max-height: 360px; background: #171b21; border-radius: 12px; margin-top: 18px; }
.coach-shortcuts { margin-top: 20px; }
.coach-shortcuts > button { display: flex; justify-content: space-between; align-items: center; gap: 18px; width: 100%; border-bottom: 1px solid #e0e5ed; padding: 23px 4px; background: none; text-align: left; }
.coach-shortcuts strong { font-size: 16px; }
.coach-shortcuts span { font-size: 13px; color: #66778e; }
.tools-menu { position: relative; border: 0; padding: 0; }
.tools-menu > summary { list-style: none; display: flex; gap: 10px; align-items: center; justify-content: center; cursor: pointer; min-height: 44px; min-width: 76px; padding: 10px 12px; color: #445369; font-size: 14px; border: 1px solid #e1e6ee; border-radius: 12px; background: #ffffffa6; }
.tools-menu > summary::-webkit-details-marker { display: none; }
.tools-menu > summary span { font-size: 18px; line-height: 10px; }
.tools-popover { position: absolute; z-index: 80; right: 0; top: calc(100% + 10px); width: 238px; padding: 10px; border-radius: 16px; background: #fff; border: 1px solid #dce4ef; box-shadow: 0 14px 44px #26344b24; }
.tools-identity { font-size: 12px; color: #7a8799; padding: 9px 12px 13px; overflow-wrap: anywhere; }
.tools-popover button { display: block; min-height: 46px; width: 100%; padding: 12px; border-radius: 9px; font-size: 14px; background: transparent; color: #34465e; text-align: left; }
.tools-popover button:hover, .tools-popover button:focus-visible { background: #f0f5fd; }
.tools-divider { border-top: 1px solid #e4e9f1; margin-block: 5px; }
.consumer-shell .quiet-note { margin-top: 14px; }
@media(max-width:800px) {
  .consumer-shell .main { padding-top: 22px; }
  .journey-heading { margin-bottom: 22px; }
  .journey-heading h1 { font-size: 34px; }
  .today-task, .session-surface { padding: 23px; border-radius: 17px; }
  .today-task h2 { font-size: 28px; }
  .session-label { font-size: 12px; gap: 8px; align-items: flex-start; margin-bottom: 20px; }
  .session-label .badge { font-size: 10px; white-space: nowrap; }
  .task-description { font-size: 15px; }
  .session-purpose p { font-size: 14px; }
  .journey-path { gap: 8px; }
  .journey-path li { font-size: 11px; }
  .journey-detail { padding-inline: 6px; }
  .journey-links { gap: 4px 20px; }
  .session-surface .video-frame { margin: -23px -23px 0; border-radius: 16px 16px 0 0; }
  .session-surface .quote { font-size: 21px; }
  .session-surface .btn { min-height: 50px; }
  .coach-shortcuts > button { flex-direction: column; align-items: flex-start; gap: 7px; }
  .consumer-shell .nav { left: 18px; right: 18px; max-width: 420px; }
  .consumer-shell .nav button { font-size: 12px; }
  .tools-popover { position: absolute; max-width: calc(100vw - 28px); }
  .session-surface .upload { padding: 18px 13px; }
}
@media(prefers-reduced-motion:reduce) { .journey-home *, .session-page * { scroll-behavior: auto; } }

.consumer-shell .session-surface .btn:not(.outline):not(.secondary):not(.text-btn), .consumer-shell .session-primary { color: #fff; background: #225bd7; border-color: #225bd7; }
.consumer-shell .session-surface .btn:not(.outline):not(.secondary):not(.text-btn):hover, .consumer-shell .session-primary:hover { background: #174bb8; }

/* Keep the practice itself ahead of the recording form. */
.drills-page .session-surface, .session-page > .assigned-drill,
.session-page > .drill-next { margin-bottom: 20px; }
.drill-meta { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: space-between; margin-bottom: 18px; }
.drill-meta .eyebrow { font-size: 10px; }
.drill-focus { padding: 18px 20px; border-radius: 12px; background: var(--surface-tint, #f2f6fd); margin-top: 22px; }
.drill-focus h3, .drill-instructions-title { font-size: 14px; font-weight: 650; color: var(--accent-deep, #315d9b); }
.drill-focus p { margin-top: 7px; line-height: 1.6; font-size: 15px; color: var(--ink-soft, #38485e); }
.drill-instructions-title { margin-top: 24px; }
.drill-steps { padding-left: 22px; margin: 16px 0 4px; }
.drill-steps li { padding: 0 0 14px 8px; font-size: 15px; line-height: 1.65; color: #38485e; }
.drill-steps li::marker { color: #5475a7; font-weight: 650; }
.drill-demonstration video { display: block; width: 100%; max-height: 380px; margin-top: 18px; border-radius: 12px; background: #171b21; }
.assigned-drill details summary { cursor: pointer; min-height: 44px; padding-block: 12px; font-size: 14px; color: #345b92; }
.assigned-drill blockquote { border-left: 2px solid #dce5f3; padding-left: 14px; margin: 18px 0; }
.assigned-drill cite { display: block; font-size: 12px; color: #778292; line-height: 1.6; margin-top: 8px; }
.drill-next > .eyebrow { display: block; color: var(--accent-deep, #315d9b); margin-bottom: 12px; }
.drill-next { border-color: #b9d2ff; }
.drill-intro { font-size: 15px; line-height: 1.65; color: #617087; margin-bottom: 22px; }
.starter-drill { padding-block: 0; }
.starter-drill > summary { list-style: none; cursor: pointer; position: relative; padding: 26px 24px 26px 0; }
.starter-drill > summary::-webkit-details-marker { display: none; }
.starter-drill > summary::after { content: "+"; position: absolute; right: 0; top: 31px; color: #315d9b; font-size: 23px; }
.starter-drill[open] > summary::after { content: "−"; }
.starter-drill summary .eyebrow { display: block; color: #58708e; margin-bottom: 12px; }
.starter-drill summary h2 { margin-bottom: 8px; }
.drill-summary-goal { display: block; color: #617087; font-size: 15px; line-height: 1.6; }
.starter-drill .drill-steps { margin-top: 0; padding-bottom: 12px; }
.previous-drill { padding-inline: 0; margin-bottom: 20px; border: 0; }
.previous-drill > summary { padding-inline: 4px; }
.previous-drill .session-surface { margin-bottom: 0; }
.drill-next, .assigned-drill, .practice-brief { overflow-wrap: anywhere; }
@media(max-width:800px) {
  .starter-drill { padding-block: 0; }
  .drill-focus { padding: 16px; }
}

/* Coach decisions stay separate from the learner's next action. */
.coach-queues { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.coach-queue { padding: 28px 24px; border: 1px solid #dae3ef; border-radius: 20px; background: #f4f7fc; text-align: left; min-width: 0; color: #243449; display: flex; flex-direction: column; align-items: flex-start; }
.coach-queue:hover { background: #edf3fd; border-color: #92b4ea; }
.queue-icon { color: #2762c2; margin-bottom: 25px; }
.queue-icon svg { width: 28px; height: 28px; }
.coach-queue h2 { font-size: 21px; line-height: 1.25; letter-spacing: -.035em; margin-bottom: 20px; }
.queue-count { font-size: 31px; font-weight: 650; line-height: 1.15; }
.queue-count small { display: block; font-size: 12px; font-weight: 500; color: #586a80; margin-top: 6px; }
.coach-queue p { font-size: 13px; color: #596a7e; line-height: 1.6; margin: 22px 0; }
.queue-open { color: #245dc1; display: flex; width: 100%; justify-content: space-between; gap: 12px; font-size: 13px; margin-top: auto; }
.workflow-page { max-width: 1040px; margin: 0 auto; overflow-wrap: anywhere; }
.workflow-page .page-heading h1 { font-size: clamp(27px, 4vw, 42px); line-height: 1.18; max-width: 30ch; }
.workflow-columns { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 22px; }
.workflow-columns > * { min-width: 0; }
.workflow-page .session-surface { margin-bottom: 20px; }
.workflow-page .session-surface h2 { font-size: 24px; line-height: 1.3; }
.workflow-list { margin-bottom: 26px; }
.workflow-row { display: flex; align-items: center; justify-content: space-between; gap: 24px; width: 100%; padding: 24px 5px; min-height: 76px; border-bottom: 1px solid #dbe2ec; background: transparent; color: #243449; text-align: left; }
.workflow-row:hover { background: #f3f7fd; }
.workflow-row > span:first-child { min-width: 0; }
.workflow-row strong { display: block; font-size: 16px; line-height: 1.55; }
.workflow-row > span > span:not(.badge), .workflow-row small { display: block; font-size: 13px; color: #62748a; margin-top: 6px; line-height: 1.5; }
.workflow-row .workflow-row-end { display: flex; gap: 15px; align-items: center; flex-shrink: 0; }
.workflow-row .workflow-row-end .badge { white-space: normal; }
.response-evidence section { padding: 25px 0; border-bottom: 1px solid #e2e7ef; }
.response-evidence section > .eyebrow { display: block; margin-bottom: 13px; }
.response-evidence h3 { font-size: 16px; line-height: 1.5; }
.response-evidence p { font-size: 15px; line-height: 1.7; margin-top: 12px; white-space: pre-wrap; }
.response-evidence time { display: block; font-size: 12px; color: #728198; margin-top: 15px; }
.fingerprint { overflow-wrap: anywhere; }
.learning-review { padding: 24px 0; border-bottom: 1px solid #dfe5ed; }
.learning-review h3 { font-size: 18px; }
.learning-review > p { margin-top: 12px; line-height: 1.6; }
.learning-review .next-step-panel { margin-inline: 0; }
.learner-understanding { margin-bottom: 22px; }
.learner-understanding > .eyebrow { display: block; color: #265cae; margin-bottom: 18px; }
.learner-understanding .next-step-panel h3 { margin-top: 10px; line-height: 1.5; }
.learner-understanding .next-step-panel p { margin-top: 12px; line-height: 1.6; }
.question-attached { margin: 20px 0; background: #f0f5fd; color: #396094; border-radius: 10px; padding: 14px 16px; font-size: 13px; line-height: 1.6; }
.question-context { margin: 10px 0 22px; }
.question-context > summary { margin-bottom: 16px; }
.source-window-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.question-controls { margin-top: 22px; }
.question-status { max-width: 650px; }
.expert-reply { border-top: 1px solid #dce5f3; margin-top: 25px; padding-top: 25px; }
.expert-reply > p { margin: 14px 0; line-height: 1.7; }
.expert-reply > .record-text { font-size: 18px; }
.recall-list { margin: 25px 0; }
.recall-item { border-block-end: 1px solid #dbe4f0; padding: 23px 0; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.recall-item > div { min-width: 0; }
.recall-item h3 { font-size: 17px; line-height: 1.4; }
.recall-item p { font-size: 13px; color: #64758d; margin-top: 8px; line-height: 1.6; }
.recall-item button { flex-shrink: 0; }
.recall-still { width: 100%; height: auto; border-radius: 12px; margin-top: 22px; }
.recall-options { border: 0; padding: 20px 0 0; min-width: 0; }
.recall-options legend { font-size: 13px; font-weight: 650; padding-top: 20px; }
.saved-confirmation { background: #edf5ff; border-radius: 10px; color: #254f86; padding: 18px; line-height: 1.65; margin-top: 20px; }
.saved-confirmation button { display: block; margin-top: 12px; min-height: 44px; }
.workflow-page input, .workflow-page select, .workflow-page textarea { min-width: 0; max-width: 100%; }
@media (max-width: 800px) {
  .coach-queues, .workflow-columns { grid-template-columns: minmax(0, 1fr); }
  .coach-queue { display: grid; grid-template-columns: minmax(0, 1fr) auto; padding: 24px; column-gap: 12px; }
  .queue-icon { display: none; }
  .coach-queue h2 { margin-bottom: 8px; font-size: 22px; }
  .queue-count { grid-column: 2; grid-row: 1 / 3; text-align: right; font-size: 28px; max-width: 100px; }
  .queue-count small { font-size: 11px; line-height: 1.4; }
  .coach-queue p { margin: 0 0 18px; grid-column: 1; }
  .queue-open { grid-column: 1 / -1; border-top: 1px solid #dbe5f3; padding-top: 16px; }
  .workflow-row { align-items: flex-start; flex-direction: column; gap: 12px; padding: 23px 4px; }
  .workflow-row .workflow-row-end { width: 100%; justify-content: space-between; }
  .source-window-fields { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .recall-item { align-items: flex-start; flex-direction: column; gap: 14px; }
  .workflow-page .page-heading { align-items: flex-start; }
  .workflow-page .context-nav { width: 100%; }
}
.workflow-page [hidden] { display: none !important; }
.workflow-page h1:focus, .coach-overview h1:focus { outline: none; }
.recall-options .choice { display: flex; align-items: flex-start; gap: 12px; margin: 10px 0; padding: 15px; line-height: 1.55; }
.recall-options .choice input { flex: 0 0 auto; margin-top: 5px; }

/* Sessions whose lesson version can't be opened: one refresh action per player. */
.refresh-notices { margin-bottom: 20px; }
.refresh-notices h2 { margin: 6px 0 4px; }
.refresh-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; padding: 14px 0 0; margin-top: 14px; border-top: 1px solid var(--line, rgba(15, 23, 42, .1)); }
.refresh-row > div { min-width: 0; flex: 1 1 200px; }
.refresh-row p { margin: 2px 0 0; overflow-wrap: anywhere; }
.refresh-row .btn { flex: 0 0 auto; }
#upload-status[data-connection="lost"], #rep-library-status[data-connection="lost"] { color: #775923; }

/* Automatic transcript under a practice rep: collapsed, clearly machine-made. */
.rep-transcript { margin: 12px 0 0; padding: 10px 14px; border: 1px solid var(--line, rgba(15, 23, 42, .1)); border-radius: 12px; background: rgba(255, 255, 255, .6); }
.rep-transcript summary { cursor: pointer; font-weight: 600; min-height: 32px; display: flex; align-items: center; }
.rep-transcript ol { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 6px; }
.rep-transcript li { display: grid; grid-template-columns: 3.2em 1fr; gap: 8px; line-height: 1.5; overflow-wrap: anywhere; }
.rep-transcript time { font-variant-numeric: tabular-nums; color: var(--muted, #64748b); }
.card > .rep-transcript { margin: 12px 16px 0; }

/* ---- coaching.css ---- */
/* A small booking surface within the learner's three-tab journey. */
.coaching-page { max-width: 820px; margin: 0 auto; color: #1c2737; }
.coaching-page * { box-sizing: border-box; }
.coaching-page h2, .coaching-page h3 { overflow-wrap: anywhere; }
.coaching-page h2 { font-size: 24px; line-height: 1.25; letter-spacing: -.035em; }
.coaching-page h3 { font-size: 19px; line-height: 1.35; letter-spacing: -.025em; }
.coaching-page p { font-size: 14px; line-height: 1.65; }
.coaching-page button, .coaching-page input, .coaching-page textarea, .coaching-page select { font-family: inherit; }
.coaching-page button:focus-visible, .coaching-page input:focus-visible, .coaching-page textarea:focus-visible, .coaching-page select:focus-visible, .coaching-page summary:focus-visible { outline: 2px solid #225bd7; outline-offset: 4px; }
.coaching-page .coaching-timezone { color: #626e80; font-size: 12px; margin: 0 0 19px; }
.coaching-section-heading { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 16px; }
.coaching-section-heading h2 { font-size: 20px; }
.coaching-button { min-height: 48px; border: 1px solid #225bd7; border-radius: 10px; padding: 12px 20px; background: #225bd7; color: #fff; font-size: 14px; font-weight: 650; line-height: 1.5; }
.coaching-button:hover { background: #164bbf; }
.coaching-button.secondary { color: #345278; background: #fff; border-color: #dce3ee; }
.coaching-button.secondary:hover { background: #f3f6fc; }
.coaching-button:disabled { opacity: .5; }
.coaching-text { min-height: 44px; padding: 9px 0; background: transparent; color: #285da9; font-size: 14px; line-height: 1.5; text-align: left; }
.coaching-text:hover { color: #12489e; text-decoration: underline; text-underline-offset: 3px; }
.coaching-coaches { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.coaching-card, .coaching-empty { padding: 27px; border-radius: 17px; border: 1px solid #e0e5ed; background: #fff; min-width: 0; }
.coaching-card { display: flex; flex-direction: column; align-items: flex-start; }
.coaching-card > .coaching-button { margin-top: auto; }
.coaching-person { display: flex; gap: 13px; align-items: flex-start; width: 100%; }
.coaching-person > div:last-child { min-width: 0; }
.coaching-initial { flex-shrink: 0; display: grid; place-items: center; width: 43px; height: 43px; border-radius: 50%; background: #eef3fb; color: #456ba3; font-size: 19px; font-weight: 600; }
.coaching-focus { color: #365c92; font-size: 14px; line-height: 1.6; margin-top: 7px; overflow-wrap: anywhere; }
.coaching-bio { color: #626e80; margin: 16px 0 24px; white-space: pre-wrap; overflow-wrap: anywhere; }
.coaching-empty { padding-block: 32px; }
.coaching-empty h3 { font-size: 21px; }
.coaching-empty p { margin-top: 10px; color: #626e80; max-width: 45ch; }
.coaching-request .coaching-card { display: block; }
.coaching-back { margin: -8px 0 12px; }
.coaching-request fieldset { border: 0; margin: 0 0 22px; padding: 0; min-width: 0; }
.coaching-request legend { font-size: 17px; font-weight: 650; padding: 0; margin-bottom: 14px; }
.coaching-times { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.coaching-time-choice { display: flex; gap: 11px; align-items: center; border: 1px solid #dce3ee; border-radius: 10px; padding: 14px; cursor: pointer; min-height: 75px; }
.coaching-time-choice:has(input:checked) { background: #f0f5ff; border-color: #225bd7; }
.coaching-time-choice input { flex: 0 0 17px; width: 17px; height: 17px; margin: 0; padding: 0; accent-color: #225bd7; }
.coaching-page time { display: block; font-size: 14px; font-weight: 650; line-height: 1.6; overflow-wrap: anywhere; }
.coaching-page time > span { display: block; font-size: 12px; font-weight: 400; color: #626e80; margin-top: 4px; }
.coaching-field { display: flex; flex-direction: column; gap: 8px; margin: 17px 0; min-width: 0; }
.coaching-field > span { font-size: 14px; font-weight: 600; color: #43536a; }
.coaching-field input, .coaching-field textarea, .coaching-field select { width: 100%; min-width: 0; min-height: 47px; padding: 12px; background: #fff; border: 1px solid #d8e0eb; border-radius: 8px; color: #22354b; font-size: 16px; box-shadow: none; }
.coaching-field textarea { resize: vertical; min-height: 100px; line-height: 1.6; }
.coaching-field input::placeholder, .coaching-field textarea::placeholder { color: #6e7a8c; font-size: 14px; }
.coaching-note { color: #626e80; font-size: 13px !important; margin-top: 14px; line-height: 1.7; }
.coaching-error { color: #a13831; font-size: 14px; margin: 12px 0; overflow-wrap: anywhere; }
.coaching-error:empty { display: none; }
.coaching-load-error { background: #fff6f3; border: 1px solid #ead5cf; border-radius: 10px; padding: 15px; }
.coaching-load-error .coaching-button { display: block; margin-top: 12px; }
.coaching-bookings { margin-top: 34px; }
.coaching-booking { background: #fff; border: 1px solid #e0e5ed; border-radius: 15px; padding: 25px; margin-bottom: 14px; min-width: 0; }
.coaching-booking-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; margin-bottom: 15px; }
.coaching-booking-heading h3 { overflow-wrap: anywhere; }
.coaching-status { padding: 5px 10px; background: #eef2f8; border-radius: 6px; font-size: 12px; color: #536682; line-height: 1.5; }
.coaching-status.status-confirmed { background: #eaf4ee; color: #306744; }
.coaching-status.status-pending { background: #f4f0e6; color: #786130; }
.coaching-goal { margin-top: 19px; }
.coaching-goal > span { font-size: 12px; color: #626e80; }
.coaching-goal > p { margin-top: 5px; color: #42526a; white-space: pre-wrap; overflow-wrap: anywhere; }
.coaching-meeting { margin-top: 20px; padding: 18px; background: #f0f5fd; border-radius: 10px; }
.coaching-meeting h4 { margin: 0 0 7px; font-size: 14px; font-weight: 650; }
.coaching-meeting p { white-space: pre-wrap; overflow-wrap: anywhere; }
.coaching-cancel { font-size: 13px; color: #626e80; margin-top: 11px; }
.coaching-management { border-top: 1px solid #dde4ee; margin-top: 34px; padding-top: 6px; }
.coaching-management > summary { min-height: 55px; padding: 15px 0; font-size: 15px; font-weight: 650; color: #3f5678; cursor: pointer; }
.coaching-management-body { padding: 19px 0; }
.coaching-management-body > section { padding: 25px; border: 1px solid #e0e5ed; border-radius: 16px; background: #fff; margin-bottom: 20px; }
.coaching-check { display: flex; align-items: center; gap: 11px; min-height: 44px; margin-top: 17px; font-size: 14px; color: #44546c; cursor: pointer; }
.coaching-check input { width: 18px; height: 18px; margin: 0; padding: 0; accent-color: #225bd7; flex-shrink: 0; }
.coaching-slot-fields { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(130px,1fr); gap: 15px; }
.coaching-availability .coaching-timezone { margin-top: 12px; }
.coaching-availability-list { list-style: none; padding: 0; margin: 24px 0 0; }
.coaching-availability-list li { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 15px 0; border-top: 1px solid #e4e9f1; }
.coaching-availability-list .coaching-text { flex-shrink: 0; font-size: 13px; }
.coaching-management-body > .coaching-bookings { padding: 0; background: transparent; border: 0; }
.coaching-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 16px; }
.coaching-response-form { border-top: 1px solid #e2e7ef; margin-top: 23px; padding-top: 3px; }
.coaching-dialog { width: min(440px, calc(100vw - 36px)); padding: 27px; border: 1px solid #dce3ee; border-radius: 16px; box-shadow: 0 15px 70px #1e2b4230; color: #253951; background: #fff; }
.coaching-dialog::backdrop { background: #17223175; }
.coaching-dialog h2 { font-size: 24px; }
.coaching-dialog p { margin-top: 14px; color: #626e80; }
.coaching-dialog .coaching-actions { justify-content: flex-end; margin-top: 23px; }
.coaching-today-card { display: flex; justify-content: space-between; align-items: center; gap: 22px; padding: 22px 25px; margin-top: 18px; border: 1px solid #e0e5ed; background: #fff; border-radius: 16px; }
.coaching-today-card h2 { font-size: 18px; line-height: 1.35; }
.coaching-today-card p { color: #626e80; font-size: 14px; line-height: 1.6; margin-top: 5px; }
.coaching-today-card button { font-size: 14px; min-height: 44px; flex-shrink: 0; background: transparent; color: #225bd7; padding: 8px 0; }
.coaching-drills-link { display: flex; align-items: center; justify-content: space-between; gap: 15px; border-bottom: 1px solid #dde5f0; margin: -8px 0 25px; padding: 3px 0 16px; }
.coaching-drills-link p { font-size: 14px; color: #626e80; }
.coaching-drills-link button { min-height: 44px; background: transparent; color: #225bd7; padding: 8px 0; font-size: 14px; flex-shrink: 0; }
@media(max-width:680px) {
  .coaching-coaches, .coaching-times, .coaching-slot-fields { grid-template-columns: 1fr; }
  .coaching-card, .coaching-empty, .coaching-booking, .coaching-management-body > section { padding: 21px; border-radius: 14px; }
  .coaching-page h2 { font-size: 22px; }
  .coaching-section-heading h2 { font-size: 19px; }
  .coaching-section-heading { gap: 12px; align-items: flex-start; }
  .coaching-section-heading > button { flex-shrink: 0; font-size: 12px; }
  .coaching-slot-fields { gap: 0; }
  .coaching-slot-fields .coaching-field { margin-bottom: 7px; }
  .coaching-slot-fields + .coaching-button { margin-top: 17px; }
  .coaching-availability-list li { flex-wrap: wrap; gap: 3px; }
  .coaching-management-body { padding-top: 12px; }
  .coaching-time-choice { padding: 12px; }
  .coaching-page time { font-size: 14px; }
  .coaching-response-form .coaching-button { width: 100%; }
  .coaching-today-card { flex-direction: column; align-items: flex-start; gap: 7px; padding: 20px 22px; }
  .coaching-drills-link { flex-wrap: wrap; gap: 2px; }
}

/* ---- positions.css ---- */
.positions-workspace{--ps-blue:#0671e3;--ps-ink:#192634;--ps-muted:#667483;--ps-line:#dfe6ed;max-width:1130px;margin:0 auto;padding:28px 22px 100px;color:var(--ps-ink);text-align:left}.positions-workspace *{box-sizing:border-box}.positions-workspace h1,.positions-workspace h2,.positions-workspace h3,.positions-workspace h4,.positions-workspace p{margin:0}.positions-workspace h1{font-size:clamp(33px,4vw,48px);line-height:1.1;font-weight:650;letter-spacing:-.045em}.positions-workspace h2{font-size:clamp(24px,3vw,32px);line-height:1.15;font-weight:650;letter-spacing:-.03em}.positions-workspace h3{font-size:20px;line-height:1.3;letter-spacing:-.025em;font-weight:650}.positions-workspace h4{font-size:15px;line-height:1.4;font-weight:650}.positions-workspace p{font-size:14px;line-height:1.6}.positions-workspace h2+p,.positions-workspace h3+p,.positions-workspace h4+p{margin-top:10px}.positions-workspace button,.positions-workspace input,.positions-workspace select,.positions-workspace textarea{font:inherit}.positions-workspace button{cursor:pointer}.positions-workspace button:disabled{cursor:default;opacity:.5}.positions-workspace button:focus-visible,.positions-workspace summary:focus-visible{outline:3px solid #81bdfa;outline-offset:4px}.positions-workspace input:focus,.positions-workspace select:focus,.positions-workspace textarea:focus{outline:3px solid #c1ddfb;border-color:var(--ps-blue)}.positions-workspace svg{display:block;width:20px;height:20px;flex-shrink:0}.ps-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;padding:8px 0 27px}.ps-heading>div>p:last-child{font-size:17px;margin-top:15px;color:var(--ps-muted)}.ps-eyebrow,.positions-workspace p.ps-eyebrow{display:block;font-size:10px;letter-spacing:.11em;font-weight:700;text-transform:uppercase;color:var(--ps-muted);margin:0 0 12px}.ps-tabs{display:flex;gap:30px;margin-bottom:30px;border-bottom:1px solid var(--ps-line)}.ps-tabs button{border:0;border-radius:0;border-bottom:2px solid transparent;background:none;padding:14px 0;font-size:15px;font-weight:600;color:var(--ps-muted)}.ps-tabs button[aria-current=page]{color:var(--ps-blue);border-bottom-color:var(--ps-blue)}.ps-content{display:grid;gap:24px}.ps-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ps-blue);border:1px solid transparent;border-radius:25px;color:#fff;padding:11px 20px;min-height:44px;max-width:100%;font-size:13px;font-weight:600;line-height:1.4;text-decoration:none}.ps-button.secondary{background:#eff5fc;color:#1768b9;border-color:#e0eafa}.ps-button:hover{filter:brightness(.97)}.ps-catalogue{display:flex;flex-wrap:wrap;gap:20px 32px;border-bottom:1px solid var(--ps-line);padding-bottom:28px}.ps-position-group{display:grid;gap:10px;min-width:0}.ps-position-group>span{font-size:10px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;color:var(--ps-muted)}.ps-position-group>div{display:flex;gap:6px;flex-wrap:wrap}.ps-position{border:1px solid #dce5ef;background:#fff;border-radius:11px;min-width:44px;min-height:44px;padding:8px;font-size:13px;font-weight:650;color:#4e6174}.ps-position.selected{border-color:var(--ps-blue);background:#eaf2fd;color:#0d4fa8;box-shadow:none}.ps-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px}.ps-section-heading>div{min-width:0}.ps-section-heading>div>p:last-child{color:var(--ps-muted)}.ps-surface{border:1px solid var(--ps-line);background:#fff;border-radius:18px;padding:28px;min-width:0;box-shadow:0 3px 15px #18355203}.ps-empty{border:1px dashed #d4e0ed;border-radius:18px;background:#f8fbfe;padding:44px 25px;text-align:center}.ps-empty p{max-width:540px;color:var(--ps-muted);margin:13px auto 22px}.ps-empty-icon{display:flex;justify-content:center;align-items:center;border:1px solid #e4ecf6;width:47px;height:47px;margin:0 auto 20px;color:var(--ps-blue);border-radius:14px;background:white}.ps-muted,.positions-workspace p.ps-muted{color:var(--ps-muted)}.ps-footnote,.positions-workspace p.ps-footnote{font-size:12px;line-height:1.55;color:var(--ps-muted)}.ps-pill{font-size:10px;font-weight:600;line-height:1.4;color:#647384;background:#f3f6fa;border:1px solid #e4eaf1;border-radius:7px;padding:5px 9px;display:inline-block;max-width:100%;overflow-wrap:anywhere}.ps-pill.provisional{color:#84682f;background:#fff9ed;border-color:#eee2c5}.ps-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.positions-workspace details{margin-top:18px;padding-top:16px;border-top:1px solid var(--ps-line)}.positions-workspace details.ps-surface{margin-top:0;padding:25px 28px}.positions-workspace summary{display:flex;gap:12px;align-items:center;justify-content:space-between;cursor:pointer;list-style:none;font-size:13px;font-weight:600;line-height:1.4;min-height:28px}.positions-workspace summary::-webkit-details-marker{display:none}.positions-workspace summary:after{content:'+';font-size:20px;font-weight:400;line-height:20px;color:var(--ps-blue);flex-shrink:0;margin-left:auto}.positions-workspace details[open]>summary:after{content:'−'}.positions-workspace details[open]>summary{margin-bottom:18px}.positions-workspace summary>div{min-width:0}.positions-workspace summary .ps-eyebrow{font-size:9px;margin-bottom:8px}.ps-summary-hint{font-size:11px;color:var(--ps-muted);font-weight:400;white-space:nowrap;margin-left:auto}.ps-area-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:22px}.ps-area-grid article{padding:18px;border:1px solid #e8edf3;border-radius:12px;background:#f9fbfd}.ps-area-grid p{font-size:12px;color:var(--ps-muted)}.ps-profile-list{display:grid;gap:18px}.ps-profile-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.ps-profile-heading h3{font-size:23px}.ps-profile-heading p.ps-muted{font-size:12px;margin-top:9px}.ps-criteria-preview{margin:22px 0}.ps-preview-row{display:flex;justify-content:space-between;gap:30px;padding:17px 0;border-top:1px solid var(--ps-line)}.ps-preview-row>div{min-width:0}.ps-preview-row>div:first-child{flex:1}.ps-preview-row>div:last-child{text-align:right;max-width:40%;flex-shrink:0}.ps-preview-row strong{display:block;font-size:14px;line-height:1.5;overflow-wrap:anywhere}.ps-preview-row span{display:block;font-size:12px;line-height:1.5;color:var(--ps-muted);margin-top:6px;overflow-wrap:anywhere}.ps-profile .ps-actions>.ps-button{font-size:12px;min-height:38px;padding:8px 15px}.ps-player-controls{display:flex;justify-content:space-between;align-items:flex-end;gap:20px}.ps-player-controls .ps-field{margin:0;flex:1;max-width:550px}.ps-field{display:grid;gap:8px;min-width:0;margin:19px 0;font-size:12px;font-weight:600;color:#536574}.ps-field input,.ps-field textarea,.ps-field select{font-size:14px;line-height:1.5;font-weight:400;min-width:0;width:100%;border:1px solid #d9e3ec;background:#fff;color:var(--ps-ink);border-radius:9px;padding:11px 13px;min-height:46px}.ps-field input[readonly]{background:#f2f5f8;color:var(--ps-muted)}.ps-field textarea{min-height:105px;resize:vertical}.ps-player-directory{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ps-player-row{display:flex;align-items:center;gap:15px;border:1px solid var(--ps-line);background:#fff;border-radius:13px;padding:22px;text-align:left;color:var(--ps-ink);min-width:0}.ps-player-row>span:nth-child(2){display:grid;gap:7px;min-width:0;flex:1}.ps-player-row>span strong{font-size:15px;overflow-wrap:anywhere}.ps-player-row>span small{font-size:11px;color:var(--ps-muted)}.ps-player-row>svg{color:var(--ps-blue);width:16px}.ps-avatar{display:flex;align-items:center;justify-content:center;background:#eff6fe;color:#4788c6;border:1px solid #e0ecf8;border-radius:12px;width:42px;height:42px;flex-shrink:0}.ps-player-overview{padding:32px}.ps-player-overview .ps-section-heading h2{font-size:31px}.ps-score{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin:30px 0 15px}.ps-met{display:flex;align-items:center;gap:15px}.ps-score-icon{display:flex;align-items:center;justify-content:center;border:1px solid #dce4ec;width:44px;height:44px;border-radius:50%;color:#98a7b5;background:#f4f7fa}.ps-score-icon.has-match{color:#138363;border-color:#cbe8dd;background:#edf9f3}.ps-score-icon svg{width:24px;height:24px}.ps-met>strong{font-size:42px;letter-spacing:-.035em;font-weight:650;line-height:1}.ps-met small{font-size:23px;font-weight:500;color:#526778;letter-spacing:-.025em}.ps-exceeded{display:flex;gap:6px;align-items:center;font-size:13px;font-weight:600;color:#1775ca;background:#ecf5fe;border:1px solid #d4e8fb;padding:8px 12px;border-radius:20px}.ps-exceeded svg{width:16px;height:16px}.ps-coverage,.positions-workspace p.ps-coverage{color:var(--ps-muted);font-size:13px}.ps-coverage-track{margin:20px 0 10px;height:5px;border-radius:5px;background:#eaf0f6;overflow:hidden}.ps-coverage-track>span{display:block;height:100%;background:#1878dd;border-radius:5px}.ps-calculation dl{display:grid;gap:10px;font-size:13px;margin:19px 0}.ps-calculation dl>div{display:flex;justify-content:space-between;gap:20px}.ps-calculation dt{color:var(--ps-muted)}.ps-calculation dd{margin:0;font-weight:600}.ps-calculation>p{color:var(--ps-muted)}.ps-player-profiles{display:grid;gap:16px}.ps-profile-summary{display:grid;gap:7px;flex-shrink:0;text-align:right;margin-left:auto}.ps-profile-summary>span{font-size:13px;font-weight:600;color:#366680}.ps-profile-summary>small{display:flex;align-items:center;justify-content:flex-end;font-size:11px;color:#237bc6}.ps-profile-summary svg{width:13px;height:13px}.ps-profile-meta{display:block;font-size:11px;color:var(--ps-muted);font-weight:400;margin-top:7px}.ps-evaluations{display:grid;gap:0}.ps-criterion-result{padding:22px 0;border-top:1px solid var(--ps-line)}.ps-criterion-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.ps-criterion-title h4{font-size:16px}.ps-criterion-title p{font-size:12px;color:var(--ps-muted);margin-top:7px}.ps-result-status{display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:7px;border:1px solid #e1e7ed;background:#f5f7f9;color:#71818e;font-size:10px;font-weight:600;line-height:1.4;flex-shrink:0}.ps-result-status svg{width:13px;height:13px}.ps-result-status.met{background:#eef8f2;color:#247853;border-color:#d7ebdf}.ps-result-status.exceeded{background:#eef6ff;color:#1f70b6;border-color:#d9e9f8}.ps-result-status.below{background:#fbf4f0;color:#906248;border-color:#eee0d6}.ps-result-status.uncertain{background:#fff9ee;color:#886c30;border-color:#efe2c5}.ps-measurement{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:17px 0}.ps-measurement>strong{font-size:24px;font-weight:600;letter-spacing:-.025em}.ps-measurement>span:not(.ps-pill){font-size:11px;color:var(--ps-muted)}.ps-criterion-result>details{margin-top:13px;padding-top:12px;border-top:0}.ps-criterion-result>details p{font-size:13px;margin:12px 0;color:#576978}.ps-criterion-result>.ps-button{margin-top:15px;font-size:12px;min-height:38px;padding:8px 14px}.positions-workspace blockquote{margin:14px 0;padding:2px 0 2px 14px;border-left:2px solid #b7d4ee;font-size:13px;line-height:1.6;overflow-wrap:anywhere;color:#536776}.ps-profile-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--ps-line);padding-top:20px}.ps-profile-footer>span{font-size:11px;color:var(--ps-muted)}.ps-profile-footer .ps-button{font-size:11px;min-height:35px;padding:7px 13px}.ps-observation-history article{padding:20px 0;border-top:1px solid var(--ps-line)}.ps-observation-history article>strong{font-size:16px}.ps-observation-history article>p{font-size:12px;color:var(--ps-muted);margin-top:6px}.ps-form-navigation{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;color:var(--ps-muted)}.ps-form{max-width:840px;width:100%;margin:0 auto;padding:34px}.ps-form>p:not(.ps-eyebrow){color:var(--ps-muted);margin-top:12px}.ps-form>h2{font-size:30px}.ps-form>.ps-field{margin-top:26px}.ps-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.ps-form-grid>.ps-field{margin-top:16px;margin-bottom:14px}.ps-editor-criteria{margin:26px 0 18px;display:grid;gap:22px}.ps-criterion-editor{border:1px solid #dfe7f0;background:#fafcfe;border-radius:14px;padding:22px;min-width:0;margin:0}.ps-criterion-editor>legend{font-size:10px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;color:#698097;padding:0 7px}.ps-criterion-editor-heading{display:flex;justify-content:space-between;align-items:center;gap:15px}.ps-criterion-editor-heading h3{font-size:18px;overflow-wrap:anywhere}.ps-criterion-editor-heading .ps-button{font-size:11px;min-height:34px;padding:6px 12px}.ps-criterion-editor>.ps-field{margin-top:16px;margin-bottom:14px}.ps-save-row{border-top:1px solid var(--ps-line);padding-top:25px;margin-top:28px}.ps-save-row>p{font-size:12px;color:var(--ps-muted);margin-bottom:20px}.ps-draft-prompts .ps-actions{margin-top:16px}.ps-draft-prompts .ps-button{font-size:11px;min-height:36px;padding:8px 12px}.ps-notice,.positions-workspace p.ps-notice{font-size:12px;border:1px solid #deebf7;border-radius:9px;padding:13px 15px;background:#f0f7fe;color:#526f87;line-height:1.55}.ps-protocol{margin:24px 0 18px;padding:18px 20px;background:#f3f8fd;border:1px solid #e1ecf6;border-radius:10px}.ps-protocol>strong{font-size:12px;font-weight:650}.ps-protocol>p{font-size:13px;color:#557083;margin-top:8px}.ps-observation-form>.ps-actions{margin-top:24px}.ps-observation-form>.ps-footnote{margin-top:16px!important}.ps-assignment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:25px 0}.ps-assignment-grid label{display:flex;align-items:center;gap:10px;border:1px solid #e0e8f0;padding:14px 12px;border-radius:10px;min-width:0;font-size:10px;color:var(--ps-muted);background:#fafcfe;cursor:pointer}.ps-assignment-grid input{width:17px;height:17px;accent-color:var(--ps-blue);flex-shrink:0}.ps-assignment-grid span{display:grid;gap:5px;line-height:1.4}.ps-assignment-grid strong{font-size:13px;color:var(--ps-ink)}.ps-history-list{margin-top:26px}.ps-history-list summary>span{font-size:11px;font-weight:400;color:var(--ps-muted);margin-left:auto}.ps-history-list>details>p{font-size:12px;color:var(--ps-muted)}.ps-error{background:#fff7f5;border:1px solid #eed0c9;color:#914a40;border-radius:12px;padding:17px 21px;margin:0 0 22px}.ps-error strong{font-size:14px}.ps-error p{margin-top:7px;font-size:13px}.ps-error .ps-button{margin-top:14px}.ps-loading{font-size:12px!important;color:var(--ps-blue);padding-bottom:18px}
@media(max-width:900px){.ps-catalogue{gap:18px 25px}.ps-area-grid{grid-template-columns:1fr 1fr}.ps-player-directory{grid-template-columns:1fr}.ps-surface,.positions-workspace details.ps-surface{padding:24px}.ps-form{padding:27px}.ps-position{min-width:41px}.ps-profile-heading h3{font-size:21px}}
@media(max-width:620px){.positions-workspace{padding:20px 10px 95px}.ps-heading{align-items:flex-start;padding:4px 0 22px;gap:10px}.ps-heading h1{font-size:32px}.ps-heading>div>p:last-child{font-size:14px;max-width:250px}.ps-heading>.ps-button{font-size:11px;padding:8px 12px;min-height:36px}.ps-tabs{margin-bottom:24px}.ps-catalogue{display:grid;grid-template-columns:1fr;gap:18px;padding-bottom:23px}.ps-position-group{gap:8px}.ps-position{min-width:38px;min-height:41px;padding:7px;font-size:12px;border-radius:9px}.ps-position-group>div{gap:5px}.ps-section-heading{align-items:flex-start;gap:12px}.ps-section-heading>.ps-button{font-size:11px;min-height:38px;padding:9px 13px;max-width:120px;flex-shrink:0}.ps-section-heading h2{font-size:26px}.ps-section-heading>div>p:last-child{font-size:12px}.ps-content{gap:20px}.ps-surface,.positions-workspace details.ps-surface{padding:21px 18px;border-radius:14px}.ps-summary-hint{display:none}.ps-areas summary h3{font-size:19px}.ps-area-grid{grid-template-columns:1fr;gap:10px}.ps-area-grid article{padding:15px}.ps-profile-heading{gap:12px}.ps-profile-heading h3{font-size:20px}.ps-profile-heading>.ps-button{font-size:10px;padding:8px 11px;min-height:36px;max-width:115px;flex-shrink:0}.ps-profile-heading>.ps-pill{font-size:9px;flex-shrink:0;max-width:95px}.ps-preview-row{gap:17px;padding:15px 0}.ps-preview-row strong{font-size:12px}.ps-preview-row span{font-size:11px}.ps-preview-row>div:last-child{max-width:38%}.ps-player-controls{align-items:flex-end;gap:10px}.ps-player-controls>.ps-button{min-height:42px;font-size:11px;max-width:95px;padding:8px 12px;flex-shrink:0}.ps-player-controls .ps-field select{font-size:14px;padding:11px 9px}.ps-player-row{padding:18px}.ps-score{margin:26px 0 14px;gap:16px}.ps-met{gap:10px}.ps-met>strong{font-size:34px}.ps-met small{font-size:21px}.ps-score-icon{width:37px;height:37px}.ps-score-icon svg{width:20px;height:20px}.ps-exceeded{font-size:11px;padding:7px 10px}.ps-player-overview .ps-section-heading h2{font-size:28px}.ps-profile-summary>span{font-size:11px}.ps-profile-summary>small{font-size:10px}.ps-evaluated-profile>summary{gap:9px}.ps-evaluated-profile>summary h3{font-size:18px}.ps-evaluated-profile .ps-eyebrow{font-size:8px}.ps-evaluated-profile>summary:after{margin-left:0}.ps-criterion-title{gap:12px}.ps-criterion-title h4{font-size:15px}.ps-criterion-title p{font-size:11px}.ps-result-status{font-size:9px;max-width:100px;white-space:normal}.ps-result-status svg{width:12px;height:12px}.ps-measurement>strong{font-size:22px}.ps-form-grid{grid-template-columns:1fr;gap:0}.ps-field input,.ps-field textarea,.ps-field select{font-size:16px}.ps-form>h2{font-size:27px}.ps-form>p:not(.ps-eyebrow){font-size:13px}.ps-criterion-editor{padding:18px 14px}.ps-criterion-editor-heading h3{font-size:17px}.ps-criterion-editor-heading>.ps-button{font-size:10px;min-height:32px;padding:6px 9px}.ps-assignment-grid{grid-template-columns:1fr 1fr}.ps-assignment-grid label{padding:12px 10px;gap:8px}.ps-history-list summary{flex-wrap:wrap}.ps-history-list summary>span{font-size:10px}.ps-history-list summary:after{margin-left:0}.ps-calculation dl>div{font-size:12px}.ps-empty{padding:34px 20px}.ps-empty h2{font-size:25px}.ps-empty p{font-size:13px}}
@media(prefers-reduced-motion:reduce){.positions-workspace *{transition:none!important;scroll-behavior:auto!important}}

.ps-area-labels{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.ps-area-labels>span{font-size:12px;color:#456985;border-radius:8px;background:#f0f6fc;border:1px solid #e0eaf4;padding:8px 11px}.ps-archived article{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0;border-top:1px solid var(--ps-line)}.ps-archived article:first-of-type{margin-top:20px}.ps-archived strong{font-size:14px}.ps-archived .ps-muted{font-size:12px;margin-top:5px}.positions-workspace details.ps-preview-protocol{padding-top:0;margin-top:6px;border:0}.ps-preview-protocol>summary{justify-content:flex-start;min-height:22px;font-size:11px;color:var(--ps-blue)}.ps-preview-protocol>summary:after{content:'+';font-size:14px;margin:0}.ps-preview-protocol p{font-size:12px;color:var(--ps-muted);overflow-wrap:anywhere}.ps-player-name{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.ps-player-badge{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;border:1px solid #dce5ec;border-radius:20px;background:#f4f7fa;color:#708397;padding:4px 7px;font-size:10px;font-weight:600;line-height:1.2;letter-spacing:0}.ps-player-badge svg{width:12px;height:12px}.ps-player-badge.has-match{background:#edf8f4;color:#23775d;border-color:#d2e9df}.ps-player-overview .ps-player-badge{font-size:11px;padding:5px 8px}.ps-player-overview .ps-player-badge svg{width:14px;height:14px}@media(max-width:620px){.ps-archived article{align-items:flex-start;flex-direction:column;gap:12px}.ps-area-labels>span{font-size:11px;padding:7px 9px}.ps-player-badge{font-size:9px}}

.ps-value-only{display:flex;gap:11px;align-items:flex-start;font-size:13px;color:#536776;line-height:1.5;margin:12px 0}.ps-value-only input{margin-top:3px;accent-color:var(--ps-blue);width:17px;height:17px;flex-shrink:0}.ps-value-only small{display:block;color:var(--ps-muted);font-size:11px;margin-top:4px}

.ps-position-select{display:none}@media(max-width:620px){.ps-position-select{display:grid;margin:0;padding-bottom:23px;border-bottom:1px solid var(--ps-line)}.ps-catalogue{display:none}.ps-heading h1{font-size:30px}}

/* ---- evidence.css ---- */
.evidence-workspace{max-width:1180px;margin:auto}.evidence-tabs{display:flex;gap:20px;align-items:center;margin:8px 0 28px;flex-wrap:wrap}.evidence-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:28px;align-items:start}.evidence-grid video{display:block;width:100%;height:auto;max-height:65vh;object-fit:contain;border-radius:20px;background:#101820;margin-bottom:14px}.evidence-grid p{margin:12px 0;color:var(--muted,#667080)}.evidence-grid .field{margin-top:18px}.evidence-row{padding:20px 0;border-bottom:1px solid #e7e9ee;overflow-wrap:anywhere}.evidence-row p{margin:8px 0}.evidence-check{display:flex;gap:12px;font-size:14px;line-height:1.5;margin:20px 0;align-items:flex-start}.evidence-check input{width:18px;height:18px;flex-shrink:0;accent-color:#1046ab}.evidence-workspace summary{cursor:pointer;font-weight:600}.evidence-workspace select,.evidence-workspace input,.evidence-workspace textarea{max-width:100%;min-width:0}.evidence-workspace .btn{margin-top:8px}.evidence-workspace #evidence-message:not(:empty){padding:12px 0;color:#1046ab}@media(max-width:760px){.evidence-grid{grid-template-columns:1fr;gap:20px}.evidence-tabs{gap:12px}.evidence-workspace h1{font-size:32px}}
.evidence-emulated{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:baseline;font-size:14px;line-height:1.45}.evidence-emulated.none{color:var(--muted,#667080)}.evidence-pill{display:inline-block;padding:2px 10px;border-radius:999px;background:var(--accent-soft,#eef3fc);color:var(--accent,#1046ab);font-size:12px;font-weight:600;line-height:1.6}.evidence-emulated.failed .evidence-pill{background:#fbeeee;color:var(--danger,#ac343d)}.evidence-emulated-runs .evidence-row p{font-size:14px}

/* ---- family.css ---- */
.family-shell{max-width:980px;margin:0 auto;padding:32px 0 64px;color:var(--text,#171b22);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)}.family-shell h1{font-size:clamp(30px,5vw,46px);letter-spacing:-.04em;line-height:1.08;margin:10px 0 16px}.family-shell>header{margin-bottom:32px}.family-shell p{line-height:1.5}.family-card{padding:28px;border-radius:24px;background:#fff;border:1px solid #e6e8eb;margin:20px 0;box-shadow:0 8px 28px #17233306}.family-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.family-heading h2{margin:0}.family-heading>span,.family-note{font-size:14px;color:#65707e}.family-shell form{display:grid;gap:16px;margin-top:24px;max-width:600px}.family-shell label{display:grid;gap:8px;font-size:15px}.family-shell input:not([type=checkbox]),.family-shell textarea{width:100%;padding:12px 14px;border:1px solid #d5d9df;border-radius:12px;background:#fafbfc;color:inherit;font:inherit;box-sizing:border-box}.family-shell .family-check{display:flex;align-items:flex-start;gap:10px}.family-check input{width:18px;height:18px;flex-shrink:0;accent-color:var(--accent,#1748b4);margin:2px 0}.family-shell fieldset{border:1px solid #e6e8eb;border-radius:12px;padding:16px;display:grid;gap:12px}.family-shell legend{font-size:14px}.family-shell summary{cursor:pointer;font-weight:600;padding:12px 0}.family-error{color:#a82929;min-height:0;margin:0}.family-status{color:var(--accent,#1748b4)}.family-shell button{justify-self:start;min-height:44px}.family-plan article{border-bottom:1px solid #eceef0;padding:12px 0}.family-plan h3,.family-clip h3{font-size:18px;margin:12px 0}.family-clips{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(270px,100%),1fr));gap:24px;margin-top:28px}.family-clip{min-width:0}.family-clip video{display:block;width:100%;max-height:480px;object-fit:contain;background:#101216;border-radius:16px}.family-feedback{border-top:1px solid #eceef0;margin-top:20px;padding-top:12px}.family-shell code{overflow-wrap:anywhere}.recovery-shell{max-width:580px;padding:40px 20px}.family-back{font-size:20px;font-weight:650;color:inherit;text-decoration:none}.recovery-shell .family-card{margin-top:32px}.family-shell :focus-visible{outline:3px solid var(--accent,#1748b4);outline-offset:3px}@media(max-width:600px){.family-shell{padding-top:16px}.family-card{padding:20px;border-radius:20px}.family-heading{align-items:flex-start;flex-direction:column;gap:4px}.family-clips{grid-template-columns:1fr}.family-shell button{width:100%;justify-content:center}.recovery-shell{padding:24px 16px}}

.family-lesson-link{display:inline-flex;align-items:center;gap:12px;min-height:44px;color:var(--accent,#1748b4);font-weight:600;text-decoration:none}.family-lesson-link:hover{text-decoration:underline}

.family-check small{display:block;margin-top:4px;font-size:13px;line-height:1.45;color:#65707e}.family-check strong{font-weight:600}.family-purposes legend{padding:0 4px}.family-waiting{padding:10px 12px;border-radius:10px;background:#fffaf1;border:1px solid #f0dcb8;color:#6b410c}.family-changes{margin:4px 0 12px}.family-changes summary{min-height:44px;display:flex;align-items:center;padding:0;color:var(--accent,#1748b4);font-weight:600}.family-changes ul{list-style:none;margin:0;padding:0}.family-changes li{padding:8px 0;border-bottom:1px solid #eceef0;font-size:14px}.family-changes li small{display:block;color:#65707e;font-size:12px;margin-top:2px}.family-shell>.family-lesson-link{margin-top:8px}

/* P0 accounts: honest recovery options on Forgot password. */
.recovery-shell .recovery-honest{margin:12px 0;padding:12px 14px;border-radius:12px;background:#fff6e5;border:1px solid #f1d39a;color:#5b3d00;line-height:1.45}
.recovery-shell .recovery-ways{margin-top:20px;border-top:1px solid #e6e8eb;padding-top:16px}
.recovery-shell .recovery-ways h2{font-size:18px;margin:0 0 8px}
.recovery-shell .recovery-list{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.recovery-shell .recovery-list li{display:grid;gap:4px;min-width:0}
.recovery-shell .recovery-list li span{color:#4f5967;font-size:14px;line-height:1.45}
.recovery-shell .recovery-list .text-btn{justify-self:start;min-height:44px;padding-left:0}
.recovery-shell #recovery-code-form{display:grid;gap:12px;margin-top:12px}
.recovery-shell #recovery-code-form label{display:grid;gap:6px}
.recovery-shell #recovery-code-form input{width:100%;box-sizing:border-box;min-height:44px;padding:10px 12px;border:1px solid #d5d9df;border-radius:12px;font:inherit;font-size:16px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .recovery-shell .recovery-honest{background:#3a2c0f;border-color:#7a5a1c;color:#fde7b8}:root:not([data-theme="light"]) .recovery-shell .recovery-list li span{color:#b8c0cc}}
:root[data-theme="dark"] .recovery-shell .recovery-honest{background:#3a2c0f;border-color:#7a5a1c;color:#fde7b8}
:root[data-theme="dark"] .recovery-shell .recovery-list li span{color:#b8c0cc}
.recovery-shell form[hidden],.recovery-shell [hidden]{display:none!important}

/* ---- youth.css ---- */
/* Youth & guardians (Pearl): soft white surfaces, system sans, one deep-blue motif. */
:where(.youth-shell,.youth-age) details{border-top:0;padding:0;font-size:inherit}:where(.youth-shell,.youth-age) summary{font-size:inherit;font-weight:600}
.youth-shell{max-width:880px;margin:0 auto;padding:28px 0 64px;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);--y-blue:var(--accent,#1046ab);--y-line:var(--line,#e5e6ea);--y-muted:var(--muted,#686b73)}
.youth-header{margin:0 0 26px}.youth-header h1{margin:8px 0 12px;font-size:clamp(30px,5vw,44px);line-height:1.08;letter-spacing:-.04em;font-weight:650}.youth-header>p:last-child{margin:0;max-width:620px;color:var(--y-muted);font-size:16px;line-height:1.55}
.youth-eyebrow{margin:0;font-size:11px;font-weight:650;letter-spacing:.11em;color:var(--y-blue)}
.youth-card{margin:0 0 18px;padding:24px;border:1px solid var(--y-line);border-radius:22px;background:var(--pearl-surface,#fff);box-shadow:var(--pearl-shadow,0 12px 32px -24px #20263228)}
.youth-card h2{margin:0 0 14px;font-size:20px;letter-spacing:-.025em;font-weight:620}.youth-card>p:first-child{margin-top:0}
.youth-primary{border-color:#cfdaf0}
.youth-muted,.youth-empty{color:var(--y-muted);font-size:14px;line-height:1.55}.youth-empty{margin:4px 0}
.youth-error{margin:0;color:var(--danger,#ac343d);font-size:14px}.youth-error:empty{display:none}
.youth-loading{padding:32px 0;color:var(--y-muted)}
.youth-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 20px;border:1px solid var(--y-blue);border-radius:12px;background:var(--pearl-action,var(--y-blue));color:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.youth-button.secondary{background:#fff;color:var(--y-blue);border-color:var(--y-line)}.youth-button:disabled{opacity:.5;cursor:default}
.youth-shell :focus-visible{outline:3px solid var(--y-blue);outline-offset:3px}
.youth-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:var(--y-blue);font-weight:600;text-decoration:none}.youth-link:hover{text-decoration:underline}
.youth-after{margin:4px 0 0}
.youth-shell form{display:grid;gap:14px;margin-top:14px;max-width:600px}.youth-shell form .youth-button{justify-self:start}
.youth-field{display:grid;gap:7px;font-size:13px;font-weight:550;color:#434750}
.youth-field input:not([type=file]),.youth-field textarea{width:100%;box-sizing:border-box;min-height:46px;padding:11px 13px;border:1px solid #d3dce8;border-radius:12px;background:#f7f9fb;color:var(--ink,#1d1d1f);font:inherit;font-size:16px;font-weight:400}
.youth-field textarea{min-height:180px;line-height:1.5;resize:vertical}.youth-field input[type=file]{font-size:14px;font-weight:400;max-width:100%;padding:0;border:0;background:none;box-shadow:none;min-height:0}
.youth-check{display:flex;align-items:flex-start;gap:10px;font-size:15px;line-height:1.45;cursor:pointer}.youth-check input{width:20px;height:20px;flex:0 0 20px;margin:1px 0;accent-color:var(--y-blue)}
.youth-check code,.youth-policy-head code{font-size:13px}
.youth-chip{display:inline-flex;align-items:center;white-space:nowrap;min-height:26px;padding:3px 11px;border-radius:999px;border:1px solid var(--y-line);background:#f4f5f7;color:#4a4f58;font-size:12px;font-weight:600}
.youth-chip.ok{background:var(--accent-soft,#eef3fc);border-color:#cfdaf0;color:var(--y-blue)}.youth-chip.warn{background:#fff6e8;border-color:#f0dcb8;color:#7a4b10}.youth-chip.info{background:#f2f4f8;color:#3c4a63}
.youth-code{display:grid;gap:6px;margin:0 0 14px;padding:20px;border-radius:16px;background:var(--accent-soft,#eef3fc);text-align:center}.youth-code span{font-size:13px;color:var(--y-muted)}.youth-code strong{font:650 clamp(26px,7vw,34px)/1.15 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em;color:var(--y-blue);overflow-wrap:anywhere}.youth-code small{font-size:13px;color:var(--y-muted)}
.youth-steps{list-style:none;margin:0;padding:0;counter-reset:step}.youth-steps li{display:flex;align-items:center;gap:12px;min-height:44px;font-size:15px;border-bottom:1px solid var(--y-line)}.youth-steps li:last-child{border-bottom:0}
.youth-steps li>span:first-child{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;flex:0 0 24px;border-radius:50%;border:1.5px solid #c8cfda;color:#fff;font-size:13px;font-weight:700}.youth-steps li.done>span:first-child{background:var(--y-blue);border-color:var(--y-blue)}.youth-steps li:not(.done){color:var(--y-muted)}
.youth-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.youth-allowed,.youth-rows,.youth-audit{list-style:none;margin:0;padding:0}.youth-allowed li,.youth-rows li{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:46px;border-bottom:1px solid var(--y-line);font-size:15px}.youth-allowed li:last-child,.youth-rows li:last-child{border-bottom:0}
.youth-rows li{padding:10px 0}.youth-rows small,.youth-row summary small,.youth-policy-head small{display:block;margin-top:3px;color:var(--y-muted);font-size:13px;font-weight:400;line-height:1.45}
.youth-policy-read{margin-top:16px;border-top:1px solid var(--y-line);padding-top:6px}.youth-policy-read summary,.youth-fold>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:15px;font-weight:600;color:var(--y-blue)}
.youth-card.youth-fold{padding-top:10px;padding-bottom:10px}.youth-card.youth-fold>summary{color:var(--ink,#1d1d1f);font-size:17px;letter-spacing:-.015em}.youth-card.youth-fold[open]{padding-bottom:24px}
.youth-row .youth-fold{margin-top:6px}
.youth-policy-text{margin:8px 0 0;padding:16px;border-radius:12px;background:#f7f8fa;white-space:pre-wrap;overflow-wrap:anywhere;font:14px/1.6 var(--app-font,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif);max-height:420px;overflow:auto}
.youth-awaiting{margin:0 0 18px;padding:18px 20px;border:1px solid #f0dcb8;border-radius:18px;background:#fffaf1}.youth-awaiting strong{display:block;font-size:16px;color:#6b410c}.youth-awaiting p{margin:6px 0 0;color:#6e5a3c;font-size:14px;line-height:1.5}
.youth-card.youth-success{background:var(--accent-soft,#eef3fc);border-color:#cfdaf0}.youth-success h2{margin-bottom:6px}.youth-success p{margin:0 0 6px;font-size:15px;line-height:1.5;color:#3c4a63}
.youth-summary{display:grid;grid-template-columns:repeat(3,1fr);margin:0 0 22px;border:1px solid var(--y-line);border-radius:20px;background:#ffffffb5}.youth-summary>div{display:grid;gap:3px;padding:18px 22px}.youth-summary>div+div{border-left:1px solid var(--y-line)}.youth-summary strong{font-size:26px;font-weight:600;letter-spacing:-.035em}.youth-summary span{font-size:13px;color:var(--y-muted)}
.youth-tabs{display:flex;gap:6px;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 0 22px;padding:4px;border:1px solid var(--y-line);border-radius:14px;background:#eceef180}.youth-tabs button{min-height:44px;padding:9px 20px;border:0;border-radius:10px;background:transparent;color:var(--y-muted);font:inherit;font-size:14px;cursor:pointer}.youth-tabs button[aria-current=page]{background:#fff;color:var(--y-blue);box-shadow:0 2px 4px #2636520a}
.youth-policy{padding:16px 0;border-bottom:1px solid var(--y-line)}.youth-policy:last-child{border-bottom:0;padding-bottom:0}.youth-policy:first-of-type{padding-top:0}
.youth-policy-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.youth-policy-head h3{margin:0;font-size:17px;letter-spacing:-.02em}
.youth-row{border-bottom:1px solid var(--y-line);padding:6px 0;font-size:15px}.youth-row>summary strong{font-size:16px}.youth-row:last-of-type{border-bottom:0}.youth-row>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:52px;cursor:pointer;list-style:none}.youth-row>summary::-webkit-details-marker{display:none}.youth-row>summary>span:first-child{min-width:0}
.youth-audit li{padding:10px 0;border-bottom:1px solid var(--y-line);font-size:14px}.youth-audit li span{display:block;color:var(--y-muted);font-size:12px;margin-top:3px}
/* Age group on the sign-up and invitation forms */
.youth-age{margin:0 0 18px;padding:0;border:0;min-width:0}.youth-age legend{padding:0;margin:0 0 8px;color:#43536a;font-size:14px;font-weight:650}
.youth-age-options{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.youth-age-options label{position:relative;display:block;min-width:0}
.youth-age-options input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.youth-age-options span{display:flex;align-items:center;justify-content:center;min-height:46px;padding:6px 4px;box-sizing:border-box;border:1px solid #dddfe4;border-radius:10px;background:#fff;font-size:13px;font-weight:600;color:#434750;text-align:center;line-height:1.2}
.youth-age-options input:checked+span{border-color:var(--accent,#1046ab);background:var(--accent-soft,#eef3fc);color:var(--accent,#1046ab)}.youth-age-options input:focus-visible+span{outline:3px solid var(--accent,#1046ab);outline-offset:2px}
.youth-age-note{margin:10px 0 0;padding:10px 12px;border-radius:10px;background:var(--accent-soft,#eef3fc);color:#2d3a52;font-size:12px;line-height:1.5}
.youth-dob{margin-top:6px}.youth-dob summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--accent,#1046ab);font-size:13px;font-weight:600}.youth-dob .field{margin:4px 0 6px}.youth-dob p{margin:0;font-size:12px;line-height:1.5;color:#626975}
@media(max-width:640px){.youth-shell{padding-top:12px}.youth-card{padding:20px 16px;border-radius:18px}.youth-summary>div{padding:14px 10px}.youth-summary strong{font-size:22px}.youth-summary span{font-size:11px}.youth-tabs{width:100%;gap:0}.youth-tabs button{flex:1;padding:8px 6px;font-size:13px}.youth-shell form .youth-button{width:100%}.youth-policy-head{flex-direction:column;gap:8px}.youth-row>summary{align-items:flex-start;flex-direction:column;gap:6px;padding:8px 0}.youth-rows li{align-items:flex-start;flex-direction:column;gap:6px}}

/* Joining with an invitation: the age answer comes first (web/app.js bindJoinEligibility). */
.join-eligibility:empty{display:none}
.join-eligibility{margin:12px 0}
.join-elig-note{margin:8px 0 0;font-size:13px;line-height:1.5;color:var(--muted,#4a5568)}
.join-elig-stop{padding:14px;border-radius:12px;background:var(--accent-soft,#eef3fc);color:var(--ink,#1d2433)}
.join-elig-stop p{margin:0 0 10px;line-height:1.5}
.join-elig-stop .join-elig-path{margin-top:6px;text-align:center;text-decoration:none}
.join-elig-stop .join-elig-path + .join-elig-note{margin:4px 0 12px}
.youth-note { margin: 8px 0; padding: 10px 12px; border-radius: 12px; background: #eef3fc; color: inherit; font-size: 14px; line-height: 1.5; }
.youth-note a { color: #1f4fa3; font-weight: 600; display: inline-flex; min-height: 44px; align-items: center; }
html[data-theme="dark"] .youth-note { background: #1c2433; } html[data-theme="dark"] .youth-note a { color: #9cc0ff; }
@media (prefers-color-scheme: dark) { html:not([data-theme="light"]) .youth-note { background: #1c2433; } html:not([data-theme="light"]) .youth-note a { color: #9cc0ff; } }

/* ---- curation.css ---- */
.curation-workspace{max-width:1080px;margin:0 auto;font-family:var(--app-font,system-ui);padding-bottom:40px}.curation-tabs{display:flex;flex-wrap:wrap;gap:10px;margin:24px 0}.curation-workspace form{display:grid;gap:16px;margin:20px 0}.curation-workspace .field{display:grid;gap:6px;min-width:0}.curation-workspace input,.curation-workspace textarea,.curation-workspace select{width:100%;min-width:0;box-sizing:border-box;font:inherit;padding:12px;border:1px solid #ccd3dc;border-radius:12px;background:#fff;color:#182331}.curation-workspace textarea{min-height:90px;resize:vertical}.curation-workspace .session-surface{padding:28px;border-radius:24px;background:#fff;border:1px solid #e4e8ee;min-width:0}.curation-row{padding:20px 0;border-top:1px solid #e3e7ed;overflow-wrap:anywhere}.curation-row summary{font-weight:600;cursor:pointer;padding:8px 0}.curation-workspace blockquote{margin:16px 0;padding:0 0 0 16px;border-left:3px solid var(--accent,#124bb5)}.curation-pre{white-space:pre-wrap}.curation-method{display:block;color:#637082;margin-top:20px}.curation-workspace a{color:var(--accent,#124bb5);overflow-wrap:anywhere}.curation-workspace .btn,.curation-workspace .text-btn{min-height:44px}.curation-workspace .btn{background:var(--accent,#124bb5);color:#fff;border:0;border-radius:12px;padding:12px 18px}.curation-workspace .text-btn{border:0;background:transparent;color:var(--accent,#124bb5);text-align:left;font:inherit;cursor:pointer}.curation-workspace .mt{margin-top:20px}.curation-workspace [role=status]{min-height:1.4em;overflow-wrap:anywhere}.curation-workspace button:focus-visible,.curation-workspace a:focus-visible,.curation-workspace input:focus-visible,.curation-workspace select:focus-visible,.curation-workspace textarea:focus-visible{outline:3px solid var(--accent,#124bb5);outline-offset:3px}@media(max-width:600px){.curation-workspace .session-surface{padding:20px}.curation-tabs{gap:4px}.curation-tabs button{font-size:14px}.curation-workspace h1{font-size:32px;letter-spacing:-.04em}.curation-workspace h2{font-size:23px}}

/* ---- reviewops.css ---- */
/* Review operations · Pearl: soft white surfaces, system sans, one deep-blue motif. */
.reviewops-workspace{max-width:1040px;margin:0 auto;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--rv-blue:var(--accent,#1046ab);--rv-line:var(--line,#e5e6ea);--rv-muted:var(--muted,#686b73);padding-bottom:48px;overflow-wrap:anywhere}
.reviewops-workspace details{font-size:inherit}.reviewops-workspace details.rv-authority{border-top:0}
.rv-heading,.rv-section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.rv-heading{margin:0 0 28px}.rv-heading h1{margin:0 0 10px;font-size:40px;line-height:1.15;letter-spacing:-.04em}.rv-heading p,.rv-section-heading p{margin:0;color:var(--rv-muted)}
.rv-eyebrow{font-size:11px!important;letter-spacing:.11em;font-weight:650;color:var(--rv-blue)!important;margin:0 0 10px!important}
.rv-section-heading{margin:0 0 20px}.rv-section-heading h2,.rv-content h2{font-size:27px;letter-spacing:-.035em;margin:0 0 8px}
.reviewops-workspace h3{font-size:19px;letter-spacing:-.025em;margin:0 0 10px;line-height:1.3}.reviewops-workspace h4{margin:0 0 10px;font-size:15px}
.rv-summary{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:28px;border:1px solid var(--rv-line);border-radius:20px;background:#ffffffb5}
.rv-summary>div{display:grid;gap:3px;padding:22px 24px;min-width:0}.rv-summary>div+div{border-left:1px solid var(--rv-line)}.rv-summary strong{font-size:28px;font-weight:600;letter-spacing:-.035em}.rv-summary span{font-size:13px;color:var(--rv-muted)}
.rv-tabs{display:flex;gap:6px;padding:4px;border:1px solid var(--rv-line);background:#eceef180;border-radius:14px;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 0 30px;overflow-x:auto;scrollbar-width:none}
.rv-tabs::-webkit-scrollbar{display:none}.rv-tabs button{min-height:44px;padding:9px 20px;border:0;background:transparent;color:var(--rv-muted);font:inherit;font-size:14px;border-radius:10px;white-space:nowrap;cursor:pointer}
.rv-tabs button[aria-current=page]{background:#fff;color:var(--rv-blue);box-shadow:0 2px 4px #2636520a}
.rv-surface{padding:24px;margin-bottom:20px;background:var(--pearl-surface,#fff);border:1px solid var(--rv-line);border-radius:20px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228);min-width:0}
details.rv-surface>summary{font-weight:600;min-height:28px;cursor:pointer}details.rv-surface[open]>summary{margin-bottom:18px}
.rv-mine{border-color:#c9d6ef;background:linear-gradient(155deg,#fff,#f6f9fe)}
.rv-segment{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.rv-segment button{min-height:44px;padding:8px 14px;border:1px solid var(--rv-line);border-radius:999px;background:#fff;color:var(--rv-muted);font:inherit;font-size:13px;cursor:pointer}
.rv-segment button[aria-pressed=true]{border-color:var(--rv-blue);color:var(--rv-blue);background:var(--accent-soft,#eef3fc)}
.rv-list{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:14px}.rv-list.compact{gap:0;margin:0}.rv-list.compact .rv-item{border:0;border-bottom:1px solid var(--rv-line);border-radius:0;padding:14px 0;box-shadow:none;background:none}
.rv-item{padding:20px 22px;background:var(--pearl-surface,#fff);border:1px solid var(--rv-line);border-radius:18px;box-shadow:var(--pearl-shadow,none);min-width:0}.rv-item.overdue{border-color:#e7c3c6}
.rv-item h3{margin:8px 0 6px;font-size:17px}.rv-item-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.rv-kind{font-size:12px;font-weight:600;color:var(--rv-blue);letter-spacing:.02em}
.rv-pill{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:550;background:#f1f2f4;color:#4a4e57;text-transform:none}
.rv-pill.blue{background:var(--accent-soft,#eef3fc);color:var(--rv-blue)}.rv-pill.gold{background:var(--gold-light,#faf0dc);color:var(--gold,#966323)}.rv-pill.danger{background:#fbeeee;color:var(--danger,#ac343d)}.rv-pill.gray{background:#f1f2f4;color:#6b6f78}
.rv-meta{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;color:var(--rv-muted);font-size:13px}.rv-meta em{font-style:normal;color:var(--gold,#966323)}
.rv-due.late{color:var(--danger,#ac343d);font-weight:550}.rv-scope{margin:8px 0 0;font-size:13px;color:#4a4e57}.rv-note{margin:10px 0 0;font-size:14px;color:#3d4250}
.rv-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:12px}
.rv-link,.reviewops-workspace a.rv-link{color:var(--rv-blue);font-weight:550;text-decoration:none;display:inline-flex;align-items:center;min-height:44px}
.rv-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border:1px solid var(--rv-blue);border-radius:12px;background:var(--pearl-action,var(--rv-blue));color:#fff;font:inherit;font-size:14px;font-weight:550;cursor:pointer;text-decoration:none;box-sizing:border-box;white-space:normal;text-align:center}
.rv-button.secondary{background:#fff;color:var(--rv-blue);border-color:var(--rv-line);box-shadow:none}.rv-button:disabled{opacity:.45;cursor:default}
.reviewops-workspace :is(button,a,summary,input,select,textarea):focus-visible{outline:3px solid var(--rv-blue);outline-offset:3px}
.reviewops-workspace form{display:grid;gap:4px;min-width:0}
.rv-field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500;min-width:0;margin-bottom:12px}
.rv-field :is(input,select,textarea){width:100%;min-width:0;min-height:46px;padding:11px 12px;font:inherit;font-size:16px;border:1px solid #d3dce8;border-radius:12px;background:#f5f7fa;color:var(--ink,#1d1d1f);box-sizing:border-box}
.rv-field textarea{min-height:92px;resize:vertical}.rv-field[hidden]{display:none}
.rv-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}.rv-inline{display:flex!important;align-items:flex-end;gap:12px;margin:12px 0}.rv-inline .rv-field{flex:1;margin:0}.rv-inline>.rv-button{flex-shrink:0}
.rv-checks{border:0;padding:0;margin:0 0 12px;display:grid;gap:4px;min-width:0}.rv-checks legend{font-size:13px;font-weight:500;margin-bottom:6px;padding:0}
.rv-check{display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:10px 0;cursor:pointer;font-size:14px;line-height:1.45}.rv-check input{width:20px;height:20px;flex:0 0 20px;margin:0;accent-color:var(--rv-blue)}.rv-check small{color:var(--rv-muted);display:block}
.rv-disclosure{margin-top:12px;border-top:1px solid var(--rv-line);padding-top:4px}.rv-disclosure>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--rv-blue);font-weight:550;font-size:14px}.rv-disclosure[open]>summary{margin-bottom:10px}
.rv-empty{padding:36px 16px;text-align:center;margin-bottom:20px;border:1px dashed #d6dbe3;border-radius:20px;background:#ffffff8a}.rv-empty h3{margin:0 0 8px}.rv-empty p{max-width:460px;margin:0 auto;color:var(--rv-muted);font-size:14px}
.rv-error{padding:14px 16px;border:1px solid #e2a9a9;background:#fff4f4;border-radius:12px;color:#99252d;font-size:14px;margin:12px 0}
.rv-status{font-size:13px;color:var(--rv-muted);margin:0 0 12px}.rv-status:empty{display:none}
.rv-footnote,.rv-muted{font-size:13px;color:var(--rv-muted);line-height:1.55;margin:10px 0 0}.rv-footnote code{font-size:12px;background:#eef0f3;padding:2px 6px;border-radius:6px}
.rv-awaiting{margin:12px 0 0;padding:12px 14px;border-radius:12px;background:var(--gold-light,#faf0dc);color:#6f4a1b;font-size:14px}
.rv-awaiting-list{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:8px}.rv-awaiting-list li{padding:12px 14px;border-radius:12px;background:var(--gold-light,#faf0dc);color:#6f4a1b;font-size:14px}
.rv-facts{margin:12px 0 4px}.rv-facts>div{display:grid;grid-template-columns:200px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--rv-line);font-size:14px}.rv-facts dt{color:var(--rv-muted)}.rv-facts dd{margin:0;white-space:pre-wrap}
.rv-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 12px}.rv-chips span{padding:6px 12px;border-radius:999px;background:var(--accent-soft,#eef3fc);color:var(--rv-blue);font-size:13px}
.rv-register{padding-top:8px;padding-bottom:8px}.rv-authority{padding:16px 0;border-bottom:1px solid var(--rv-line)}.rv-authority:last-child{border-bottom:0}
.rv-authority>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;cursor:pointer;list-style:none}.rv-authority>summary::-webkit-details-marker{display:none}
.rv-authority>summary>span:first-child{flex:1 1 220px;min-width:0}.rv-authority summary strong{font-size:17px;font-weight:600;letter-spacing:-.02em}.rv-authority summary small{display:block;color:var(--rv-muted);font-size:13px;font-weight:400;margin-top:4px}.rv-authority[open]>summary{margin-bottom:12px}
.rv-subform{margin:16px 0 0;padding:16px;border-radius:14px;background:#f7f8fa}
.rv-cap{list-style:none;padding:0;margin:0}.rv-cap>li{display:grid;grid-template-columns:1fr auto;gap:8px 20px;padding:16px 0;border-bottom:1px solid var(--rv-line)}.rv-cap>li:last-child{border-bottom:0}
.rv-cap small{display:block;color:var(--rv-muted);font-size:13px;margin-top:3px}.rv-cap-num{text-align:right}.rv-cap-num .rv-pill{margin-top:6px}.rv-wide{grid-column:1/-1}
.rv-preview .rv-service-note{margin:8px 0 0}
.rv-table{display:grid;font-size:14px}.rv-tr{display:grid;grid-template-columns:1.4fr 1.2fr .8fr .8fr;gap:12px;padding:10px 0;border-top:1px solid var(--rv-line)}.rv-th{color:var(--rv-muted);font-size:12px;border-top:0}
.rv-bullets{margin:8px 0 12px;padding-left:20px;font-size:14px;line-height:1.55}.rv-bullets li{margin:6px 0}.rv-bullets small{color:var(--rv-muted)}
.rv-row-link{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 0;border-top:1px solid var(--rv-line);color:inherit;text-decoration:none;min-height:44px}.rv-row-link small{display:block;color:var(--rv-muted);font-size:13px;margin-top:3px}.rv-row-link>span:last-child{color:var(--rv-blue)}
.rv-decision{padding:16px 0;border-top:1px solid var(--rv-line)}.rv-decided{margin-top:16px;padding:16px;border-radius:14px;background:var(--accent-soft,#eef3fc)}.rv-decided p{margin:6px 0}
.rv-packet ol{margin-top:12px}
/* Shared notes shown inside learner and coach pages. */
.rv-service-note{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:var(--accent-soft,#eef3fc);color:#21324f;font-size:14px;line-height:1.5}
.rv-service-note.awaiting{background:#f4f5f7;color:#555a63}.rv-service-note strong{font-weight:600}
.rv-question-note{margin:12px 0 0;font-size:14px;color:#3d4250}.rv-question-note a{color:var(--accent,#1046ab);font-weight:550}
.rv-handling{margin:4px 0 12px}.rv-handling .rv-field{margin-bottom:4px}.rv-handling small{display:block;font-size:12px;color:var(--muted,#686b73)}
.rv-handling input{width:100%;min-height:46px;padding:11px 12px;font:inherit;font-size:16px;border:1px solid #d3dce8;border-radius:12px;background:#f5f7fa;box-sizing:border-box}
.rv-handling .rv-field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500}
@media(max-width:640px){
  .rv-heading{gap:12px}.rv-heading h1{font-size:32px}.rv-heading>.rv-button{padding:10px 12px;flex-shrink:0}
  .rv-summary>div{padding:14px 10px}.rv-summary strong{font-size:22px}.rv-summary span{font-size:11px}
  .rv-tabs{width:100%;display:grid;grid-template-columns:repeat(3,1fr);gap:2px}.rv-tabs button{padding:8px 6px;font-size:13px}
  .rv-authority>summary{flex-wrap:wrap;gap:8px}
  .rv-surface{padding:20px 16px;border-radius:18px}.rv-item{padding:16px}
  .rv-grid{grid-template-columns:1fr}.rv-inline{flex-direction:column;align-items:stretch}
  .rv-facts>div{grid-template-columns:1fr;gap:2px}.rv-cap>li{grid-template-columns:1fr}.rv-cap-num{text-align:left}
  .rv-tr{grid-template-columns:1.3fr 1fr;row-gap:2px}.rv-tr>span:nth-child(3),.rv-tr>span:nth-child(4){color:var(--rv-muted);font-size:13px}
  .rv-section-heading h2,.rv-content h2{font-size:24px}
}
.rv-surface>.rv-disclosure:first-child{border-top:0;margin-top:0}.rv-surface :is(.rv-muted,.rv-bullets,.rv-chips)+h3{margin-top:22px}
.rv-recheck{display:inline-block;margin:0 0 12px;padding:6px 12px;border-radius:999px;background:#fff6e0;color:#6b4a00;font-size:13px;font-weight:550}.rv-recheck.late{background:#fdecee;color:var(--danger,#ac343d)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .rv-recheck{background:#3a2f12;color:#f3d48a}:root:not([data-theme="light"]) .rv-recheck.late{background:#3d1a1e;color:#f3a7ae}}
:root[data-theme="dark"] .rv-recheck{background:#3a2f12;color:#f3d48a}:root[data-theme="dark"] .rv-recheck.late{background:#3d1a1e;color:#f3a7ae}

/* ---- quality.css ---- */
/* Review quality and Second looks · Pearl: soft white surfaces, system sans, one deep-blue motif. */
.qy{max-width:1040px;margin:0 auto;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--qy-blue:var(--accent,#1046ab);--qy-line:var(--line,#e5e6ea);--qy-muted:var(--muted,#686b73);padding-bottom:56px;overflow-wrap:anywhere}
.qy.qy-learner{max-width:760px}
.qy *{box-sizing:border-box}
.qy-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 26px}
.qy-head h1{margin:0 0 10px;font-size:clamp(32px,4vw,40px);line-height:1.12;letter-spacing:-.04em}
.qy-head p{margin:0;color:var(--qy-muted);max-width:620px}
.qy-eyebrow{font-size:11px!important;letter-spacing:.11em;font-weight:650;color:var(--qy-blue)!important;margin:0 0 10px!important;text-transform:uppercase}
.qy h2{font-size:25px;letter-spacing:-.035em;margin:0 0 8px;line-height:1.22}.qy h3{font-size:18px;letter-spacing:-.02em;margin:0 0 8px;line-height:1.3}.qy h4{font-size:15px;margin:0 0 8px}
.qy-summary{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:26px;border:1px solid var(--qy-line);border-radius:20px;background:#ffffffb5}
.qy-summary>div{display:grid;gap:3px;padding:20px 22px;min-width:0}.qy-summary>div+div{border-left:1px solid var(--qy-line)}
.qy-summary strong{font-size:24px;font-weight:600;letter-spacing:-.03em}.qy-summary span{font-size:13px;color:var(--qy-muted)}
.qy-tabs{display:flex;gap:6px;padding:4px;border:1px solid var(--qy-line);background:#eceef180;border-radius:14px;width:fit-content;max-width:100%;margin:0 0 26px;overflow-x:auto;scrollbar-width:none}
.qy-tabs::-webkit-scrollbar{display:none}
.qy-tabs a{display:inline-flex;align-items:center;min-height:44px;padding:9px 18px;border-radius:10px;color:var(--qy-muted);font-size:14px;text-decoration:none;white-space:nowrap}
.qy-tabs a[aria-current=page]{background:#fff;color:var(--qy-blue);box-shadow:0 2px 4px #2636520a}
.qy-surface{padding:24px;margin-bottom:18px;background:var(--pearl-surface,#fff);border:1px solid var(--qy-line);border-radius:20px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228);min-width:0}
.qy-surface.qy-primary{border-color:#c9d6ef;background:linear-gradient(155deg,#fff,#f6f9fe)}
details.qy-surface>summary{font-weight:600;min-height:44px;display:flex;align-items:center;cursor:pointer}details.qy-surface[open]>summary{margin-bottom:14px}
.qy-banner{margin:0 0 18px;padding:14px 16px;border-radius:14px;background:var(--gold-light,#faf0dc);color:#6f4a1b;font-size:14px;line-height:1.5}
.qy-banner strong{color:#5b3a12}
.qy-note{margin:10px 0 0;font-size:13px;color:var(--qy-muted);line-height:1.55}
.qy-error{padding:14px 16px;border:1px solid #e2a9a9;background:#fff4f4;border-radius:12px;color:#99252d;font-size:14px;margin:0 0 16px}
.qy-status{font-size:13px;color:var(--qy-muted);margin:0 0 12px}.qy-status:empty{display:none}
.qy-pill{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:550;background:#f1f2f4;color:#4a4e57;white-space:nowrap}
.qy-pill.blue{background:var(--accent-soft,#eef3fc);color:var(--qy-blue)}.qy-pill.gold{background:var(--gold-light,#faf0dc);color:var(--gold,#966323)}.qy-pill.danger{background:#fbeeee;color:var(--danger,#ac343d)}
.qy-list{list-style:none;padding:0;margin:0}
.qy-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-top:1px solid var(--qy-line);color:inherit;text-decoration:none;min-height:56px}
.qy-list>li:first-child>.qy-row,.qy-list>.qy-row:first-child{border-top:0}
.qy-row>span:first-child{min-width:0;flex:1}.qy-row strong{display:block;font-weight:600}.qy-row small{display:block;color:var(--qy-muted);font-size:13px;margin-top:3px}
.qy-row .qy-end{display:flex;align-items:center;gap:10px;flex-shrink:0;color:var(--qy-blue)}
.qy-empty{padding:32px 16px;text-align:center;margin-bottom:18px;border:1px dashed #d6dbe3;border-radius:20px;background:#ffffff8a}.qy-empty h3{margin:0 0 8px}.qy-empty p{max-width:480px;margin:0 auto;color:var(--qy-muted);font-size:14px}
.qy-empty .qy-button{margin-top:16px}.qy-empty form{justify-items:center}
.qy-facts{margin:8px 0 4px}.qy-facts>div{display:grid;grid-template-columns:220px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--qy-line);font-size:14px}.qy-facts>div:first-child{border-top:0}.qy-facts dt{color:var(--qy-muted)}.qy-facts dd{margin:0;white-space:pre-wrap}
.qy-groups{display:grid;gap:12px;margin:6px 0 0}
.qy-group{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:center;font-size:14px}
.qy-group small{color:var(--qy-muted);font-size:12px}
.qy-bar{grid-column:1/-1;height:6px;border-radius:999px;background:#eceef1;overflow:hidden}.qy-bar>span{display:block;height:100%;background:var(--qy-blue);border-radius:999px}
.qy-table{width:100%;border-collapse:collapse;font-size:14px}.qy-table th{color:var(--qy-muted);font-size:12px;font-weight:500;text-align:left;padding:8px 8px 8px 0;border-bottom:1px solid var(--qy-line)}
.qy-table td{padding:10px 8px 10px 0;border-bottom:1px solid var(--qy-line);vertical-align:top}.qy-table tr:last-child td{border-bottom:0}
.qy-table-wrap{overflow-x:auto;margin:0 -4px;padding:0 4px}.qy-table .qy-num{white-space:nowrap}
.qy form{display:grid;gap:4px;min-width:0}
.qy-field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500;min-width:0;margin-bottom:12px}
.qy-field :is(input,select,textarea){width:100%;min-width:0;min-height:46px;padding:11px 12px;font:inherit;font-size:16px;border:1px solid #d3dce8;border-radius:12px;background:#f5f7fa;color:var(--ink,#1d1d1f)}
.qy-field textarea{min-height:92px;resize:vertical}
.qy-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.qy-fieldset{border:0;padding:0;margin:0 0 12px;display:grid;gap:2px;min-width:0}.qy-fieldset legend{font-size:13px;font-weight:600;margin-bottom:6px;padding:0}
.qy-check{display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:10px 0;cursor:pointer;font-size:14px;line-height:1.45}.qy-check input{width:20px;height:20px;flex:0 0 20px;margin:0;accent-color:var(--qy-blue)}.qy-check small{display:block;color:var(--qy-muted)}
.qy-choices{display:flex;flex-wrap:wrap;gap:8px}.qy-choices .qy-check{padding:0 14px;border:1px solid var(--qy-line);border-radius:999px;align-items:center;background:#fff}.qy-choices .qy-check:has(input:checked){border-color:var(--qy-blue);background:var(--accent-soft,#eef3fc);color:var(--qy-blue)}
.qy-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:11px 20px;border:1px solid var(--qy-blue);border-radius:13px;background:var(--pearl-action,var(--qy-blue));color:#fff;font:inherit;font-size:15px;font-weight:550;cursor:pointer;text-decoration:none;text-align:center;white-space:normal}
.qy-button.secondary{background:#fff;color:var(--qy-blue);border-color:var(--qy-line);box-shadow:none}.qy-button:disabled{opacity:.45;cursor:default}
.qy-button.full{width:100%}
.qy-link{color:var(--qy-blue);font-weight:550;text-decoration:none;display:inline-flex;align-items:center;min-height:44px;background:none;border:0;padding:0;font:inherit;font-size:14px;cursor:pointer}
.qy-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:12px}
.qy :is(button,a,summary,input,select,textarea):focus-visible{outline:3px solid var(--qy-blue);outline-offset:3px}
.qy-disclosure{margin-top:12px;border-top:1px solid var(--qy-line);padding-top:4px}.qy-disclosure>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--qy-blue);font-weight:550;font-size:14px}.qy-disclosure[open]>summary{margin-bottom:10px}
.qy-sub{margin:14px 0 0;padding:16px;border-radius:14px;background:#f7f8fa}
.qy-evidence{margin:0 0 16px}.qy-evidence video{display:block;width:100%;max-height:60vh;border-radius:14px;background:#0f1115;aspect-ratio:auto}
.qy-quote{margin:0 0 12px;padding:14px 16px;border-radius:14px;background:#f5f7fa;font-size:15px;line-height:1.55;white-space:pre-wrap}
.qy-quote small{display:block;color:var(--qy-muted);font-size:12px;margin-bottom:4px;text-transform:uppercase;letter-spacing:.06em}
.qy-steps{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 18px;padding:0;list-style:none}.qy-jump{margin:0 0 12px;border-top:0;padding-top:0}
.qy-steps a{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;border:1px solid var(--qy-line);background:#fff;color:var(--qy-muted);font-size:13px;text-decoration:none}
.qy-steps a.done{background:var(--accent-soft,#eef3fc);color:var(--qy-blue);border-color:#d7e2f6}.qy-steps a[aria-current=step]{border-color:var(--qy-blue);color:var(--qy-blue);font-weight:650;box-shadow:inset 0 0 0 1px var(--qy-blue)}
.qy-compare td.no{color:var(--danger,#ac343d);font-weight:550}.qy-compare td.yes{color:#2c6b3f}
.qy-timeline{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:0}.qy-timeline li{padding:10px 0 10px 18px;border-left:2px solid #dfe5ef;font-size:14px;position:relative}.qy-timeline li::before{content:"";position:absolute;left:-6px;top:15px;width:10px;height:10px;border-radius:50%;background:#fff;border:2px solid var(--qy-blue)}
.qy-timeline small{display:block;color:var(--qy-muted);font-size:12px}
.qy-outcome{padding:18px;border-radius:16px;background:var(--accent-soft,#eef3fc);margin:0 0 16px}.qy-outcome p{margin:6px 0}
.qy-kv{display:flex;flex-wrap:wrap;gap:4px 16px;margin:0;color:var(--qy-muted);font-size:13px}
@media (max-width:720px){
  .qy-head{flex-direction:column;gap:12px}.qy-head h1{font-size:32px}
  .qy-summary{grid-template-columns:1fr}.qy-summary>div+div{border-left:0;border-top:1px solid var(--qy-line)}.qy-summary>div{padding:14px 18px}
  .qy-surface{padding:18px 16px;border-radius:18px}
  .qy-grid{grid-template-columns:1fr}.qy-facts>div{grid-template-columns:1fr;gap:2px}
  .qy-tabs{width:100%}.qy-tabs a{flex:1 1 auto;justify-content:center;padding:9px 10px}
  .qy-row{align-items:flex-start}
  .qy-table{font-size:13px}.qy-table th,.qy-table td{padding-right:6px}
}

/* ---- v5-records.css ---- */
/* Records & sharing · Pearl: soft white surfaces, system sans, one deep-blue motif. */
.vr-workspace{max-width:1040px;margin:0 auto;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--vr-blue:var(--accent,#1046ab);--vr-line:var(--line,#e5e6ea);--vr-muted:var(--muted,#686b73);padding-bottom:48px;overflow-wrap:anywhere;min-width:0}
.vr-heading{margin:0 0 22px}.vr-heading h1{margin:0 0 10px;font-size:40px;line-height:1.15;letter-spacing:-.04em}.vr-heading p{margin:0;color:var(--vr-muted);line-height:1.5}
.vr-eyebrow{font-size:11px!important;letter-spacing:.11em;font-weight:650;color:var(--vr-blue)!important;margin:0 0 10px!important}
.vr-workspace h2{font-size:20px;letter-spacing:-.025em;margin:0 0 12px}.vr-workspace h3{font-size:17px;letter-spacing:-.02em;margin:0 0 8px;line-height:1.35}
.vr-back{border:0;background:none;color:var(--vr-blue);font:inherit;font-size:14px;padding:10px 0;min-height:44px;cursor:pointer;margin-bottom:6px}
.vr-tabs{display:flex;gap:6px;padding:4px;border:1px solid var(--vr-line);background:#eceef180;border-radius:14px;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 0 20px;overflow-x:auto;scrollbar-width:none}
.vr-tabs::-webkit-scrollbar{display:none}.vr-tabs button{min-height:44px;padding:9px 16px;border:0;background:transparent;color:var(--vr-muted);font:inherit;font-size:14px;border-radius:10px;white-space:nowrap;cursor:pointer}
.vr-tabs button[aria-current=page]{background:#fff;color:var(--vr-blue);box-shadow:0 2px 4px #2636520a}
.vr-banner{margin:0 0 20px;padding:12px 16px;border-radius:14px;background:var(--gold-light,#faf0dc);color:#5d4316;font-size:13px;line-height:1.5}
.vr-surface{padding:22px;margin-bottom:18px;background:var(--pearl-surface,#fff);border:1px solid var(--vr-line);border-radius:20px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228);min-width:0;box-sizing:border-box}
.vr-surface.vr-action{border-color:#d5e0f5}.vr-surface.vr-hero{background:var(--accent-soft,#eef3fc);border-color:#d5e0f5}.vr-quiet{box-shadow:none;background:#ffffffb0}
details.vr-surface>summary{font-weight:600;padding:10px 0;line-height:24px;margin:-10px 0;cursor:pointer;color:var(--vr-blue);min-height:44px;display:flex;align-items:center}details.vr-surface[open]>summary{margin-bottom:12px}
.vr-list{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:10px}
.vr-row{display:flex;justify-content:space-between;align-items:center;gap:14px;width:100%;padding:16px 18px;border:1px solid var(--vr-line);border-radius:16px;background:var(--pearl-surface,#fff);font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:64px;box-sizing:border-box}
.vr-row:hover{border-color:#c8d5ef}.vr-row>span:first-child{display:grid;gap:4px;min-width:0}.vr-row strong{font-size:15px;font-weight:600;line-height:1.35}.vr-row small{font-size:13px;color:var(--vr-muted);line-height:1.4}
.vr-row-end{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end;color:var(--vr-muted)}
.vr-pill{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:550;background:#f1f2f4;color:#4a4e57;white-space:normal;line-height:1.3}
.vr-pill.blue{background:var(--accent-soft,#eef3fc);color:var(--vr-blue)}.vr-pill.gold{background:var(--gold-light,#faf0dc);color:var(--gold,#966323)}.vr-pill.danger{background:#fbeeee;color:var(--danger,#ac343d)}.vr-pill.gray{background:#f1f2f4;color:#6b6f78}
.vr-detail-head{display:flex;flex-wrap:wrap;gap:8px;margin:-8px 0 18px}
.vr-facts{margin:0}.vr-facts>div{display:grid;grid-template-columns:180px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--vr-line);font-size:14px;line-height:1.5}.vr-facts>div:first-child{border-top:0}.vr-facts dt{color:var(--vr-muted)}.vr-facts dd{margin:0;min-width:0}
.vr-facts small{color:var(--vr-muted)}
.vr-plain{list-style:none;padding:0;margin:0;display:grid}.vr-plain li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px;padding:11px 0;border-top:1px solid var(--vr-line);font-size:14px}.vr-plain li:first-child{border-top:0}
.vr-plain li strong{font-weight:600;flex:1 1 220px}.vr-plain li small{color:var(--vr-muted);flex:1 1 100%}.vr-plain li .vr-button{min-height:40px;padding:8px 14px}
.vr-note{margin:12px 0 0;font-size:13px;color:var(--vr-muted);line-height:1.5}
.vr-lead{font-size:17px;line-height:1.5;margin:0 0 12px}
.vr-result{margin:0 0 10px}.vr-result .vr-pill{font-size:14px;padding:6px 14px}
.vr-form{display:grid;gap:14px}.vr-form.vr-inline{margin-bottom:14px}
.vr-field{display:grid;gap:6px;min-width:0}.vr-field>span{font-size:13px;font-weight:600;color:#3d4250}.vr-field small{font-size:12px;color:var(--vr-muted)}
.vr-field input,.vr-field select,.vr-field textarea{font:inherit;font-size:16px;padding:11px 12px;border:1px solid var(--vr-line);border-radius:12px;background:#fff;min-height:46px;box-sizing:border-box;width:100%;min-width:0;color:inherit}
.vr-field textarea{min-height:88px;resize:vertical}
.vr-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}.vr-three{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px}
.vr-fieldset{border:1px solid var(--vr-line);border-radius:16px;padding:14px 16px;margin:0;display:grid;gap:12px;min-width:0}.vr-fieldset legend{font-weight:600;font-size:14px;padding:0 6px}
.vr-checks{display:grid;gap:8px}.vr-checks label{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.4;min-height:32px}.vr-checks input{width:20px;height:20px;flex:none;margin:0}
.vr-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border:1px solid var(--vr-blue);border-radius:12px;background:var(--pearl-action,var(--vr-blue));color:#fff;font:inherit;font-size:14px;font-weight:550;cursor:pointer;text-decoration:none;box-sizing:border-box;text-align:center;justify-self:start}
.vr-button.secondary{background:#fff;color:var(--vr-blue);border-color:var(--vr-line);box-shadow:none}.vr-button.danger{background:#fff;color:var(--danger,#ac343d);border-color:#e7c3c6}
.vr-link{border:0;background:none;color:var(--vr-blue);font:inherit;font-size:13px;padding:8px 0;min-height:40px;cursor:pointer}
.vr-actions{display:flex;flex-wrap:wrap;gap:12px;margin:14px 0 0}
.vr-empty{padding:28px;border:1px dashed var(--vr-line);border-radius:20px;text-align:center;color:var(--vr-muted)}.vr-empty h3{color:var(--ink,#1d1d1f)}.vr-empty p{margin:0}
.vr-error{padding:14px 16px;border-radius:14px;background:#fbeeee;color:var(--danger,#ac343d);margin:0 0 18px;font-size:14px;line-height:1.5}.vr-error ul{margin:8px 0 0;padding-left:18px}
.vr-problems{margin:0 0 6px;padding-left:18px;color:var(--gold,#966323);font-size:14px;line-height:1.6}
.vr-status{color:var(--vr-muted)}
.vr-table{display:grid;gap:0}.vr-tr{display:grid;grid-template-columns:minmax(150px,1fr) repeat(auto-fit,minmax(170px,1fr));gap:14px;padding:14px 0;border-top:1px solid var(--vr-line)}.vr-tr:first-child{border-top:0}
.vr-tr [role=rowheader]{display:grid;gap:4px;align-content:start}.vr-tr [role=rowheader] small{color:var(--vr-muted);font-size:12px}
.vr-tr [role=cell]{display:grid;gap:6px;align-content:start;font-size:14px}.vr-tr [role=cell] p{margin:0;color:#3d4250;line-height:1.45}.vr-who{font-size:12px;color:var(--vr-muted)}
.vr-claims{margin:0;padding-left:20px;display:grid;gap:10px}.vr-claims li{line-height:1.5}.vr-claims small{display:block;color:var(--vr-muted);font-size:12px}
.vr-chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}.vr-chips button{min-height:40px;padding:8px 14px;border:1px solid var(--vr-line);background:#fff;border-radius:999px;font:inherit;font-size:13px;color:#3d4250;cursor:pointer}
.vr-chips button[aria-pressed=true]{background:var(--accent-soft,#eef3fc);border-color:#d5e0f5;color:var(--vr-blue);font-weight:600}
.vr-lib{list-style:none;padding:0;margin:0;display:grid;gap:10px}.vr-lib>li{padding:16px 18px;border:1px solid var(--vr-line);border-radius:16px;background:var(--pearl-surface,#fff)}
.vr-lib-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.vr-lib-head strong{font-weight:600;font-size:15px}
.vr-meta{margin:6px 0 0;font-size:13px;color:var(--vr-muted);line-height:1.45}.vr-lib-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.vr-item{margin-top:16px;padding:18px;border:1px solid #d5e0f5;border-radius:16px;background:#fbfcff}
.vr-notices{background:var(--accent-soft,#eef3fc);border-color:#d5e0f5}
.vr-workspace code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:#f1f2f4;padding:1px 5px;border-radius:6px}
@media (max-width:720px){.vr-heading h1{font-size:30px}.vr-two,.vr-three{grid-template-columns:1fr}.vr-facts>div{grid-template-columns:1fr;gap:2px}.vr-surface{padding:18px;border-radius:18px}.vr-tr{grid-template-columns:1fr}.vr-row{align-items:flex-start;flex-direction:column}.vr-row-end{justify-content:flex-start}.vr-tabs{width:100%}}

/* ---- operations.css ---- */
/* Operations · Pearl: soft white surfaces, system sans, one deep-blue motif. */
.operations-workspace{max-width:1040px;margin:0 auto;padding-bottom:48px;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--op-blue:var(--accent,#1046ab);--op-line:var(--line,#e5e6ea);--op-muted:var(--muted,#686b73);overflow-wrap:anywhere}
.op-heading{margin:0 0 24px}.op-heading h1{margin:0 0 10px;font-size:40px;line-height:1.15;letter-spacing:-.04em}.op-heading p{margin:0;color:var(--op-muted)}
.op-eyebrow{font-size:11px!important;letter-spacing:.11em;font-weight:650;color:var(--op-blue)!important;margin:0 0 10px!important}
.op-tabs{display:flex;gap:6px;padding:4px;border:1px solid var(--op-line);background:#eceef180;border-radius:14px;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 0 24px;overflow-x:auto;scrollbar-width:none}
.op-tabs::-webkit-scrollbar{display:none}.op-tabs button{min-height:44px;padding:9px 18px;border:0;background:transparent;color:var(--op-muted);font:inherit;font-size:14px;border-radius:10px;white-space:nowrap;cursor:pointer}
.op-tabs button[aria-current=page]{background:#fff;color:var(--op-blue);box-shadow:0 2px 4px #2636520a}
.op-banner{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 22px;margin:0 0 20px;border:1px solid var(--op-line);border-radius:18px;background:var(--pearl-surface,#fff);box-shadow:var(--pearl-shadow,none)}
.op-banner>div:first-child{display:grid;gap:4px;min-width:0;flex:1 1 260px}.op-banner strong{font-size:18px;font-weight:600;letter-spacing:-.02em}.op-banner span{font-size:13px;color:var(--op-muted)}
.op-banner.warn{border-color:#ecd9b5;background:linear-gradient(155deg,#fff,#fffaf0)}.op-banner.ok{border-color:#c9d6ef;background:linear-gradient(155deg,#fff,#f6f9fe)}
.op-cards{list-style:none;padding:0;margin:0 0 28px;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.op-card{display:flex;flex-direction:column;padding:18px 20px;border:1px solid var(--op-line);border-radius:18px;background:var(--pearl-surface,#fff);box-shadow:var(--pearl-shadow,none);min-width:0}
.op-card.warn{border-color:#ecd9b5}.op-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.op-card h2{margin:0 0 8px;font-size:16px;letter-spacing:-.015em;line-height:1.35}
.op-summary{margin:0 0 6px;font-size:15px;line-height:1.45}.op-action{margin:0;font-size:13px;color:var(--op-muted);line-height:1.5}
.op-pill{display:inline-flex;align-items:center;flex-shrink:0;min-height:24px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:550;background:#f1f2f4;color:#4a4e57;white-space:nowrap}
.op-pill.ok,.op-pill.info{background:var(--accent-soft,#eef3fc);color:var(--op-blue)}.op-pill.warn{background:var(--gold-light,#faf0dc);color:var(--gold,#966323)}.op-pill.quiet{background:#f1f2f4;color:#6b6f78}
.op-details{margin-top:10px;font-size:13px}.op-details>summary{min-height:36px;display:flex;align-items:center;cursor:pointer;color:var(--op-blue);font-weight:550}
.op-details dl{margin:4px 0 0;display:grid;gap:0}.op-details dl>div{display:grid;grid-template-columns:120px 1fr;gap:10px;padding:6px 0;border-top:1px solid var(--op-line)}.op-details dt{color:var(--op-muted)}.op-details dd{margin:0}
.op-details ol{margin:6px 0 0;padding-left:20px;color:#3d4250}
.op-section{margin:0 0 24px}.op-section-head{display:flex;align-items:center;gap:10px;margin:0 0 12px}.op-section-head h2{margin:0;font-size:22px;letter-spacing:-.03em}
.op-count{display:inline-flex;align-items:center;justify-content:center;min-width:26px;height:26px;padding:0 8px;border-radius:999px;background:#eef0f3;color:#4a4e57;font-size:13px;font-weight:600}
.op-list{list-style:none;padding:0;margin:0 0 12px;display:grid;gap:12px}
.op-item{padding:18px 20px;border:1px solid var(--op-line);border-radius:18px;background:var(--pearl-surface,#fff);box-shadow:var(--pearl-shadow,none);min-width:0}
.op-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.op-item-head strong{font-size:16px;font-weight:600;letter-spacing:-.015em}
.op-muted{margin:6px 0 0;font-size:13px;color:var(--op-muted);line-height:1.5}.op-reason{margin:10px 0 12px;padding:10px 12px;border-radius:12px;background:#f7f8fa;font-size:14px;color:#3d4250}
.op-learner-line{margin:10px 0 0;padding:10px 12px;border-radius:12px;background:var(--accent-soft,#eef3fc);color:#14306b;font-size:14px}.op-learner-line span{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--op-blue);font-weight:650;margin-bottom:2px}
.op-sublist{list-style:none;margin:10px 0 0;padding:0}.op-sublist li{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--op-line);font-size:14px}.op-sublist small{color:var(--op-muted);font-size:13px}
.op-surface{display:grid;gap:4px;padding:22px;margin:0 0 24px;border:1px solid var(--op-line);border-radius:20px;background:var(--pearl-surface,#fff);box-shadow:var(--pearl-shadow,none);min-width:0}.op-surface h2{margin:0 0 10px;font-size:20px;letter-spacing:-.025em}
.op-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.op-field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500;min-width:0;margin-bottom:12px}.op-field[hidden]{display:none}
.op-field :is(input,select){width:100%;min-width:0;min-height:46px;padding:11px 12px;font:inherit;font-size:16px;border:1px solid #d3dce8;border-radius:12px;background:#f5f7fa;color:var(--ink,#1d1d1f);box-sizing:border-box}
.op-decide{margin-top:12px;padding-top:12px;border-top:1px solid var(--op-line)}.op-decide .op-field{margin-bottom:8px}
.op-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.op-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border:1px solid var(--op-blue);border-radius:12px;background:var(--pearl-action,var(--op-blue));color:#fff;font:inherit;font-size:14px;font-weight:550;cursor:pointer;text-decoration:none;box-sizing:border-box;justify-self:start}
.op-button.secondary{background:#fff;color:var(--op-blue);border-color:#e0e3e9}.op-button:disabled{opacity:.45;cursor:default}
.op-link{display:inline-flex;align-items:center;min-height:44px;color:var(--op-blue);font-weight:550;text-decoration:none;font-size:14px}
.operations-workspace :is(button,a,summary,input,select):focus-visible{outline:3px solid var(--op-blue);outline-offset:3px}
.op-empty{padding:30px 16px;text-align:center;border:1px dashed #d6dbe3;border-radius:18px;background:#ffffff8a;margin:0 0 16px}.op-empty h3{margin:0 0 6px;font-size:17px}.op-empty p{max-width:460px;margin:0 auto;color:var(--op-muted);font-size:14px}
.op-message{padding:12px 14px;border-radius:12px;background:var(--accent-soft,#eef3fc);color:#14306b;font-size:14px;margin:0 0 16px}
.op-error{padding:12px 14px;border:1px solid #e2a9a9;background:#fff4f4;border-radius:12px;color:#99252d;font-size:14px;margin:0 0 16px}
.op-status{font-size:13px;color:var(--op-muted)}.op-status:empty{display:none}.op-footnote{font-size:13px;color:var(--op-muted);line-height:1.55;margin:12px 0 0}
@media (max-width:720px){.op-heading h1{font-size:32px}.op-grid{grid-template-columns:1fr}.op-cards{grid-template-columns:1fr}.op-banner{padding:16px}.op-banner>.op-button,.op-banner .op-actions{width:100%}.op-banner .op-actions .op-button{flex:1}
  .op-tabs{width:100%;display:grid;grid-template-columns:repeat(3,1fr)}.op-tabs button{padding:9px 6px;font-size:13px;white-space:normal;line-height:1.25}.op-details dl>div{grid-template-columns:96px 1fr}.op-card{padding:16px}.op-card h2{margin-bottom:6px}}
/* Learner and staff search additions (knowledge-drive.js, workbench.js). */
.kd-trace ul.kd-room-terms,.kd-room-terms{list-style:none;margin:12px 0 4px;padding:0;display:grid;gap:6px}.kd-room-terms li{padding:10px 12px;border-radius:12px;background:var(--accent-soft,#eef3fc);color:#14306b;font-size:14px;line-height:1.45}
.kd-related{margin-top:16px;padding-top:14px;border-top:1px solid var(--line,#e5e6ea)}.kd-related h4{margin:0 0 4px;font-size:15px}
.kd-mode{font-size:12px;color:var(--muted,#686b73);margin:10px 0 0}
.wb-related{margin-top:18px;padding-top:14px;border-top:1px solid var(--line,#e5e6ea)}.wb-related h3{margin:0 0 4px;font-size:16px}.wb-reason{font-size:12px;color:var(--muted,#686b73);margin:4px 0 0}

/* ---- governance.css ---- */
/* Progress & permissions · Pearl: soft white surfaces, system sans, one deep-blue motif. */
.governance-workspace{max-width:1040px;margin:0 auto;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--gv-blue:var(--accent,#1046ab);--gv-line:var(--line,#e5e6ea);--gv-muted:var(--muted,#686b73);padding-bottom:48px;overflow-wrap:anywhere}
.gv-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 28px}
.gv-heading h1{margin:0 0 10px;font-size:40px;line-height:1.15;letter-spacing:-.04em}.gv-heading p{margin:0;color:var(--gv-muted)}
.gv-eyebrow{font-size:11px!important;letter-spacing:.11em;font-weight:650;color:var(--gv-blue)!important;margin:0 0 10px!important}
.governance-workspace h2{font-size:24px;letter-spacing:-.03em;margin:0 0 6px}.governance-workspace h3{font-size:18px;letter-spacing:-.02em;margin:0 0 8px;line-height:1.3}
.gv-tabs{display:flex;gap:6px;padding:4px;border:1px solid var(--gv-line);background:#eceef180;border-radius:14px;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 0 28px;overflow-x:auto;scrollbar-width:none}
.gv-tabs::-webkit-scrollbar{display:none}.gv-tabs button{min-height:44px;padding:9px 20px;border:0;background:transparent;color:var(--gv-muted);font:inherit;font-size:14px;border-radius:10px;white-space:nowrap;cursor:pointer}
.gv-tabs button[aria-current=page]{background:#fff;color:var(--gv-blue);box-shadow:0 2px 4px #2636520a}
.gv-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:24px;border:1px solid var(--gv-line);border-radius:20px;background:#ffffffb5;overflow:hidden}
.gv-summary>div{display:grid;gap:3px;padding:20px 22px;min-width:0;border-left:1px solid var(--gv-line);margin-left:-1px}.gv-summary strong{font-size:28px;font-weight:600;letter-spacing:-.035em}.gv-summary span{font-size:13px;color:var(--gv-muted)}
.gv-summary>div.alert strong{color:var(--danger,#ac343d)}
.gv-season-row{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin:0 0 18px}.gv-season-row h2{margin:2px 0 4px}.gv-kicker{margin:0;font-size:13px;color:var(--gv-muted)}
.gv-season-picker{min-width:240px;margin:0!important}
.gv-surface{padding:24px;margin-bottom:20px;background:var(--pearl-surface,#fff);border:1px solid var(--gv-line);border-radius:20px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228);min-width:0}
details.gv-surface>summary{font-weight:600;padding:10px 0;line-height:24px;margin:-10px 0;cursor:pointer;color:var(--gv-blue)}details.gv-surface[open]>summary{margin-bottom:14px}
.gv-quiet{box-shadow:none;background:#ffffffb0}
.gv-danger-zone{border-color:#efd3d5}.gv-danger-zone>summary{color:var(--danger,#ac343d)!important}
.gv-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}.gv-section-heading>span{font-size:13px;color:var(--gv-muted)}
.gv-segment{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px}.gv-segment button{min-height:44px;padding:8px 14px;border:1px solid var(--gv-line);border-radius:999px;background:#fff;color:var(--gv-muted);font:inherit;font-size:13px;cursor:pointer}
.gv-segment button[aria-pressed=true]{border-color:var(--gv-blue);color:var(--gv-blue);background:var(--accent-soft,#eef3fc)}
.gv-list{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:12px}.gv-list.compact{gap:0;margin:0}
.gv-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;background:var(--pearl-surface,#fff);border:1px solid var(--gv-line);border-radius:16px;min-width:0;color:inherit;text-decoration:none}
.gv-surface .gv-row{border-width:0 0 1px;border-radius:0;padding:14px 0;background:none;box-shadow:none}.gv-surface .gv-list>li:last-child>.gv-row,.gv-surface .gv-list>li.gv-row:last-child{border-bottom:0}
.gv-row.overdue{border-color:#e7c3c6}.gv-surface .gv-row.overdue{border-color:var(--gv-line)}
.gv-row-link{min-height:44px;cursor:pointer}.gv-row-link:hover{border-color:#c9d6ef}.gv-row-link:hover strong{color:var(--gv-blue)}
.gv-row-main{display:grid;gap:3px;min-width:0;flex:1 1 auto}.gv-row-main strong{font-size:16px;font-weight:600;letter-spacing:-.015em}.gv-row-main>span:not(.gv-kind){font-size:14px;color:#3d4250}
.gv-row-meta{display:grid;justify-items:end;gap:6px;text-align:right;flex:0 0 auto;max-width:45%}.gv-row-meta small{font-size:12px;color:var(--gv-muted)}
.gv-kind{font-size:12px;font-weight:600;color:var(--gv-blue);letter-spacing:.02em}
.gv-pill{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:550;background:#f1f2f4;color:#4a4e57;white-space:nowrap}
.gv-pill.blue{background:var(--accent-soft,#eef3fc);color:var(--gv-blue)}.gv-pill.gold{background:var(--gold-light,#faf0dc);color:var(--gold,#966323)}.gv-pill.danger{background:#fbeeee;color:var(--danger,#ac343d)}.gv-pill.gray{background:#f1f2f4;color:#6b6f78}
.gv-item{padding:20px 22px;background:var(--pearl-surface,#fff);border:1px solid var(--gv-line);border-radius:18px;box-shadow:var(--pearl-shadow,none);min-width:0}.gv-item.done{box-shadow:none;background:#ffffffb0}
.gv-item h3{margin:8px 0 6px}.gv-item-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.gv-item-head h3{margin:0}
.gv-grant{padding:16px 0;border-bottom:1px solid var(--gv-line)}.gv-grant:last-child{border-bottom:0}.gv-grant .gv-item-head strong{font-size:16px}
.gv-meta{margin:6px 0 0;font-size:13px;color:var(--gv-muted)}.gv-note-small{margin:8px 0 0;font-size:14px;color:#3d4250;line-height:1.5}
.gv-uses{margin:8px 0 0}.gv-uses>div{display:grid;grid-template-columns:200px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--gv-line);align-items:start}.gv-uses dt{font-size:14px;font-weight:550;padding-top:2px}
.gv-uses dd{margin:0;display:grid;gap:4px;justify-items:start}.gv-uses small{font-size:13px;color:var(--gv-muted);line-height:1.45}
.gv-facts{margin:12px 0 0}.gv-facts>div{display:grid;grid-template-columns:170px 1fr;gap:12px;padding:9px 0;border-top:1px solid var(--gv-line);font-size:14px}.gv-facts dt{color:var(--gv-muted)}.gv-facts dd{margin:0}.gv-facts em{font-style:normal;color:var(--gold,#966323)}
.gv-derived{list-style:none;padding:0;margin:0;display:grid;gap:0}.gv-derived li{display:grid;grid-template-columns:190px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--gv-line);font-size:14px}.gv-derived li:first-child{border-top:0}
.gv-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:0 0 22px}
.gv-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border:1px solid var(--gv-blue);border-radius:12px;background:var(--pearl-action,var(--gv-blue));color:#fff;font:inherit;font-size:14px;font-weight:550;cursor:pointer;text-decoration:none;box-sizing:border-box;white-space:normal;text-align:center}
.gv-button.secondary{background:#fff;color:var(--gv-blue);border-color:var(--gv-line);box-shadow:none}.gv-button.danger{background:#fff;color:var(--danger,#ac343d);border-color:#e7c3c6}
.gv-button:disabled{opacity:.45;cursor:default}
.gv-button.link{display:inline-flex;min-height:44px;padding:0 2px;vertical-align:middle;border:0;background:none;color:var(--gv-blue);font-size:inherit;font-weight:550;text-decoration:underline;text-underline-offset:3px}
.governance-workspace :is(button,a,summary,input,select,textarea):focus-visible{outline:3px solid var(--gv-blue);outline-offset:3px}
.governance-workspace form{display:grid;gap:4px;min-width:0;margin-top:8px}
.gv-field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500;min-width:0;margin-bottom:12px}
.gv-field :is(input,select,textarea){width:100%;min-width:0;min-height:46px;padding:11px 12px;font:inherit;font-size:16px;border:1px solid #d3dce8;border-radius:12px;background:#f5f7fa;color:var(--ink,#1d1d1f);box-sizing:border-box}
.gv-field textarea{min-height:84px;resize:vertical}.gv-field small{font-size:12px;color:var(--gv-muted);font-weight:400}
.gv-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.gv-inline-form{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;align-items:end;gap:0 12px!important;margin-top:14px!important}.gv-inline-form .gv-field{margin-bottom:0}
.gv-checks{border:0;padding:0;margin:4px 0 12px;display:grid;gap:2px;min-width:0}.gv-checks[hidden]{display:none}.gv-checks legend{font-size:13px;font-weight:500;margin-bottom:6px;padding:0}
.gv-check{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;font-size:15px}.gv-check input{width:20px;height:20px;flex:0 0 20px;margin:0;accent-color:var(--gv-blue)}.gv-check small{color:var(--gv-muted)}
.gv-disclosure{margin-top:12px;border-top:1px solid var(--gv-line);padding-top:4px}.gv-disclosure>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--gv-blue);font-weight:550;font-size:14px}.gv-disclosure[open]>summary{margin-bottom:6px}
.gv-primary-disclosure{border-top:0;margin-top:16px}.gv-primary-disclosure>summary{display:inline-flex;justify-content:center;min-height:46px;padding:11px 18px;border-radius:12px;background:var(--pearl-action,var(--gv-blue));color:#fff;list-style:none}
.gv-primary-disclosure>summary::-webkit-details-marker{display:none}.gv-primary-disclosure[open]>summary{background:#fff;color:var(--gv-blue);border:1px solid var(--gv-line)}
.gv-empty{padding:36px 16px;text-align:center;margin-bottom:20px;border:1px dashed #d6dbe3;border-radius:20px;background:#ffffff8a}.gv-empty h3{margin:0 0 8px}.gv-empty p{max-width:460px;margin:0 auto;color:var(--gv-muted);font-size:14px}
.gv-error{padding:14px 16px;border:1px solid #e2a9a9;background:#fff4f4;border-radius:12px;color:#99252d;font-size:14px;margin:12px 0}
.gv-status{font-size:13px;color:var(--gv-muted);margin:0 0 12px}.gv-status:empty{display:none}
.gv-muted,.gv-footnote{font-size:13px;color:var(--gv-muted);line-height:1.55;margin:10px 0 0}
.gv-note{margin:0 0 18px;padding:12px 14px;border-radius:12px;background:var(--accent-soft,#eef3fc);color:#21324f;font-size:14px}
.gv-awaiting{margin:0 0 18px;padding:12px 14px;border-radius:12px;background:var(--gold-light,#faf0dc);color:#6f4a1b;font-size:14px}.gv-awaiting.danger{background:#fbeeee;color:#8f2a31}
.gv-training{margin:0 0 18px;font-size:13px;color:#555a63;padding:10px 14px;border-radius:12px;background:#f4f5f7}
.gv-bullets{margin:8px 0 0;padding-left:20px;font-size:14px;line-height:1.6}
/* Learner-facing note shown inside a lesson that is under review. */
.gv-learner-note{margin:14px 0 0;padding:12px 14px;border-radius:12px;background:var(--gold-light,#faf0dc);color:#6f4a1b;font-size:14px;line-height:1.5}
@media(max-width:640px){
  .gv-heading{gap:12px}.gv-heading h1{font-size:30px}.gv-heading>.gv-button{padding:10px 12px;flex-shrink:0}
  .gv-tabs{width:100%;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px}.gv-tabs button{padding:8px 6px;font-size:13px}
  .gv-summary{grid-template-columns:1fr 1fr}.gv-summary>div:last-child:nth-child(odd){grid-column:1/-1}.gv-summary>div{padding:14px 12px;border-top:1px solid var(--gv-line);margin-top:-1px}.gv-summary strong{font-size:22px}.gv-summary span{font-size:12px}
  .gv-season-row{flex-direction:column;align-items:stretch;gap:12px}.gv-season-picker{min-width:0}
  .gv-surface{padding:20px 16px;border-radius:18px}.gv-item{padding:16px}
  .gv-row{flex-direction:column;align-items:stretch;gap:8px;padding:14px 16px}.gv-row-meta{justify-items:start;text-align:left;max-width:none;grid-auto-flow:row}
  .gv-grid,.gv-inline-form{grid-template-columns:1fr!important}.gv-inline-form .gv-field{margin-bottom:12px}
  .gv-uses>div,.gv-facts>div,.gv-derived li{grid-template-columns:1fr;gap:4px}
  .gv-actions{flex-direction:column;align-items:stretch}.gv-primary-disclosure>summary{display:flex}
}

/* ---- roles-usage.css ---- */
/* Roles · Usage & credits · Pearl: soft white surfaces, system sans, one deep-blue motif. */
.ru-workspace{max-width:1040px;margin:0 auto;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--ru-blue:var(--accent,#1046ab);--ru-line:var(--line,#e5e6ea);--ru-muted:var(--muted,#686b73);padding-bottom:48px;overflow-wrap:anywhere}
.ru-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 28px}
.ru-heading h1{margin:0 0 10px;font-size:40px;line-height:1.15;letter-spacing:-.04em}.ru-heading p{margin:0;color:var(--ru-muted)}
.ru-eyebrow{font-size:11px!important;letter-spacing:.11em;font-weight:650;color:var(--ru-blue)!important;margin:0 0 10px!important}
.ru-workspace h2{font-size:22px;letter-spacing:-.03em;margin:0 0 6px}.ru-workspace h3{font-size:18px;letter-spacing:-.02em;margin:0;line-height:1.3}
.ru-tabs{display:flex;gap:6px;padding:4px;border:1px solid var(--ru-line);background:#eceef180;border-radius:14px;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 0 28px;overflow-x:auto;scrollbar-width:none}
.ru-tabs::-webkit-scrollbar{display:none}.ru-tabs button{min-height:44px;padding:9px 20px;border:0;background:transparent;color:var(--ru-muted);font:inherit;font-size:14px;border-radius:10px;white-space:nowrap;cursor:pointer}
.ru-tabs button[aria-current=page]{background:#fff;color:var(--ru-blue);box-shadow:0 2px 4px #2636520a}
.ru-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:24px;border:1px solid var(--ru-line);border-radius:20px;background:#ffffffb5;overflow:hidden}
.ru-summary>div{display:grid;gap:3px;padding:20px 22px;min-width:0;border-left:1px solid var(--ru-line);margin-left:-1px}.ru-summary strong{font-size:26px;font-weight:600;letter-spacing:-.035em}.ru-summary span{font-size:13px;color:var(--ru-muted)}
.ru-surface{padding:24px;margin-bottom:20px;background:var(--pearl-surface,#fff);border:1px solid var(--ru-line);border-radius:20px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228);min-width:0}
details.ru-surface>summary{font-weight:600;padding:10px 0;line-height:24px;margin:-10px 0;cursor:pointer;color:var(--ru-blue)}details.ru-surface[open]>summary{margin-bottom:14px}
.ru-quiet{box-shadow:none;background:#ffffffb0}
.ru-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px}.ru-section-heading>span{font-size:13px;color:var(--ru-muted)}
.ru-list{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:12px}.ru-list.compact{gap:0;margin:0}
.ru-meter,.ru-person{padding:20px 22px;background:var(--pearl-surface,#fff);border:1px solid var(--ru-line);border-radius:18px;box-shadow:var(--pearl-shadow,none);min-width:0}
.ru-meter-value{margin:10px 0 8px;font-size:15px;color:#3d4250}.ru-meter-value span{font-size:24px;font-weight:600;letter-spacing:-.03em;color:var(--ink,#1d1d1f)}
.ru-bar{height:8px;border-radius:999px;background:#eceef1;overflow:hidden}.ru-bar span{display:block;height:100%;border-radius:inherit;background:var(--pearl-action,var(--ru-blue))}
.ru-people{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:12px}
.ru-person-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.ru-chips{list-style:none;padding:0;margin:12px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.ru-chip{display:grid;gap:2px;padding:8px 12px;border:1px solid var(--ru-line);border-radius:12px;background:#f7f8fa;font-size:13px;min-width:0}.ru-chip strong{font-size:14px;font-weight:600}.ru-chip span{color:var(--ru-muted)}
.ru-chip.granted{background:var(--accent-soft,#eef3fc);border-color:#d5e0f5}
.ru-grant{padding:16px 0;border-top:1px solid var(--ru-line)}.ru-person .ru-grant{margin-top:12px}.ru-list.compact .ru-grant:first-child{border-top:0}
.ru-list>.ru-grant{padding:20px 22px;background:var(--pearl-surface,#fff);border:1px solid var(--ru-line);border-radius:18px}
.ru-item-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.ru-item-head strong{font-size:16px;font-weight:600}
.ru-meta{margin:6px 0 0;font-size:13px;color:var(--ru-muted)}.ru-note-small{margin:8px 0 0;font-size:14px;color:#3d4250;line-height:1.5}
.ru-pill{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:550;background:#f1f2f4;color:#4a4e57;white-space:nowrap}
.ru-pill.blue{background:var(--accent-soft,#eef3fc);color:var(--ru-blue)}.ru-pill.gold{background:var(--gold-light,#faf0dc);color:var(--gold,#966323)}.ru-pill.danger{background:#fbeeee;color:var(--danger,#ac343d)}.ru-pill.gray{background:#f1f2f4;color:#6b6f78}
.ru-kinds{list-style:none;padding:0;margin:0 0 20px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.ru-kinds>li{padding:18px 20px;background:#ffffffb5;border:1px solid var(--ru-line);border-radius:18px;min-width:0}
.ru-table{list-style:none;padding:0;margin:0;display:grid}.ru-table li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--ru-line);font-size:14px}.ru-table li:first-child{border-top:0}
.ru-table strong{font-weight:600}.ru-table span{color:var(--ru-muted);text-align:right}
.ru-facts{margin:12px 0 0}.ru-facts>div{display:grid;grid-template-columns:170px 1fr;gap:12px;padding:9px 0;border-top:1px solid var(--ru-line);font-size:14px}.ru-facts dt{color:var(--ru-muted)}.ru-facts dd{margin:0}
.ru-two{display:grid;grid-template-columns:1fr 1fr;gap:20px}.ru-two>.ru-surface{margin-bottom:20px}
.ru-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:0 0 22px}
.ru-period{max-width:220px;margin-bottom:12px}
.ru-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border:1px solid var(--ru-blue);border-radius:12px;background:var(--pearl-action,var(--ru-blue));color:#fff;font:inherit;font-size:14px;font-weight:550;cursor:pointer;text-decoration:none;box-sizing:border-box;text-align:center}
.ru-button.secondary{background:#fff;color:var(--ru-blue);border-color:var(--ru-line);box-shadow:none}.ru-button.danger{background:#fff;color:var(--danger,#ac343d);border-color:#e7c3c6}
.ru-button.link{min-height:44px;padding:0 4px;border:0;background:none;color:var(--ru-blue);text-decoration:underline;text-underline-offset:3px}
.ru-button:disabled{opacity:.45;cursor:default}
.ru-workspace :is(button,a,summary,input,select,textarea):focus-visible{outline:3px solid var(--ru-blue);outline-offset:3px}
.ru-workspace form{display:grid;gap:4px;min-width:0;margin-top:8px}
.ru-field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500;min-width:0;margin-bottom:12px}
.ru-field :is(input,select,textarea){width:100%;min-width:0;min-height:46px;padding:11px 12px;font:inherit;font-size:16px;border:1px solid #d3dce8;border-radius:12px;background:#f5f7fa;color:var(--ink,#1d1d1f);box-sizing:border-box}
.ru-field textarea{min-height:84px;resize:vertical}.ru-field small{font-size:12px;color:var(--ru-muted);font-weight:400}
.ru-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.ru-limit{border:1px solid var(--ru-line);border-radius:14px;padding:14px 16px 2px;margin:0 0 12px;min-width:0}.ru-limit legend{font-size:14px;font-weight:600;padding:0 6px}
.ru-inline-form{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;align-items:end;gap:0 12px!important;margin-top:10px!important}.ru-inline-form .ru-field{margin-bottom:0}
/* The app's global details rule draws a rule and padding; these disclosures do not. */
.ru-workspace details{border-top:0;font-size:inherit}.ru-workspace details:not(.ru-surface){padding:0}.ru-workspace details p{margin-top:0}
.ru-disclosure{margin-top:12px}.ru-disclosure>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--ru-blue);font-weight:550;font-size:14px}.ru-disclosure[open]>summary{margin-bottom:6px}
.ru-primary-disclosure{margin:0 0 24px}.ru-primary-disclosure>summary{display:inline-flex;justify-content:center;min-height:46px;padding:11px 18px;border-radius:12px;background:var(--pearl-action,var(--ru-blue));color:#fff;list-style:none}
.ru-primary-disclosure>summary::-webkit-details-marker{display:none}.ru-primary-disclosure[open]>summary{background:#fff;color:var(--ru-blue);border:1px solid var(--ru-line)}
.ru-primary-disclosure>form{padding:20px;border:1px solid var(--ru-line);border-radius:18px;background:var(--pearl-surface,#fff);margin-top:12px}
.ru-empty{padding:36px 16px;text-align:center;margin-bottom:20px;border:1px dashed #d6dbe3;border-radius:20px;background:#ffffff8a}.ru-empty h3{margin:0 0 8px}.ru-empty p{max-width:460px;margin:0 auto;color:var(--ru-muted);font-size:14px}
.ru-error{padding:14px 16px;border:1px solid #e2a9a9;background:#fff4f4;border-radius:12px;color:#99252d;font-size:14px;margin:12px 0}
.ru-status{font-size:13px;color:var(--ru-muted);margin:0 0 12px}.ru-status:empty{display:none}
.ru-muted,.ru-footnote{font-size:13px;color:var(--ru-muted);line-height:1.55;margin:10px 0 0}
.ru-awaiting{margin:0 0 18px;padding:12px 14px;border-radius:12px;background:var(--gold-light,#faf0dc);color:#6f4a1b;font-size:14px}
@media(max-width:640px){
  .ru-heading h1{font-size:30px}
  .ru-tabs{width:100%;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:2px}.ru-tabs button{padding:8px 6px;font-size:13px}
  .ru-summary{grid-template-columns:1fr 1fr}.ru-summary>div:last-child:nth-child(odd){grid-column:1/-1}.ru-summary>div{padding:14px 12px;border-top:1px solid var(--ru-line);margin-top:-1px}.ru-summary strong{font-size:20px}.ru-summary span{font-size:12px}
  .ru-surface{padding:20px 16px;border-radius:18px}.ru-meter,.ru-person,.ru-list>.ru-grant{padding:16px}
  .ru-grid,.ru-inline-form,.ru-two{grid-template-columns:1fr!important}.ru-inline-form .ru-field{margin-bottom:12px}
  .ru-facts>div{grid-template-columns:1fr;gap:4px}
  .ru-table li{flex-direction:column;gap:4px}.ru-table span{text-align:left}
  .ru-actions{flex-direction:column;align-items:stretch}.ru-primary-disclosure>summary{display:flex}
  .ru-primary-disclosure>form{padding:16px}
}

/* ---- desk.css ---- */
/* Approval desk · setup wizard · author session · Pearl: soft white, system sans, one deep-blue motif. */
.dk-workspace{max-width:1040px;margin:0 auto;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--dk-blue:var(--accent,#1046ab);--dk-line:var(--line,#e5e6ea);--dk-muted:var(--muted,#686b73);padding-bottom:48px;overflow-wrap:anywhere;min-width:0}
.dk-heading{margin:0 0 24px}.dk-heading h1{margin:0 0 10px;font-size:40px;line-height:1.15;letter-spacing:-.04em}.dk-heading>p{margin:0;color:var(--dk-muted)}
.dk-eyebrow{font-size:11px!important;letter-spacing:.11em;font-weight:650;color:var(--dk-blue)!important;margin:0 0 10px!important}
.dk-workspace h2{font-size:22px;letter-spacing:-.03em;margin:0 0 10px}.dk-workspace h3{font-size:17px;letter-spacing:-.02em;margin:18px 0 8px;line-height:1.3}
.dk-tabs{display:flex;gap:6px;padding:4px;border:1px solid var(--dk-line);background:#eceef180;border-radius:14px;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 0 24px;overflow-x:auto;scrollbar-width:none}
.dk-tabs::-webkit-scrollbar{display:none}.dk-tabs button{min-height:44px;padding:9px 18px;border:0;background:transparent;color:var(--dk-muted);font:inherit;font-size:14px;border-radius:10px;white-space:nowrap;cursor:pointer}
.dk-tabs button[aria-current=page]{background:#fff;color:var(--dk-blue);box-shadow:0 2px 4px #2636520a}
.dk-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:20px;border:1px solid var(--dk-line);border-radius:20px;background:#ffffffb5;overflow:hidden}
.dk-summary>div{display:grid;gap:3px;padding:18px 22px;min-width:0;border-left:1px solid var(--dk-line);margin-left:-1px}.dk-summary strong{font-size:26px;font-weight:600;letter-spacing:-.035em}.dk-summary span{font-size:13px;color:var(--dk-muted)}
.dk-next{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 22px;margin-bottom:20px;border-radius:20px;background:var(--accent-soft,#eef3fc);border:1px solid #d5e0f5}
.dk-next>div{display:grid;gap:4px;min-width:0}.dk-next strong{font-size:17px;font-weight:600}.dk-next span{font-size:13px;color:var(--dk-muted)}.dk-next .dk-eyebrow{margin:0!important}
.dk-surface{padding:22px 24px;margin-bottom:18px;background:var(--pearl-surface,#fff);border:1px solid var(--dk-line);border-radius:20px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228);min-width:0}
details.dk-surface>summary{font-weight:600;min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--dk-blue);margin:-10px 0}details.dk-surface[open]>summary{margin-bottom:12px}
.dk-quiet{box-shadow:none;background:#ffffffb0}
.dk-panel{padding:22px 24px;margin-bottom:18px;border-radius:20px;border:1px solid #d5e0f5;background:#f7f9fe;min-width:0}
.dk-proposed{border-left:4px solid var(--dk-blue)}div.dk-proposed{padding:14px 16px;margin:12px 0;border-radius:12px;background:#f7f9fe}
.dk-list{list-style:none;padding:0;margin:0 0 20px;display:grid;gap:10px}
.dk-row{padding:16px 20px;background:var(--pearl-surface,#fff);border:1px solid var(--dk-line);border-radius:16px;min-width:0;display:grid;gap:6px}
.dk-row-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.dk-row-title{display:flex;align-items:center;min-height:44px;padding:0;border:0;background:none;font:inherit;font-size:16px;font-weight:600;line-height:1.35;color:var(--ink,#1d1d1f);text-align:left;text-decoration:none;cursor:pointer}.dk-row-title:hover{color:var(--dk-blue);text-decoration:underline;text-underline-offset:3px}
.dk-row{gap:2px}.dk-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.dk-more{width:100%;margin:0 0 20px}
form:has(input[type=radio][value=amend]:not(:checked)) [data-dk-when=amend]{display:none}
.dk-meta{margin:0;font-size:13px;color:var(--dk-muted)}
.dk-pill{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:550;background:#f1f2f4;color:#4a4e57;white-space:nowrap}
.dk-pill.blue{background:var(--accent-soft,#eef3fc);color:var(--dk-blue)}.dk-pill.gold{background:var(--gold-light,#faf0dc);color:var(--gold,#966323)}.dk-pill.green{background:#e8f4ec;color:#1f6a3a}.dk-pill.danger{background:#fbeeee;color:var(--danger,#ac343d)}.dk-pill.gray{background:#f1f2f4;color:#6b6f78}
.dk-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border:1px solid var(--dk-blue);border-radius:12px;background:var(--pearl-action,var(--dk-blue));color:#fff;font:inherit;font-size:14px;font-weight:550;cursor:pointer;text-decoration:none;box-sizing:border-box;white-space:nowrap}
.dk-button.secondary{background:#fff;color:var(--dk-blue);border-color:var(--dk-line)}.dk-button.danger{background:#fff;color:var(--danger,#ac343d);border-color:#e7c3c6}.dk-button:disabled{opacity:.45;cursor:default}
.dk-link{display:inline-flex;align-items:center;min-height:44px;padding:0 2px;border:0;background:none;color:var(--dk-blue);font:inherit;font-size:14px;font-weight:550;text-decoration:underline;text-underline-offset:3px;cursor:pointer;justify-self:start}
.dk-back{margin-bottom:6px;text-decoration:none}
.dk-workspace :is(button,a,summary,input,select,textarea):focus-visible{outline:3px solid var(--dk-blue);outline-offset:3px}
.dk-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 12px;margin:0 0 8px}
.dk-field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500;min-width:0;margin-bottom:12px}.dk-field em{font-style:normal;color:var(--dk-muted);font-weight:400}
.dk-field :is(input,select,textarea){width:100%;min-width:0;min-height:46px;padding:11px 12px;font:inherit;font-size:16px;border:1px solid #d3dce8;border-radius:12px;background:#fff;color:var(--ink,#1d1d1f);box-sizing:border-box}
.dk-field textarea{min-height:84px;resize:vertical}.dk-field small{font-size:12px;color:var(--dk-muted);font-weight:400}
.dk-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.dk-choice{display:flex;flex-wrap:wrap;gap:8px;border:0;padding:0;margin:0 0 12px}.dk-choice legend{font-size:13px;font-weight:500;margin-bottom:8px;padding:0}
.dk-choice label{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:1px solid var(--dk-line);border-radius:12px;background:#fff;font-size:14px;cursor:pointer}
.dk-choice label:has(input:checked){border-color:var(--dk-blue);color:var(--dk-blue);background:var(--accent-soft,#eef3fc)}
.dk-check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:14px;margin-bottom:12px}
.dk-workspace form{display:grid;gap:2px;min-width:0}
.dk-table-list{list-style:none;padding:0;margin:0;display:grid}.dk-table-list li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--dk-line);font-size:14px}.dk-table-list li:first-child{border-top:0}
.dk-table-list li>div{display:grid;gap:2px;min-width:0}.dk-table-list small{color:var(--dk-muted);font-size:12px}.dk-table-list span{color:#3d4250;text-align:right;max-width:55%}
.dk-facts{margin:8px 0 0}.dk-facts>div{display:grid;grid-template-columns:180px minmax(0,1fr);gap:12px;padding:9px 0;border-top:1px solid var(--dk-line);font-size:14px;line-height:1.5}.dk-facts dt{color:var(--dk-muted);text-transform:capitalize}.dk-facts dd{margin:0;min-width:0}
.dk-facts .dk-facts>div{grid-template-columns:140px minmax(0,1fr)}
.dk-bullets{margin:0;padding-left:18px;display:grid;gap:4px}.dk-objects{list-style:none;padding:0;margin:0;display:grid;gap:8px}.dk-objects>li{padding:8px 12px;border:1px solid var(--dk-line);border-radius:12px;background:#fafbfc}
.dk-objects .dk-facts{margin:0}.dk-objects .dk-facts>div:first-child{border-top:0}
.dk-history{list-style:none;padding:0;margin:0;display:grid;gap:14px}.dk-history li p{margin:6px 0 0;font-size:14px;line-height:1.5}
.dk-answer{padding:14px 16px;margin:10px 0;border:1px solid var(--dk-line);border-radius:14px;background:#fffdf7}.dk-answer p{margin:8px 0 0;font-size:14px;line-height:1.5}.dk-answer.superseded{opacity:.6}
.dk-means{margin:0 0 18px;padding:14px 16px;border-radius:12px;background:#f5f6f8;font-size:14px;line-height:1.5;color:#3d4250}
.dk-awaiting{margin:0 0 18px;padding:12px 14px;border-radius:12px;background:var(--gold-light,#faf0dc);color:#6f4a1b;font-size:14px;line-height:1.5}
.dk-done{margin:0 0 18px;padding:12px 14px;border-radius:12px;background:#e8f4ec;color:#1f5a33;font-size:14px}
.dk-notice{padding:12px 14px;border-radius:12px;background:#e8f4ec;color:#1f5a33;font-size:14px;margin:0 0 14px}
.dk-error{padding:14px 16px;border:1px solid #e2a9a9;background:#fff4f4;border-radius:12px;color:#99252d;font-size:14px;margin:0 0 14px}
.dk-status{font-size:13px;color:var(--dk-muted);margin:0 0 12px}.dk-status:empty{display:none}
.dk-muted,.dk-footnote{font-size:13px;color:var(--dk-muted);line-height:1.55;margin:10px 0 0}
.dk-empty{padding:36px 16px;text-align:center;margin-bottom:20px;border:1px dashed #d6dbe3;border-radius:20px;background:#ffffff8a}.dk-empty h3{margin:0 0 8px}.dk-empty p{max-width:460px;margin:0 auto 16px;color:var(--dk-muted);font-size:14px}
.dk-workspace details{border-top:0;font-size:inherit}.dk-workspace details:not(.dk-surface):not(.dk-gate){padding:0}
.dk-disclosure{margin-top:10px}.dk-disclosure>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--dk-blue);font-weight:550;font-size:14px}
.dk-markdown{font-size:15px;line-height:1.6;min-width:0}.dk-markdown h2,.dk-markdown h3,.dk-markdown h4,.dk-markdown h5{margin:22px 0 8px;letter-spacing:-.02em}.dk-markdown p{margin:0 0 12px}
.dk-markdown blockquote{margin:0 0 14px;padding:10px 14px;border-left:3px solid var(--gold,#966323);background:#fdf8ee;border-radius:0 10px 10px 0}
.dk-table-wrap{overflow-x:auto;margin:0 0 14px;border:1px solid var(--dk-line);border-radius:12px;max-width:100%}.dk-markdown table{border-collapse:collapse;font-size:13px;min-width:100%}
.dk-markdown th,.dk-markdown td{padding:8px 10px;border-top:1px solid var(--dk-line);text-align:left;vertical-align:top;min-width:90px}.dk-markdown th{background:#f5f6f8;border-top:0;font-weight:600}
.dk-markdown code{font-size:13px;background:#f1f2f4;padding:1px 5px;border-radius:6px}
.dk-gates{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:10px}
.dk-gate{border:1px solid var(--dk-line);border-radius:18px;background:var(--pearl-surface,#fff);padding:0 20px}
.dk-gate>summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-height:64px;cursor:pointer;list-style:none}.dk-gate>summary::-webkit-details-marker{display:none}
.dk-gate-id{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:12px;background:var(--accent-soft,#eef3fc);color:var(--dk-blue);font-weight:650;font-size:14px}
.dk-gate-name{font-weight:600;font-size:16px;flex:1 1 180px}
.dk-gate-rows{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:0}.dk-gate-row{display:grid;gap:4px;padding:14px 0;border-top:1px solid var(--dk-line)}.dk-gate-row strong{font-size:15px;font-weight:600;line-height:1.4}
.dk-check-line{margin:0;font-size:13px;color:#3d4250}.state-signed_off .dk-check-line{color:#1f6a3a}
.dk-steps{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}.dk-steps button{min-height:44px;min-width:56px;padding:0 12px;border:1px solid var(--dk-line);border-radius:12px;background:#fff;font:inherit;font-size:14px;color:var(--dk-muted);cursor:pointer}
.dk-steps button[aria-current=step]{border-color:var(--dk-blue);color:var(--dk-blue);background:var(--accent-soft,#eef3fc);font-weight:600}
.dk-prompt{font-size:16px;line-height:1.5;margin:0 0 10px}
@media(max-width:640px){
  .dk-heading h1{font-size:30px}
  .dk-tabs{width:100%;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(max-content,1fr);gap:2px}.dk-tabs button{padding:8px 10px;font-size:13px}
  .dk-summary{grid-template-columns:1fr 1fr 1fr}.dk-summary>div{padding:12px 10px}.dk-summary strong{font-size:20px}.dk-summary span{font-size:12px}
  .dk-surface,.dk-panel{padding:18px 16px;border-radius:18px}.dk-row{padding:14px 16px}.dk-gate{padding:0 14px}
  .dk-next{flex-direction:column;align-items:stretch}.dk-next .dk-button{width:100%}
  .dk-filters,.dk-grid{grid-template-columns:1fr}
  .dk-facts>div,.dk-facts .dk-facts>div{grid-template-columns:1fr;gap:4px}
  .dk-table-list li{flex-direction:column;gap:4px}.dk-table-list span{text-align:left;max-width:none}
  .dk-workspace form>.dk-button{width:100%}
}

/* ---- gated.css ---- */
/* Decision-gated features · Pearl: soft white surfaces, system sans, one deep-blue motif. */
.gt-workspace{max-width:1040px;margin:0 auto;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--gt-blue:var(--accent,#1046ab);--gt-line:var(--line,#e5e6ea);--gt-muted:var(--muted,#686b73);padding-bottom:48px;overflow-wrap:anywhere}
.gt-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:0 0 24px}
.gt-heading h1{margin:0 0 10px;font-size:40px;line-height:1.15;letter-spacing:-.04em}.gt-heading p{margin:0;color:var(--gt-muted)}
.gt-eyebrow{font-size:11px!important;letter-spacing:.11em;font-weight:650;color:var(--gt-blue)!important;margin:0 0 10px!important}
.gt-workspace h2{font-size:22px;letter-spacing:-.03em;margin:0 0 6px}.gt-workspace h3{font-size:16px;letter-spacing:-.01em;margin:0;line-height:1.3}
.gt-status{color:var(--gt-muted)}.gt-error{color:#a3262a;background:#fff4f3;border:1px solid #f3d2cf;border-radius:14px;padding:12px 16px}
.gt-muted{color:var(--gt-muted);font-size:14px}.gt-pad{margin:0 0 16px}
.gt-notice{color:var(--gt-muted);font-size:13px;line-height:1.5;margin:16px 0;padding:0 2px}
.gt-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-bottom:20px;border:1px solid var(--gt-line);border-radius:20px;background:#ffffffb5;overflow:hidden}
.gt-summary>div{display:grid;gap:3px;padding:18px 22px;min-width:0;border-left:1px solid var(--gt-line);margin-left:-1px}.gt-summary strong{font-size:26px;font-weight:600;letter-spacing:-.035em}.gt-summary span{font-size:13px;color:var(--gt-muted)}
.gt-surface,.gt-feature,.gt-post,.gt-copy{padding:24px;margin-bottom:18px;background:var(--pearl-surface,#fff);border:1px solid var(--gt-line);border-radius:20px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228);min-width:0}
.gt-quiet{box-shadow:none;background:#ffffffb0}details.gt-surface>summary{font-weight:600;cursor:pointer;color:var(--gt-blue);min-height:44px;display:flex;align-items:center}
.gt-features{display:grid;gap:4px}
.gt-feature-head,.gt-post-head,.gt-copy-head,.gt-version-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.gt-feature-head h2{margin:0}.gt-idea{margin:0 0 4px;font-size:12px;color:var(--gt-muted);letter-spacing:.04em}
.gt-feature.is-on{border-color:#c9d6f0}
.gt-what{font-size:16px;line-height:1.55;margin:14px 0}
.gt-why{background:#f6f7f9;border-radius:14px;padding:16px 18px;margin:0 0 12px}.gt-why h3{font-size:14px;margin-bottom:6px}.gt-why p{margin:0 0 8px;line-height:1.5}
.gt-owner{font-size:14px}.gt-needs{margin:6px 0 0;padding-left:20px;line-height:1.55;font-size:14px}.gt-needs li{margin:2px 0}
.gt-blocker{background:#fff8e8;border:1px solid #f1dfb0;color:#6b4b00;border-radius:12px;padding:10px 14px;font-size:14px;margin:10px 0;line-height:1.45}
.gt-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px 18px;margin:12px 0}.gt-facts dt{font-size:12px;color:var(--gt-muted)}.gt-facts dd{margin:2px 0 0;font-size:14px}
.gt-more{margin:10px 0}.gt-more>summary,.gt-switch>summary{cursor:pointer;color:var(--gt-blue);font-weight:600;font-size:15px;min-height:44px;display:flex;align-items:center}
.gt-switch{border-top:1px solid var(--gt-line);margin-top:14px;padding-top:4px}.gt-switch form{display:grid;gap:12px;max-width:560px}
.gt-history{list-style:none;padding:0;margin:0;font-size:13px;color:#3d4250;display:grid;gap:6px}
.gt-link{display:inline-flex;align-items:center;min-height:44px;color:var(--gt-blue);font-weight:600;text-decoration:none}
.gt-pill{display:inline-flex;align-items:center;min-height:26px;padding:3px 11px;border-radius:999px;font-size:12.5px;font-weight:600;background:#eef0f3;color:#4a4f5a;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.gt-pill.blue{background:#e8effc;color:var(--gt-blue)}.gt-pill.gold{background:#fbf1d9;color:#7a5600;white-space:normal}.gt-pill.red{background:#fdecea;color:#a3262a}.gt-pill.gray{background:#eef0f3;color:#55606e}
.gt-field{display:grid;gap:6px;font-size:14px}.gt-field>span{font-weight:600}.gt-field small{color:var(--gt-muted);font-size:12.5px;line-height:1.4}
.gt-field input,.gt-field select,.gt-field textarea{font:inherit;font-size:16px;min-height:44px;padding:10px 12px;border:1px solid #d7d9de;border-radius:12px;background:#fff;color:inherit;box-sizing:border-box;width:100%;min-width:0}
.gt-field textarea{min-height:96px;resize:vertical}.gt-field.compact{gap:3px}.gt-field.compact input,.gt-field.compact select{min-height:44px;padding:8px 10px;font-size:15px}
.gt-checks{border:0;padding:0;margin:0;display:grid;gap:8px}.gt-checks legend{font-weight:600;font-size:14px;margin-bottom:6px}.gt-checks label{display:flex;gap:10px;align-items:center;min-height:44px;font-size:15px}
.gt-checks input{width:20px;height:20px;accent-color:var(--gt-blue)}
.gt-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border:0;border-radius:14px;background:linear-gradient(180deg,#1a56c4,var(--gt-blue));color:#fff;font:inherit;font-weight:600;font-size:15px;cursor:pointer;text-decoration:none;justify-self:start}
.gt-button:disabled{opacity:.45;cursor:not-allowed}.gt-button.outline{background:#fff;color:var(--gt-blue);border:1px solid #c9d6f0}.gt-button.quiet{background:#f1f3f6;color:#2f3440}.gt-button.small{min-height:44px;padding:8px 14px;font-size:14px}
.gt-inline{display:grid;gap:10px;margin-top:10px}
.gt-rows{list-style:none;padding:0;margin:0 0 12px}.gt-rows li{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--gt-line);font-size:14px}.gt-rows li:last-child{border-bottom:0}
.gt-empty{padding:28px;text-align:center;border:1px dashed #d7d9de;border-radius:20px;color:var(--gt-muted)}.gt-empty h3{color:var(--ink,#1d1d1f);margin-bottom:6px}
.gt-standard{background:#f6f7f9;border-radius:12px;padding:12px 14px;font-size:14px;line-height:1.5}.gt-standard span{display:block;font-size:12px;color:var(--gt-muted);margin-bottom:4px}
.gt-version{border-top:1px solid var(--gt-line);padding-top:14px;margin-top:14px}.gt-version blockquote{margin:10px 0;padding:0 0 0 14px;border-left:3px solid #c9d6f0;line-height:1.55}
.gt-approve{display:grid;gap:10px;max-width:560px}
.gt-preview .gt-subject{font-weight:650;margin:0 0 4px}.gt-preview p{margin:0 0 4px;line-height:1.5}
.gt-toggle{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--gt-line);min-height:44px}.gt-toggle input{width:22px;height:22px;margin-top:2px;accent-color:var(--gt-blue);flex:none}.gt-toggle span{display:grid;gap:2px}.gt-toggle small{color:var(--gt-muted);font-size:13px}
form.gt-surface{display:grid;gap:14px}
.gt-post-head strong{display:block;font-size:16px}.gt-post-head span{font-size:13px;color:var(--gt-muted)}.gt-post-body{font-size:16px;line-height:1.55;white-space:pre-wrap;margin:12px 0}
.gt-check{background:#f3f6fd;border:1px solid #d8e2f6;border-radius:14px;padding:14px 16px;margin-top:12px;display:grid;gap:10px}.gt-check p{margin:0;font-size:14px;line-height:1.5}
.gt-report{border-left:3px solid #f1dfb0;padding:4px 0 4px 12px;margin:10px 0;font-size:14px}.gt-report p{margin:2px 0}
.gt-clips{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.gt-clip{display:grid;background:#fff;border:1px solid var(--gt-line);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit}
.gt-clip img{width:100%;aspect-ratio:16/9;object-fit:cover;background:#e9ebef}.gt-clip span{display:grid;gap:3px;padding:12px 14px}.gt-clip small{color:var(--gt-muted);font-size:13px}
.gt-editor{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:18px;align-items:start;margin-bottom:18px}
.gt-stage{position:relative;width:100%;background:#0c0f14;border-radius:16px;overflow:hidden;touch-action:none}.gt-stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}
.gt-overlay,.gt-draw{position:absolute;inset:0;width:100%;height:100%}.gt-draw{cursor:crosshair}
.gt-overlay rect{fill:#1046ab33;stroke:#fff;stroke-width:4;vector-effect:non-scaling-stroke}.gt-overlay text{fill:#fff;font:600 36px system-ui;paint-order:stroke;stroke:#1046ab;stroke-width:6px}
.gt-overlay .gt-r-suggested rect{fill:#f3c34a33;stroke:#f3c34a;stroke-dasharray:10 6}.gt-overlay .gt-r-drawing rect{fill:#ffffff22;stroke-dasharray:6 6}.gt-overlay .inactive{opacity:.35}
.gt-stage-tools{display:flex;gap:10px;align-items:center;justify-content:center;margin:10px 0}.gt-stage-tools span{font-variant-numeric:tabular-nums;min-width:56px;text-align:center;font-size:14px}
.gt-box-list{list-style:none;padding:0;margin:0;display:grid;gap:10px}.gt-box-row{display:grid;grid-template-columns:28px repeat(3,minmax(0,1fr));gap:8px;align-items:end;padding-bottom:10px;border-bottom:1px solid var(--gt-line)}
.gt-box-row .gt-button{grid-column:2/-1;justify-self:start}.gt-swatch{width:26px;height:26px;border-radius:8px;background:var(--gt-blue);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700;margin-bottom:9px}
.gt-draft{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:999px;background:#fbf1d9;color:#7a5600;font-size:12px;font-weight:600;vertical-align:middle}
.gt-suggestions{list-style:none;padding:0;margin:0;display:grid;gap:2px;max-height:240px;overflow:auto}.gt-suggestions label{display:flex;gap:10px;align-items:center;min-height:44px;font-size:14px}.gt-suggestions input{width:20px;height:20px;accent-color:var(--gt-blue)}
.gt-copy{box-shadow:none;padding:16px 0 0;border:0;border-top:1px solid var(--gt-line);border-radius:0;margin:12px 0 0}
.gt-copy-video{position:relative;margin:10px 0}.gt-copy-video video{width:100%;max-height:360px;border-radius:14px;background:#0c0f14;display:block}
.gt-badge{position:absolute;top:10px;left:10px;z-index:1;background:#fff;color:var(--gt-blue);font-size:12px;font-weight:700;padding:4px 10px;border-radius:999px;box-shadow:0 2px 8px #0003}
.gt-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.gt-program-link{display:flex;justify-content:space-between;align-items:center;gap:14px;margin:0 0 20px;padding:16px 20px;border:1px solid #c9d6f0;border-radius:18px;background:#f5f8fe;color:inherit;text-decoration:none;min-height:44px}
.gt-program-link strong{display:block;color:var(--accent,#1046ab)}.gt-program-link small{color:var(--muted,#686b73);font-size:13px}
.gt-depth{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 14px;padding:4px;border:1px solid var(--line,#e5e6ea);border-radius:14px;background:#f6f7f9}
.gt-depth>span{font-size:12px;font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--muted,#686b73);padding:0 8px}
.gt-depth button{min-height:44px;padding:8px 14px;border:0;border-radius:10px;background:transparent;font:inherit;font-size:14px;color:#3d4250;cursor:pointer}.gt-depth button[aria-pressed=true]{background:#fff;color:var(--accent,#1046ab);font-weight:600;box-shadow:0 2px 4px #2636520f}
.gt-depth small{flex-basis:100%;padding:2px 8px 4px;color:var(--muted,#686b73);font-size:12.5px}.gt-swapped{text-decoration:underline dotted #9fb3dc;text-underline-offset:4px}
@media (max-width:760px){.gt-heading{flex-direction:column;gap:8px}.gt-heading h1{font-size:32px}.gt-editor{grid-template-columns:1fr}.gt-surface,.gt-feature,.gt-post{padding:18px;border-radius:18px}.gt-summary>div{padding:14px 16px}.gt-summary strong{font-size:22px}}
@media (max-width:360px){.gt-box-row{grid-template-columns:28px repeat(2,minmax(0,1fr))}.gt-box-row label:nth-of-type(3){grid-column:2/-1}}

/* ---- gated-learning.css ---- */
/* Decision-gated learning screens (#54–#66) · Pearl: soft white surfaces, system sans, one deep-blue motif. */
.gx-page{max-width:980px;margin:0 auto;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--gx-blue:var(--accent,#1046ab);--gx-line:var(--line,#e5e6ea);--gx-muted:var(--muted,#686b73)}
.gx-heading{margin:0 0 24px}.gx-heading h1{margin:0 0 10px;font-size:clamp(30px,5vw,40px);line-height:1.15;letter-spacing:-.04em}.gx-heading p{margin:0;color:var(--gx-muted);max-width:640px}
.gx-eyebrow{font-size:11px!important;letter-spacing:.1em;font-weight:650;color:var(--gx-blue)!important;margin:0 0 8px!important}
.gx-page h2{font-size:20px;letter-spacing:-.03em;margin:0 0 6px;line-height:1.3}
.gx-surface,.gx-feature{padding:22px;margin:0 0 16px;background:var(--pearl-surface,#fff);border:1px solid var(--gx-line);border-radius:20px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228);min-width:0;list-style:none}
.gx-quiet{box-shadow:none;background:#ffffffb0}details.gx-surface>summary,.gx-stage details>summary{cursor:pointer;color:var(--gx-blue);font-weight:600;min-height:44px;display:flex;align-items:center}
.gx-stages,.gx-candidates,.gx-examples,.gx-lessons,.gx-plain{list-style:none;padding:0;margin:0}
.gx-feature-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.gx-meta{margin:8px 0 0;font-size:13px;color:var(--gx-muted);line-height:1.5}.gx-muted{color:var(--gx-muted)}
.gx-notice{margin:0 0 16px;padding:12px 16px;border-radius:14px;background:var(--accent-soft,#eef3fc);color:#1b3561;font-size:14px;line-height:1.5}
.gx-banner{margin:0 0 16px;padding:12px 16px;border-radius:14px;border:1px solid #f0dfbd;background:var(--gold-light,#faf0dc);color:#5b4120;font-size:14px}
.gx-pill{display:inline-flex;align-items:center;min-height:24px;max-width:100%;box-sizing:border-box;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:550;background:#f1f2f4;color:#4a4e57;margin-right:6px}
.gx-pill.blue{background:var(--accent-soft,#eef3fc);color:var(--gx-blue)}.gx-pill.gold{background:var(--gold-light,#faf0dc);color:var(--gold,#966323)}.gx-pill.gray{background:#f1f2f4;color:#5a5e66}
.gx-button{min-height:44px;padding:10px 18px;border:0;border-radius:13px;background:var(--pearl-action,var(--gx-blue));color:#fff;font:inherit;font-weight:600;cursor:pointer}
.gx-button.quiet{background:#fff;color:var(--gx-blue);border:1px solid var(--gx-line)}.gx-text{min-height:44px;border:0;background:none;color:var(--gx-blue);font:inherit;cursor:pointer;padding:0 4px}
.gx-link{color:var(--gx-blue);font-weight:600;text-decoration:none}
.gx-field{display:grid;gap:6px;margin:12px 0;font-size:14px}.gx-field span{font-weight:600}.gx-field small{color:var(--gx-muted)}
.gx-field :is(input,select,textarea){width:100%;box-sizing:border-box;min-height:44px;padding:10px 12px;border:1px solid var(--gx-line);border-radius:12px;font:inherit;background:#fff}.gx-field textarea{min-height:84px}
.gx-inline{max-width:520px}
.gx-stage{display:grid;grid-template-columns:40px minmax(0,1fr);gap:14px;padding:18px 0;border-top:1px solid var(--gx-line)}.gx-stage:first-child{border-top:0}
.gx-stage-num{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;border:1px solid var(--gx-line);background:#fff;font-weight:650;color:#4a4e57}
.gx-stage.is-current .gx-stage-num{background:var(--gx-blue);color:#fff;border-color:var(--gx-blue)}
.gx-stage-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.gx-stage-head h2{margin:0 8px 0 0}
.gx-quote{margin:8px 0;color:#2b2f36}.gx-stage cite,.gx-quote cite{font-style:normal;font-size:12px;color:var(--gx-muted)}
.gx-lessons li{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 0}.gx-lessons .gx-meta{margin:0;flex-basis:100%}
.gx-dl{display:grid;grid-template-columns:minmax(110px,auto) 1fr;gap:4px 12px;font-size:14px}.gx-dl dt{color:var(--gx-muted)}.gx-dl dd{margin:0}
.gx-next{border-color:#d5e0f5;background:linear-gradient(155deg,#fff,#f6f9ff)}
.gx-tabs{display:flex;gap:6px;padding:4px;border:1px solid var(--gx-line);background:#eceef180;border-radius:14px;width:fit-content;max-width:100%;margin:0 0 14px;flex-wrap:wrap}
.gx-tabs button{min-height:44px;padding:9px 16px;border:0;background:transparent;color:var(--gx-muted);font:inherit;font-size:14px;border-radius:10px;cursor:pointer}.gx-tabs button[aria-pressed=true]{background:#fff;color:var(--gx-blue);box-shadow:0 2px 4px #2636520a}
.gx-svg svg{display:block;width:100%;height:auto;max-height:70vh}
.gx-scrub{display:flex;align-items:center;gap:14px;margin-top:12px}.gx-range{flex:1;display:flex}.gx-range input{width:100%;min-height:44px;accent-color:var(--gx-blue)}
.gx-label{margin:12px 0 0;display:flex;flex-wrap:wrap;gap:6px}.gx-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.gx-example{display:grid;grid-template-columns:minmax(0,260px) minmax(0,1fr);gap:16px;padding:14px 0;border-top:1px solid var(--gx-line)}.gx-example:first-child{border-top:0}.gx-example-media{min-width:0;display:grid;gap:8px}.gx-example video{width:100%;border-radius:12px;background:#000}
.gx-table-wrap{overflow-x:auto}.gx-table{width:100%;border-collapse:collapse;font-size:14px}.gx-table :is(th,td){text-align:left;padding:10px 8px;border-top:1px solid var(--gx-line);vertical-align:top}.gx-table thead th{border-top:0;color:var(--gx-muted);font-weight:600;font-size:12px}
.gx-table small{display:block;color:var(--gx-muted);font-weight:400;font-size:12px;margin-top:2px}
.gx-plain li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--gx-line);flex-wrap:wrap}
.gx-empty{padding:28px 22px;border:1px dashed #d9dce2;border-radius:20px;text-align:center;color:var(--gx-muted);margin:0 0 16px}.gx-empty h3{color:var(--ink,#1d1d1f);margin:0 0 6px}
.gx-off{border-color:#f0dfbd}
.i18n-banner{position:fixed;left:12px;right:12px;bottom:12px;z-index:200;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;max-width:760px;margin:0 auto;padding:10px 14px;border-radius:14px;background:#fffdf7f2;border:1px solid #f0dfbd;color:#5b4120;font:13px/1.4 -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;box-shadow:0 8px 24px -16px #20263240}
.i18n-banner button{min-height:36px;margin-left:auto;padding:4px 12px;border:1px solid #e6cf9f;border-radius:10px;background:#fff;color:#5b4120;font:inherit;font-weight:600;cursor:pointer}
@media (max-width:900px){.i18n-banner{bottom:calc(92px + env(safe-area-inset-bottom))}}
@media (max-width:640px){.gx-surface,.gx-feature{padding:18px;border-radius:18px}.gx-example{grid-template-columns:1fr}.gx-stage{grid-template-columns:32px minmax(0,1fr);gap:10px}.gx-stage-num{width:30px;height:30px}.gx-scrub{flex-wrap:wrap}}
/* Pearl dark (More → Appearance): the same screens on dark surfaces. The animated diagram keeps its light field, like film. */
html[data-theme="dark"][data-design="pearl"] .gx-page :is(.gx-quiet,.gx-next,.gx-empty){background:var(--pearl-surface);border-color:var(--line)}
html[data-theme="dark"][data-design="pearl"] .gx-page :is(.gx-button.quiet,.gx-stage-num,.gx-field input,.gx-field select,.gx-field textarea){background:#1b1f26;color:var(--ink);border-color:var(--line)}
html[data-theme="dark"][data-design="pearl"] .gx-page .gx-tabs{background:#1b1f26;border-color:var(--line)}
html[data-theme="dark"][data-design="pearl"] .gx-page .gx-tabs button[aria-pressed=true]{background:#252a33;color:var(--accent)}
html[data-theme="dark"][data-design="pearl"] .gx-page .gx-pill.gray{background:#252a33;color:var(--muted)}
html[data-theme="dark"][data-design="pearl"] .gx-page .gx-notice{background:var(--accent-soft);color:var(--ink)}
html[data-theme="dark"][data-design="pearl"] .gx-page .gx-banner{background:var(--gold-light);border-color:#5a4627;color:var(--ink)}

/* ---- pilot-ops.css ---- */
/* Pilot operations · Pearl. Builds on the Roles & usage components (ru-*); only pilot-specific pieces here. */
.po-workspace{--po-blue:var(--accent,#1046ab);--po-line:var(--line,#e5e6ea);--po-muted:var(--muted,#686b73)}
.po-badges{display:flex;flex-wrap:wrap;gap:8px;margin:-8px 0 20px}
.po-steps,.po-checklist,.po-funnel,.po-weeks{list-style:none;padding:0;margin:0}
.po-steps li{display:grid;grid-template-columns:120px 1fr auto;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--po-line);font-size:14px}
.po-steps li:first-child{border-top:0}.po-when{color:var(--po-muted);font-size:13px}
.po-funnel li{display:grid;grid-template-columns:minmax(0,190px) 1fr 40px;gap:12px;align-items:center;padding:8px 0;font-size:14px}
.po-funnel strong{text-align:right;font-size:16px}
.po-bar{height:10px;border-radius:999px;background:#eceef1;overflow:hidden}.po-bar i{display:block;height:100%;border-radius:inherit;background:var(--pearl-action,var(--po-blue));min-width:2px}
.po-weeks{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px;margin-top:4px}
.po-weeks li{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--po-line);border-radius:14px;background:#fff;font-size:12px;color:var(--po-muted)}
.po-weeks li strong{font-size:18px;color:var(--ink,#1d1d1f)}.po-weeks li.on{border-color:var(--po-blue);background:var(--accent-soft,#eef3fc);color:var(--po-blue)}
.po-trigger{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--po-muted);margin:14px 0}
.po-record{padding:14px 16px;border:1px solid var(--po-line);border-radius:16px;background:#fafbfc;margin-top:12px}.po-record p{margin:8px 0 0}
.po-ready{display:grid;gap:4px;padding:20px 22px;margin-bottom:16px;border:1px solid var(--po-blue);border-radius:20px;background:var(--accent-soft,#eef3fc)}
.po-ready.blocked{border-color:#ead7b4;background:var(--gold-light,#faf0dc)}.po-ready p{margin:4px 0 0}
.po-checklist li{display:grid;grid-template-columns:32px 1fr;gap:12px;padding:12px 0;border-top:1px solid var(--po-line)}
.po-checklist li:first-child{border-top:0}.po-checklist div{display:grid;gap:3px;font-size:14px}.po-checklist div span{font-size:13px}
.po-tick{width:26px;height:26px;border-radius:50%;border:2px solid #cfd5df;display:grid;place-items:center;font-size:14px;color:#fff}
.po-checklist li.done .po-tick{background:var(--pearl-action,var(--po-blue));border-color:var(--po-blue)}
.po-inline{margin:0 0 20px}
.po-choices{border:0;padding:0;margin:0 0 14px;min-width:0}.po-choices legend{font-size:13px;font-weight:550;margin-bottom:8px;padding:0}
.po-choices{display:flex;flex-wrap:wrap;gap:8px}.po-choices legend{flex-basis:100%}
.po-choices label{position:relative;display:inline-flex}.po-choices input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.po-choices span{display:inline-flex;align-items:center;min-height:44px;padding:8px 16px;border:1px solid #d3dce8;border-radius:12px;background:#fff;font-size:14px;cursor:pointer}
.po-choices input:checked+span{border-color:var(--po-blue);background:var(--accent-soft,#eef3fc);color:var(--po-blue);font-weight:600}
.po-choices input:focus-visible+span{outline:2px solid var(--po-blue);outline-offset:2px}
.po-progress{font-weight:600;margin:0 0 4px}
.po-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:12px 0 16px}
.po-side{padding:16px;border:1px solid var(--po-line);border-radius:18px;background:#fff;min-width:0}.po-side h3{margin:0 0 10px}
.po-side video{width:100%;aspect-ratio:16/9;background:#0f1115;border-radius:12px;margin-bottom:14px;display:block}
.po-side blockquote{margin:0 0 14px;padding:12px 14px;border-left:3px solid var(--po-blue);background:#f7f9fc;border-radius:0 12px 12px 0;white-space:pre-wrap}
.po-table{width:100%;border-collapse:collapse;font-size:14px;margin-bottom:12px}.po-table th{text-align:left;font-weight:450;padding:9px 0;border-top:1px solid var(--po-line)}.po-table td{text-align:right;padding:9px 0;border-top:1px solid var(--po-line);font-weight:600}
.po-classes{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin-bottom:12px}
.po-row{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--po-line);font-size:14px}
@media(max-width:720px){.po-pair{grid-template-columns:1fr}.po-steps li{grid-template-columns:1fr auto}.po-when{grid-column:1/-1}.po-funnel li{grid-template-columns:1fr 34px}.po-funnel .po-bar{grid-column:1/-1;grid-row:2}}
/* Program → Plan: the reviewer-hours check shown before a seat limit rises. */
.pg-hours-check{margin:8px 0 16px;padding:16px 18px;border:1px solid #ead7b4;border-radius:16px;background:var(--gold-light,#faf0dc)}
.pg-hours-check h4{margin:0 0 6px;font-size:15px}.pg-hours-check p{margin:6px 0;font-size:14px}
.pg-hours-check .pg-check{display:flex;gap:10px;align-items:center;min-height:44px;font-size:14px;font-weight:550}.pg-hours-check .pg-check input{width:22px;height:22px}

/* ---- v5-programs.css ---- */
/* v5 programs · Pearl: soft white surfaces, system sans, one deep-blue motif. Mobile first (320/390/1440). */
.v5p-workspace{max-width:980px;margin:0 auto;padding-bottom:56px;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--v5-blue:var(--accent,#1046ab);--v5-line:var(--line,#e5e6ea);--v5-muted:var(--muted,#686b73);overflow-wrap:anywhere}
.v5p-tabs{display:flex;gap:4px;padding:4px;margin:0 0 24px;border:1px solid var(--v5-line);border-radius:14px;background:#eceef180;overflow-x:auto;scrollbar-width:none;max-width:100%;box-sizing:border-box;width:fit-content}
.v5p-tabs::-webkit-scrollbar{display:none}
.v5p-tabs a{display:flex;align-items:center;min-height:44px;padding:0 16px;border-radius:10px;color:var(--v5-muted);text-decoration:none;font-size:14px;white-space:nowrap}
.v5p-tabs a[aria-current=page]{background:#fff;color:var(--v5-blue);box-shadow:0 2px 4px #2636520a;font-weight:600}
.v5p-heading{margin:0 0 18px}.v5p-heading h1{margin:0 0 8px;font-size:clamp(28px,6vw,40px);line-height:1.12;letter-spacing:-.035em}.v5p-heading>p{margin:0;color:var(--v5-muted);max-width:68ch}
.v5p-eyebrow{font-size:11px!important;letter-spacing:.11em;font-weight:650;color:var(--v5-blue)!important;margin:0 0 8px!important}
.v5p-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px!important}
.v5p-gate{margin:0 0 20px;padding:14px 16px;border-radius:14px;background:var(--gold-light,#faf0dc);color:#5b3d12;font-size:14px;line-height:1.5;border:1px solid #efdcb5}
.v5p-gate strong{color:#5b3d12}.v5p-gate details{margin-top:8px}.v5p-gate summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;color:#5b3d12}
.v5p-gate ul{margin:6px 0 0;padding-left:18px}.v5p-gate li{margin:4px 0}
.v5p-surface{padding:20px;margin:0 0 18px;background:var(--pearl-surface,#fff);border:1px solid var(--v5-line);border-radius:18px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228);min-width:0}
.v5p-quiet{box-shadow:none;background:#ffffffb0}
details.v5p-surface>summary{cursor:pointer;font-weight:600;color:var(--v5-blue);min-height:44px;display:flex;align-items:center;margin:-10px 0}
details.v5p-surface[open]>summary{margin-bottom:12px}
.v5p-workspace h2{font-size:20px;letter-spacing:-.025em;margin:0 0 10px}.v5p-workspace h3{font-size:16px;margin:0 0 10px}
.v5p-block{margin:0 0 22px}
.v5p-muted,.v5p-empty{color:var(--v5-muted);margin:0}
.v5p-empty{padding:16px;border:1px dashed var(--v5-line);border-radius:14px;background:#fafafb;font-size:14px}
.v5p-note{font-size:14px;color:#3d4250;margin:0 0 18px;padding:12px 14px;border-left:3px solid var(--v5-blue);background:var(--accent-soft,#eef3fc);border-radius:0 12px 12px 0}
.v5p-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border:0;border-radius:14px;background:var(--pearl-action,var(--v5-blue));color:#fff;font:inherit;font-weight:600;font-size:15px;text-decoration:none;cursor:pointer;box-sizing:border-box;max-width:100%;text-align:center}
.v5p-button:disabled{opacity:.6;cursor:progress}.v5p-button.danger{background:var(--danger,#ac343d)}
.v5p-link{min-height:44px;padding:0 4px;border:0;background:none;color:var(--v5-blue);font:inherit;font-weight:600;cursor:pointer;text-align:left}
.v5p-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:0 0 20px}
.v5p-more summary{cursor:pointer;color:var(--v5-blue);font-weight:600;min-height:44px;display:flex;align-items:center}.v5p-more[open]{flex-basis:100%}.v5p-more .v5p-link{display:block}
.v5p-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.v5p-row{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:56px;padding:12px 16px;border:1px solid var(--v5-line);border-radius:14px;background:var(--pearl-surface,#fff);color:inherit;text-decoration:none}
.v5p-row:hover{border-color:#c9d6f2}.v5p-row strong{display:block;font-weight:600}.v5p-row small{display:block;color:var(--v5-muted);font-size:13px;margin-top:2px}
.v5p-row{flex-wrap:wrap}.v5p-row>span:first-child{flex:1 1 170px;min-width:0}
.v5p-row-end{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;min-width:0;max-width:100%}
.v5p-surface>.v5p-button+.v5p-list{margin-top:14px}
.v5p-pill{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:600;background:#eef0f3;color:#3d4250;white-space:nowrap}
.v5p-pill.blue{background:var(--accent-soft,#eef3fc);color:var(--v5-blue)}.v5p-pill.gold{background:var(--gold-light,#faf0dc);color:var(--gold,#966323)}.v5p-pill.gray{background:#eef0f3;color:#686b73}.v5p-pill.muted{background:transparent;border:1px solid var(--v5-line);color:var(--v5-muted)}
.v5p-tools{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:10px;grid-template-columns:1fr}
.v5p-tools a{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:18px;border:1px solid var(--v5-line);border-radius:18px;background:var(--pearl-surface,#fff);color:inherit;text-decoration:none;min-height:72px;box-sizing:border-box}
.v5p-tools strong{display:block;font-size:16px}.v5p-tools small{display:block;color:var(--v5-muted);font-size:13px;margin-top:4px;line-height:1.45}.v5p-tools b{font-size:24px;font-weight:600;color:var(--v5-blue);letter-spacing:-.03em}
.v5p-rules{margin:0;padding-left:18px;line-height:1.6}
.v5p-stages{display:flex;flex-wrap:wrap;gap:6px;padding:0;margin:0 0 18px;list-style:none;counter-reset:s}
.v5p-stages li{counter-increment:s;padding:8px 12px;border-radius:999px;background:var(--accent-soft,#eef3fc);color:var(--v5-blue);font-size:13px;font-weight:600}
.v5p-stages li::before{content:counter(s) " · "}
.v5p-proposal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;align-items:center;padding:12px 0;border-top:1px solid var(--v5-line)}.v5p-proposal>span{flex:1 1 220px;min-width:0}.v5p-proposal .v5p-link{white-space:nowrap}.v5p-proposal:first-child{border-top:0}
.v5p-proposal strong{display:block;font-weight:600}.v5p-proposal small{color:var(--gold,#966323);font-size:12px}
.v5p-back{margin:0 0 10px}.v5p-back a{display:inline-flex;align-items:center;min-height:44px;color:var(--v5-blue);text-decoration:none;font-weight:600}
.v5p-facts{display:grid;gap:0;margin:0}.v5p-facts>div{display:grid;grid-template-columns:1fr;gap:2px;padding:10px 0;border-top:1px solid var(--v5-line)}.v5p-facts>div:first-child{border-top:0;padding-top:0}
.v5p-facts dt{font-size:12px;letter-spacing:.02em;color:var(--v5-muted);font-weight:600}.v5p-facts dd{margin:0;white-space:pre-line}
.v5p-items{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.v5p-item{padding:14px 16px;border:1px solid var(--v5-line);border-radius:14px;background:var(--pearl-surface,#fff)}.v5p-item.warn{border-color:#efdcb5;background:#fffaf0}
.v5p-item>a{color:inherit;text-decoration:none;display:flex;flex-direction:column;justify-content:center;min-height:44px}.v5p-item-head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 10px;align-items:flex-start}.v5p-item-head>strong{flex:1 1 160px;min-width:0}
.v5p-item p{margin:6px 0 0;white-space:pre-line}.v5p-item ul{margin:6px 0 0;padding-left:18px}.v5p-item small{display:block;margin-top:6px;color:var(--v5-muted);font-size:13px}
.v5p-form{display:grid;gap:14px}.v5p-form h2,.v5p-form h3{margin:0}
.v5p-field{display:grid;gap:6px;margin:0;border:0;padding:0;min-width:0}.v5p-field>span,.v5p-field legend{font-size:14px;font-weight:600}.v5p-field i{font-weight:400;color:var(--v5-muted);font-style:normal}
.v5p-field input,.v5p-field select,.v5p-field textarea{width:100%;box-sizing:border-box;min-height:48px;padding:10px 12px;border:1px solid #d6d8de;border-radius:12px;background:#fff;font:inherit;font-size:16px;color:inherit}
.v5p-field textarea{min-height:96px;resize:vertical}.v5p-field small,.v5p-hint{color:var(--v5-muted);font-size:13px}
.v5p-multi{display:grid;gap:4px}.v5p-multi legend{margin-bottom:6px}
.v5p-check{display:flex;gap:10px;align-items:flex-start;min-height:44px;padding:10px 0;font-size:15px;cursor:pointer}.v5p-check input{width:22px;height:22px;margin:0;flex-shrink:0;accent-color:var(--v5-blue)}
.v5p-form-error{margin:0;color:var(--danger,#ac343d);font-weight:600}
.v5p-other{padding:16px 0;border-top:1px solid var(--v5-line)}.v5p-other:first-of-type{border-top:0}
.v5p-primary{border-color:#c9d6f2}
.v5p-export{margin:0 0 18px}.v5p-export a{display:inline-flex;align-items:center;min-height:44px;padding:0 6px;color:var(--v5-blue);font-weight:600}
.v5p-history{margin:0;padding-left:18px;line-height:1.6;font-size:14px}.v5p-history time{color:var(--v5-muted)}.v5p-history small{display:block;color:var(--v5-muted)}
.v5p-status{min-height:0;margin:0;color:var(--v5-muted);font-size:14px}.v5p-status:empty{display:none}
.v5p-error{padding:12px 14px;border-radius:12px;background:#fbeaec;color:var(--danger,#ac343d);font-weight:600}
.v5p-nostep{margin:0 0 18px}
@media (min-width:760px){
  .v5p-surface{padding:26px}
  .v5p-tools{grid-template-columns:repeat(2,1fr)}
  .v5p-facts>div{grid-template-columns:220px 1fr;gap:16px}
  .v5p-form:not(.small){max-width:640px}
}

/* ---- movement-research.css ---- */
/* Movement research (web/movement-research.js): Pearl surfaces, one deep-blue action. */
.mr-page { max-width: 1180px; margin: 0 auto; }
.mr-loading { color: var(--muted, #686b73); }
.mr-experimental { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: -6px 0 22px; color: #6a7486; font-size: 12px; }
.mr-experimental > span { padding: 3px 8px; border: 1px solid #dce5f4; border-radius: 6px; color: #4d6c9b; font-size: 11px; font-weight: 650; }
.mr-primary { margin-bottom: 22px; }
.mr-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.mr-card { display: grid; gap: 6px; padding: 20px; border: 1px solid var(--line, #e5e6ea); border-radius: 18px; background: #fff; color: var(--ink, #1d1d1f); text-align: left; box-shadow: var(--pearl-shadow, none); }
.mr-card strong { font-size: 17px; font-weight: 650; letter-spacing: -.02em; }
.mr-card span:not(.mr-badge), .mr-card small { color: #6a7486; font-size: 13px; }
.mr-card:hover { border-color: #b9cdf3; }
.mr-empty, .mr-surface { padding: 24px; border: 1px solid var(--line, #e5e6ea); border-radius: 20px; background: var(--pearl-surface, #fff); box-shadow: var(--pearl-shadow, none); }
.mr-empty h2 { font-size: 22px; }
.mr-empty p, .mr-note { margin-top: 8px; color: #6a7486; font-size: 13px; line-height: 1.6; }
.mr-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.mr-main, .mr-side { display: grid; gap: 18px; min-width: 0; }
.mr-head { display: flex; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 12px; }
.mr-head h2, .mr-surface > h2 { font-size: 20px; letter-spacing: -.03em; }
.mr-badge { display: inline-flex; align-items: center; width: fit-content; padding: 4px 9px; border-radius: 7px; background: #f1f4f8; color: #5d6b7f; font-size: 11px; font-weight: 650; white-space: nowrap; }
.mr-ok { background: #eaf6ef; color: #2e7853; }
.mr-warn { background: #fff3e6; color: #8a5a20; }
.mr-warn-text { display: block; margin-top: 4px; color: #8a5a20; font-size: 12px; line-height: 1.5; }
.mr-facts { display: grid; gap: 10px; margin: 0; }
.mr-facts dt { color: #6a7486; font-size: 11px; font-weight: 650; letter-spacing: .04em; text-transform: uppercase; }
.mr-facts dd { margin: 3px 0 0; color: var(--ink, #1d1d1f); font-size: 14px; line-height: 1.55; }
.mr-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin: 6px 0 12px; }
.mr-stats div { display: grid; gap: 4px; }
.mr-stats strong { color: var(--accent, #1046ab); font-size: 24px; font-weight: 650; letter-spacing: -.03em; }
.mr-stats span { color: #6a7486; font-size: 12px; line-height: 1.5; }
.mr-side .mr-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.mr-actions { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-top: 16px; }
.mr-actions p { color: #6a7486; font-size: 13px; line-height: 1.5; }
.mr-actions .btn { flex-shrink: 0; }
.mr-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.mr-wide { grid-column: 1 / -1; }
.mr-unit { display: flex; align-items: center; gap: 8px; }
.mr-unit input { flex: 1; min-width: 0; }
.mr-unit span { color: #6a7486; font-size: 13px; }
.mr-tolerances { margin: 20px 0 0; padding: 0; border: 0; }
.mr-tolerances legend { margin-bottom: 8px; font-size: 16px; font-weight: 650; }
.mr-tolerances .mr-note { margin-bottom: 14px; }
.mr-status { margin-top: 8px; color: #4d6c9b; font-size: 13px; }
.mr-status.is-error { color: var(--danger, #ac343d); }
.mr-message { margin: -8px 0 16px; padding: 10px 14px; border-radius: 12px; background: var(--accent-soft, #eef3fc); color: var(--accent-deep, #0d3889); font-size: 14px; }
.mr-items, .mr-candidates, .mr-labels, .mr-checks, .mr-caveats { margin: 0; padding: 0; list-style: none; }
.mr-item { border-top: 1px solid #eef0f4; }
.mr-item-head { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; width: 100%; padding: 14px 2px; border: 0; background: transparent; color: var(--ink, #1d1d1f); text-align: left; }
.mr-item-head strong { font-size: 15px; }
.mr-item-head > span:nth-child(2) { color: #6a7486; font-size: 13px; }
.mr-row-badges { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 6px; }
.mr-item-body { display: grid; gap: 12px; padding: 0 2px 18px; }
.mr-item-body video { width: 100%; max-height: 360px; border-radius: 12px; background: #131a25; }
.mr-labels li { padding: 6px 0; font-size: 14px; color: #3d4757; }
.mr-label-form { display: grid; gap: 12px; padding: 16px; border: 1px solid #e2e8f1; border-radius: 14px; background: #fbfcff; }
.mr-label-form .field { display: grid; gap: 6px; }
.mr-check { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.45; }
.mr-check input { margin-top: 3px; }
.mr-add { margin-top: 14px; }
.mr-add summary { cursor: pointer; padding: 10px 0; color: var(--accent, #1046ab); font-size: 14px; font-weight: 600; }
.mr-candidates li { display: grid; gap: 10px; padding: 12px 0; border-top: 1px solid #eef0f4; }
.mr-candidates li > div span { display: block; color: #6a7486; font-size: 13px; }
.mr-add-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: end; gap: 10px; }
.mr-checks li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; padding: 9px 0; border-top: 1px solid #eef0f4; font-size: 14px; line-height: 1.5; }
.mr-checks small { color: #6a7486; }
.mr-caveats { margin-top: 12px; }
.mr-caveats li { position: relative; padding-left: 14px; color: #6a7486; font-size: 12px; line-height: 1.6; }
.mr-caveats li::before { content: "·"; position: absolute; left: 2px; }
.mr-table-scroll { overflow-x: auto; }
.mr-table { width: 100%; border-collapse: collapse; font-size: 13px; font-variant-numeric: tabular-nums; }
.mr-table caption { padding-bottom: 8px; color: #6a7486; font-size: 12px; text-align: left; }
.mr-table th, .mr-table td { padding: 8px 6px; border-bottom: 1px solid #eef0f4; text-align: left; white-space: nowrap; }
.mr-table thead th { color: #6a7486; font-size: 11px; font-weight: 650; }
@media (max-width: 1000px) { .mr-layout { grid-template-columns: minmax(0, 1fr); } .mr-side { order: -1; } }
@media (max-width: 560px) {
  .mr-grid, .mr-add-form { grid-template-columns: minmax(0, 1fr); }
  .mr-stats { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .mr-actions { flex-direction: column; align-items: stretch; }
  .mr-empty, .mr-surface { padding: 18px; border-radius: 16px; }
}

/* ---- progress.css ---- */
/* My progress · room progress · attempt. Pearl: soft white surfaces, system sans, one deep-blue motif.
   Chart marks: deep-blue dots and interval bars, an ink rolling-median line, a dashed muted target. */
.pg-workspace{max-width:1040px;margin:0 auto;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--pg-blue:var(--accent,#1046ab);--pg-line:var(--line,#e5e6ea);--pg-muted:var(--muted,#686b73);--pg-ink2:var(--ink-soft,#3d4250);--pg-surface:var(--surface,#fff);padding-bottom:48px;overflow-wrap:anywhere;min-width:0}
.pg-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:0 0 18px;flex-wrap:wrap}
.pg-heading h1{margin:0 0 10px;font-size:40px;line-height:1.12;letter-spacing:-.04em}.pg-heading p{margin:0;color:var(--pg-muted);max-width:640px;line-height:1.5}
.pg-eyebrow{font-size:11px!important;letter-spacing:.11em;font-weight:650;color:var(--pg-blue)!important;margin:0 0 10px!important}
.pg-back{display:inline-flex;align-items:center;min-height:44px;margin:0 0 6px;color:var(--pg-blue);text-decoration:none;font-weight:550;font-size:14px}
.pg-estimate{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 20px;padding:12px 16px;border:1px solid var(--line-strong,#d5e0f5);background:var(--accent-soft,#eef3fc);border-radius:14px;font-size:14px;color:var(--pg-ink2)}
.pg-pill{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--pg-surface);color:var(--pg-blue);border:1px solid var(--line-strong,#d5e0f5);white-space:nowrap}
.pg-pill.blue{background:var(--accent-soft,#eef3fc)}
.pg-tabs{display:flex;gap:6px;padding:4px;border:1px solid var(--pg-line);background:var(--surface-sunken,#eceef180);border-radius:14px;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 0 16px;flex-wrap:wrap}
.pg-tabs::-webkit-scrollbar{display:none}
.pg-tabs button{min-height:44px;padding:9px 18px;border:0;background:transparent;color:var(--pg-muted);font:inherit;font-size:14px;border-radius:10px;white-space:nowrap;cursor:pointer}
.pg-tabs button[aria-current=page]{background:var(--surface-selected,#fff);color:var(--pg-blue);font-weight:600;box-shadow:0 2px 4px #2636520a}
.pg-filters{margin:0 0 20px;border:1px solid var(--pg-line);border-radius:16px;background:var(--surface-glass,#ffffffb5);padding:0 16px}
.pg-workspace details.pg-filters{border-top:1px solid var(--pg-line)}
.pg-filters>summary{min-height:48px;display:flex;align-items:center;cursor:pointer;font-weight:600;font-size:14px;color:var(--pg-blue)}
.pg-filter-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 12px;padding:4px 0 8px;align-items:start}
.pg-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:500;min-width:0;margin-bottom:10px}
.pg-field :is(input,select){width:100%;min-width:0;min-height:44px;padding:9px 10px;font:inherit;font-size:16px;border:1px solid #d3dce8;border-radius:12px;background:#f5f7fa;color:var(--ink,#1d1d1f);box-sizing:border-box}
.pg-child{min-width:220px;margin:0}
.pg-charts{display:grid;gap:20px}
.pg-surface{padding:22px;margin-bottom:20px;background:var(--pearl-surface,#fff);border:1px solid var(--pg-line);border-radius:20px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228);min-width:0;box-sizing:border-box}
.pg-charts .pg-surface{margin-bottom:0}
.pg-surface h2{font-size:22px;letter-spacing:-.03em;margin:0 0 4px}.pg-surface h3{font-size:18px;letter-spacing:-.02em;margin:0}
.pg-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.pg-meta{margin:4px 0 0;font-size:13px;color:var(--pg-muted);line-height:1.5}
.pg-trend{margin:16px 0 4px;font-size:20px;font-weight:600;letter-spacing:-.02em;line-height:1.3;color:var(--pg-ink2)}.pg-trend.is-trend{color:var(--ink,#1d1d1f)}
.pg-trend-why{margin:0 0 14px;font-size:13px;color:var(--pg-muted);line-height:1.5}
.pg-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:12px 0 16px;border:1px solid var(--pg-line);border-radius:16px;overflow:hidden;background:var(--surface-glass,#ffffffb5)}
.pg-stats.is-two{grid-template-columns:repeat(2,minmax(0,1fr))}.pg-stats>div{padding:12px 14px;border-left:1px solid var(--pg-line);margin-left:-1px;min-width:0}
.pg-stats dt{font-size:12px;color:var(--pg-muted);margin:0 0 4px}.pg-stats dd{margin:0;font-size:20px;font-weight:600;letter-spacing:-.02em}
.pg-stats small{display:block;font-size:12px;font-weight:400;color:var(--pg-muted);letter-spacing:0}
.pg-flags{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.pg-flag{display:inline-flex;align-items:center;min-height:26px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:550;background:#f1f2f4;color:#4a4e57}
.pg-flag[data-flag=not_enough_valid],.pg-flag[data-flag=many_abstentions],.pg-flag[data-flag=no_attempts]{background:var(--gold-light,#faf0dc);color:var(--gold,#966323)}
.pg-flag[data-flag=not_enough_valid]::before,.pg-flag[data-flag=many_abstentions]::before{content:"!";font-weight:700;margin-right:6px}
.pg-chart{position:relative;min-width:0;width:100%}
.pg-mini{min-width:0;width:100%;margin:10px 0 4px}
.pg-mini-line{margin:0;font-size:13px;color:var(--pg-ink2)}.pg-mini-trend{margin:4px 0 12px;font-size:14px;font-weight:550;line-height:1.4}
.pg-outcomes{list-style:none;margin:8px 0 12px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.pg-outcomes a{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--pg-line);border-radius:12px;text-decoration:none;color:inherit;min-height:44px;box-sizing:border-box}
.pg-outcomes span{font-size:12px;color:var(--pg-muted)}.pg-outcomes strong{font-size:14px;font-weight:600}
.pg-workspace details.pg-table-details{border-top:0;padding:0;margin-top:8px}
.pg-table-details>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--pg-blue);font-weight:550;font-size:14px}
.pg-table-scroll{overflow-x:auto;max-width:100%}
.pc-table{width:100%;border-collapse:collapse;font-size:13px}
.pc-table th{text-align:left;font-weight:600;color:var(--pg-muted);padding:8px 8px;border-bottom:1px solid var(--pg-line);white-space:nowrap}
.pc-table td{padding:8px;border-bottom:1px solid var(--pg-line);vertical-align:top}.pc-table td small{display:block;color:var(--pg-muted);margin-top:2px}
.pc-table tr.is-best td{background:var(--accent-soft,#eef3fc)}
.pc-table a{color:var(--pg-blue);font-weight:600;display:inline-block;min-width:24px;min-height:24px}
.pc-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.pg-multiples{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}
.pg-multiples .pg-surface{margin:0;display:flex;flex-direction:column}.pg-multiples .pg-button{margin-top:auto;align-self:flex-start}
.pg-choose{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.pg-card-link{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px 20px;border:1px solid var(--pg-line);border-radius:18px;background:var(--pg-surface);text-decoration:none;color:inherit;min-height:44px}
.pg-card-link span{color:var(--pg-muted);font-size:14px}
.pg-footer{display:grid;gap:12px;margin-top:20px}.pg-footer .pg-button{justify-self:start}
.pg-notes{margin:0;padding-left:18px;color:var(--pg-muted);font-size:13px;line-height:1.6}
.pg-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border:1px solid var(--pg-blue);border-radius:12px;background:var(--pearl-action,var(--pg-blue));color:#fff;font:inherit;font-size:14px;font-weight:550;cursor:pointer;text-decoration:none;box-sizing:border-box}
.pg-button.secondary{background:var(--pg-surface);color:var(--pg-blue);border-color:var(--pg-line)}
.pg-button.small{min-height:44px;padding:8px 14px}
.pg-button.link{min-height:44px;padding:0 4px;border:0;background:none;color:var(--pg-blue);text-decoration:underline;text-underline-offset:3px;justify-self:start}
.pg-empty{padding:36px 16px;text-align:center;border:1px dashed #d6dbe3;border-radius:20px;background:var(--surface-glass,#ffffff8a)}.pg-empty h2{margin:0 0 8px;font-size:20px}.pg-empty p{max-width:460px;margin:0 auto;color:var(--pg-muted);font-size:14px}
.pg-error{padding:12px 16px;border:1px solid #e2a9a9;background:#fff4f4;border-radius:12px;color:#99252d;font-size:14px;margin:0 0 16px}
.pg-status{font-size:13px;color:var(--pg-muted)}
.pg-attempt-main{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.pg-workspace .pg-value{margin:0;font-size:36px;font-weight:600;letter-spacing:-.03em}.pg-workspace .pg-value small{display:block;font-size:14px;font-weight:400;color:var(--pg-muted);letter-spacing:0}.pg-workspace .pg-value.is-gap{font-size:24px}
.pg-reason{margin:10px 0 0;font-size:15px;line-height:1.5}
.pg-facts{margin:14px 0 0}.pg-facts>div{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:9px 0;border-top:1px solid var(--pg-line);font-size:14px}.pg-facts dt{color:var(--pg-muted)}.pg-facts dd{margin:0}
.pg-video{display:block;width:100%;max-height:70vh;border-radius:14px;background:#0b0d12;margin-top:10px}
.pg-frames{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:10px}.pg-frames figure{margin:0}.pg-frames img{width:100%;border-radius:12px;display:block}
.pg-frames figcaption{font-size:13px;margin-top:6px}.pg-frames small{display:block;color:var(--pg-muted)}
.pg-checks{list-style:none;padding:0;margin:8px 0 0;display:grid;gap:8px}.pg-checks li{display:grid;gap:2px;padding:10px 12px;border:1px solid var(--pg-line);border-radius:12px;font-size:14px}
.pg-checks li span{color:var(--pg-muted);font-size:13px}.pg-checks li.is-warn{border-color:#ead6b4}.pg-checks li.is-fail{border-color:#e7c3c6}
.pg-workspace :is(button,a,summary,input,select):focus-visible{outline:3px solid var(--pg-blue);outline-offset:3px}
/* Chart marks */
.pc-svg{display:block;max-width:100%;overflow:visible;font-family:inherit}
.pc-grid{stroke:var(--pg-line);stroke-width:1}
.pc-axis{fill:var(--pg-muted);font-size:12px}.pc-caption{font-size:12px}
.is-compact .pc-axis{font-size:11px}
.pc-target{stroke:var(--pg-muted);stroke-width:1.5;stroke-dasharray:6 5}
.pc-target-label{fill:var(--pg-ink2);font-size:12px;font-weight:600;paint-order:stroke;stroke:var(--pg-surface);stroke-width:4px;stroke-linejoin:round}
.pc-median{fill:none;stroke:var(--pg-ink2);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.pc-interval{stroke:var(--pg-blue);stroke-opacity:.55;stroke-width:1.5;fill:none}
.pc-dot{fill:var(--pg-blue);stroke:var(--pg-surface);stroke-width:2}
.pc-dot.is-hollow{fill:var(--pg-surface);stroke:var(--pg-blue);stroke-width:2}
.pc-best-ring{fill:none;stroke:var(--ink,#1d1d1f);stroke-width:1.5}
.pc-best-label{fill:var(--ink,#1d1d1f);font-size:12px;font-weight:650;paint-order:stroke;stroke:var(--pg-surface);stroke-width:4px;stroke-linejoin:round}
.pc-gap{fill:var(--pg-ink2);font-size:15px;font-weight:600}
.pc-hit{fill:transparent;cursor:pointer;outline:none}
.pc-hit.is-active,.pc-hit:focus{fill:var(--pg-blue);fill-opacity:.07}
.pc-hit:focus-visible{stroke:var(--pg-blue);stroke-width:2}
.pc-tip{position:absolute;z-index:3;width:220px;box-sizing:border-box;padding:10px 12px;border-radius:12px;background:var(--pg-surface);border:1px solid var(--pg-line);box-shadow:0 10px 28px -12px #1d1d1f40;font-size:13px;display:grid;gap:3px;pointer-events:none}
.pc-tip[hidden]{display:none}.pc-tip strong{font-size:16px}.pc-tip span{color:var(--pg-ink2)}.pc-tip em{font-style:normal;color:var(--pg-blue);font-size:12px;margin-top:2px}
.pc-legend{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:12px;color:var(--pg-ink2)}
.pc-legend li{display:inline-flex;align-items:center;gap:6px}
.pc-key{display:inline-block;flex:none}
.pc-key-dot{width:9px;height:9px;border-radius:50%;background:var(--pg-blue);box-shadow:0 -6px 0 -3.5px var(--pg-blue),0 6px 0 -3.5px var(--pg-blue)}
.pc-key-median{width:18px;height:2px;background:var(--pg-ink2);border-radius:2px}
.pc-key-target{width:18px;height:0;border-top:1.5px dashed var(--pg-muted)}
.pc-key-best{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--ink,#1d1d1f);box-sizing:border-box}
.pc-key-hollow{width:9px;height:9px;border-radius:50%;border:2px solid var(--pg-blue);box-sizing:border-box;background:var(--pg-surface)}
.pc-key-gap{font-weight:700;font-size:14px;line-height:1;color:var(--pg-ink2)}
@media (max-width:899px){.pg-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){
  .pg-heading h1{font-size:30px}.pg-surface{padding:16px;border-radius:18px}
  .pg-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.pg-stats>div:nth-child(3){border-left:0}.pg-stats>div:nth-child(n+3){border-top:1px solid var(--pg-line)}
  .pg-trend{font-size:18px}.pg-child{min-width:0;width:100%}
  .pg-multiples{grid-template-columns:minmax(0,1fr)}
  .pg-facts>div{grid-template-columns:1fr;gap:2px}
}
@media (forced-colors:active){.pc-dot{fill:CanvasText}.pc-median{stroke:CanvasText}.pc-interval,.pc-target{stroke:CanvasText}}

/* ---- speed.css ---- */
/* Speed from game film (estimate). Pearl: soft white surfaces, system sans, one deep-blue motif.
   Every colour comes from the shared tokens so the dark theme (web/dark.css) carries over. */
.sp-page{max-width:1100px;margin:0 auto;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--sp-blue:var(--accent,#1046ab);--sp-line:var(--line,#e5e6ea);--sp-muted:var(--muted,#686b73);--sp-soft:var(--accent-soft,#eef3fc);padding-bottom:48px;min-width:0;overflow-wrap:anywhere}
.sp-back{display:inline-flex;align-items:center;min-height:44px;color:var(--sp-blue);text-decoration:none;font-weight:550;font-size:14px}
.sp-head{margin:0 0 16px}.sp-head h1{margin:0 0 10px;font-size:40px;line-height:1.12;letter-spacing:-.04em}.sp-head p{margin:0;color:var(--sp-muted);max-width:680px;line-height:1.5}
.sp-title-note{font-size:20px;font-weight:550;letter-spacing:-.01em;color:var(--sp-muted)}
.sp-eyebrow{font-size:11px!important;letter-spacing:.11em;font-weight:650;color:var(--sp-blue)!important;margin:0 0 10px!important}
.sp-estimate{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 18px;padding:12px 16px;border:1px solid color-mix(in srgb,var(--sp-blue) 22%,transparent);background:var(--sp-soft);border-radius:14px;font-size:14px}
.sp-pill{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:var(--pearl-surface,#fff);color:var(--sp-blue);border:1px solid color-mix(in srgb,var(--sp-blue) 22%,transparent);white-space:nowrap}
.sp-notice{margin:0 0 16px;padding:12px 16px;border-radius:14px;background:var(--gold-light,#faf0dc);color:var(--ink,#1d1d1f);font-size:14px;line-height:1.5}
.sp-surface{padding:22px;margin:0 0 18px;background:var(--pearl-surface,#fff);border:1px solid var(--sp-line);border-radius:20px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228);min-width:0;box-sizing:border-box}
.sp-surface h2{font-size:20px;letter-spacing:-.02em;margin:0 0 6px}
.sp-section-head{margin:0 0 14px}.sp-section-head p{margin:0;color:var(--sp-muted);font-size:14px;line-height:1.5}
.sp-note,.sp-meta{margin:6px 0 0;font-size:13px;color:var(--sp-muted);line-height:1.5}
.sp-error{margin:8px 0 0;font-size:14px;color:var(--danger,#b4232c);min-height:1em}
.sp-status{padding:24px 0;color:var(--sp-muted)}
.sp-home{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:18px;align-items:start;margin-bottom:18px}
.sp-home .sp-surface{margin:0}
.sp-clips{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.sp-clip{display:grid;grid-template-columns:96px minmax(0,1fr);gap:10px;align-items:center;padding:8px;border:1px solid var(--sp-line);border-radius:14px;color:inherit;text-decoration:none;min-height:64px;box-sizing:border-box}
.sp-clip:hover,.sp-clip:focus-visible{border-color:var(--sp-blue)}
.sp-clip[data-state="failed"]{border-style:dashed}.sp-clip-text small.sp-clip-failed{color:var(--danger,#b4232c)}
.sp-clip img,.sp-clip-blank{width:96px;height:54px;object-fit:cover;border-radius:9px;background:#1d2530;display:block}
.sp-clip-text{display:grid;gap:2px;min-width:0}.sp-clip-text strong{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-clip-text small{font-size:12px;color:var(--sp-muted)}
.sp-upload{display:grid;gap:12px}
.sp-file{display:flex;align-items:center;gap:10px;min-height:48px;padding:6px 12px;border:1px dashed var(--sp-line);border-radius:12px;font-size:14px;cursor:pointer}
.sp-file input{max-width:100%;font:inherit;font-size:14px}
.sp-file span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sp-check{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.4}.sp-check input{width:20px;height:20px;margin-top:1px;flex:none}
.sp-progress{width:100%;height:8px}
.sp-field{display:flex;flex-direction:column;gap:6px;font-size:13px;font-weight:550;min-width:0}
.sp-field :is(input,select){width:100%;min-height:44px;padding:9px 10px;font:inherit;font-size:16px;border:1px solid var(--sp-line);border-radius:12px;background:var(--paper,#f5f7fa);color:var(--ink,#1d1d1f);box-sizing:border-box}
.sp-field small{font-weight:400;color:var(--sp-muted)}
.sp-unit{display:flex;align-items:center;gap:8px}.sp-unit input{max-width:140px}.sp-unit>span{font-weight:400;color:var(--sp-muted)}
.sp-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:11px 20px;border:1px solid var(--sp-blue);border-radius:12px;background:var(--pearl-action,var(--sp-blue));color:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer;text-decoration:none;box-sizing:border-box}
.sp-button.secondary{background:transparent;color:var(--sp-blue)}
.sp-button:disabled{opacity:.45;cursor:not-allowed}
.sp-text{display:inline-flex;align-items:center;min-height:44px;padding:0;border:0;background:none;color:var(--sp-blue);font:inherit;font-size:14px;font-weight:600;cursor:pointer;text-decoration:none}
.sp-danger{color:var(--danger,#b4232c)}
.sp-list,.sp-results,.sp-rules,.sp-limits{list-style:none;margin:0;padding:0}
.sp-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--sp-line);color:inherit;text-decoration:none;min-height:44px}
.sp-row span:first-child{display:grid;gap:2px;min-width:0}.sp-row small{color:var(--sp-muted);font-size:12px}
.sp-state{display:inline-flex;align-items:center;min-height:26px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600;background:color-mix(in srgb,var(--ink,#1d1d1f) 7%,transparent);color:var(--ink,#1d1d1f);white-space:nowrap}
.sp-state[data-state=measured]{background:var(--sp-soft);color:var(--sp-blue)}
.sp-state[data-state=unmeasurable],.sp-state[data-state=failed],.sp-state[data-state=withdrawn]{background:var(--gold-light,#faf0dc);color:var(--gold,#966323)}
.sp-rules{margin-top:8px;padding-left:18px;list-style:disc;color:var(--sp-muted);font-size:13px;line-height:1.6}
/* Measure screen */
.sp-measure{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr);gap:18px;align-items:start;margin-bottom:18px}
.sp-viewer{min-width:0}
.sp-video-wrap{position:relative;border-radius:18px;overflow:hidden;background:#0d1117;line-height:0}
.sp-video-wrap video{width:100%;max-height:70vh;display:block;background:#0d1117}
.sp-video-wrap canvas{position:absolute;inset:0;pointer-events:none}
.sp-video-wrap.is-tapping{outline:3px solid var(--sp-blue);outline-offset:-3px}
.sp-video-wrap.is-tapping canvas{cursor:crosshair;touch-action:none}
.sp-tap-hint{position:absolute;top:10px;left:50%;transform:translateX(-50%);margin:0;padding:6px 12px;border-radius:999px;background:rgba(16,24,40,.82);color:#fff;font-size:13px;font-weight:600;line-height:1.3;pointer-events:none}
.sp-frame-bar{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:8px;font-variant-numeric:tabular-nums;font-size:14px;color:var(--sp-muted)}
.sp-icon{width:44px;height:44px;border-radius:12px;border:1px solid var(--sp-line);background:var(--pearl-surface,#fff);color:var(--ink,#1d1d1f);font-size:22px;line-height:1;cursor:pointer}
.sp-steps{margin:0}
.sp-step-list{list-style:none;margin:0;padding:0;display:grid;gap:18px}
.sp-step h2{font-size:17px;margin:0 0 4px}
.sp-tap{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:9px 16px;margin-top:10px;border:1px solid var(--sp-blue);border-radius:12px;background:transparent;color:var(--sp-blue);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.sp-tap.is-active{background:var(--sp-blue);color:#fff}
.sp-tap.is-done{border-color:var(--sp-line);color:var(--ink,#1d1d1f)}
.sp-manual{display:flex;flex-wrap:wrap;gap:0 10px;align-items:flex-end}
.sp-manual .sp-spacing{flex:1 1 100%;margin-top:12px}
.sp-choice{border:0;margin:8px 0 0;padding:0;display:grid;gap:8px}
.sp-choice label{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--sp-line);border-radius:12px;cursor:pointer;min-height:44px;box-sizing:border-box}
.sp-choice label:has(input:checked){border-color:var(--sp-blue);background:var(--sp-soft)}
.sp-choice input{width:20px;height:20px;margin-top:2px;flex:none}
.sp-choice span{display:grid;gap:2px}.sp-choice strong{font-size:14px}.sp-choice small{font-size:12px;color:var(--sp-muted)}
.sp-step .sp-field{margin-top:12px}
.sp-results{display:grid;gap:12px}
.sp-result{padding:14px 16px;border:1px solid var(--sp-line);border-radius:16px}
.sp-result-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.sp-result-head small{color:var(--sp-muted);font-size:12px}
.sp-top{display:flex;align-items:baseline;gap:8px;margin:10px 0 0}.sp-top strong{font-size:40px;letter-spacing:-.03em;line-height:1}.sp-top span{color:var(--sp-muted);font-size:14px}
.sp-range{margin:4px 0 0;font-size:14px}
.sp-cannot{display:grid;gap:4px;margin:10px 0 0}.sp-cannot span{font-size:14px;color:var(--sp-muted);line-height:1.5}
.sp-running{margin:10px 0 6px;font-size:14px}
.sp-result progress,.sp-surface>progress{width:100%;height:8px}
.sp-mini-stats{display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0 0}.sp-mini-stats dt{font-size:12px;color:var(--sp-muted)}.sp-mini-stats dd{margin:0;font-weight:600}
/* Estimate screen */
.sp-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 12px;border:1px solid var(--sp-line);border-radius:16px;overflow:hidden}
.sp-stats>div{padding:12px 14px;border-left:1px solid var(--sp-line);margin-left:-1px;min-width:0}
.sp-stats dt{font-size:12px;color:var(--sp-muted);margin:0 0 4px}.sp-stats dd{margin:0;font-size:22px;font-weight:650;letter-spacing:-.02em}
.sp-stats small{display:block;font-size:12px;font-weight:400;color:var(--sp-muted);letter-spacing:0}
.sp-detail{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;align-items:start}
.sp-detail .sp-surface{margin:0 0 18px}
.sp-annotated{width:100%;border-radius:14px;background:#0d1117;display:block}
.sp-figure{margin:12px 0 0}.sp-figure img{width:100%;border-radius:14px;display:block}.sp-figure figcaption{font-size:13px;color:var(--sp-muted);margin-top:6px}
.sp-chart{min-width:0;width:100%}
.sp-svg{display:block;max-width:100%}
.sp-grid{stroke:var(--sp-line);stroke-width:1}
.sp-axis{fill:var(--sp-muted);font-size:12px;font-family:inherit}
.sp-line{fill:none;stroke:var(--sp-blue);stroke-width:2.5;stroke-linejoin:round}
.sp-band{fill:var(--sp-blue);opacity:.12}
.sp-target-line{stroke:var(--sp-muted);stroke-width:1.5;stroke-dasharray:5 4}
.sp-target{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:12px;padding-top:12px;border-top:1px solid var(--sp-line)}
.sp-target .sp-field{flex:1 1 220px}
.sp-details{margin-top:8px}.sp-details>summary,.sp-how>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--sp-blue);font-weight:600;font-size:14px}
.sp-table-scroll{overflow-x:auto;max-height:300px}
.sp-table{width:100%;border-collapse:collapse;font-size:13px}.sp-table th,.sp-table td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--sp-line)}
.sp-facts{display:grid;gap:10px;margin:8px 0 12px}.sp-facts>div{display:grid;grid-template-columns:160px minmax(0,1fr);gap:12px}.sp-facts dt{font-size:13px;color:var(--sp-muted)}.sp-facts dd{margin:0;font-size:14px;line-height:1.5}
.sp-limits{padding-left:18px;list-style:disc;font-size:13px;color:var(--sp-muted);line-height:1.6}
.sp-engine{list-style:none;margin:0;padding:0;display:grid;gap:2px}.sp-engine li{color:var(--sp-muted);margin:0;padding:0;min-height:0;line-height:1.45}.sp-engine li.sp-applied{color:inherit}.sp-engine li.sp-applied::before{content:"✓ ";color:var(--sp-blue)}
.sp-cannot-box p{line-height:1.5}
/* On the rep page (My video library → a clip) */
.sp-rep{margin:16px 0;padding:16px 18px;border:1px solid var(--line,#e5e6ea);border-radius:18px;background:var(--pearl-surface,#fff)}
.sp-rep h2{font-size:18px;margin:0}.sp-rep .sp-meta{margin:2px 0 0}
.sp-rep-top{margin:10px 0 0;font-size:15px;line-height:1.5}.sp-rep-top strong{font-size:22px;letter-spacing:-.02em}
.sp-rep-links{display:flex;flex-wrap:wrap;gap:4px 18px}
.sp-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:899px){
  .sp-home,.sp-measure,.sp-detail{grid-template-columns:minmax(0,1fr)}
  .sp-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-stats>div:nth-child(n+3){border-top:1px solid var(--sp-line)}
}
@media (max-width:560px){
  .sp-head h1{font-size:30px}.sp-title-note{display:block;font-size:16px;margin-top:4px}
  .sp-surface{padding:16px;border-radius:18px}
  .sp-clips{grid-template-columns:minmax(0,1fr)}
  .sp-facts>div{grid-template-columns:minmax(0,1fr);gap:2px}
  .sp-top strong{font-size:34px}
}
@media (forced-colors:active){.sp-line{stroke:CanvasText}.sp-band{fill:Highlight}.sp-state,.sp-pill{border:1px solid CanvasText}}
.sp-failed{margin-top:12px}.sp-failed>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-weight:550;color:var(--sp-muted,#686b73)}

/* ---- coach-development.css ---- */
.development-workspace{max-width:1000px;margin:0 auto;padding-bottom:40px;font-family:var(--app-font,system-ui)}.development-workspace form{display:grid;gap:16px;margin-top:22px}.development-workspace .field{display:grid;gap:6px;min-width:0}.development-workspace input,.development-workspace textarea,.development-workspace select{width:100%;box-sizing:border-box;min-width:0;padding:12px;border:1px solid #ccd3dc;border-radius:12px;font:inherit;background:white;color:#182331}.development-workspace textarea{min-height:100px}.development-workspace .session-surface{padding:28px;border:1px solid #e3e7ed;border-radius:24px;background:#fff}.development-workspace .mt{margin-top:20px}.development-workspace fieldset{min-width:0;border:1px solid #dbe1e8;border-radius:14px;padding:16px}.development-workspace fieldset legend{font-weight:600}.development-link{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;border-bottom:1px solid #e3e7ed;text-decoration:none}.development-row{padding:22px 0;border-top:1px solid #e3e7ed;overflow-wrap:anywhere}.development-workspace summary{cursor:pointer;font-weight:600;padding:12px 0}.development-workspace video,.development-workspace audio,.development-workspace img{max-width:100%;width:100%;height:auto;border-radius:14px}.development-workspace figure{margin:20px 0}.development-workspace figcaption{font-size:13px;color:#5f6d7e;margin:8px 0}.development-workspace pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit}.development-workspace .btn{min-height:44px;padding:12px 18px;border:0;border-radius:12px;background:var(--accent,#124bb5);color:#fff;font:inherit}.development-workspace a,.development-workspace .text-btn{color:var(--accent,#124bb5);overflow-wrap:anywhere}.development-workspace .text-btn{border:0;background:none;min-height:44px;text-align:left;font:inherit;cursor:pointer}.development-workspace [role=status]{min-height:1.4em;overflow-wrap:anywhere}.development-workspace :focus-visible{outline:3px solid var(--accent,#124bb5);outline-offset:3px}@media(max-width:600px){.development-workspace .session-surface{padding:20px}.development-workspace h1{font-size:32px;letter-spacing:-.04em}.development-link{display:grid;gap:8px}.development-workspace h2{font-size:23px}.development-workspace fieldset{padding:12px}}

/* ---- programs.css ---- */
.programs-workspace{max-width:1040px;margin:0 auto;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--pg-blue:var(--accent,#1046ab)}
.pg-heading,.pg-section-heading,.pg-row,.pg-rows>li{display:flex;align-items:center;justify-content:space-between;gap:20px}.pg-heading{margin:0 0 28px}.pg-heading h1{margin:0 0 10px;font-size:40px;line-height:1.15;letter-spacing:-.04em}.pg-heading p,.pg-section-heading p{margin:0;color:var(--muted,#686b73)}.pg-eyebrow{font-size:11px!important;letter-spacing:.11em;font-weight:650;color:var(--pg-blue)!important;margin:0 0 10px!important}.pg-heading h2,.pg-content h2{font-size:27px;letter-spacing:-.035em;margin:0 0 8px}.pg-content h3{font-size:20px;letter-spacing:-.025em;margin:0 0 12px}.pg-section-heading{margin-bottom:22px}.pg-section-heading>span{font-size:13px;color:var(--muted)}
.pg-summary{display:grid;grid-template-columns:repeat(3,1fr);margin-bottom:28px;border:1px solid var(--line,#e5e6ea);border-radius:20px;background:var(--surface-glass,#ffffffb5)}.pg-summary>div{display:grid;gap:3px;padding:22px 24px}.pg-summary>div+div{border-left:1px solid var(--line,#e5e6ea)}.pg-summary strong{font-size:28px;font-weight:600;letter-spacing:-.035em}.pg-summary span{font-size:13px;color:var(--muted,#686b73)}
.pg-tabs{display:flex;gap:6px;padding:4px;border:1px solid var(--line,#e5e6ea);background:#eceef180;border-radius:14px;width:fit-content;margin:0 0 30px}.pg-tabs button{min-height:44px;padding:9px 22px;border:0;background:transparent;color:var(--muted,#686b73);font:inherit;font-size:14px;border-radius:10px}.pg-tabs button[aria-current=page]{background:var(--surface-selected,#fff);color:var(--pg-blue);box-shadow:0 2px 4px #2636520a}
.pg-surface{padding:24px;margin-bottom:20px;background:var(--pearl-surface,#fff);border:1px solid var(--line,#e5e6ea);border-radius:20px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228)}.pg-surface>summary{font-weight:600;min-height:24px;cursor:pointer}.pg-surface[open]>summary{margin-bottom:18px}.pg-muted,.pg-surface p{color:var(--muted,#686b73);font-size:14px;line-height:1.6}.pg-surface p{margin:10px 0 20px}.pg-button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:11px 18px;border:1px solid var(--pg-blue);border-radius:12px;background:var(--pg-blue);color:#fff;font:inherit;font-size:14px;font-weight:550;cursor:pointer;white-space:normal}.pg-button.secondary{background:var(--surface,#fff);color:var(--pg-blue);border-color:var(--line,#e5e6ea);box-shadow:none}.pg-button:disabled{opacity:.45;cursor:default}.pg-button:focus-visible,.pg-tabs button:focus-visible{outline:3px solid var(--pg-blue);outline-offset:3px}
.pg-field{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500;min-width:0;margin-bottom:16px}.pg-field input,.pg-field select{width:100%;min-width:0;min-height:46px;padding:11px 12px;font:inherit;font-size:16px;border:1px solid #d3dce8;border-radius:12px;background:#f5f7fa;color:var(--ink,#1d1d1f);box-sizing:border-box}.pg-inline{display:flex;align-items:flex-end;gap:12px;margin:16px 0}.pg-inline .pg-field{flex:1;margin:0}.pg-inline>.pg-button{flex-shrink:0}.pg-form-grid{display:grid;grid-template-columns:2fr 1fr 1.3fr;gap:14px}.pg-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}.pg-rows{list-style:none;padding:0;margin:16px 0}.pg-rows>li{padding:13px 0;border-bottom:1px solid var(--line,#e5e6ea);font-size:14px}.pg-rows>li:last-child{border-bottom:0}.pg-rows small,.pg-rows span+span,.pg-rows div>span{display:block;color:var(--muted,#686b73);font-size:12px;margin-top:4px}.pg-team,.pg-invoice,.pg-archive,.pg-people>details{padding:17px 0;border-bottom:1px solid var(--line,#e5e6ea)}.pg-team:last-child,.pg-invoice:last-child,.pg-archive:last-child,.pg-people>details:last-child{border-bottom:0}.pg-team>summary,.pg-invoice>summary,.pg-archive>summary,.pg-people>details>summary{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:44px;cursor:pointer;list-style:none}.pg-team>summary:before,.pg-invoice>summary:before,.pg-archive>summary:before,.pg-people>details>summary:before{content:'\203A';font-size:22px;color:var(--pg-blue)}.pg-team[open]>summary:before,.pg-invoice[open]>summary:before,.pg-archive[open]>summary:before,.pg-people>details[open]>summary:before{transform:rotate(90deg)}.pg-team>summary{justify-content:flex-start}.pg-team>summary>span{margin-left:auto}.pg-team>summary>span,.pg-pill{font-size:12px;color:var(--muted,#686b73)}.pg-invoice>summary>span:first-of-type,.pg-people summary>span:first-of-type,.pg-archive summary>span{flex:1}.pg-invoice summary small,.pg-people summary small,.pg-archive summary small{display:block;color:var(--muted,#686b73);font-size:12px;font-weight:400;margin-top:5px}.pg-invoice>summary>span:last-child{text-align:right}.pg-allowances{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.pg-allowances h3{margin:12px 0 8px;font-size:32px;font-weight:600}.pg-allowances h3 small{font-size:13px;font-weight:400;color:var(--muted)}.pg-allowances p{margin-bottom:0}.pg-check{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer}.pg-check input{width:20px;height:20px;flex:0 0 20px;accent-color:var(--pg-blue)}.pg-empty{padding:32px 12px;text-align:center}.pg-empty p{max-width:440px;margin:0 auto;color:var(--muted,#686b73);font-size:14px}.pg-error{padding:16px;border:1px solid #e2a9a9;background:#fff4f4;border-radius:12px;color:#99252d}.pg-status{font-size:13px;color:var(--muted);margin:0}.pg-status:empty{display:none}.pg-audit{margin-top:30px}.pg-audit ol{list-style:none;padding:0}.pg-audit li{padding:14px 0;border-bottom:1px solid var(--line,#e5e6ea);font-size:13px}.pg-audit li strong{font-weight:550;text-transform:capitalize}.pg-audit li span{display:block;font-size:12px;color:var(--muted);margin-top:4px}.pg-audit pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.pg-audit li>details{margin-top:9px}.pg-audit li>details summary{color:var(--pg-blue)}
@media(max-width:640px){.pg-heading{align-items:flex-start;gap:10px}.pg-heading h1{font-size:34px}.pg-heading>.pg-button{padding:10px 12px}.pg-summary>div{padding:16px 12px}.pg-summary strong{font-size:24px}.pg-summary span{font-size:11px}.pg-tabs{width:100%;gap:0;box-sizing:border-box}.pg-tabs button{flex:1;padding:8px 7px;font-size:13px}.pg-surface{padding:20px 16px;border-radius:18px}.pg-inline{flex-direction:column;align-items:stretch}.pg-form-grid{grid-template-columns:1fr}.pg-form-grid .pg-field{margin-bottom:2px}.pg-form-grid{margin-bottom:16px}.pg-allowances{grid-template-columns:1fr;gap:0}.pg-allowances .pg-surface{display:grid;grid-template-columns:1fr auto;align-items:center;gap:5px 12px}.pg-allowances h3{margin:0;grid-column:2;grid-row:1/3;font-size:26px}.pg-allowances p{margin:0}.pg-rows>li{gap:10px}.pg-rows>li>.pg-button{padding:8px 10px;font-size:12px}.pg-section-heading h2{font-size:25px}.pg-invoice summary{gap:10px}.pg-invoice summary strong{font-size:14px}.pg-invoice summary small{font-size:11px}}

.pg-checkout{border-top:1px solid #e6e8eb;margin:20px 0;padding-top:12px}.pg-checkout h4{margin:4px 0 12px}.pg-checkout a.pg-button{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;box-sizing:border-box}

/* Rooms, invitations, plan terms, roster and recovery */
.pg-tabs{max-width:100%;box-sizing:border-box;overflow-x:auto;scrollbar-width:none}.pg-tabs::-webkit-scrollbar{display:none}.pg-tabs button{flex:0 0 auto;white-space:nowrap}
.pg-form-grid.pg-grid-2{grid-template-columns:1fr 1fr;column-gap:14px}.pg-field textarea{width:100%;min-width:0;padding:11px 12px;font:inherit;font-size:15px;line-height:1.5;border:1px solid #d3dce8;border-radius:12px;background:#f5f7fa;color:var(--ink,#1d1d1f);box-sizing:border-box;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.pg-fieldset{border:0;padding:0;margin:4px 0 10px;min-width:0}.pg-fieldset legend{padding:0;margin:0 0 12px;font-size:14px;font-weight:600;color:var(--ink,#1d1d1f)}
.pg-subheading{font-size:17px!important;margin:6px 0 14px!important;letter-spacing:-.015em}
.pg-awaiting{display:inline-block;padding:2px 10px;border-radius:999px;background:#f0f1f4;color:var(--muted,#686b73);font-size:13px;font-weight:500;line-height:1.6}
.pg-terms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 24px;margin:6px 0 0}.pg-terms>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line,#e5e6ea);min-width:0}.pg-terms dt{font-size:13px;color:var(--muted,#686b73)}.pg-terms dd{margin:0;font-size:14px;font-weight:550;text-align:right;overflow-wrap:anywhere}
.pg-capacity{grid-template-columns:repeat(2,1fr);margin-bottom:4px}
.pg-secret{padding:22px 24px;margin:0 0 20px;border:1px solid #c9d8f2;border-radius:20px;background:var(--accent-soft,#eef3fc)}.pg-secret h3{margin:0 0 6px}.pg-secret p{margin:0;color:var(--muted,#686b73);font-size:14px}.pg-secret h4{margin:18px 0 0;font-size:14px}.pg-secret .pg-section-heading{align-items:flex-start;margin-bottom:6px}.pg-secret-list>li{align-items:center}.pg-secret-list>li>div{flex:1;min-width:0}.pg-secret-value{display:block;width:100%;margin-top:8px;padding:9px 11px;border:1px solid var(--line-strong,#c9d8f2);border-radius:10px;background:var(--surface,#fff);color:var(--ink,#1d1d1f);font:13px/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;box-sizing:border-box;text-overflow:ellipsis}
.pg-nested{margin:12px 0}.pg-nested>summary{color:var(--pg-blue);font-size:14px;font-weight:550;cursor:pointer;min-height:32px}.pg-nested[open]>summary{margin-bottom:14px}
.pg-pill-open{color:var(--pg-blue)!important;font-weight:550}.pg-continuation p{margin-bottom:12px}
.pg-people>details>.pg-terms{margin-bottom:8px}
@media(max-width:640px){.pg-tabs button{flex:0 0 auto;padding:8px 13px}.pg-form-grid.pg-grid-2{grid-template-columns:1fr}.pg-terms{grid-template-columns:1fr}.pg-capacity{grid-template-columns:1fr}.pg-secret{padding:18px 16px}.pg-secret-list>li{flex-direction:column;align-items:stretch}.pg-secret-list>li>.pg-button{width:100%}.pg-rows>li{flex-wrap:wrap}}
.pg-narrow{max-width:320px}#pg-roster .pg-rows>li>div{flex:1 1 220px;min-width:0}
/* r1 b5: Void is a danger button behind its own disclosure; one invoice in print form */
.pg-danger-zone{margin:14px 0;border-top:1px solid var(--line,#e5e6ea);padding-top:10px}.pg-danger-zone>summary{color:var(--danger,#b42318);font-size:14px;font-weight:550;cursor:pointer;min-height:44px;display:flex;align-items:center}
.pg-button.danger{background:var(--pearl-surface,#fff);color:var(--danger,#b42318);border-color:var(--danger,#b42318)}
.pg-print-bar{display:flex;justify-content:space-between;gap:12px;margin:0 0 16px}
.inv-print{position:relative;overflow:hidden;background:var(--pearl-surface,#fff);color:var(--ink,#1d1d1f);border:1px solid var(--line,#e5e6ea);border-radius:20px;padding:32px;font-size:14px;line-height:1.5}
.inv-mark{position:absolute;top:18px;right:-44px;transform:rotate(30deg);margin:0;padding:4px 56px;background:var(--danger,#b42318);color:#fff;font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:13px}
.inv-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:18px;border-bottom:2px solid var(--pg-blue,#1046ab)}
.inv-from{margin:0;font-size:20px;font-weight:650}.inv-sub{margin:4px 0 0;color:var(--muted,#686b73)}
.inv-title{text-align:right;padding-right:56px}.inv-title h2{margin:0;font-size:24px;font-weight:650}.inv-title p{margin:4px 0 0;color:var(--muted,#686b73)}
.inv-banner{margin:16px 0 0;padding:10px 14px;border:1px solid var(--danger,#b42318);border-radius:12px;color:var(--danger,#b42318);font-weight:550}
.inv-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 20px;margin:20px 0}.inv-facts dt{font-size:12px;color:var(--muted,#686b73)}.inv-facts dd{margin:2px 0 0;font-weight:550;overflow-wrap:anywhere}
.inv-lines{width:100%;border-collapse:collapse;margin:8px 0 16px}.inv-lines th,.inv-lines td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line,#e5e6ea);vertical-align:top;overflow-wrap:anywhere}.inv-lines thead th{font-size:12px;color:var(--muted,#686b73);font-weight:550}.inv-lines tfoot th,.inv-lines tfoot td{border-bottom:0;font-size:16px}.inv-num{text-align:right!important;white-space:nowrap}
.inv-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.inv-notes{white-space:pre-wrap}.inv-foot{margin-top:24px;padding-top:12px;border-top:1px solid var(--line,#e5e6ea);color:var(--muted,#686b73);font-size:12px}.inv-foot p{margin:2px 0}
@media(max-width:640px){.inv-print{padding:20px 16px}.inv-head{flex-direction:column;gap:8px}.inv-title{text-align:left;padding-right:0}.inv-facts{grid-template-columns:1fr 1fr}.inv-lines th,.inv-lines td{padding:8px 4px;font-size:13px}.pg-print-bar .pg-button{flex:1}}
@media print{.inv-title{padding-right:110px}body *{visibility:hidden!important}.inv-print,.inv-print *{visibility:visible!important}.inv-print{position:absolute;inset:0 0 auto 0;border:0;border-radius:0;padding:0;background:#fff;color:#000}.inv-mark{background:#000;-webkit-print-color-adjust:exact;print-color-adjust:exact}}

/* ---- security.css ---- */
/* Sign-in & security and program Audit · Pearl surfaces, one deep-blue action. */
.security-shell{max-width:820px;margin:0 auto;padding:32px 0 72px;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)}
.security-head{margin-bottom:28px}.security-head h1{margin:10px 0 12px}.security-head p:last-child{color:var(--muted,#686b73);font-size:16px;margin:0}
.security-card{padding:26px;border:1px solid var(--line,#e5e6ea);border-radius:20px;background:var(--pearl-surface,#fff);box-shadow:var(--pearl-shadow,0 12px 32px -24px #20263228);margin:0 0 20px}
.security-card h2{font-size:22px;margin:0}
.security-card-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
.security-count{display:grid;place-items:center;min-width:32px;height:32px;padding:0 10px;border-radius:16px;background:var(--accent-soft,#eef3fc);color:var(--accent,#1046ab);font-weight:600;font-size:14px}
.security-sessions,.security-log,.security-members{list-style:none;margin:0;padding:0}
.security-sessions{margin-bottom:22px}
.security-sessions li{display:grid;gap:2px;padding:14px 0;border-top:1px solid var(--line,#e5e6ea)}.security-sessions li:first-child{border-top:0;padding-top:4px}
.security-sessions span,.security-note,.security-log-main span,.security-log time,.security-members small{color:var(--muted,#686b73);font-size:14px}
.security-note{line-height:1.5;margin:14px 0 0}
.security-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px}
.security-confirm{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px;border-radius:14px;background:var(--accent-soft,#eef3fc)}.security-confirm p{flex-basis:100%;margin:0}
.security-help{margin:4px 2px 20px}.security-help summary{cursor:pointer;color:var(--accent,#1046ab);font-size:15px;font-weight:550;min-height:44px;display:flex;align-items:center}.security-help p{color:var(--muted,#686b73);margin:0;max-width:60ch;line-height:1.55}
.security-link{display:inline-flex;align-items:center;gap:8px;margin:0}
.security-error{color:var(--danger,#ac343d);margin:0 0 16px}
.security-chain{display:flex;align-items:center;gap:10px;margin:0 0 20px;font-size:14px;color:var(--muted,#686b73)}
.security-chain span{width:9px;height:9px;border-radius:50%;background:var(--accent,#1046ab);flex:0 0 9px}.security-chain.broken{color:var(--danger,#ac343d)}.security-chain.broken span{background:var(--danger,#ac343d)}
.security-tabs{display:flex;gap:5px;padding:4px;margin:0 0 24px;width:fit-content;max-width:100%;border:1px solid #e8e9ed;border-radius:16px;background:#eceef180}
.security-tabs button{min-height:44px;min-width:96px;padding:10px 16px;border:1px solid transparent;border-radius:13px;background:transparent;color:#647188;font:inherit;font-size:14px;font-weight:550;cursor:pointer}
.security-tabs button[aria-current=page]{background:var(--pearl-surface,#fff);color:var(--accent,#1046ab);border-color:#fff;box-shadow:0 2px 5px #2636520c}
.security-toolbar{display:flex;align-items:center;gap:16px;margin:0 0 12px}.security-toolbar .security-note{margin:0;flex:1}
.security-filter-toggle{display:none;min-height:44px;padding:0 14px;border:1px solid #e0e3e9;border-radius:12px;background:#fff;color:var(--accent,#1046ab);font:inherit;font-size:14px;font-weight:550;cursor:pointer}
.security-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:12px;align-items:end;margin:0 0 16px;padding:16px;border:1px solid var(--line,#e5e6ea);border-radius:16px;background:#ffffffb3}
.security-field{display:grid;gap:6px;font-size:14px;color:#43536a;min-width:0}.security-field select,.security-field input{width:100%;box-sizing:border-box;height:46px;min-height:46px;padding:0 12px;font:inherit;font-size:16px}
.security-shell .security-filters .btn{min-height:46px;padding:10px 18px}
.security-log{border:1px solid var(--line,#e5e6ea);border-radius:20px;background:var(--pearl-surface,#fff);box-shadow:var(--pearl-shadow,0 12px 32px -24px #20263228);padding:4px 22px}
.security-log li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:2px 16px;padding:14px 0;border-top:1px solid var(--line,#e5e6ea)}.security-log li:first-child{border-top:0}
.security-log-main{display:grid;gap:2px;min-width:0}.security-log-main strong{font-weight:600}.security-log-main span{overflow-wrap:anywhere}
.security-log time{white-space:nowrap;font-size:13px}
.security-shell .security-log details{grid-column:1/-1;margin:2px 0 0;padding:0;border:0;background:none;box-shadow:none}
.security-log summary,.security-members details>p{font-size:13px}
.security-log summary{cursor:pointer;color:var(--accent,#1046ab);width:fit-content;min-height:32px;display:flex;align-items:center;padding:0}
.security-log dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 16px;margin:6px 0 4px;padding:12px 14px;border-radius:12px;background:var(--paper,#f5f5f7);font-size:13px}.security-log dt{color:var(--muted,#686b73)}.security-log dd{margin:0;overflow-wrap:anywhere}
.security-pill{display:inline-block;vertical-align:1px;margin-left:6px;padding:2px 8px;border-radius:8px;background:#f1f2f4;color:#5b6472;font-size:12px;font-weight:600;white-space:nowrap}
.security-log li.is-denied .security-pill{background:#fbeced;color:var(--danger,#ac343d)}.security-pill.live{margin:0;background:var(--accent-soft,#eef3fc);color:var(--accent,#1046ab)}
.security-members{border:1px solid var(--line,#e5e6ea);border-radius:20px;background:var(--pearl-surface,#fff);box-shadow:var(--pearl-shadow,0 12px 32px -24px #20263228);padding:4px 22px;margin-top:16px}
.security-members li{border-top:1px solid var(--line,#e5e6ea)}.security-members li:first-child{border-top:0}
.security-shell .security-members details{margin:0;padding:0;border:0;background:none;box-shadow:none}
.security-members summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:60px;padding:8px 0;cursor:pointer;list-style:none;font-size:16px;font-weight:400;color:var(--ink,#1d1d1f)}
.security-members summary strong{font-size:16px;font-weight:600}.security-members summary small{font-weight:400}.security-members summary::-webkit-details-marker{display:none}
.security-members summary>span:first-child{display:grid;gap:2px;min-width:0}.security-members details>p{margin:8px 0 16px}
.security-inline{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:4px 0 0}.security-inline .security-field{flex:1 1 240px}
.security-shell code{font-size:12px}
.security-shell :focus-visible{outline:3px solid var(--accent,#1046ab);outline-offset:3px}
@media (max-width:720px){.security-filter-toggle{display:inline-flex;align-items:center}.security-filters{display:none;grid-template-columns:1fr 1fr}.security-filters.open{display:grid}.security-filters .btn{grid-column:1/-1}
  .security-toolbar{flex-wrap:wrap}.security-toolbar .btn{order:3;flex-basis:100%}.security-toolbar .security-note{flex:1 1 0}}
@media (max-width:600px){.security-shell{padding-top:12px}.security-card{padding:20px;border-radius:18px}.security-shell .btn{width:100%}.security-actions .text-btn,.security-confirm .text-btn{width:100%;justify-content:center}.security-tabs{width:100%}.security-tabs button{flex:1;min-width:0}
  .security-filters{grid-template-columns:1fr}.security-log,.security-members{padding:2px 16px;border-radius:18px}.security-log li{grid-template-columns:1fr}.security-log time{grid-row:2}}
.security-password{display:grid;gap:12px;max-width:420px}.security-password .btn{justify-self:start;min-height:44px}
.security-others{margin:0 0 14px}.security-others>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--ink,#1d1d1f);font-weight:600}
.security-others .security-sessions{margin-bottom:8px}
.security-help .text-btn{min-height:44px}

/* ---- ops.css ---- */
/* Data care · Pearl surfaces, system sans, one deep-blue action. */
.ops-shell{max-width:820px;margin:0 auto;padding:32px 0 72px;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif)}
.ops-head{margin-bottom:28px}.ops-head h1{margin:10px 0 12px}.ops-head p:last-child{color:var(--muted,#686b73);font-size:16px;margin:0;max-width:56ch;line-height:1.5}
.ops-card{padding:24px 26px;border:1px solid var(--line,#e5e6ea);border-radius:20px;background:var(--pearl-surface,#fff);box-shadow:var(--pearl-shadow,0 12px 32px -24px #20263228);margin:0 0 18px}
.ops-card h2{font-size:21px;margin:0 0 6px}
.ops-rows{list-style:none;margin:0;padding:0}
.ops-rows li{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 18px;padding:14px 0;border-top:1px solid var(--line,#e5e6ea)}
.ops-rows li:first-child{border-top:0}
.ops-row-main{display:grid;gap:3px;min-width:0}.ops-row-main strong{font-weight:600;font-size:16px}
.ops-row-main small{color:var(--muted,#686b73);font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.ops-row-end{display:flex;align-items:center;gap:10px;justify-content:flex-end;white-space:nowrap;font-size:15px;font-variant-numeric:tabular-nums}
.ops-pill{display:inline-flex;align-items:center;min-height:26px;padding:2px 10px;border-radius:13px;font-size:12px;font-weight:600;background:#f1f2f4;color:#5b6472;white-space:nowrap}
.ops-pill.ready{background:var(--accent-soft,#eef3fc);color:var(--accent,#1046ab)}
.ops-pill.setup{background:var(--gold-light,#faf0dc);color:#6f4a1b}
.ops-pill.awaiting{background:#f1f2f4;color:#4a5361}
.ops-lead{color:var(--muted,#686b73);font-size:15px;line-height:1.5;margin:4px 0 8px;max-width:62ch}
.ops-awaiting{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 10px;margin:12px 0 0;padding:12px 14px;border-radius:14px;background:var(--paper,#f5f5f7);font-size:14px;line-height:1.45;color:var(--muted,#686b73)}
.ops-awaiting span:last-child{flex:1 1 240px}
.ops-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin:24px 0 0}
.ops-note{color:var(--muted,#686b73);font-size:14px}
.ops-error{color:var(--danger,#ac343d);margin:0 0 16px}
.ops-shell :focus-visible{outline:3px solid var(--accent,#1046ab);outline-offset:3px}
@media (max-width:600px){
  .ops-shell{padding-top:12px}
  .ops-card{padding:18px 18px;border-radius:18px}
  .ops-rows li{grid-template-columns:1fr;gap:6px}
  .ops-row-end{justify-content:flex-start;white-space:normal;flex-wrap:wrap}
  .ops-shell .btn{width:100%}
  .ops-actions .ops-note{width:100%;text-align:center}
}

/* ---- source-tools.css ---- */
/* Source tools · Pearl: soft white surfaces, system sans, one deep-blue motif. */
.source-tools{max-width:1040px;margin:0 auto;color:var(--ink,#1d1d1f);font-family:var(--app-font,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif);--st-blue:var(--accent,#1046ab);--st-line:var(--line,#e5e6ea);--st-muted:var(--muted,#686b73);padding-bottom:56px;overflow-wrap:anywhere}
.st-heading{margin:0 0 24px}.st-heading h1{margin:0 0 10px;font-size:40px;line-height:1.15;letter-spacing:-.04em}.st-heading p{margin:0;color:var(--st-muted);max-width:640px}
.st-eyebrow{font-size:11px;letter-spacing:.11em;font-weight:650;color:var(--st-blue);margin:0 0 10px}
.source-tools h2{font-size:24px;letter-spacing:-.03em;margin:0 0 6px}.source-tools h3{font-size:18px;letter-spacing:-.02em;margin:0 0 6px;line-height:1.3}.source-tools h4{font-size:16px;margin:0}
.st-tabs{display:flex;gap:6px;padding:4px;border:1px solid var(--st-line);background:#eceef180;border-radius:14px;width:fit-content;max-width:100%;box-sizing:border-box;margin:0 0 24px;overflow-x:auto;scrollbar-width:none}
.st-tabs::-webkit-scrollbar{display:none}
.st-tabs button{min-height:44px;padding:9px 18px;border:0;background:transparent;color:var(--st-muted);font:inherit;font-size:14px;border-radius:10px;white-space:nowrap;cursor:pointer}
.st-tabs button[aria-current=page]{background:#fff;color:var(--st-blue);box-shadow:0 2px 4px #2636520a}
.st-card{padding:24px;margin-bottom:20px;background:var(--pearl-surface,#fff);border:1px solid var(--st-line);border-radius:20px;box-shadow:var(--pearl-shadow,0 8px 28px -24px #20263228);min-width:0}
.st-empty{text-align:center;padding:40px 24px}.st-empty p{color:var(--st-muted);max-width:520px;margin:8px auto 0}
.st-muted{color:var(--st-muted);font-size:14px}.st-status{color:var(--st-muted)}
.st-error{color:var(--danger,#ac343d)}p.st-error{padding:14px 18px;border:1px solid #efd3d5;border-radius:14px;background:#fff8f8}
.st-list{list-style:none;margin:0 0 20px;padding:0;display:grid;gap:12px}
.st-row{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;min-height:64px;padding:16px 20px;background:var(--pearl-surface,#fff);border:1px solid var(--st-line);border-radius:16px;text-align:left;font:inherit;color:inherit;cursor:pointer}
.st-row:hover:not(:disabled){border-color:#c9d6ef}.st-row:hover:not(:disabled) strong{color:var(--st-blue)}.st-row:disabled{opacity:.7;cursor:default}
.st-row-main{display:grid;gap:3px;min-width:0}.st-row-main strong{font-size:16px;font-weight:600}.st-row-main>span{font-size:14px;color:#3d4250}
.st-row-meta{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;max-width:50%}
.st-pill{display:inline-flex;align-items:center;min-height:24px;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:550;background:#f1f2f4;color:#4a4e57;white-space:normal}
.st-pill.blue{background:var(--accent-soft,#eef3fc);color:var(--st-blue)}.st-pill.gold{background:var(--gold-light,#faf0dc);color:var(--gold,#966323)}.st-pill.gray{background:#f1f2f4;color:#6b6f78}
.st-button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 20px;border:0;border-radius:999px;background:var(--pearl-action,var(--st-blue));color:#fff;font:inherit;font-size:15px;font-weight:600;cursor:pointer}
.st-button.secondary{background:#fff;color:var(--st-blue);border:1px solid #c9d6ef}.st-button:disabled{opacity:.55;cursor:default}
.st-link{background:none;border:0;padding:8px 0;min-height:44px;color:var(--st-blue);font:inherit;font-weight:600;cursor:pointer;text-decoration:none}
.st-actions{display:flex;flex-wrap:wrap;gap:12px 18px;align-items:center;margin-top:10px}
.st-item-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px}.st-item-head small{color:var(--st-muted);font-size:12px}
.st-field{display:grid;gap:6px;margin:0 0 14px;font-size:14px;min-width:0}.st-field>span{font-weight:550}
.st-field input,.st-field select,.st-field textarea{min-height:44px;border:1px solid var(--st-line);border-radius:10px;padding:10px 12px;font:inherit;font-size:16px;background:#fff;color:inherit;min-width:0;width:100%;box-sizing:border-box}
.st-field textarea{min-height:88px;resize:vertical}.st-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace!important;font-size:14px!important}
.st-field.compact{margin-bottom:10px}
.st-check{display:flex;align-items:center;gap:10px;min-height:44px;font-size:14px}.st-check input{width:22px;height:22px;accent-color:var(--st-blue)}
.st-file{display:grid;gap:4px;padding:20px;border:1.5px dashed #c9d6ef;border-radius:14px;margin:12px 0 14px;background:#fbfcfe;cursor:pointer}.st-file span{font-size:13px;color:var(--st-muted)}.st-file input{margin-top:8px;font-size:14px;max-width:100%}
.st-form-status{font-size:14px;color:var(--st-muted);margin-top:8px;display:block}
.st-tech{margin-top:14px;font-size:14px;color:#3d4250}.st-tech>summary,.st-add>summary,.st-model details>summary,.st-offset details>summary{cursor:pointer;color:var(--st-blue);font-weight:600;min-height:44px;display:flex;align-items:center}
.st-add{margin-top:8px}.st-add>.st-card{margin:12px 0 0;box-shadow:none}
.st-awaiting{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:16px 18px;border:1px solid var(--st-line);border-radius:16px;background:#fff;margin:0 0 16px}
.st-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* Sessions */
.st-session-head .st-audio{width:100%;margin-top:12px}
.st-turns{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.st-turn{display:grid;grid-template-columns:170px minmax(0,1fr);gap:14px;padding:14px;border:1px solid var(--st-line);border-radius:14px;background:#fff}
.st-turn.verified{border-color:#c9d6ef;background:#fafcff}
.st-turn-time{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-variant-numeric:tabular-nums;font-size:14px}.st-turn-time small{flex-basis:100%;color:var(--st-muted);font-size:12px}
.st-play{width:44px;height:44px;border-radius:50%;border:1px solid #c9d6ef;background:#fff;color:var(--st-blue);font-size:14px;cursor:pointer}
.st-turn-body{min-width:0}.st-transcript{margin:0 0 8px;font-size:15px;line-height:1.5}
.st-turn-fields{display:flex;flex-wrap:wrap;gap:4px 16px;align-items:flex-end}.st-turn-fields .st-field{flex:1 1 200px;margin:0}
.st-sticky{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:16px}
.st-offset{padding:16px 0;border-top:1px solid var(--st-line)}.st-offset:first-of-type{border-top:0;padding-top:0}
.st-big{font-size:22px;font-weight:600;letter-spacing:-.02em;margin:4px 0 6px;font-variant-numeric:tabular-nums}
.st-flag{color:var(--gold,#966323);font-size:14px}.st-note{font-size:14px;background:#f7f8fa;border-radius:10px;padding:10px 12px}
.st-calc{max-width:360px;margin-top:10px}.st-calc output{font-weight:600;color:var(--st-blue);font-variant-numeric:tabular-nums;min-height:20px}
.st-inline{margin-top:10px;padding:14px;border:1px solid var(--st-line);border-radius:14px;background:#fbfbfd}
.st-anchors{border:0;padding:0;margin:0 0 6px}.st-anchors legend{font-weight:600;margin-bottom:8px;font-size:14px}
.st-anchor{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:10px}
.st-table{width:100%;border-collapse:collapse;font-size:14px;margin:6px 0}.st-table th,.st-table td{text-align:left;padding:8px 6px;border-bottom:1px solid var(--st-line);font-variant-numeric:tabular-nums}
/* Workbook */
.st-facts{margin:8px 0 0}.st-facts>div{display:grid;grid-template-columns:200px 1fr;gap:12px;padding:9px 0;border-top:1px solid var(--st-line);font-size:14px}.st-facts dt{color:var(--st-muted)}.st-facts dd{margin:0}
.st-filter{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;margin:0 0 10px}.st-filter .st-field{flex:1 1 240px;margin:0}
.st-legend{display:flex;gap:16px;font-size:12px;color:var(--st-muted);margin:4px 0 10px}.st-legend span::before,.st-legend strong::before{content:"";display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:6px;background:#d9dde5}.st-legend strong{color:var(--st-blue);font-weight:600}.st-legend strong::before{background:var(--st-blue)}
.st-segments{list-style:none;margin:0 0 16px;padding:0;display:grid;gap:10px}
.st-segments>li{padding:14px 16px;border:1px solid var(--st-line);border-radius:14px;background:#fff;min-width:0}
.st-seg-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.st-seg-head code{font-size:12px;color:var(--st-muted);margin-left:auto}
.st-seg-times{display:grid;grid-template-columns:1fr 1fr 120px;gap:12px;margin-top:8px}
.st-label{display:block;font-size:12px;color:var(--st-muted);margin-bottom:2px}
.st-cell{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;font-variant-numeric:tabular-nums;font-size:14px}.st-cell span{color:#4a4e57}.st-cell span:first-child{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:var(--st-muted)}.st-cell strong{color:var(--st-blue)}
.st-issues{margin:8px 0 0;padding-left:18px;color:var(--gold,#966323);font-size:14px}
.st-pager{display:flex;justify-content:space-between;align-items:center;gap:12px}
/* Models */
.st-models{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}
.st-model{padding:20px;background:var(--pearl-surface,#fff);border:1px solid var(--st-line);border-radius:18px;min-width:0;display:flex;flex-direction:column;gap:4px}.st-model p{margin:4px 0}.st-model .st-link{margin-top:auto;align-self:flex-start}
.st-elements{list-style:none;margin:6px 0;padding:0;display:grid;gap:8px;font-size:14px;max-height:360px;overflow:auto}.st-elements li{display:grid;gap:2px}.st-elements small{color:var(--st-muted);font-size:12px}.st-elements code,.st-changes code{font-size:12px;color:var(--st-blue)}
.st-callout{border-color:#c9d6ef;background:linear-gradient(155deg,#fff,#f6f9ff)}
.st-changes{list-style:none;margin:0;padding:0;display:grid;gap:0}.st-changes>li{padding:16px 0;border-top:1px solid var(--st-line)}.st-changes>li:first-child{border-top:0;padding-top:0}.st-changes p{margin:4px 0}
.st-impacts{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}.st-impacts>li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 12px;align-items:start;padding:12px 14px;border:1px solid var(--st-line);border-radius:12px;background:#fff}.st-impacts>li>div{display:grid;gap:2px;font-size:14px}.st-impacts small{color:var(--st-muted)}.st-impacts form{grid-column:1/-1;margin-top:4px}
@media (max-width:900px){.st-models{grid-template-columns:1fr}}
@media (max-width:640px){.st-tabs{width:100%}.st-tabs button{flex:1 1 auto;padding:9px 10px;font-size:13px}.st-heading h1{font-size:32px}.st-card{padding:18px;border-radius:16px}.st-row{flex-direction:column;align-items:flex-start}.st-row-meta{max-width:100%;justify-content:flex-start}.st-turn{grid-template-columns:1fr;gap:8px}.st-anchor{grid-template-columns:1fr 1fr}.st-anchor .st-field:last-child{grid-column:1/-1}.st-seg-times{grid-template-columns:1fr}.st-facts>div{grid-template-columns:1fr;gap:2px}.st-seg-head code{margin-left:0;flex-basis:100%}.st-impacts>li{grid-template-columns:1fr}}

/* ---- learning-release.css ---- */
.lr-shell{max-width:960px;margin:auto;color:var(--text,#18202c);font-family:var(--app-font,system-ui);display:grid;gap:24px}.lr-shell h1{font-size:clamp(30px,4vw,44px);letter-spacing:-.045em;line-height:1.12;margin:8px 0 14px}.lr-shell h2{font-size:22px;letter-spacing:-.025em;margin:0 0 16px}.lr-shell h3{font-size:17px;letter-spacing:-.015em}.lr-shell p{line-height:1.6}.lr-kicker,.lr-muted{color:var(--muted,#637185)}.lr-kicker{font-size:12px;letter-spacing:.08em;text-transform:uppercase}.lr-card{padding:28px;border:1px solid rgba(32,48,80,.1);border-radius:24px;background:rgba(255,255,255,.85);box-shadow:0 8px 30px rgba(30,40,60,.025)}.lr-card details{margin-top:18px}.lr-card summary{cursor:pointer;padding:10px 0;line-height:1.5}.lr-card ul{padding-left:22px;line-height:1.7}.lr-card code{word-break:break-all;font-size:12px}.lr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.lr-shell form{display:grid;gap:16px}.lr-shell label{display:grid;gap:8px;font-size:14px;font-weight:550}.lr-shell input:not([type=radio]),.lr-shell textarea,.lr-shell select{width:100%;padding:13px 15px;box-sizing:border-box;border:1px solid #d7dce5;border-radius:12px;background:#fff;font:inherit;color:inherit;min-height:46px}.lr-shell textarea{min-height:100px;resize:vertical}.lr-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.lr-button{min-height:46px;padding:12px 20px;border:1px solid transparent;border-radius:12px;font:inherit;font-weight:600;color:#fff;background:var(--accent,#124bb5);cursor:pointer;text-decoration:none;text-align:center}.lr-button.secondary{background:transparent;border-color:#d5dce9;color:var(--accent,#124bb5)}.lr-button:disabled{opacity:.5;cursor:default}.lr-shell :focus-visible{outline:3px solid var(--accent,#124bb5);outline-offset:4px}.lr-note{border-left:3px solid var(--accent,#124bb5);padding:12px 16px;background:#f3f6fa;line-height:1.5}.lr-error{color:#9b2929;background:#fff2f1;padding:16px;border-radius:12px}.lr-row{padding:17px 0;border-bottom:1px solid #e9edf2;display:flex;align-items:center;justify-content:space-between;gap:16px}.lr-row:last-child{border-bottom:0}.lr-row p{margin:4px 0}.lr-options{border:0;padding:0;margin:0;display:grid;gap:10px}.lr-options legend{margin-bottom:12px}.lr-options label{display:flex;align-items:center;gap:12px;padding:14px;border:1px solid #dce2ed;border-radius:12px;cursor:pointer}.lr-options input{accent-color:var(--accent,#124bb5);width:18px;height:18px}.lr-mode{display:flex;gap:18px;flex-wrap:wrap}.lr-mode label{display:flex;align-items:center;gap:8px}.lr-shell video,.lr-shell audio{width:100%;max-height:520px;border-radius:14px}.lr-shell img{max-width:100%;max-height:520px;object-fit:contain;border-radius:14px}.lr-media{margin:20px 0}.lr-media figcaption{font-size:13px;color:#667186;margin-top:8px}.lr-pill{display:inline-block;padding:5px 10px;border-radius:20px;background:#f0f3f8;color:var(--accent,#124bb5);font-size:12px}.lr-inline-link{color:var(--accent,#124bb5);font-weight:600;text-decoration:none}.lr-hidden{display:none!important}.lr-shell [hidden]{display:none!important}@media(max-width:640px){.lr-grid{grid-template-columns:1fr}.lr-card{padding:22px 18px;border-radius:20px}.lr-row{align-items:flex-start}.lr-actions .lr-button{flex-grow:1}.lr-shell{gap:18px}}

/* ---- review-loop.css ---- */
/* Review loop add-ons (IDEAS-NEXT v0.12 slice 1). Pearl: soft white, system sans, one deep blue. */
.rl-muted { color: var(--muted, #686b73); font-size: 14px; line-height: 1.5; }
.rl-kicker { color: var(--accent, #1046ab); font-size: 11px; font-weight: 650; letter-spacing: .085em; text-transform: uppercase; }
.rl-link { color: var(--accent, #1046ab); font-weight: 600; text-decoration: none; display: inline-flex; align-items: center; min-height: 44px; }
.rl-primary { min-height: 52px; padding: 13px 22px; border: 1px solid var(--accent, #1046ab); border-radius: 14px; color: #fff; background: var(--pearl-action, var(--accent, #1046ab)); font: inherit; font-weight: 600; cursor: pointer; }
.rl-primary:disabled { opacity: .45; cursor: default; }
.rl-error { color: #9b2929; background: #fff2f1; padding: 12px 14px; border-radius: 12px; }
.rl-block { display: block; margin-top: 8px; }
.rl-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* A1 · three thumb-sized outcome buttons, none preselected */
.rl-choices { border: 0; padding: 0; margin: 0; display: grid; gap: 10px; min-width: 0; }
.rl-choices legend { font-weight: 600; font-size: 15px; margin-bottom: 8px; padding: 0; }
.rl-choice-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.rl-choice { position: relative; display: flex !important; align-items: center; justify-content: center; text-align: center; min-height: 48px; padding: 10px 12px; border: 1px solid #d5dce8; border-radius: 12px; background: #fff; cursor: pointer; font-weight: 550; font-size: 15px; line-height: 1.25; }
.rl-choice input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.rl-choice:has(input:checked) { border-color: var(--accent, #1046ab); background: var(--accent-soft, #eef3fc); color: var(--accent-deep, #0d3889); box-shadow: inset 0 0 0 1px var(--accent, #1046ab); }
.rl-choice:has(input:focus-visible) { outline: 3px solid var(--accent, #1046ab); outline-offset: 3px; }
.rl-left { font-size: 14px; color: var(--muted, #686b73); margin: 0 0 8px; }
form[data-rl-rubric] fieldset.lr-options > label { display: grid; gap: 8px; padding: 0; border: 0; cursor: auto; }
@media (max-width: 768px) {
  /* Below the app header and above the bottom tab bar. */
  .lr-card article:has(form[data-rl-rubric]) > video { position: sticky; top: 72px; z-index: 3; max-height: 30vh; background: #000; }
  form[data-rl-rubric] .rl-save-bar { position: sticky; bottom: calc(74px + env(safe-area-inset-bottom)); z-index: 3; padding: 12px 0; background: linear-gradient(180deg, transparent, var(--surface, #fff) 30%); }
  form[data-rl-rubric] .rl-save-bar .lr-button { width: 100%; }
}
@media (max-width: 420px) { .rl-choice-row { grid-template-columns: 1fr; } }

/* A4 · last correction and "Did they fix it?" */
.rl-followup:empty { display: none; }
.rl-last { border-left: 3px solid var(--accent, #1046ab); background: var(--surface-tint, #f4f7fc); color: var(--ink, #1d1d1f); border-radius: 0 14px 14px 0; padding: 14px 16px; margin: 0 0 14px; }
.rl-last-text { font-size: 17px; font-weight: 600; margin: 6px 0; line-height: 1.4; }
.rl-fix { margin-bottom: 18px; }
.rl-fix .rl-choice-row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 520px) { .rl-fix .rl-choice-row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rl-fix-result { margin: 0 0 12px; padding: 10px 14px; border-radius: 12px; background: var(--surface-tint, #f4f7fc); color: var(--ink, #1d1d1f); }

/* A7 · This week strip */
.rl-week[hidden] { display: none; }
.rl-week { display: grid; gap: 12px; margin-bottom: 18px; }
.rl-week-card { padding: 16px 18px; border: 1px solid var(--line, #e5e6ea); border-radius: 18px; background: var(--pearl-surface, #fff); box-shadow: var(--pearl-shadow, none); }
.rl-week-head { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; margin-bottom: 10px; }
.rl-parts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; }
.rl-part a { position: relative; display: grid; gap: 2px; min-height: 64px; padding: 10px 10px 10px 34px; border: 1px solid #e3e7ee; border-radius: 12px; color: inherit; text-decoration: none; background: #fff; }
.rl-tick { position: absolute; left: 9px; top: 11px; width: 18px; height: 18px; border-radius: 50%; border: 1.5px solid #c9d1de; display: grid; place-items: center; font-size: 11px; }
.rl-part-label { font-weight: 650; font-size: 15px; }
.rl-part-window { font-size: 12px; color: var(--muted, #686b73); }
.rl-part.is-done .rl-tick { background: var(--accent, #1046ab); border-color: var(--accent, #1046ab); color: #fff; }
.rl-part.is-due a { border-color: var(--accent, #1046ab); box-shadow: inset 0 0 0 1px var(--accent, #1046ab); background: var(--accent-soft, #eef3fc); }
.rl-part.is-passed .rl-part-label { color: var(--muted, #686b73); }
.rl-week-next { margin-top: 4px; }
.rl-cadence { margin: 2px 0 0; font-size: 12px; color: var(--muted, #686b73); }
.rl-week-none p { margin: 4px 0; }

/* A10 · self-scout */
.rl-scout:empty { display: none; }
.rl-scout-form { display: grid; gap: 16px; margin-top: 16px; padding: 18px; border: 1px solid #dfe5ef; border-radius: 16px; background: #fbfcfe; }
.rl-scout-form h3, .rl-compare h3, .rl-scout-saved h3 { margin: 0; }
.rl-stamp { justify-self: start; min-height: 44px; padding: 8px 12px; border: 0; background: transparent; color: var(--accent, #1046ab); font: inherit; font-size: 14px; cursor: pointer; }
.rl-compare table { width: 100%; border-collapse: collapse; font-size: 14px; margin-top: 10px; }
.rl-compare th, .rl-compare td { text-align: left; padding: 9px 6px; border-bottom: 1px solid #e9edf2; vertical-align: top; }
.rl-scout-saved ul { padding-left: 18px; line-height: 1.7; }

/* A13 · validity sweep */
.rl-sweep { max-width: 1080px; margin: 0 auto; display: grid; gap: 18px; padding-bottom: 96px; }
.rl-sweep-head h1 { font-size: clamp(28px, 4vw, 40px); letter-spacing: -.04em; margin: 6px 0 8px; }
.rl-count { font-weight: 600; margin: 0; }
.rl-sweep-list { display: grid; gap: 16px; }
.rl-sweep-item { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 20px; padding: 18px; border: 1px solid var(--line, #e5e6ea); border-radius: 20px; background: var(--pearl-surface, #fff); box-shadow: var(--pearl-shadow, none); }
.rl-sweep-item.is-valid, .rl-sweep-item.is-recapture_sent { opacity: .72; }
.rl-sweep-item video { width: 100%; max-height: 420px; border-radius: 14px; background: #000; }
.rl-sweep-body h2 { margin: 0; font-size: 20px; }
.rl-sweep-body details { margin-top: 8px; }
.rl-sweep-body summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; color: var(--accent, #1046ab); }
.rl-sweep-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 14px 0; }
.rl-choice-btn { min-height: 52px; border: 1px solid #d5dce8; border-radius: 14px; background: #fff; font: inherit; font-weight: 650; cursor: pointer; color: var(--ink, #1d1d1f); }
.rl-choice-btn.is-on { border-color: var(--accent, #1046ab); background: var(--accent-soft, #eef3fc); color: var(--accent-deep, #0d3889); box-shadow: inset 0 0 0 1px var(--accent, #1046ab); }
.rl-reasons { display: grid; gap: 8px; }
.rl-reasons .rl-choice { justify-content: flex-start; text-align: left; }
.rl-sweep-state { font-weight: 600; color: var(--accent-deep, #0d3889); }
.rl-sweep-bar { position: sticky; bottom: 0; padding: 14px 0 calc(14px + env(safe-area-inset-bottom)); background: linear-gradient(180deg, #f5f5f700, #f5f5f7 35%); display: flex; justify-content: flex-end; }
.rl-sweep-empty { padding: 28px; border: 1px solid var(--line, #e5e6ea); border-radius: 20px; background: var(--pearl-surface, #fff); }
@media (max-width: 768px) {
  .rl-sweep-item { grid-template-columns: 1fr; padding: 14px; }
  .rl-sweep-bar { bottom: calc(74px + env(safe-area-inset-bottom)); }
  .rl-sweep-bar .rl-primary { width: 100%; }
}

/* A16 · receipt */
.rl-receipt { margin-top: 14px; border: 1px solid var(--line, #e5e6ea); border-radius: 16px; background: var(--pearl-surface, #fff); padding: 0 16px; }
.rl-receipt summary { min-height: 48px; display: flex; align-items: center; cursor: pointer; font-weight: 600; color: var(--accent, #1046ab); }
.rl-receipt dl { margin: 0 0 8px; display: grid; gap: 10px; }
.rl-receipt dt { font-weight: 650; font-size: 14px; }
.rl-receipt dd { margin: 2px 0 0; line-height: 1.5; font-size: 14px; }
.rl-receipt-body { padding-bottom: 14px; }
.rl-awaiting { margin-top: 12px; }

/* One-line week chips on a phone and in Today's side column: each part is one row (tick · label · window),
   never wrapped into two lines. */
.ia-today-side .rl-parts { grid-template-columns: 1fr; }
.ia-today-side .rl-part a { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 8px 12px 8px 40px; }
.ia-today-side :is(.rl-part-label, .rl-part-window) { white-space: nowrap; }
.ia-today-side .rl-part-window { margin-left: auto; }
.ia-today-side .rl-part .rl-tick { top: 50%; left: 12px; transform: translateY(-50%); }
@media (max-width: 560px) {
  .rl-parts { grid-template-columns: 1fr; gap: 6px; }
  .rl-part a { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 8px 12px 8px 40px; }
  .rl-part-label, .rl-part-window { white-space: nowrap; }
  .rl-part-window { margin-left: auto; }
  .rl-part .rl-tick { top: 50%; left: 12px; transform: translateY(-50%); }
}

/* ---- knowledge-drive.css ---- */
/* Knowledge-driven lesson pieces and the staff knowledge map. Pearl: soft white, one deep blue. */
.kd-shell { max-width: 960px; margin: 0 auto; display: grid; gap: 20px; color: var(--ink, #1d1d1f); font-family: var(--app-font, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif); padding-bottom: 48px; min-width: 0; }
.kd-shell h1 { font-size: clamp(32px, 4vw, 44px); letter-spacing: -.04em; line-height: 1.12; margin: 6px 0 10px; }
.kd-shell h2 { font-size: 22px; letter-spacing: -.03em; margin: 0 0 12px; }
.kd-shell h3 { font-size: 17px; letter-spacing: -.015em; margin: 0; }
.kd-heading p { color: var(--muted, #686b73); font-size: 16px; margin: 0; }
.kd-eyebrow { color: var(--accent, #1046ab); font-size: 11px; font-weight: 650; letter-spacing: .085em; }
.kd-panel { padding: 24px; border: 1px solid var(--line, #e5e6ea); border-radius: 20px; background: var(--pearl-surface, #fff); box-shadow: var(--pearl-shadow, none); min-width: 0; overflow-wrap: anywhere; }
.kd-panel > * + * { margin-top: 12px; }
.kd-muted, .kd-fine { color: var(--muted, #686b73); }
.kd-fine { font-size: 13px; line-height: 1.5; }
.kd-hash { word-break: break-all; }
.kd-back, .kd-link { color: var(--accent, #1046ab); font-weight: 600; text-decoration: none; background: none; border: 0; padding: 0; font: inherit; font-weight: 600; cursor: pointer; display: inline-flex; align-items: center; min-height: 44px; text-align: left; }
.kd-back:hover, .kd-link:hover { text-decoration: underline; }
.kd-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 20px; border: 1px solid var(--accent, #1046ab); border-radius: 14px; background: var(--pearl-action, #1046ab); color: #fff; font: inherit; font-size: 15px; font-weight: 600; cursor: pointer; }
.kd-button.kd-secondary { background: #fff; color: var(--accent, #1046ab); border-color: #e0e3e9; }
.kd-button:disabled { opacity: .55; cursor: default; }
.kd-shell :focus-visible, .kd-ask :focus-visible, .kd-trace :focus-visible { outline: 3px solid var(--accent, #1046ab); outline-offset: 3px; }
.kd-message { padding: 12px 16px; border-radius: 12px; background: var(--accent-soft, #eef3fc); color: var(--accent-deep, #0d3889); margin: 0; }
.kd-error { color: #9b2929; background: #fff2f1; padding: 12px 16px; border-radius: 12px; margin: 0; }
.kd-warn-text { color: #855d26; }

/* Badges: provenance and football category stay visibly separate. */
.kd-badges, .kd-axes { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.kd-badge { display: inline-flex; align-items: center; min-height: 24px; padding: 2px 9px; border-radius: 8px; font-size: 12px; font-weight: 600; line-height: 1.3; white-space: nowrap; background: #f0f2f6; color: #4a5568; }
.kd-badge.kd-prov { background: #eef3fc; color: #1a4d9c; }
.kd-badge.kd-cat { background: #fff; color: #253247; box-shadow: inset 0 0 0 1px #cfd6e2; }
.kd-badge.kd-missing { background: transparent; color: #7a8190; box-shadow: inset 0 0 0 1px #dfe3ea; font-weight: 500; }
.kd-badge.kd-ok { background: #e9f5ee; color: #1f6b43; }
.kd-badge.kd-warn { background: #fcf2e1; color: #855d26; }
.kd-badge.kd-quiet { background: #f3f4f7; color: #5b6475; }
.kd-badge.kd-draft { background: #fcf2e1; color: #7a5420; white-space: normal; }

/* Draft label and approved legacy lesson. */
.kd-draft-label { display: flex; flex-wrap: wrap; gap: 8px 10px; align-items: center; margin: 0 0 18px; color: var(--muted, #686b73); font-size: 14px; line-height: 1.5; }
.kd-approved { padding: 24px; border: 1px solid var(--line, #e5e6ea); border-radius: 20px; background: var(--pearl-surface, #fff); box-shadow: var(--pearl-shadow, none); display: grid; gap: 10px; margin-bottom: 18px; }
.kd-approved h2 { margin: 0; }
.kd-approved .kd-badge { justify-self: start; }
.kd-connected { margin-bottom: 16px; }
.kd-approved p { margin: 0; }

/* Whole-play trace. */
.kd-trace { margin-top: 18px; padding: 20px; border-radius: 16px; background: #f7f8fb; border: 1px solid #eceef2; }
.kd-trace-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; }
.kd-trace h3 { font-size: 17px; margin: 0; }
.kd-steps { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.kd-steps li { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px; padding: 10px 0; border-top: 1px solid #eceef2; }
.kd-steps li:first-child { border-top: 0; }
.kd-step-number { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: var(--accent, #1046ab); color: #fff; font-size: 13px; font-weight: 650; }
.kd-steps li.is-awaiting .kd-step-number { background: #dfe3ea; color: #5b6475; }
.kd-step-label { display: block; font-size: 12px; font-weight: 650; letter-spacing: .06em; text-transform: uppercase; color: var(--accent, #1046ab); }
.kd-steps li.is-awaiting .kd-step-label { color: #5b6475; }
.kd-steps p { margin: 2px 0 0; line-height: 1.5; }
.kd-steps li.is-awaiting p { color: #7a8190; font-style: italic; }
.kd-step-note { font-size: 14px; color: var(--muted, #686b73); }
.kd-concepts { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 12px 0 0; font-size: 13px; color: var(--muted, #686b73); }
.kd-concepts > span:first-child { font-weight: 650; margin-right: 4px; }
.kd-tag { display: inline-flex; padding: 3px 10px; border-radius: 999px; background: #fff; border: 1px solid #d8deea; color: #253247; font-size: 13px; }
.kd-tag-awaiting { color: #7a8190; border-style: dashed; }

/* Ask about this. */
.kd-ask { margin-top: 18px; border-top: 1px solid var(--line, #e5e6ea); padding-top: 4px; }
.kd-ask > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; color: var(--accent, #1046ab); font-size: 15px; font-weight: 600; }
/* The screen keeps one primary action: Ask about this uses secondary buttons. */
.kd-ask .kd-button { background: #fff; color: var(--accent, #1046ab); border-color: #d5dce9; box-shadow: none; }
.kd-ask-form { display: grid; gap: 12px; margin: 8px 0 0; }
.kd-ask-form label { display: grid; gap: 6px; font-size: 14px; font-weight: 550; }
.kd-ask-form textarea { width: 100%; box-sizing: border-box; min-height: 88px; padding: 12px 14px; border: 1px solid #d3dce8; border-radius: 12px; font: inherit; font-size: 16px; resize: vertical; background: #f5f7faa8; }
.kd-ask-form .kd-button { justify-self: start; }
.kd-answer { margin-top: 14px; display: grid; gap: 10px; }
.kd-answer h3, .kd-answer h4 { margin: 0; }
.kd-answer p { margin: 0; line-height: 1.55; }
.kd-answer .kd-button { justify-self: start; }
.kd-statement { padding: 14px 0; border-top: 1px solid #eceef2; display: grid; gap: 8px; min-width: 0; }
.kd-statement-head { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; justify-content: space-between; }
.kd-statement blockquote, .kd-panel blockquote, .kd-occurrences blockquote { margin: 0; padding: 2px 0 2px 14px; border-left: 3px solid var(--accent, #1046ab); color: #2a3240; white-space: pre-wrap; }
.kd-cite { font-size: 13px; color: var(--muted, #686b73); }
.kd-binding { margin-top: 10px; padding: 12px 14px; border-radius: 12px; background: #f7f8fb; }
.kd-binding p { margin: 2px 0; }
.kd-excerpts { margin-top: 16px; }
.kd-excerpts > summary { cursor: pointer; min-height: 44px; display: flex; align-items: center; font-weight: 600; }

/* Staff map. */
.kd-row-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.kd-row-head h2, .kd-row-head h3 { margin: 0; }
.kd-count { font-size: 14px; color: var(--muted, #686b73); }
.kd-coverage-line { font-size: 17px; font-weight: 550; letter-spacing: -.01em; }
.kd-facts, .kd-gaps, .kd-list, .kd-occurrences, .kd-totals { list-style: none; margin: 0; padding: 0; }
.kd-facts li, .kd-gaps li { display: flex; justify-content: space-between; gap: 6px 16px; padding: 10px 0; border-top: 1px solid #eceef2; flex-wrap: wrap; }
.kd-facts li span { color: var(--muted, #686b73); }
.kd-gaps li div { display: grid; gap: 2px; min-width: 0; flex: 1 1 240px; }
.kd-gaps li div span { font-size: 13px; color: var(--muted, #686b73); }
.kd-list li { border-top: 1px solid #eceef2; }
.kd-list li > a { display: flex; justify-content: space-between; align-items: center; gap: 10px 14px; flex-wrap: wrap; padding: 12px 0; min-height: 44px; color: inherit; text-decoration: none; }
.kd-list li > a:hover strong { color: var(--accent, #1046ab); }
.kd-list li > a > span:first-child { display: grid; gap: 2px; min-width: 0; flex: 1 1 220px; }
.kd-list small { color: var(--muted, #686b73); font-size: 13px; }
.kd-list-end { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.kd-empty { padding: 14px 0; color: var(--muted, #686b73); border-top: 1px solid #eceef2; }
.kd-rel { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; padding: 12px 0 4px; }
.kd-rel-kind { font-size: 13px; font-weight: 650; color: #4a5568; }
.kd-rel a { color: var(--accent, #1046ab); font-weight: 600; text-decoration: none; }
.kd-list details, .kd-occurrences details { padding-bottom: 8px; }
.kd-list summary, .kd-occurrences summary, .kd-delivery summary { cursor: pointer; min-height: 44px; display: list-item; padding: 11px 0; line-height: 1.5; color: #3c4658; }
.kd-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 10px; }
.kd-filters label, .kd-form label { display: grid; gap: 6px; font-size: 13px; font-weight: 550; min-width: 0; }
.kd-filters select, .kd-filters input, .kd-form select, .kd-form textarea, .kd-form input { width: 100%; box-sizing: border-box; min-height: 46px; padding: 10px 12px; border: 1px solid #d3dce8; border-radius: 12px; font: inherit; font-size: 16px; background: #f5f7faa8; color: inherit; }
.kd-form { display: grid; gap: 12px; margin-top: 12px; }
.kd-form textarea { min-height: 80px; resize: vertical; }
.kd-form .kd-button { justify-self: start; }
.kd-lesson { padding: 16px 0; border-top: 1px solid #eceef2; display: grid; gap: 8px; }
.kd-lesson p { margin: 0; }
.kd-occurrences li { padding: 14px 0; border-top: 1px solid #eceef2; display: grid; gap: 8px; min-width: 0; }
.kd-occurrences .kd-row-head > div { display: grid; gap: 2px; }
.kd-dl { display: grid; gap: 8px; margin: 0; }
.kd-dl div { display: grid; grid-template-columns: minmax(90px, 160px) minmax(0, 1fr); gap: 12px; }
.kd-dl dt { color: var(--muted, #686b73); font-size: 13px; }
.kd-dl dt::first-letter { text-transform: uppercase; }
.kd-dl dd { margin: 0; white-space: pre-wrap; }
.kd-original dt::first-letter { text-transform: none; }
.kd-original dt { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 12px; }
.kd-definition { font-size: 17px; line-height: 1.55; }
.kd-tabs { display: flex; gap: 6px; padding: 4px; border-radius: 14px; background: #eceef180; border: 1px solid #e8e9ed; width: max-content; max-width: 100%; }
.kd-tabs button { min-height: 44px; padding: 8px 16px; border: 1px solid transparent; border-radius: 11px; background: transparent; color: #4a5568; font: inherit; font-size: 14px; font-weight: 600; cursor: pointer; }
.kd-tabs button[aria-pressed="true"] { background: #fff; color: var(--accent, #1046ab); border-color: #fff; box-shadow: 0 2px 5px #2636520c; }
.kd-totals { display: grid; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 10px; }
.kd-totals li { padding: 12px; border-radius: 14px; background: #f7f8fb; display: grid; gap: 2px; }
.kd-totals strong { font-size: 24px; letter-spacing: -.03em; }
.kd-totals span { font-size: 13px; color: var(--muted, #686b73); }
.kd-timeline { margin: 0; padding-left: 20px; display: grid; gap: 8px; line-height: 1.5; }
.kd-timeline p { margin: 2px 0 0; }
.kd-bullets { margin: 0; padding-left: 20px; line-height: 1.6; }
.kd-inline { grid-template-columns: minmax(0, 1fr) auto; align-items: end; }
@media (max-width: 640px) {
  .kd-panel, .kd-approved { padding: 20px 16px; border-radius: 18px; }
  .kd-shell h1 { font-size: 32px; }
  .kd-dl div { grid-template-columns: 1fr; gap: 2px; }
  .kd-inline { grid-template-columns: 1fr; }
  .kd-trace { padding: 16px 14px; }
  .kd-tabs { width: 100%; }
  .kd-tabs button { flex: 1 1 0; padding: 8px 10px; }
  .kd-ask-form .kd-button, .kd-answer .kd-button, .kd-form .kd-button { width: 100%; justify-self: stretch; }
}

/* ---- media.css ---- */
/* Media classes, claim labels, add-a-rep, tracked overlay, offline banner and Media & visuals (Pearl). */
.media-class,.claim-badge{display:inline-flex;align-items:center;gap:6px;min-height:24px;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;line-height:1.3;border:1px solid transparent;vertical-align:middle;max-width:100%}
.media-class::before{content:"";flex:0 0 6px;width:6px;height:6px;border-radius:50%;background:currentColor}
.media-class-source_footage{background:#eef3fc;color:#0d3889}
.media-class-expert_annotation{background:#fff;color:#0d3889;border-color:#c9d7f2}
.media-class-estimated_reconstruction{background:#f3f4f7;color:#3b4654;border-color:#dfe3ea}
.media-class-generated_illustration{background:#fcf2e1;color:#855d26}
.media-class-unknown{background:#f5f5f7;color:#686b73}
.claim-demonstrated{background:#eef3fc;color:#1046ab}.claim-proposed{background:#f3f4f7;color:#3b4654}.claim-measured{background:#e9f6ee;color:#245c39}
.claim-strip{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.bm-heading>.claim-strip,.pg-heading>.claim-strip{flex-basis:100%}
/* The badge takes its own line; a heading that is a non-wrapping flex row must wrap for that. */
.bm-heading:has(>.claim-strip),.pg-heading:has(>.claim-strip){flex-wrap:wrap}
.claim-open-items{margin:0 0 22px;padding:16px 18px;border:1px solid var(--line,#e5e6ea);border-radius:18px;background:#fff}
.claim-open-items>summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px;min-height:44px;cursor:pointer;font-weight:550;color:var(--ink,#1d1d1f)}
.claim-open-items p{color:var(--muted,#686b73);font-size:14px}
.claim-open-items ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:8px}
.claim-open-items li{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;font-size:14px;padding:8px 0;border-top:1px solid #eef0f3}
.claim-open-items li small{color:#855d26;font-weight:600;font-size:12px}
.claim-open-mark{width:10px;height:10px;border:2px solid #c9a46a;border-radius:50%}
.media-class-row{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 0}
.media-caption .media-class{margin-left:auto;margin-right:8px}
.motion-viewer-notes .media-class{margin-bottom:10px}
.motion-page-heading h1+.media-class{margin-top:10px}
/* Add a rep */
.rep-form>.eyebrow{display:block;margin-bottom:8px}
.rep-library-detail{margin-top:18px}
.rep-library-detail>summary{min-height:44px;display:flex;align-items:center;color:var(--accent,#1046ab);font-weight:550;cursor:pointer}
.rep-library-detail>.rep-form{margin-top:10px}
/* Tracked overlay: native proportions, overlay on by default, original film beside it */
.rep-media{margin:12px 0}
.rep-media:empty{display:none}
.rep-feedback-media{margin:20px 0 0;padding-top:18px;border-top:1px solid #eef0f3}
.rep-tracked-head{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.rep-video-wrap{position:relative;width:min(100%,calc(min(70svh,640px) * var(--rep-ratio,1.7778)));margin:0 auto;background:#0f1622;border-radius:14px;overflow:hidden}
.rep-video-wrap video{display:block;width:100%;height:100%;object-fit:contain}
.rep-video-wrap canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.rep-toggle{margin-top:12px}
.rep-media-note{margin:8px 0 0;font-size:13px;color:var(--muted,#686b73)}
.rep-media-status{display:grid;justify-items:start;gap:8px;padding:6px 0}
/* Home: the cover follows the clip's stored width/height */
.pearl-film-unit.pearl-native{width:min(100%,calc(min(58svh,520px) * var(--clip-ratio)))}
.pearl-native .pearl-film-cover{aspect-ratio:var(--clip-ratio)}
.pearl-native .pearl-film-cover img{width:100%;height:100%;max-height:none;object-fit:contain}
.pearl-recent-frame{display:flex;align-items:center;justify-content:center;min-height:120px;margin-bottom:10px;border-radius:10px;background:#e6ebf1}
/* Offline banner */
.connection-banner{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px;padding:10px 16px;background:#0d3889;color:#fff;font-size:14px;line-height:1.4;text-align:center}
.connection-banner[hidden]{display:none}
.connection-banner button{min-height:40px;padding:6px 16px;border:1px solid #ffffff66;border-radius:10px;background:#ffffff1f;color:#fff;font:inherit;font-weight:600;cursor:pointer}
.connection-banner button:focus-visible{outline:3px solid #fff;outline-offset:2px}
/* Media & visuals workspace */
.media-workspace{max-width:1080px;margin:0 auto;padding-bottom:40px;min-width:0}
.media-tabs{display:flex;flex-wrap:wrap;gap:5px;width:fit-content;max-width:100%;margin:6px 0 16px;padding:4px;border:1px solid #e8e9ed;border-radius:16px;background:#eceef180}
.media-tabs button{min-height:44px;padding:8px 14px;border:1px solid transparent;border-radius:12px;background:transparent;color:#647188;font:inherit;font-size:14px;font-weight:550;cursor:pointer}
.media-tabs button.active{background:#fff;border-color:#fff;color:var(--accent,#1046ab);box-shadow:0 2px 5px #2636520c}
.media-message:empty{display:none}
.media-message{margin:0 0 14px;color:#0d3889;font-size:14px}
.media-intro{color:var(--muted,#686b73);font-size:15px;max-width:720px}
.media-section>h2{font-size:20px;margin:26px 0 6px}
.media-legend{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.media-card{min-width:0;margin:14px 0;padding:22px;border:1px solid var(--line,#e5e6ea);border-radius:20px;background:var(--pearl-surface,#fff);box-shadow:var(--pearl-shadow,none);overflow-wrap:anywhere}
.media-card>header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}
.media-card h3{margin:0;font-size:19px}
.media-meta{color:var(--muted,#686b73);font-size:13px;margin:8px 0}
.media-statuses{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.media-status{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#f3f4f7;color:#3b4654;font-size:12px;font-weight:600}
.media-status.ok{background:#eef3fc;color:#0d3889}.media-status.wait{background:#fcf2e1;color:#855d26}.media-status.warn{background:#fbecee;color:#ac343d}
.media-note{color:#68778a;font-size:13px}
.media-pre{white-space:pre-wrap}
.media-empty{padding:18px;border:1px dashed #d3dce8;border-radius:16px;color:var(--muted,#686b73)}
.media-list{margin:8px 0;padding-left:18px;display:grid;gap:6px;font-size:14px}
.media-awaiting{list-style:none;margin:12px 0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.media-awaiting li{padding:4px 10px;border-radius:999px;background:#fcf2e1;color:#855d26;font-size:12px;font-weight:600}
.media-registry{margin:18px 0;padding:18px;border:1px solid var(--line,#e5e6ea);border-radius:18px;background:#fff}
.media-registry h2{font-size:17px;margin:0 0 4px}
.media-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid #eef0f3}
.media-row span{display:block;color:var(--muted,#686b73);font-size:13px}
.media-workspace details>summary{display:flex;align-items:center;min-height:44px;color:var(--accent,#1046ab);font-weight:550;cursor:pointer}
.media-workspace form{display:grid;gap:14px;margin:12px 0}
.media-workspace .field{display:grid;gap:6px;min-width:0}
.media-workspace input:not([type=checkbox]),.media-workspace textarea,.media-workspace select{box-sizing:border-box;width:100%;min-width:0;font:inherit}
.media-workspace textarea{min-height:84px;resize:vertical}
.media-workspace fieldset{min-width:0;margin:0;padding:12px;border:1px solid #e4e9f1;border-radius:14px}
.media-workspace legend{padding:0 6px;font-weight:600;font-size:14px}
.media-checks{display:grid;gap:4px}
.media-create{margin-top:22px;padding:4px 18px;border:1px solid var(--line,#e5e6ea);border-radius:18px;background:#fff}
.media-arms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}
.media-arm{min-width:0;padding:16px;border:1px solid #e4e9f1;border-radius:16px;background:#fff}
.media-arm h4{margin:0 0 4px;font-size:15px}
.media-arm p{font-size:13px;color:var(--muted,#686b73);margin:0}
.media-arm dl{display:grid;gap:6px;margin:12px 0 0}
.media-arm dl div{display:flex;justify-content:space-between;gap:10px;font-size:13px}
.media-arm dd{margin:0;font-weight:600;text-align:right}
.pd-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;align-items:end;margin-bottom:8px;padding:12px;border:1px solid #e4e9f1;border-radius:14px;background:#fbfcfe}
.pd-preview{padding:10px;border:1px solid #e4e9f1;border-radius:16px;background:#fff}
.pd-preview svg,.pd-figure img{display:block;width:100%;height:auto}
.pd-figure{margin:12px 0}
@media (max-width:700px){.media-arms{grid-template-columns:1fr}.media-row{flex-direction:column;align-items:stretch}.media-card{padding:18px}}
.rep-criteria{margin-top:14px}
.rep-criteria>summary{min-height:44px;display:flex;align-items:center;color:var(--accent,#1046ab);font-weight:550;cursor:pointer}
.rep-open-clip{display:inline-flex;align-items:center;min-height:44px;margin-top:4px;text-decoration:none}
.mc-criteria{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:10px}
.mc-criteria>li{padding:12px;border:1px solid var(--mc-line,#e4e9f1);border-radius:14px;background:#ffffffb8;min-width:0}
.mc-criterion{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 12px}
.mc-criterion b{font-weight:600}
.mc-criterion span{color:var(--mc-muted,#647584);font-size:13px}
.mc-criterion small{color:#0d3889;font-size:12px;font-weight:600}
.mc-criteria details>summary{min-height:36px;display:flex;align-items:center;font-size:13px;color:var(--accent,#1046ab);cursor:pointer}
.mc-criteria details p{font-size:13px;color:var(--mc-muted,#647584);margin:4px 0}
.mc-attach-open{margin-top:6px;padding:8px 12px;font-size:13px;min-height:40px}
.mc-attach{display:grid;gap:10px;margin-top:8px}
.mc-attach label{display:grid;gap:6px;font-size:13px}
.mc-attach textarea{min-height:70px;font:inherit;padding:10px;border:1px solid #d3dce8;border-radius:12px}
.mc-attach .mc-ack{display:flex;align-items:flex-start;gap:8px}
.mc-awaiting{padding:12px;border:1px dashed #d3dce8;border-radius:14px}
.mc-pill.media-class{font-size:11px}
.mc-heading:has(.media-class){flex-wrap:wrap}
.mc-pill.media-class{white-space:normal}
.pearl-recent-clip>.pearl-recent-frame{display:flex;margin:0 0 10px;font-size:inherit}
@media (max-width:700px){.pearl-recent-clip:last-child:nth-child(odd)>.pearl-recent-frame{grid-row:span 2;align-self:center;margin:0;min-height:0}}
.card>.rep-media{padding:14px 16px 4px}
/* Tracked-rep review list (coach "Practice evidence"): the default Pearl shell does not load
   design-options.css, so these rules live here. Posters are small fixed 9:16 thumbnails. */
.tracked-review-clips{margin:0 0 28px;min-width:0}
.tracked-review-clips>h2{font-size:22px;margin-bottom:6px}
.tracked-review-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:12px;margin-top:14px;min-width:0}
.tracked-review-link{display:flex;align-items:center;gap:14px;min-width:0;max-width:100%;padding:12px;border:1px solid #dce5f2;border-radius:14px;background:#f5f8fe;color:inherit;text-decoration:none}
.tracked-review-link img{flex:none;display:block;width:54px;max-width:100%;height:auto;aspect-ratio:9/16;object-fit:cover;border-radius:8px;background:#e8edf5}
.tracked-review-link span{display:block;min-width:0}
.tracked-review-link strong{display:block;font-size:14px;overflow-wrap:anywhere}
.tracked-review-link small{display:block;margin-top:6px;color:var(--accent,#1046ab);line-height:1.45}
