html.styles-coming #portal-main { visibility: hidden; }

.ro {
  --sec-pad: clamp(56px, 4.4vw, 112px);
  --display: 36px;
  --h1: clamp(34px, 1.4vw, 36px);
  --h2: clamp(28px, 1.2vw, 30px);
  --h3: clamp(19px, 0.86vw, 22px);
  --lede: clamp(17px, 0.7vw, 18px);
  --body: clamp(16px, 0.65vw, 16.5px);
  --small: clamp(14px, 0.61vw, 15.5px);
  --btn-h: clamp(44px, 1.8vw, 46px);
  --btn-pad: clamp(20px, 0.86vw, 22px);
  --btn-text: clamp(15px, 0.65vw, 16.5px);
  --btn-s-h: clamp(36px, 1.6vw, 40px);
  --btn-s-pad: clamp(14px, 0.7vw, 18px);
  --btn-s-text: clamp(14px, 0.6vw, 15.5px);
  --panel-pad: clamp(18px, 1.4vw, 30px);
  --well-pad: clamp(14px, 1.1vw, 24px);
  --note-pad-y: clamp(14px, 1vw, 20px);
  --note-pad-x: clamp(16px, 1.2vw, 22px);
  --note-title: clamp(16px, 0.76vw, 19.5px);
  --fig: clamp(30px, 2.45vw, 54px);
  --grade: clamp(56px, 4.4vw, 104px);
  --tile-size: clamp(40px, 2.6vw, 52px);
  --band-ink: #4B535B;
  --pt-gap: clamp(14px, 0.95vw, 22px);
  --pad: clamp(16px, 1.1vw, 28px);
  --t-h1: clamp(26px, 1.25vw, 32px);
  --t-h2: clamp(16px, 0.84vw, 19.5px);
  --t-big: clamp(17px, 0.92vw, 22px);
  --t-body: clamp(14.5px, 0.74vw, 16.5px);
  --t-small: clamp(13.5px, 0.68vw, 15.5px);
  --t-label: clamp(12.5px, 0.62vw, 14px);
  --t-fig: clamp(19px, 1.02vw, 25px);
}

.ro.pt { min-height: 60vh; }
.ro .portal-shell {
  display: grid;
  grid-template-columns: clamp(232px, 15vw, 288px) minmax(0, 1fr);
  gap: clamp(24px, 2.4vw, 56px);
  align-items: start;
  width: min(100% - 2 * var(--margin), var(--frame));
  margin-inline: auto;
  padding-block: clamp(20px, 1.8vw, 40px) clamp(56px, 4.4vw, 112px);
}
.ro.staff-rail { display: contents; }
.ro .portal-sidebar {
  position: sticky;
  top: calc(var(--nav-h) + 16px);
  align-self: start;
  max-height: calc(100vh - var(--nav-h) - 32px);
  overflow-y: auto;
  overscroll-behavior: contain;
  margin: 0;
  padding: clamp(14px, 0.9vw, 20px) clamp(10px, 0.7vw, 16px);
  border: 0;
  border-radius: clamp(14px, 1vw, 22px);
  background: var(--surface);
  box-shadow: var(--shadow-panel);
  scrollbar-width: thin;
  scrollbar-color: var(--line-strong) transparent;
}
.ro .portal-user-card { display: flex; align-items: center; gap: 12px; margin: 0 0 clamp(12px, 0.9vw, 20px); padding: 4px 8px; border: 0; border-radius: 0; background: transparent; }
.ro .pt-avatar { display: inline-grid; place-items: center; flex: none; width: 38px; height: 38px; border-radius: 50%; background: var(--surface); color: var(--ink-2); font-size: 13px; font-weight: 600; object-fit: cover; box-shadow: var(--shadow-control), 0 0 0 0.5px rgba(var(--shadow-rgb), 0.12); }
.ro .pt-who { flex: 1; min-width: 0; }
.ro .pt-name, .ro .pt-mail { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ro .pt-name { font-size: var(--t-body); line-height: 1.3; font-weight: 600; }
.ro .pt-mail { font-size: var(--t-label); line-height: 1.35; color: var(--muted); }
.ro .portal-drawer-close { display: none; }
.ro .pt-nav { display: grid; }
.ro .pt-group, .ro .portal-nav-section { display: grid; gap: 2px; margin: 0; }
.ro .portal-nav-heading { margin: clamp(16px, 1.1vw, 24px) 0 6px; padding: 0 12px; font-size: var(--t-label); line-height: 1.3; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--muted); }
.ro .portal-nav-link {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: clamp(38px, 2.15vw, 44px);
  padding: 0 10px 0 12px;
  border: 0;
  border-radius: 10px;
  background: transparent;
  color: var(--ink-2);
  font: inherit;
  font-size: var(--t-body);
  line-height: 1.2;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  transition: background-color 140ms ease, color 140ms ease, box-shadow 140ms ease, transform 140ms var(--ease-out);
}
.ro .portal-nav-link > span:not(.portal-nav-badge) { flex: 1; min-width: 0; }
.ro .portal-nav-link .ico { width: 20px; height: 20px; color: var(--ink-2); opacity: 1; }
.ro .portal-nav-link:hover { background: rgba(var(--shadow-rgb), 0.05); color: var(--ink); }
.ro .portal-nav-link:active { transform: scale(0.985); }
.ro .portal-nav-link:focus-visible, .ro .portal-drawer-close:focus-visible { outline-offset: -2px; }
.ro .portal-nav-link.is-active { background: var(--action-soft); color: var(--ink); font-weight: 600; }
.ro .portal-nav-link.is-active::before { content: ""; position: absolute; left: 0; top: 50%; width: 3px; height: 16px; margin-top: -8px; transform: none; border-radius: 2px; background: var(--action); }
.ro .portal-nav-link.is-active .ico { color: var(--action); }
.ro .portal-nav-link.htmx-request { background: var(--surface-2); cursor: progress; }
.ro .portal-nav-link.htmx-request .ico { animation: none; }
.ro .portal-nav-link:has(.portal-nav-soon) { padding-block: 5px; }
.ro .portal-nav-soon { display: block; margin-top: 1px; font-size: var(--t-label); line-height: 1.2; font-weight: 400; color: var(--muted); }
.ro .portal-nav-badge { display: inline-grid; place-items: center; flex: none; min-width: 22px; height: 22px; margin-left: auto; padding: 0 7px; border: 0; border-radius: 999px; background: var(--surface-2); color: var(--ink-2); font-family: inherit; font-size: 12px; line-height: 1; font-weight: 600; }
.ro .portal-nav-link.is-active .portal-nav-badge { background: var(--surface); color: var(--action); }
.ro .portal-nav-badge.is-warn { border: 0; background: var(--warn-bg); color: var(--warn-ink); }
.ro .portal-nav-badge .nb-short { display: none; }
@media (min-width: 1024px) and (max-width: 1799px) {
  .ro .portal-nav-badge .nb-long { display: none; }
  .ro .portal-nav-badge .nb-short { display: inline; }
}
.ro ul.pt-foot { margin-top: clamp(16px, 1.1vw, 24px); }
.ro .pt-foot form { margin: 0; }
.ro .pt-site { display: none; }
@media (min-width: 1024px) and (max-height: 1100px) {
  .ro .portal-nav-link { min-height: 32px; }
  .ro .portal-nav-heading { margin: 12px 0 4px; }
  .ro .portal-user-card { margin-bottom: 8px; }
  .ro ul.pt-foot { margin-top: 10px; }
}
.ro .portal-scrim { display: none; }

.ro .portal-main { min-width: 0; padding: 0; container: ptmain / inline-size; }
.ro small { font-size: max(12px, 0.83em); }
.ro .table-box { position: relative; }
.ro .portal-page-header { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 14px 28px; margin: 0 0 clamp(18px, 1.5vw, 34px); padding: 0; border: 0; }
.ro .pt-head-text { flex: 1 1 520px; min-width: 0; }
.ro .portal-page-title { font-size: var(--t-h1); line-height: 1.1; font-weight: 600; letter-spacing: -0.025em; color: var(--ink); text-wrap: balance; }
.ro .portal-page-sub { margin-top: 8px; max-width: 80ch; font-size: var(--t-body); line-height: 1.5; color: var(--ink-2); text-wrap: pretty; }
.ro .pt-head-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.ro .pt-head-acts:empty { display: none; }
.ro .pt-crumbs { margin: 0 0 10px; }
.ro .pt-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 4px; font-size: var(--t-small); line-height: 1.4; color: var(--muted); }
.ro .pt-crumbs li { display: inline-flex; align-items: center; gap: 4px; }
.ro .pt-crumbs .ico { width: 14px; height: 14px; color: var(--faint); }
.ro .pt-crumbs a { color: var(--muted); text-decoration: none; }
.ro .pt-crumbs a:hover { color: var(--action); text-decoration: underline; }
@media (max-width: 640px) {
  .ro .pt-crumbs { margin-bottom: 4px; }
  .ro .pt-crumbs a { display: inline-block; padding-block: 7px; }
}
.ro .pt-crumbs [aria-current] { color: var(--ink-2); }
@media (max-width: 640px) {
  .ro .pt-crumbs ol:has(.pt-crumb-cut) { flex-wrap: nowrap; white-space: nowrap; }
  .ro .pt-crumbs ol:has(.pt-crumb-cut) > li { flex: none; }
  .ro .pt-crumbs ol > li.pt-crumb-cut { flex: 0 1 auto; min-width: 0; }
  .ro .pt-crumb-cut > :not(.ico) { display: block; min-width: 0; overflow: hidden; text-overflow: ellipsis; }
}
.ro .pt-messages { display: grid; grid-template-columns: minmax(0, 1fr); gap: 8px; margin: 0 0 18px; }
.ro .pt-message { display: flex; align-items: center; gap: 10px; margin: 0; font-size: var(--t-body); line-height: 1.45; }
.ro .pt-message > span { min-width: 0; }
.ro .note .pt-message { color: inherit; }
.ro .btn { touch-action: manipulation; }
.ro .btn:active { transform: translateY(0.5px) scale(0.985); }
.ro .btn .ico { flex: none; }
.ro .link.small-link { font-size: var(--t-small); }
.ro .chip.good .ico { color: var(--ok-ink); }

.ro .rp-panel { display: flex; flex-direction: column; min-width: 0; padding: var(--pad); container-type: inline-size; }
.ro .rp-ph { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-bottom: clamp(12px, 0.8vw, 18px); }
.ro .rp-ph h2 { display: flex; align-items: center; gap: 9px; font-size: var(--t-h2); line-height: 1.3; font-weight: 600; letter-spacing: -0.006em; }
.ro .rp-ph h2 .ico { width: 19px; height: 19px; color: var(--ink-2); }
.ro .rp-meta { font-size: var(--t-small); line-height: 1.4; color: var(--muted); white-space: nowrap; }
.ro .rp-text { font-size: var(--t-small); line-height: 1.55; color: var(--ink-2); max-width: 72ch; text-wrap: pretty; }
.ro .rp-hint { font-size: var(--t-label); color: var(--muted); }
.ro .rp-foot { margin-top: 12px; font-size: var(--t-label); line-height: 1.5; color: var(--muted); text-wrap: pretty; }
.ro p.rp-foot { display: flex; align-items: flex-start; gap: 6px; }
.ro p.rp-foot .ico { width: 15px; height: 15px; margin-top: 2px; }
.ro ul.rp-foot { display: grid; gap: 3px; }
.ro .rp-chips { display: flex; flex-wrap: wrap; gap: 6px; margin: 0 0 12px; }
.ro .rp-acts { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 14px; }
.ro .rp-acts form { margin: 0; }
.ro .btn.done { background: var(--ok-bg); color: var(--ok-ink); }
.ro .soft { color: var(--muted); font-weight: 400; }
.ro .rp-ok { color: var(--ok-ink); }
.ro .rp-bad { color: var(--warn-ink); }
.ro .rp-empty { display: flex; align-items: flex-start; gap: 14px; padding: 4px 0; }
.ro .rp-empty .tile-ico { width: 44px; flex: none; }
.ro .rp-empty h3 { font-size: var(--t-body); line-height: 1.35; font-weight: 600; }
.ro .rp-empty p { margin-top: 4px; max-width: 62ch; font-size: var(--t-small); line-height: 1.5; color: var(--muted); text-wrap: pretty; }
.ro .rp-empty.small .tile-ico { width: 38px; }
.ro .rp-coords { font-variant-numeric: tabular-nums; }
.ro .rp-notice { max-width: none; }
.ro .rp-notice p { max-width: 96ch; }

.ro .rp { display: grid; gap: var(--pt-gap); container-type: inline-size; }
.ro .rp-row { display: grid; gap: var(--pt-gap); align-items: stretch; }
.ro .rp-row-b { grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); }
.ro .rp-row-c { grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); }
.ro .rp-row-d { grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); }
.ro .rp-row-e { grid-template-columns: repeat(auto-fit, minmax(min(100%, 380px), 1fr)); }
.ro .rp-row-b:has(.rp-approach .rp-empty) { grid-template-columns: minmax(0, 1fr); }
.ro .rp-row-b .rp-approach .rp-empty p { max-width: 96ch; }
.ro .rp-row-c.pair { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: dense; }
.ro .rp-row-c.single { grid-template-columns: minmax(0, 1fr); }
.ro .rp-row-c.span-coach .rp-coach, .ro .rp-row-c.span-runway .rp-runway, .ro .rp-row-c.span-weather .rp-weather { grid-column: 1 / -1; }
@container (max-width: 980px) {
  .ro .rp-row-b { grid-template-columns: minmax(0, 1fr); }
}
@container (max-width: 1040px) {
  .ro .rp-row-c:not(.single) { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-flow: dense; }
  .ro .rp-row-c:not(.pair, .single) > :nth-child(3) { grid-column: 1 / -1; }
}
@container (max-width: 700px) {
  .ro .rp-row-c:not(.single) { grid-template-columns: minmax(0, 1fr); }
}
@container (min-width: 981px) {
  .ro .rp-row-b:has(.rp-approach .rp-empty) .rp-slip { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); grid-template-rows: auto auto minmax(0, 1fr); column-gap: clamp(28px, 2.4vw, 56px); align-content: start; }
}
.ro .rp-slip .rp-parts { grid-column: 2; grid-row: 1 / span 3; }
.ro .rp-slip .rp-foot { grid-column: 1; align-self: start; align-content: start; }
@container (min-width: 860px) {
  .ro :is(.rp-row-c.span-runway, .rp-row-c.single) .rp-runway:has(.rw-drawing) { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); column-gap: clamp(24px, 2.4vw, 56px); align-content: start; }
}
.ro .rp-runway .rp-ph, .ro .rp-runway .rp-chips { grid-column: 1 / -1; }
.ro .rp-runway .rw-drawing { grid-column: 1; grid-row: span 2; }
.ro .rp-runway .rp-figs3, .ro .rp-runway .rp-foot { grid-column: 2; }

.ro .rp-summary { display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(0, 1.2fr); gap: 20px clamp(24px, 2vw, 48px); align-items: start; padding: clamp(18px, 1.3vw, 30px) clamp(20px, 1.6vw, 36px); }
.ro .rp-gradeblock { display: grid; grid-template-columns: auto auto; align-items: end; justify-content: start; gap: 2px 14px; min-width: 240px; }
.ro .rp-grade { margin-left: -3px; font-size: clamp(58px, 3.5vw, 84px); line-height: 0.78; font-weight: 600; letter-spacing: -0.045em; }
.ro .rp-grade.none { margin-left: 0; font-size: var(--t-fig); line-height: 1.2; letter-spacing: -0.01em; color: var(--muted); }
.ro .rp-gradeblock.low .rp-grade { color: var(--warn-ink); }
.ro .rp-score { font-size: var(--t-small); line-height: 1.35; color: var(--muted); }
.ro .rp-score b { display: block; font-size: var(--t-big); line-height: 1.25; font-weight: 600; color: var(--ink); }
.ro .rp-gradeblock .sc-meter { grid-column: 1 / -1; margin-top: 14px; }
.ro .rp-compare { grid-column: 1 / -1; display: grid; gap: 2px; margin: 10px 0 0; }
.ro .rp-compare div { display: flex; justify-content: space-between; gap: 14px; font-size: var(--t-label); line-height: 1.5; }
.ro .rp-compare dt { color: var(--muted); }
.ro .rp-compare dd { margin: 0; font-weight: 600; color: var(--ink); }
.ro .rp-col { min-width: 0; }
.ro .rp-col .k { font-size: var(--t-label); line-height: 1.35; color: var(--muted); }
.ro .rp-col .big { margin-top: 2px; font-size: var(--t-big); line-height: 1.3; font-weight: 600; letter-spacing: -0.01em; overflow-wrap: anywhere; }
.ro .rp-col .big span { font-weight: 400; color: var(--muted); }
.ro .rp-col .sub { margin-top: 2px; font-size: var(--t-small); line-height: 1.45; color: var(--ink-2); }
.ro .rp-col .sub.muted { color: var(--muted); }
.ro .rp-figs6 { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 14px 20px; padding: 14px 18px 16px; border-radius: var(--r-well); background: var(--surface-2); }
.ro .rp-figs3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 18px; margin-top: 14px; }
@container (max-width: 440px) {
  .ro .rp-figs3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container (min-width: 860px) {
  .ro .rp-figs3 { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); margin-top: 0; }
}
.ro .rp-fig { min-width: 0; }
.ro .rp-fig .k { display: flex; align-items: center; gap: 6px; font-size: var(--t-label); line-height: 1.3; color: var(--muted); white-space: nowrap; }
.ro .rp-fig .k .ico { width: 16px; height: 16px; color: var(--ink-2); }
.ro .rp-fig .v { margin-top: 3px; font-size: var(--t-fig); line-height: 1.15; font-weight: 600; letter-spacing: -0.012em; white-space: nowrap; }
.ro .rp-fig .v small { margin-left: 4px; font-size: max(12px, 0.58em); font-weight: 500; letter-spacing: 0; color: var(--muted); }
.ro .rp-fig .v small.na { margin-left: 0; font-size: var(--t-small); }
.ro .rp-fig .t { width: 0; min-width: 100%; margin-top: 2px; font-size: var(--t-label); line-height: 1.35; color: var(--muted); text-wrap: pretty; }
.ro .rp-summary-chips { grid-column: 1 / -1; margin: 0; }

.ro .sc-meter { position: relative; height: 25px; margin-top: 3px; }
.ro .sc-meter .track { position: relative; display: block; height: 6px; border-radius: 3px; background: var(--surface-3); overflow: hidden; }
.ro .sc-meter .track i { display: block; height: 100%; border-radius: 3px; background: var(--accent); }
.ro .sc-meter .ticks { position: absolute; left: 0; right: 0; top: 0; height: 100%; font-size: 12px; line-height: 13px; font-weight: 500; color: var(--muted); }
.ro .sc-meter .tick { position: absolute; top: 12px; transform: translateX(-50%); }
.ro .sc-meter .tick:first-child { transform: none; }
.ro .sc-meter .tick::before { content: ""; position: absolute; left: 50%; top: -12px; width: 1px; height: 6px; background: rgba(255, 255, 255, 0.95); }
.ro .sc-meter .tick:first-child::before { display: none; }
.ro .sc-meter .tick.on { color: var(--ink); font-weight: 600; }

.ro .rp-hundred { --h: 10px; margin: 2px 0 16px; }
.ro .rp-parts { width: 100%; border-collapse: collapse; font-size: var(--t-small); }
.ro .rp-parts thead th { padding: 0 0 6px; text-align: left; font-size: var(--t-label); font-weight: 400; color: var(--muted); }
.ro .rp-parts tbody th, .ro .rp-parts tbody td, .ro .rp-parts tfoot th, .ro .rp-parts tfoot td { height: clamp(34px, 1.9vw, 40px); padding: 0; border-top: 1px solid var(--line); vertical-align: middle; text-align: left; font-weight: 500; }
.ro .rp-parts .n { width: 76px; text-align: right; }
.ro .rp-parts .pts { width: 96px; text-align: right; white-space: nowrap; }
.ro .rp-parts .pts b { font-weight: 600; }
.ro .rp-parts .pts small { margin-left: 4px; font-size: var(--t-label); font-weight: 400; color: var(--muted); }
.ro .rp-part { display: flex; align-items: center; gap: 9px; }
.ro .rp-part i { flex: none; width: 10px; height: 10px; border-radius: 3px; background: var(--pc); }
.ro .rp-parts tr.off .rp-part { color: var(--muted); }
.ro .rp-parts tr.off .rp-part i { background: var(--surface-3); }
.ro .rp-off { font-weight: 400; color: var(--muted); }
.ro .rp-parts tr.adj th { font-weight: 400; color: var(--ink-2); }
.ro .rp-parts .bad { color: var(--warn-ink); }
.ro .rp-parts tfoot th, .ro .rp-parts tfoot td { height: 46px; border-top-color: var(--line-strong); }
.ro .rp-total { font-weight: 600; }
.ro .rp-total span { margin-left: 6px; font-size: var(--t-label); font-weight: 400; color: var(--muted); }
.ro .rp-parts .gr { font-size: 22px; font-weight: 600; letter-spacing: -0.03em; }
.ro .rp-parts .gr.low { color: var(--warn-ink); }
.ro .rp-parts .gr.none { font-size: var(--t-label); font-weight: 500; letter-spacing: 0; color: var(--muted); white-space: nowrap; }

.ro .rp-legend { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: var(--t-label); color: var(--muted); }
.ro .rp-legend span { display: inline-flex; align-items: center; gap: 6px; }
.ro .rp-legend .sw { flex: none; width: 10px; height: 10px; border-radius: 3px; }
.ro .sw.bar { background: var(--bar); }
.ro .sw.flare { background: var(--accent); }
.ro .sw.band { background: var(--band); }
.ro .rp-lede { margin: -2px 0 12px; max-width: 96ch; font-size: var(--t-small); line-height: 1.55; color: var(--ink-2); text-wrap: pretty; }
.ro .rp-lede b { font-weight: 600; color: var(--ink); }
.ro .ap-drawing { margin-top: auto; container-type: inline-size; }
.ro .ap-drawing svg { display: block; width: 100%; height: auto; overflow: visible; font-family: var(--font); font-variant-numeric: tabular-nums; }
.ro .ap-drawing .ap-compact { display: none; }
@container (max-width: 560px) {
  .ro .ap-drawing .ap-wide { display: none; }
  .ro .ap-drawing .ap-compact { display: block; }
}

.ro .rp-notes { display: grid; gap: 16px; }
.ro .rp-note { display: grid; grid-template-columns: 22px minmax(0, 1fr); gap: 3px 12px; }
.ro .rp-note .ico { grid-row: span 2; width: 22px; height: 22px; margin-top: 1px; color: var(--accent); }
.ro .rp-note h3 { font-size: var(--t-body); line-height: 1.35; font-weight: 600; }
.ro .rp-note p { font-size: var(--t-small); line-height: 1.55; color: var(--ink-2); text-wrap: pretty; }
.ro .rp-note.warn { margin: 0 -10px; padding: 12px 10px; border-radius: 12px; background: var(--warn-bg); }
.ro .rp-note.warn .ico { color: var(--warn); }
.ro .rp-note.warn h3, .ro .rp-note.warn p { color: var(--warn-ink); }

.ro .rp-runway .rw-drawing { margin-top: 2px; }
.ro .rw-drawing svg { width: 100%; height: auto; }
.ro .rw-drawing .rw-compact { display: none; }
@container (max-width: 460px) {
  .ro .rw-drawing .rw-wide { display: none; }
  .ro .rw-drawing .rw-compact { display: block; }
}
.ro .rp-figs4 { display: grid; grid-template-columns: repeat(4, minmax(max-content, 1fr)); gap: 12px 18px; margin-top: 16px; }
@container (max-width: 560px) {
  .ro .rp-figs4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.ro .rp-kv { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 22px; margin: 0; }
.ro .rp-kv > div { display: flex; align-items: center; gap: 10px; min-height: clamp(36px, 2vw, 42px); border-bottom: 1px solid var(--line); font-size: var(--t-small); line-height: 1.35; }
.ro .rp-kv .ico { flex: none; width: 17px; height: 17px; color: var(--ink-2); }
.ro .rp-kv dt { flex: 1; min-width: 0; color: var(--ink-2); }
.ro .rp-kv dt small { margin-left: 4px; font-size: var(--t-label); color: var(--muted); }
.ro .rp-kv dd { margin: 0; font-weight: 600; text-align: right; }
.ro .rp-kv dd small { font-size: var(--t-label); font-weight: 400; color: var(--muted); }
.ro .rp-delta { margin-left: 6px; font-size: var(--t-label); font-weight: 500; color: var(--muted); white-space: nowrap; }
.ro .rp-delta.off { color: var(--warn-ink); }
@container (min-width: 500px) {
  .ro .rp-weather .rp-kv:has(> :nth-child(5)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@container (min-width: 860px) {
  .ro .rp-weather .rp-kv { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
  .ro .rp-coach .rp-notes { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); column-gap: clamp(24px, 2.4vw, 56px); }
  .ro .rp-coach .rp-note p { max-width: 96ch; }
}
.ro .rp-metar-in { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 12px clamp(28px, 2.6vw, 64px); }
.ro .rp-metar-raw { flex: 1 1 320px; display: flex; align-items: flex-start; gap: 10px; min-width: 0; font-size: var(--t-small); line-height: 1.5; font-weight: 600; word-spacing: 0.05em; }
.ro .rp-metar-raw .ico { flex: none; width: 17px; height: 17px; margin-top: 2px; color: var(--ink-2); }
.ro .rp-metar-raw span { min-width: 0; overflow-wrap: anywhere; }
.ro .rp-metar-read { flex: 0 1 auto; display: flex; flex-wrap: wrap; gap: 8px clamp(18px, 1.5vw, 34px); min-width: 0; margin: 0; }
.ro .rp-metar-read div { min-width: 0; }
@container (max-width: 560px) {
  .ro .rp-metar-read { flex: 1 1 100%; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.ro .rp-metar-read dt { font-size: var(--t-label); color: var(--muted); }
.ro .rp-metar-read dd { margin: 0; font-size: var(--t-small); font-weight: 600; }
.ro .rp-link { margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: var(--surface-2); }
.ro .rp-link .k { font-size: var(--t-label); color: var(--muted); }
.ro .rp-link .v { margin-top: 2px; font-size: var(--t-small); font-weight: 600; overflow-wrap: anywhere; user-select: all; }

.ro .rp-sticky { position: fixed; left: 50%; bottom: 18px; z-index: 30; display: flex; align-items: center; gap: 12px; max-width: calc(100% - 32px); padding: 7px 18px 7px 7px; border-radius: 999px; background: var(--surface); box-shadow: var(--shadow-object); transform: translate(-50%, 160%); opacity: 0; pointer-events: none; }
.ro .rp-sticky.on { transform: translate(-50%, 0); opacity: 1; }
.ro .rp-sticky .g { flex: none; display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 8px; border-radius: 999px; white-space: nowrap; background: var(--surface-2); font-size: 20px; font-weight: 600; letter-spacing: -0.03em; }
.ro .rp-sticky .g.low { color: var(--warn-ink); background: var(--warn-bg); }
.ro .rp-sticky .s { font-size: var(--t-small); color: var(--muted); white-space: nowrap; }
.ro .rp-sticky .s b { font-size: var(--t-body); font-weight: 600; color: var(--ink); }
.ro .rp-sticky .w { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--t-small); color: var(--ink-2); }

.ro .sc {
  --pad: 20px;
  position: relative;
  width: 360px;
  max-width: 100%;
  border-radius: var(--r-card);
  background: radial-gradient(140% 60% at 50% 0%, var(--surface) 62%, var(--surface-tint) 100%);
  color: var(--ink);
  font-family: var(--font);
  font-size: 14px;
  line-height: 20px;
  font-variant-numeric: tabular-nums;
  text-align: left;
  box-shadow: var(--shadow-object), inset 0 1px 0 #FFFFFF, inset 0 -2px 2px -1px rgba(var(--shadow-rgb), 0.06);
  isolation: isolate;
  overflow: hidden;
}
.ro .sc::before { content: ""; position: absolute; inset: 0; z-index: 3; padding: 1px; border-radius: inherit; background: linear-gradient(172deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0.55) 16%, rgba(var(--shadow-rgb), 0.08) 52%, rgba(var(--shadow-rgb), 0.2) 100%); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; pointer-events: none; }
.ro .sc-top { display: flex; align-items: center; gap: 9px; height: 46px; padding: 0 var(--pad); }
.ro .sc-top .mark { flex: none; border-radius: 5px; }
.ro .sc-name { font-size: 15px; line-height: 20px; font-weight: 600; letter-spacing: -0.01em; }
.ro .sc-when { margin-left: auto; font-size: 12.5px; color: var(--muted); }
.ro .sc-head { display: grid; gap: 10px; padding: 2px var(--pad) 10px; }
.ro .sc-gradeline { display: flex; align-items: flex-end; gap: 16px; }
.ro .sc-grade { flex: none; margin-left: -4px; font-size: 82px; line-height: 62px; font-weight: 600; letter-spacing: -0.04em; }
.ro .sc-grade.none { margin-left: 0; font-size: 26px; line-height: 30px; letter-spacing: -0.01em; color: var(--muted); }
.ro .sc-sum { display: grid; gap: 3px; min-width: 0; padding-bottom: 1px; }
.ro .sc-verdict { display: flex; align-items: center; gap: 7px; font-size: 16px; line-height: 22px; font-weight: 600; letter-spacing: -0.005em; }
.ro .sc-verdict .ico { flex: none; width: 18px; height: 18px; color: var(--accent); }
.ro .sc-score { font-size: 13px; line-height: 20px; color: var(--muted); }
.ro .sc-score b { margin-right: 3px; font-size: 30px; line-height: 30px; font-weight: 600; letter-spacing: -0.02em; color: var(--ink); }
.ro .sc-note { padding: 2px var(--pad) 12px; }
.ro .sc-coach .h { display: flex; align-items: center; gap: 8px; font-size: 15px; line-height: 21px; font-weight: 600; letter-spacing: -0.005em; }
.ro .sc-coach .h .ico { flex: none; width: 20px; height: 20px; color: var(--accent); }
.ro .sc-coach p:not(.h) { margin-top: 3px; font-size: 13px; line-height: 19px; color: var(--ink-2); text-wrap: pretty; }
.ro .sc-coach.warn { margin: 0 -8px; padding: 11px 12px 12px; border-radius: 14px; background: var(--warn-bg); color: var(--warn-ink); }
.ro .sc-coach.warn .ico { color: var(--warn); }
.ro .sc-coach.warn p { color: var(--warn-ink); }
.ro .note h2 { display: flex; align-items: center; gap: 10px; font-size: var(--note-title); line-height: 1.25; font-weight: 600; letter-spacing: -0.01em; }
.ro .rp-score.none b { font-size: var(--t-small); font-weight: 500; color: var(--ink-2); }
.ro .sc-parts { display: grid; gap: 9px; margin: 0 12px; padding: 10px 14px 12px; border-radius: 16px; background: var(--surface-2); }
.ro .sc-row { display: flex; gap: 14px; }
.ro .sc-part { display: grid; align-content: start; min-width: 0; }
.ro .sc-part .n { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; line-height: 15px; color: var(--muted); }
.ro .sc-part .v { margin-top: 1px; font-size: 17px; line-height: 22px; font-weight: 600; letter-spacing: -0.01em; white-space: nowrap; }
.ro .sc-part .v small { margin-left: 3px; font-size: 12px; font-weight: 500; letter-spacing: 0; color: var(--muted); }
.ro .sc-part .v.none { font-size: 12.5px; line-height: 15px; font-weight: 500; color: var(--muted); white-space: normal; }
.ro .sc-part .t { position: relative; display: block; height: 5px; margin-top: 4px; border-radius: 3px; background: var(--pt); overflow: hidden; }
.ro .sc-part .t i { position: absolute; inset: 0 auto 0 0; border-radius: 3px; background: var(--pc); }
.ro .sc-part.off .t { background: var(--surface-3); }
.ro .sc-part.wide { grid-template-columns: auto minmax(0, 1fr); column-gap: 12px; }
.ro .sc-part.wide .t, .ro .sc-part.wide .why { grid-column: 1 / -1; }
.ro .sc-part.wide .v { font-size: 26px; line-height: 30px; }
.ro .sc-part .end { justify-self: end; text-align: right; }
.ro .sc-part .why { margin-top: 5px; font-size: 12px; line-height: 16px; color: var(--ink-2); text-wrap: pretty; }
.ro .sc-ctx { padding: 12px var(--pad) 0; }
.ro .sc-where { display: grid; grid-template-columns: minmax(40%, 1fr) minmax(0, auto); gap: 12px; }
.ro .sc-where b, .ro .sc-where span { display: block; }
.ro .sc-place, .ro .sc-craft { min-width: 0; font-size: 13px; line-height: 18px; color: var(--muted); }
.ro .sc-place b, .ro .sc-craft b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; line-height: 19px; font-weight: 600; color: var(--ink); }
.ro .sc-craft { text-align: right; }
.ro .sc-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.ro .sc-chips:empty { display: none; }
.ro .sc-chip { display: inline-flex; align-items: center; gap: 6px; height: 26px; padding: 0 11px 0 9px; border: 0; border-radius: 999px; background: var(--surface-2); color: var(--ink-2); font-size: 12.5px; line-height: 1; white-space: nowrap; }
.ro .sc-chip .ico { width: 15px; height: 15px; color: var(--ink-2); }
.ro .sc-chip.bad { background: var(--warn-bg); color: var(--warn-ink); }
.ro .sc-chip.bad .ico { color: var(--warn); }
.ro .sc-acts { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 12px var(--pad) 16px; }
.ro .sc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; height: 40px; padding: 0 14px; border-radius: 999px; background: var(--surface-2); color: var(--ink); font-size: 14px; line-height: 1; font-weight: 600; text-decoration: none; white-space: nowrap; transition: background-color var(--t-hover) ease, transform 140ms var(--ease-out); }
.ro .sc-btn .ico { width: 17px; height: 17px; }
.ro .sc-btn:hover { background: var(--surface-3); }
.ro .sc-btn:active { transform: translateY(0.5px) scale(0.985); }
.ro .sc-btn.primary { background: var(--action); color: var(--action-ink); box-shadow: var(--shadow-control), inset 0 1px 0 rgba(255, 255, 255, 0.16); }
.ro .sc-btn.primary:hover { background: var(--action-hover); }
.ro .sc.low .sc-grade, .ro .sc.low .sc-verdict { color: var(--warn-ink); }
.ro .sc.low .sc-verdict .ico { color: var(--warn); }

.ro .db-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--pt-gap); align-items: start; }
.ro .db-side { display: grid; gap: var(--pt-gap); min-width: 0; }
.ro .db-stage { display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; padding: clamp(26px, 2.2vw, 48px) clamp(12px, 1.2vw, 28px) clamp(34px, 2.6vw, 56px); border-radius: 12px; overflow: hidden; }
.ro .db-latest .rp-ph { margin-bottom: 14px; }
.ro .db-start { margin-bottom: var(--pt-gap); }
.ro .db-verify { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px; margin: 0 0 clamp(18px, 1.5vw, 34px); background: var(--action-soft); box-shadow: none; }
.ro .db-verify h2 .ico { color: var(--action); }
.ro .db-verify .t { flex: 1 1 420px; min-width: 0; }
.ro .db-verify p { margin-top: 4px; overflow-wrap: anywhere; }
.ro .db-verify .acts { display: flex; flex-wrap: wrap; gap: 8px; }
.ro .db-verify form { margin: 0; }
.ro .db-track { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0 0 12px; }
.ro .db-track .seg { display: block; height: 6px; border-radius: 3px; background: var(--surface-3); overflow: hidden; }
.ro .db-track .seg i { display: block; height: 100%; border-radius: 3px; background: var(--accent); }
.ro .db-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin: 0; padding: 0; list-style: none; counter-reset: step; }
.ro .db-step { display: grid; grid-template-columns: auto minmax(0, 1fr); align-content: start; gap: 4px 12px; padding: 14px 16px 16px; border-radius: 14px; background: var(--surface-2); }
.ro .db-step > :not(.no) { grid-column: 2; min-width: 0; }
.ro .db-step .no { grid-row: span 3; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--surface); color: var(--ink-2); font-size: 13px; font-weight: 600; box-shadow: var(--shadow-control); }
.ro .db-step.done .no { background: transparent; color: var(--ok-ink); box-shadow: none; }
.ro .db-step.done .no .ico { width: 17px; height: 17px; }
.ro .db-step h3 { font-size: var(--t-body); line-height: 1.35; font-weight: 600; }
.ro .db-step.done h3 { color: var(--muted); }
.ro .db-step.now { background: var(--action-soft); }
.ro .db-step.now .no { background: var(--action); color: var(--action-ink); box-shadow: none; }
.ro .db-step p { font-size: var(--t-small); line-height: 1.45; color: var(--muted); text-wrap: pretty; }
.ro .db-step.now p { color: var(--ink-2); }
.ro .db-step .key { overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.ro .db-step .go { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin-top: 4px; }
.ro .db-step .link { font-size: var(--t-small); }
.ro .db-step .go .q { margin-top: 4px; }
.ro p.pt-on-pc { display: none; }
@media (max-width: 1023.98px) {
  .ro p.pt-on-pc { display: block; font-weight: 600; color: var(--ink-2); }
}
.ro .db-rows { display: grid; }
.ro .db-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 4px 14px; padding: 13px 0; border-top: 1px solid var(--line); }
.ro .db-row:first-child { border-top: 0; padding-top: 2px; }
.ro .db-row .tile-ico { width: 42px; }
.ro .db-row .k { font-size: var(--t-label); line-height: 1.35; color: var(--muted); }
.ro .db-row .v { font-size: var(--t-body); line-height: 1.35; font-weight: 600; overflow-wrap: anywhere; }
.ro .db-row .s { font-size: var(--t-label); line-height: 1.4; color: var(--muted); }
.ro .db-row .btn { justify-self: end; }
.ro .db-nudges { display: grid; gap: 14px; }
.ro .db-nudge { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; }
.ro .db-nudge + .db-nudge { padding-top: 14px; border-top: 1px solid var(--line); }
.ro .db-nudge > div { flex: 1 1 240px; min-width: 0; }
.ro .db-nudge h2 { display: flex; align-items: center; gap: 8px; font-size: var(--t-body); line-height: 1.35; font-weight: 600; letter-spacing: 0; }
.ro .db-nudge h2 .ico { flex: none; color: var(--ink-2); }
.ro .db-nudge p { margin-top: 3px; font-size: var(--t-small); line-height: 1.5; color: var(--ink-2); text-wrap: pretty; }
.ro .db-nudge form { margin: 0; }
.ro .db-grid.db-even { grid-template-columns: repeat(auto-fit, minmax(min(100%, 340px), 1fr)); align-items: stretch; }
.ro .db-grid.db-even > .db-nudges { align-content: start; }
.ro .db-feed { display: grid; }
.ro .db-feed li { position: relative; display: grid; grid-template-columns: auto minmax(0, 1fr) 18px; align-items: center; gap: 2px 12px; padding: 10px 0; border-top: 1px solid var(--line); }
.ro .db-feed li::after { content: ""; grid-column: 3; grid-row: 1 / span 2; width: 18px; height: 18px; pointer-events: none; background: var(--muted); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 6L15.5 12L9.5 18'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 6L15.5 12L9.5 18'/%3E%3C/svg%3E") center / contain no-repeat; transition: background-color 140ms ease; }
.ro .db-feed li:hover::after { background: var(--action); }
.ro .db-feed li:first-child { border-top: 0; padding-top: 0; }
.ro .db-feed .ico-dot { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: var(--surface-2); color: var(--ink-2); grid-row: span 2; }
.ro .db-feed .ico-dot .ico { width: 18px; height: 18px; }
.ro .db-feed li > * { min-width: 0; }
.ro .db-feed .t { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: var(--t-small); line-height: 1.4; overflow: hidden; overflow-wrap: anywhere; }
.ro .db-more { margin-top: 12px; font-size: var(--t-small); }
@container (min-width: 600px) {
  .ro .db-feed li { grid-template-columns: auto minmax(0, 1fr) auto 18px; column-gap: 14px; }
  .ro .db-feed li::after { grid-column: 4; grid-row: 1; }
  .ro .db-feed .ico-dot { grid-row: auto; }
  .ro .db-feed .t { display: block; text-overflow: ellipsis; white-space: nowrap; }
  .ro .db-feed .w { white-space: nowrap; }
}
.ro .db-feed .t a { text-decoration: none; }
.ro .db-feed .t a::after { content: ""; position: absolute; inset: 0; border-radius: 10px; }
.ro .db-feed .t a:hover { color: var(--action); text-decoration: underline; }
.ro .db-feed .t a:focus-visible { outline: none; }
.ro .db-feed .t a:focus-visible::after { outline: 2px solid var(--action); outline-offset: 2px; }
.ro .db-feed .w { font-size: var(--t-label); color: var(--muted); }
.ro .pt-pager { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 14px; font-size: var(--t-label); color: var(--muted); }
.ro .pt-pager .off { padding: 0 14px; color: var(--muted); }
@container ptmain (max-width: 900px) {
  .ro .db-grid { grid-template-columns: minmax(0, 1fr); }
}
@container (max-width: 760px) {
  .ro .db-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.ro .lb-saved { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 12px; }
.ro .lb-saved-k { font-size: var(--t-label); color: var(--muted); }
.ro .lb-view { gap: 2px; padding: 0 4px 0 12px; }
.ro .lb-view a { text-decoration: none; }
.ro .lb-view a:hover { color: var(--action); }
.ro .lb-view form { margin: 0; }
.ro .lb-x { display: grid; place-items: center; width: 22px; height: 22px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--muted); cursor: pointer; }
.ro .lb-x:hover { background: var(--warn-bg); color: var(--warn-ink); }
.ro .lb-x .ico { width: 14px; height: 14px; }
.ro .lb-save { display: flex; align-items: center; gap: 8px; margin: 0; }
.ro .lb-save .input { width: 200px; min-height: 36px; padding: 0 14px; border-radius: var(--r-m); font-size: 14px; }
.ro .lb-filter { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 14px; margin: 0 0 var(--pt-gap); padding: clamp(14px, 0.9vw, 20px) var(--pad); }
.ro .lb-filter .field { gap: 5px; }
.ro .lb-filter .field > label { font-size: var(--t-label); font-weight: 600; color: var(--ink-2); }
.ro .lb-filter .field input, .ro .lb-filter .field select { height: 44px; min-height: 44px; font-size: 15px; }
.ro .lb-filter select { appearance: none; padding-right: 38px; background: var(--surface) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='16' height='16' fill='none' stroke='%2359616A' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6.5 9.5L12 15L17.5 9.5'/%3E%3C/svg%3E") no-repeat right 14px center / 16px 16px; cursor: pointer; }
.ro .lb-f-air { flex: 1 1 240px; }
.ro .lb-f-apt { flex: 0 1 150px; }
.ro .lb-f-grade { flex: 0 1 130px; }
.ro .lb-f-sort { flex: 0 1 196px; margin-left: auto; }
.ro .lb-filter .lb-icao { text-transform: uppercase; }
.ro .lb-filter-acts { display: flex; align-items: center; gap: 8px; padding-bottom: 2px; }
.ro .lb-count { align-self: flex-end; padding-bottom: 12px; font-size: var(--t-small); color: var(--muted); white-space: nowrap; }
.ro .lb-count b { font-weight: 600; color: var(--ink); }
.ro .lb-box { margin: 0; }
.ro .lb-key { margin: 2px 0 12px; }
.ro .lb-key .lb-key-h { font-weight: 600; color: var(--ink-2); }
.ro .lb-key i.sw { display: inline-block; }
.ro .lb-table { font-size: var(--t-small); white-space: nowrap; }
.ro .lb-table th { padding: 12px 14px; font-size: var(--t-label); }
.ro .lb-table td { padding: 11px 14px; }
.ro .lb-table .c-check { width: 44px; padding-right: 0; }
.ro .lb-table input[type="checkbox"] { width: 18px; height: 18px; margin: 0; accent-color: var(--action); vertical-align: middle; }
@media (pointer: coarse) {
  .ro .lb-table input[type="checkbox"] { width: 22px; height: 22px; }
}
.ro .lb-grade { display: inline-flex; align-items: baseline; gap: 8px; }
.ro .lb-grade b { min-width: 2ch; font-size: 19px; line-height: 1; font-weight: 600; letter-spacing: -0.03em; }
.ro .lb-grade.low b { color: var(--warn-ink); }
.ro .lb-grade.none b { font-size: var(--t-label); font-weight: 500; letter-spacing: 0; color: var(--muted); }
.ro .lb-grade span { color: var(--muted); }
.ro .lb-table a { text-decoration: none; }
.ro .lb-table a:hover { color: var(--action); text-decoration: underline; }
@media (min-width: 641px) {
  .ro :is(.lb-table, .dbf-table) > tbody > tr { position: relative; }
  .ro :is(.lb-table, .dbf-table) > * > tr > :last-child { padding-right: 46px; }
  .ro :is(.lb-table, .dbf-table) > tbody > tr > td:last-child::after { content: ""; position: absolute; top: 50%; right: 14px; width: 18px; height: 18px; margin-top: -9px; background: var(--muted); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 6L15.5 12L9.5 18'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 6L15.5 12L9.5 18'/%3E%3C/svg%3E") center / contain no-repeat; pointer-events: none; transition: transform 140ms var(--ease-out), background-color 140ms ease; }
  .ro :is(.lb-table, .dbf-table) > tbody > tr:hover > td:last-child::after { background: var(--action); transform: translateX(2px); }
  .ro .lb-when a::after, .ro .dbf-open::after { content: ""; position: absolute; top: 0; right: 0; bottom: 0; width: 46px; }
}
.ro .lb-when small { display: block; font-size: var(--t-label); color: var(--muted); }
.ro .lb-air { max-width: 280px; overflow: hidden; text-overflow: ellipsis; }
.ro.pt-profile .lb-air { max-width: 250px; }
.ro .lb-parts { width: clamp(150px, 9vw, 210px); }
.ro .lb-parts .hundred { --h: 7px; gap: 3px; }
.ro .lb-table .num small { margin-left: 3px; font-size: var(--t-label); color: var(--muted); }
.ro .lb-new td { background: var(--action-soft); }
.ro .lb-bulk { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; font-size: var(--t-small); color: var(--ink-2); }
.ro .lb-bulk-k { margin: 0 6px 0 0; }
.ro .lb-table tbody tr:has(.c-check input:checked) td { background: var(--action-soft); }
.ro form:has(.lb-table tbody .c-check input:checked) .lb-bulk { position: sticky; bottom: 12px; z-index: 5; padding: 8px 14px; border-radius: var(--r-panel); background: var(--surface); box-shadow: var(--shadow-object); }
.ro .lb-all { display: inline-flex; align-items: center; gap: 12px; margin: 0; cursor: pointer; }
.ro .lb-all span, .ro .only-stack { display: none; }
.ro .lb-tick { display: inline-flex; margin: 0; }
@container ptmain (max-width: 890px) {
  .ro .table-box:has(> .stack) { overflow: hidden; }
  .ro .table.stack, .ro .table.stack > thead, .ro .table.stack > tbody, .ro .table.stack > tfoot { display: block; }
  .ro .table.stack { white-space: normal; }
  .ro .table.stack > thead > tr > th { display: none; }
  .ro .table.stack > tbody > tr { position: relative; display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 5px; padding: 13px 38px 13px var(--stack-in, 16px); }
  .ro .table.stack > tbody > tr + tr { border-top: 1px solid var(--surface-2); }
  .ro .table.stack > tbody > tr > td { display: block; min-width: 0; padding: 0; border: 0; background: transparent; font-size: var(--t-small); line-height: 1.4; white-space: normal; }
  .ro .table.stack > tbody > tr:active { background: var(--surface-2); }
  .ro .table.stack > tbody > tr:has(a)::after { content: ""; position: absolute; top: 50%; right: 12px; width: 18px; height: 18px; margin-top: -9px; background: var(--muted); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 6L15.5 12L9.5 18'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9.5 6L15.5 12L9.5 18'/%3E%3C/svg%3E") center / contain no-repeat; transition: background-color 140ms ease, transform 200ms var(--ease-out); }
  .ro .table.stack > tbody > tr:has(a):hover::after { background: var(--action); transform: translateX(2px); }
  .ro .table.stack .lb-when a::after, .ro .table.stack .row-link::after, .ro .table.stack .dbf-open::after { content: ""; position: absolute; inset: 0; z-index: 1; }
  .ro .table.stack .lb-when a:focus-visible, .ro .table.stack .lb-air a:focus-visible, .ro .table.stack .row-link:focus-visible, .ro .table.stack .dbf-open:focus-visible { outline: none; }
  .ro .table.stack .lb-air a:focus-visible::after { content: ""; position: absolute; inset: 0; z-index: 1; }
  .ro .table.stack .lb-when a:focus-visible::after, .ro .table.stack .lb-air a:focus-visible::after, .ro .table.stack .row-link:focus-visible::after, .ro .table.stack .dbf-open:focus-visible::after { outline: 2px solid var(--action); outline-offset: -3px; border-radius: 10px; }
  .ro .lb-table.stack > tbody > tr:has(.c-check input:checked), .ro .lb-table.stack > tbody > tr.lb-new { background: var(--action-soft); }
  .ro .lb-table.stack > tbody > tr:has(.c-check input:checked) > td { background: transparent; }
  .ro .lb-table.stack { --stack-in: 104px; }
  .ro .lb-table.stack:not(:has(.c-check)) { --stack-in: 66px; }
  .ro .lb-table.stack > thead > tr { display: block; }
  .ro .lb-table.stack > thead > tr > th.c-check { display: block; width: auto; padding: 8px 12px 8px 12px; }
  .ro .lb-all span { display: inline; font-size: var(--t-label); font-weight: 500; color: var(--ink-2); }
  .ro .lb-table.stack > tbody > tr > .c-check { position: absolute; top: 0; bottom: 0; left: 0; z-index: 2; width: 46px; padding: 0; }
  .ro .lb-table.stack .lb-tick { display: flex; justify-content: center; width: 100%; height: 100%; padding-top: 14px; cursor: pointer; }
  .ro .lb-table.stack > tbody > tr > .lb-gc { position: absolute; top: 12px; left: 48px; width: 54px; }
  .ro .lb-table.stack:not(:has(.c-check)) > tbody > tr > .lb-gc { left: 14px; }
  .ro .lb-table.stack .lb-grade { display: grid; justify-items: start; gap: 3px; }
  .ro .lb-table.stack .lb-grade b { font-size: 22px; }
  .ro .lb-table.stack .lb-grade span { font-size: var(--t-label); line-height: 1; }
  .ro .lb-table.stack .lb-grade.none b { font-size: 13px; line-height: 1.2; }
  .ro .lb-table.stack > tbody > tr > .lb-air { order: 1; flex: 0 0 100%; max-width: none; font-size: var(--t-body); line-height: 1.35; font-weight: 600; color: var(--ink); overflow-wrap: anywhere; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
  .ro .lb-table.stack .lb-air a { color: inherit; }
  .ro .lb-table.stack > tbody > tr > .lb-apt { order: 2; color: var(--ink-2); }
  .ro .lb-table.stack > tbody > tr > .lb-apt .muted { color: inherit; }
  .ro .lb-table.stack > tbody > tr > .lb-when { order: 3; color: var(--ink-2); }
  .ro .lb-table.stack .lb-when a { color: inherit; }
  .ro .lb-table.stack .lb-when small { display: none; }
  .ro .lb-table.stack > tbody > tr > .lb-apt::after { content: ","; }
  .ro .lb-table.stack > tbody > tr > .lb-fpm { order: 4; margin-left: auto; font-weight: 600; color: var(--ink); text-align: right; white-space: nowrap; }
  .ro .lb-table.stack .lb-fpm small { font-size: var(--t-label); font-weight: 400; color: var(--muted); }
  .ro .lb-table.stack > tbody > tr > .lb-g { display: none; }
  .ro .lb-table.stack > tbody > tr > .lb-parts { order: 5; flex: 0 0 100%; width: auto; max-width: 460px; margin-top: 7px; }
  .ro .lb-key.only-stack { display: flex; margin: 0 0 10px; }
  .ro .dbf-table.stack > tbody > tr { align-items: center; gap: 6px; }
  .ro .dbf-table.stack > tbody > tr > .who { flex: 0 0 100%; max-width: none; min-width: 0; margin-bottom: 4px; }
  .ro .dbf-table.stack > tbody > tr > td.muted { margin-left: 4px; font-size: var(--t-label); white-space: nowrap; }
  .ro .acct-orders .table.stack > tbody > tr { align-items: center; }
  .ro .acct-orders .table.stack > tbody > tr { gap: 4px 10px; }
  .ro .acct-orders .table.stack > tbody > tr > .ord-who { order: 1; flex: 0 0 100%; margin-bottom: 2px; }
  .ro .acct-orders .table.stack > tbody > tr > .ord-date { order: 2; color: var(--ink-2); }
  .ro .acct-orders .table.stack > tbody > tr > .ord-state { order: 3; }
  .ro .acct-orders .table.stack > tbody > tr > .ord-total { order: 4; margin-left: auto; font-weight: 600; color: var(--ink); text-align: right; }
  .ro .acct-orders .table.stack > tbody > tr > .go { display: none; }
  .ro .acct-orders .table.stack > tfoot > tr { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 38px 12px 16px; border-top: 1px solid var(--line); background: var(--surface-tint); }
  .ro .acct-orders .table.stack > tfoot > tr > td { display: block; padding: 0; border: 0; background: transparent; white-space: normal; }
  .ro .acct-orders .table.stack > tfoot > tr > td:empty { display: none; }
}
@container ptmain (min-width: 620px) and (max-width: 890px) {
  .ro .lb-table.stack > tbody > tr { padding-right: calc(38px + clamp(200px, 34%, 300px) + 24px); }
  .ro .lb-table.stack > tbody > tr > .lb-parts { position: absolute; top: 50%; right: 38px; width: clamp(200px, 34%, 300px); max-width: none; margin: 0; transform: translateY(-50%); }
  .ro .lb-table.stack > tbody > tr > .lb-parts .hundred { width: 100%; }
  .ro .acct-orders .table.stack > tbody > tr { flex-wrap: nowrap; align-items: center; gap: 20px; }
  .ro .acct-orders .table.stack > tbody > tr > .ord-who { flex: 1 1 0; margin: 0; }
  .ro .acct-orders .table.stack > tbody > tr > .ord-date { flex: none; width: 100px; }
  .ro .acct-orders .table.stack > tbody > tr > .ord-total { flex: none; order: 3; width: 70px; margin: 0; }
  .ro .acct-orders .table.stack > tbody > tr > .ord-state { flex: none; order: 4; width: 176px; }
  .ro .acct-orders .table.stack > tfoot > tr { padding-right: 234px; }
  .ro .dbf-table.stack > tbody > tr { flex-wrap: nowrap; gap: 14px; }
  .ro .dbf-table.stack > tbody > tr > .who { flex: 1 1 0; margin: 0; }
  .ro .dbf-table.stack > tbody > tr > td:nth-child(2) { flex: none; width: 112px; }
  .ro .dbf-table.stack > tbody > tr > td:nth-child(3) { flex: none; width: 104px; }
  .ro .dbf-table.stack > tbody > tr > td.muted { flex: none; width: 84px; margin: 0; }
}
.ro .lb-pages { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; font-size: var(--t-small); color: var(--muted); }
.ro .lb-pages div { display: flex; gap: 8px; }
.ro .pt-empty { display: grid; justify-items: center; gap: 10px; padding: clamp(40px, 3.4vw, 80px) 20px; text-align: center; }
.ro .pt-empty .tile-ico { width: 56px; }
.ro .pt-empty h2, .ro .pt-empty h3 { font-size: var(--t-h2); font-weight: 600; letter-spacing: -0.015em; }
.ro .pt-empty p { max-width: 52ch; font-size: var(--t-small); line-height: 1.55; color: var(--muted); text-wrap: pretty; }
.ro .pt-empty .acts { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 6px; }

.ro .st-lead { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: var(--pt-gap); margin-bottom: var(--pt-gap); }
.ro .st-avg .st-big { display: flex; align-items: baseline; gap: 10px; margin-top: 4px; }
.ro .st-avg .st-big b { font-size: clamp(48px, 3vw, 72px); line-height: 0.9; font-weight: 600; letter-spacing: -0.04em; }
.ro .st-avg .st-big span { font-size: var(--t-body); color: var(--muted); }
.ro .st-avg .sc-meter { margin-top: 18px; }
.ro .st-avg .rp-text { margin-top: 10px; }
.ro .st-grades { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.ro .st-grades li { display: grid; grid-template-columns: 34px minmax(0, 1fr) 84px; align-items: center; gap: 14px; font-size: var(--t-small); }
.ro .st-grades .l { font-size: 18px; font-weight: 600; letter-spacing: -0.02em; }
.ro .st-grades .low .l { color: var(--warn-ink); }
.ro .st-grades .bar { display: block; height: 12px; border-radius: 6px; background: var(--surface-2); overflow: hidden; }
.ro .st-grades .bar i { display: block; height: 100%; border-radius: 6px; background: var(--accent); }
.ro .st-grades .low .bar i { background: var(--warn-ink); }
.ro .st-grades .c { text-align: right; white-space: nowrap; color: var(--ink-2); }
.ro .st-grades .c small { margin-left: 6px; font-size: var(--t-label); color: var(--muted); }
.ro .st-figs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px 22px; }
.ro .st-cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); align-items: start; gap: var(--pt-gap); margin-top: var(--pt-gap); }
.ro .st-weeks .st-axis li { white-space: nowrap; }
.ro .st-weeks .st-axis li:nth-child(even) .lbl { visibility: hidden; }
.ro .st-chart { position: relative; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: clamp(6px, 0.5vw, 12px); height: clamp(180px, 10.5vw, 240px); margin: 28px 0 0; padding: 0 clamp(30px, 2vw, 40px) 0 0; list-style: none; border-bottom: 1px solid var(--line-strong); }
.ro .st-chart > li { position: relative; height: 100%; min-width: 0; }
.ro .st-chart > li.gl { position: absolute; left: 0; right: 0; bottom: calc(var(--at, 0) * 1%); height: 0; border-top: 1px dashed var(--line); pointer-events: none; }
.ro .st-chart .gl span { position: absolute; right: 0; top: -8px; padding-left: 6px; background: var(--surface); font-size: 12px; line-height: 16px; color: var(--muted); }
.ro .st-chart .col { position: absolute; left: 0; right: 0; bottom: 0; width: min(100%, 44px); height: calc(var(--v, 0) * 1%); margin: 0 auto; border-radius: 6px 6px 2px 2px; background: var(--bar); }
.ro .st-chart .col.hi { background: var(--accent); }
.ro .st-key { margin-top: 14px; }
.ro .st-table td:first-child:where(:not(.num)) { width: 100%; max-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ro .st-chart .col.none { height: 2px; border-radius: 1px; background: var(--line-strong); }
.ro .st-chart .val { position: absolute; left: 0; right: 0; bottom: calc(var(--v, 0) * 1% + 5px); text-align: center; font-size: 12px; line-height: 1; font-weight: 600; color: var(--ink); white-space: nowrap; }
.ro .st-chart .val small { font: inherit; }
.ro .st-axis { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: clamp(6px, 0.5vw, 12px); margin: 8px 0 0; padding: 0 clamp(30px, 2vw, 40px) 0 0; list-style: none; }
.ro .st-axis li { min-width: 0; text-align: center; font-size: 12px; line-height: 1.3; color: var(--muted); }
.ro .st-axis li small { display: block; font-size: inherit; color: var(--muted); }
@media (max-width: 760px) {
  .ro .st-axis li { white-space: nowrap; }
  .ro .st-aplus .val { left: -10px; right: -10px; font-size: clamp(11px, 3vw, 12px); }
  .ro .st-aplus .val.zero { visibility: hidden; }
  .ro .st-aplus .val small { display: none; }
  .ro .st-axis li:nth-child(even) .lbl { visibility: hidden; }
}
.ro .st-tabs { display: flex; gap: 2px; padding: 3px; border-radius: 999px; background: var(--surface-3); }
.ro .st-tabs button { height: 30px; padding: 0 14px; border: 0; border-radius: 999px; background: transparent; color: var(--ink-2); font: inherit; font-size: 13px; cursor: pointer; transition: background-color 140ms ease, color 140ms ease; }
.ro .st-tabs button:hover { background: rgba(var(--shadow-rgb), 0.05); }
.ro .st-tabs button[aria-pressed="true"] { background: var(--surface); color: var(--ink); font-weight: 600; box-shadow: var(--shadow-control); }
.ro .st-table td.num .mini { display: inline-block; width: 64px; height: 6px; margin-left: 10px; border-radius: 3px; background: var(--surface-3); vertical-align: middle; overflow: hidden; }
.ro .st-table td.num .mini i { display: block; height: 100%; border-radius: 3px; background: var(--accent); }
.ro .st-board { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 18px; margin-bottom: var(--pt-gap); }
.ro .st-board p { display: flex; align-items: center; gap: 10px; font-size: var(--t-body); }
.ro .st-board p b { font-weight: 600; }
.ro .st-unlock-list { display: grid; gap: 2px; }
.ro .st-unlock-list li { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 12px; padding: 8px 0; }
.ro .st-unlock-list .tile-ico { width: 36px; }
.ro .st-unlock-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--t-small); font-weight: 600; }
.ro .st-unlock-when { font-size: var(--t-label); color: var(--muted); white-space: nowrap; }
@container ptmain (max-width: 980px) {
  .ro .st-lead { grid-template-columns: minmax(0, 1fr); }
}
@container (max-width: 760px) {
  .ro .st-figs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

.ro .ac-lead { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: var(--pt-gap); margin-bottom: clamp(26px, 2vw, 44px); }
.ro .ac-big { display: flex; align-items: baseline; gap: 10px; }
.ro .ac-big b { font-size: clamp(40px, 2.5vw, 60px); line-height: 0.95; font-weight: 600; letter-spacing: -0.035em; }
.ro .ac-big span { font-size: var(--t-body); color: var(--muted); }
.ro .ac-meter { display: block; height: 8px; margin-top: 16px; border-radius: 4px; background: var(--surface-3); overflow: hidden; }
.ro .ac-meter i { display: block; height: 100%; border-radius: 4px; background: var(--accent); }
.ro .ac-next h3 { display: flex; align-items: center; gap: 10px; font-size: var(--t-big); line-height: 1.3; font-weight: 600; }
.ro .ac-next .rp-text { margin-top: 6px; }
.ro .ac-sec { margin-top: clamp(28px, 2.2vw, 52px); }
.ro .ac-sec:first-of-type { margin-top: 0; }
.ro .ac-sec-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 16px; margin-bottom: 14px; }
.ro .ac-sec-head h2 { display: flex; align-items: center; gap: 10px; font-size: clamp(19px, 0.76vw, 19.5px); line-height: 1.25; font-weight: 600; letter-spacing: -0.015em; }
.ro .ac-sec-head h2 .tile-ico { width: 38px; }
.ro .ac-sec-head p { font-size: var(--t-small); color: var(--muted); }
.ro .ac-sec-lede { max-width: 80ch; margin: -6px 0 14px; font-size: var(--t-small); line-height: 1.55; color: var(--ink-2); }
.ro .ac-group > summary { list-style: none; }
.ro .ac-group > summary::-webkit-details-marker { display: none; }
.ro .ac-gh { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 4px 12px; margin-bottom: 14px; padding: 2px 0; border-radius: 14px; cursor: pointer; }
.ro .ac-gh .tile-ico { width: 38px; }
.ro .ac-gh h2 { min-width: 0; font-size: clamp(19px, 0.76vw, 19.5px); line-height: 1.25; font-weight: 600; letter-spacing: -0.015em; }
.ro .ac-gh p { display: flex; align-items: center; gap: 10px; font-size: var(--t-small); color: var(--muted); white-space: nowrap; }
.ro .ac-gh .ac-meter { width: 72px; height: 5px; margin: 0; }
.ro .ac-chev { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; color: var(--muted); transition: transform 240ms var(--ease-out), background-color 160ms ease, color 160ms ease; }
.ro .ac-chev .ico { width: 18px; height: 18px; }
.ro .ac-gh:hover .ac-chev { background: var(--surface-2); color: var(--ink); }
.ro .ac-gh:focus-visible { outline: 2px solid var(--action); outline-offset: 4px; }
.ro .ac-group:not([open]) .ac-chev { transform: rotate(-90deg); }
.ro .ac-group:not([open]) > .ac-gh { margin-bottom: 0; }
.ro .ac-mastery { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: var(--pt-gap); }
.ro .ac-fam { padding: clamp(12px, 0.75vw, 16px) clamp(14px, 0.9vw, 20px); }
.ro .ac-fam h3 { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--t-body); font-weight: 600; }
.ro .ac-fam .rp-ph { flex-wrap: nowrap; margin-bottom: 8px; }
.ro .ac-fam .rp-meta { flex: none; }
.ro .ac-fam details { margin-bottom: 10px; font-size: var(--t-label); color: var(--muted); }
.ro .ac-fam summary { cursor: pointer; }
.ro .ac-fam summary:hover { color: var(--ink); }
.ro .ac-fam details ul { margin: 6px 0 0; padding-left: 16px; }
.ro .ac-fam .variant { margin-bottom: 10px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--t-label); color: var(--muted); }
.ro .ac-fam .ac-meter { margin: 0 0 8px; height: 6px; }
.ro .ac-next-line b { font-weight: 600; color: var(--ink-2); }
.ro ol.ac-ladder { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0 6px; margin: 0 0 clamp(16px, 1.1vw, 24px); padding: 0; list-style: none; }
.ro .ac-ladder li { display: grid; align-content: start; gap: 1px; min-width: 0; padding-right: 8px; }
.ro .ac-ladder .seg { display: block; height: 6px; margin: 0 -8px 10px 0; border-radius: 3px; background: var(--surface-3); overflow: hidden; }
.ro .ac-ladder .seg i { display: block; width: 0; height: 100%; background: var(--accent); }
.ro .ac-ladder .on .seg i { width: 100%; }
.ro .ac-ladder b { font-size: var(--t-small); line-height: 1.35; font-weight: 600; }
.ro .ac-ladder .at { font-size: var(--t-label); line-height: 1.4; color: var(--ink-2); font-variant-numeric: tabular-nums; }
.ro .ac-ladder .story { font-size: var(--t-label); line-height: 1.4; color: var(--muted); text-wrap: pretty; }
.ro .ac-ladder .got { display: flex; align-items: center; gap: 5px; margin-top: 4px; font-size: var(--t-label); line-height: 1.4; font-weight: 600; color: var(--ink); }
.ro .ac-ladder .got .ico { flex: none; width: 14px; height: 14px; }
.ro .ac-tiers { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; margin: 4px 0 12px; padding: 0; list-style: none; }
.ro .ac-tiers li { display: grid; gap: 6px; min-width: 0; }
.ro .ac-tiers .seg { display: block; height: 6px; border-radius: 3px; background: var(--surface-3); overflow: hidden; }
.ro .ac-tiers .seg i { display: block; height: 100%; background: var(--accent); }
.ro .ac-tiers .nm { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 12px; line-height: 1.25; color: var(--muted); }
.ro .ac-tiers .nm b { display: block; font-weight: 600; color: var(--ink-2); }
.ro .ac-tiers .on .nm b { color: var(--ink); }
.ro .ac-prog { display: flex; align-items: center; gap: 10px; font-size: var(--t-label); color: var(--muted); }
.ro .ac-prog .ac-meter { flex: 1; margin: 0; height: 6px; }
.ro .ac-next-line { font-size: var(--t-label); line-height: 1.4; color: var(--muted); }
.ro .ac-done { display: flex; align-items: center; gap: 6px; font-size: var(--t-label); font-weight: 600; color: var(--ok-ink); }
.ro .ac-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 6px var(--pt-gap); margin: 0; padding: 0; list-style: none; }
.ro .achievement-card { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 2px 14px; width: 100%; padding: 12px 14px; border-radius: 14px; color: var(--ink); transition: background-color 600ms ease; }
.ro .achievement-card .tile-ico { grid-row: span 3; width: 44px; background: var(--surface); box-shadow: var(--shadow-control); }
.ro .achievement-card[data-achievement-state="locked"] .tile-ico { background: var(--surface-2); box-shadow: none; color: var(--faint); }
.ro .achievement-card h3 { display: flex; align-items: center; gap: 8px; font-size: var(--t-small); line-height: 1.35; font-weight: 600; }
.ro .achievement-card[data-achievement-state="locked"] h3 { color: var(--ink-2); }
.ro .achievement-card .d { font-size: var(--t-label); line-height: 1.45; color: var(--muted); text-wrap: pretty; }
.ro .achievement-card .s { display: flex; align-items: center; gap: 8px; margin-top: 4px; font-size: var(--t-label); color: var(--muted); }
.ro .achievement-card .s.on { color: var(--ok-ink); }
.ro .achievement-card .s .ac-meter { flex: 1; max-width: 120px; margin: 0; height: 5px; }
.ro .achievement-card.just { background: var(--ok-bg); }

.ro .dbf-help { margin: var(--pt-gap) 0 0; max-width: 100ch; font-size: var(--t-small); line-height: 1.5; color: var(--ink-2); text-wrap: pretty; }
.ro .dbf-what { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 16px; align-items: start; margin-bottom: var(--pt-gap); }
.ro .dbf-what .tile-ico { grid-row: span 2; width: 46px; }
.ro .dbf-what h2 { font-size: var(--t-h2); font-weight: 600; }
.ro .dbf-what p { max-width: 86ch; font-size: var(--t-small); line-height: 1.55; color: var(--ink-2); text-wrap: pretty; }
.ro .dbf-table .who { min-width: 210px; max-width: 380px; }
.ro .dbf-table td.muted { white-space: nowrap; }
.ro .dbf-open { font-weight: 600; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
.ro .dbf-open:hover { color: var(--action); text-decoration: underline; }
.ro .dbf-table .who small { display: block; margin-top: 2px; font-size: var(--t-label); color: var(--muted); overflow-wrap: anywhere; }
.ro .dbf-table .who small:empty { display: none; }
.ro .chip.active { background: var(--ok-bg); color: var(--ok-ink); }
.ro .chip.pending { background: var(--action-soft); color: var(--action-press); }
.ro .chip.declined { background: var(--warn-bg); color: var(--warn-ink); }
.ro .chip.closed { background: transparent; color: var(--muted); box-shadow: inset 0 0 0 1px var(--line); }
.ro .dbf-grid { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--pt-gap); align-items: start; }
.ro .dbf-main, .ro .dbf-side { display: grid; gap: var(--pt-gap); min-width: 0; }
.ro .dbf-side { position: sticky; top: calc(var(--nav-h) + 18px); }
.ro .dbf-thread { display: grid; gap: 14px; max-height: 560px; overflow-y: auto; margin: 0; padding: 2px 4px 2px 0; list-style: none; }
.ro .dbf-msg { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 12px; }
.ro .dbf-msg .pt-avatar { width: 34px; height: 34px; font-size: 12px; }
.ro .dbf-msg .meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: var(--t-label); color: var(--muted); }
.ro .dbf-msg .meta b { font-weight: 600; color: var(--ink-2); }
.ro .dbf-msg .body { grid-column: 2; padding: 10px 14px; border-radius: 4px 14px 14px 14px; background: var(--surface-2); font-size: var(--t-small); line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
.ro .dbf-msg.me .body { background: var(--action-soft); }
.ro .dbf-form { display: grid; gap: 10px; margin-top: 16px; }
.ro .dbf-form textarea, .ro .dbf-form .input { width: 100%; min-height: 110px; padding: 12px 16px; border: 0; border-radius: var(--r-m); background: var(--surface); color: var(--ink); font: inherit; font-size: 16px; line-height: 1.5; box-shadow: inset 0 0 0 1px var(--line-strong); resize: vertical; }
.ro .dbf-form textarea:focus, .ro .dbf-form .input:focus { outline: none; box-shadow: inset 0 0 0 2px var(--action); }
.ro .dbf-form .acts { display: flex; justify-content: flex-end; }
.ro .dbf-landings { display: grid; margin: 0; padding: 0; list-style: none; }
.ro .dbf-landings li { border-top: 1px solid var(--line); }
.ro .dbf-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 4px 14px; margin: 0 -10px; padding: 11px 10px; border-radius: 12px; color: inherit; text-decoration: none; transition: background-color 140ms ease; }
.ro .dbf-row:hover { background: var(--surface-2); }
.ro .dbf-row > .ico { width: 18px; height: 18px; color: var(--muted); }
.ro .dbf-row:hover > .ico { color: var(--action); }
.ro .dbf-landings li:first-child { border-top: 0; }
.ro .dbf-landings .g { min-width: 2.2ch; font-size: 19px; font-weight: 600; letter-spacing: -0.03em; }
.ro .dbf-landings .g.low { color: var(--warn-ink); }
.ro .dbf-landings .g.none { font-size: var(--t-label); font-weight: 500; letter-spacing: 0; color: var(--muted); }
.ro .dbf-landings .t { min-width: 0; }
.ro .dbf-landings .t b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--t-small); font-weight: 600; }
.ro .dbf-landings .t span { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; font-size: var(--t-label); color: var(--muted); }
.ro .dbf-facts { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: 0 16px; margin: 0; }
.ro .dbf-facts dt, .ro .dbf-facts dd { margin: 0; padding: 9px 0; border-top: 1px solid var(--line); font-size: var(--t-small); line-height: 1.4; }
.ro .dbf-facts dt { color: var(--muted); }
.ro .dbf-facts dd { overflow-wrap: anywhere; font-weight: 500; }
.ro .dbf-facts dt:first-of-type, .ro .dbf-facts dd:first-of-type { border-top: 0; padding-top: 0; }
.ro .dbf-invite { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--pt-gap); align-items: start; }
.ro .dbf-invite form { display: grid; gap: 18px; }
.ro .dbf-invite .field input { font-size: 16px; }
.ro .dbf-invite .acts { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; padding-top: 4px; }
.ro .dbf-sees { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ro .dbf-sees li { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 2px 12px; font-size: var(--t-small); line-height: 1.5; color: var(--ink-2); }
.ro .dbf-sees .ico { width: 20px; height: 20px; margin-top: 1px; color: var(--ink-2); }
.ro .dbf-invites { display: grid; gap: var(--pt-gap); margin: 0; padding: 0; list-style: none; }
.ro .dbf-inv { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 6px 16px; }
.ro .dbf-inv b { display: block; overflow-wrap: anywhere; font-size: var(--t-body); font-weight: 600; }
.ro .dbf-inv .meta { display: block; font-size: var(--t-label); color: var(--muted); }
.ro .dbf-inv .acts { display: flex; flex-wrap: wrap; gap: 8px; }
.ro .dbf-inv form { margin: 0; }
.ro .rv-thread { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.ro .rv-thread li { padding: 10px 14px; border-radius: 12px; background: var(--surface-2); }
.ro .rv-thread .meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; font-size: var(--t-label); color: var(--muted); }
.ro .rv-thread p { margin-top: 4px; font-size: var(--t-small); line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; }
@container ptmain (max-width: 860px) {
  .ro .dbf-grid { grid-template-columns: minmax(0, 1fr); }
  .ro .dbf-side { position: static; }
}

.ro.pb { padding-bottom: clamp(56px, 4.4vw, 112px); container: ptmain / inline-size; }
.ro .pb-hero { padding: clamp(36px, 3.6vw, 88px) 0 clamp(44px, 4vw, 96px); }
.ro .pb-hero-in { display: grid; justify-items: center; gap: clamp(22px, 2vw, 44px); text-align: center; }
.ro .pb-hero h1 { max-width: 26ch; font-size: clamp(30px, 2.6vw, 60px); line-height: 1.06; font-weight: 600; letter-spacing: -0.03em; text-wrap: balance; }
.ro .pb-hero .lede { max-width: 60ch; margin-top: 12px; font-size: var(--lede); line-height: 1.45; color: var(--ink-2); text-wrap: pretty; }
.ro .pb-from { margin-top: 6px; font-size: var(--t-small); line-height: 1.45; color: var(--muted); }
.ro .pb-from a { color: var(--action); font-weight: 600; text-decoration: none; }
.ro .pb-from a:hover { text-decoration: underline; }
.ro .pb-stage { display: grid; grid-template-columns: minmax(0, 1fr); place-items: center; width: 100%; }
.ro .pb-stage .sc { zoom: var(--card-zoom, 1); }
@media (min-width: 1400px) and (min-height: 960px) { .ro .pb-stage { --card-zoom: 1.25; } }
@media (min-width: 1900px) and (min-height: 1200px) { .ro .pb-stage { --card-zoom: 1.5; } }
.ro .pb-report { display: grid; gap: var(--pt-gap); margin-top: clamp(28px, 2.4vw, 56px); scroll-margin-top: calc(var(--nav-h) + 16px); }
.ro .pb-report .rp { gap: var(--pt-gap); }
.ro.pb.pt-shared { padding-bottom: 0; }
.ro .rp-lanes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--pt-gap); align-items: start; }
.ro .rp-lane { display: grid; gap: var(--pt-gap); }
@media (max-width: 1099px) {
  .ro .rp-lanes { grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); }
  .ro .rp-lane { display: contents; }
  .ro .rp-lanes .rp-coach { order: 1; }
  .ro .rp-lanes .rp-runway { order: 2; }
  .ro .rp-lanes .rp-weather { order: 3; }
  .ro .rp-lanes .rp-flown { order: 4; }
  .ro .rp-lanes .rp-at { order: 5; }
  .ro .rp-lanes .rp-roll { order: 6; }
}
.ro.pt-shared .close-band { margin-top: var(--sec-pad); }
.ro .pb-by { margin-top: 18px; text-align: center; font-size: var(--t-small); color: var(--muted); text-wrap: balance; }
.ro .pb-by a { color: var(--action); font-weight: 600; text-decoration: none; }
.ro .pb-by a:hover { text-decoration: underline; }
.ro .pf-head { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 24px; padding: clamp(32px, 3vw, 72px) 0 clamp(22px, 1.8vw, 40px); }
.ro .pf-avatar { display: inline-grid; place-items: center; flex: none; width: clamp(72px, 4.6vw, 96px); height: clamp(72px, 4.6vw, 96px); border-radius: 24px; background: var(--surface); color: var(--ink-2); font-size: clamp(28px, 1.8vw, 38px); font-weight: 600; object-fit: cover; box-shadow: var(--shadow-panel); }
.ro .pf-head h1 { font-size: var(--t-h1); line-height: 1.1; font-weight: 600; letter-spacing: -0.025em; overflow-wrap: anywhere; }
.ro .pf-head p { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; margin-top: 6px; font-size: var(--t-small); color: var(--muted); }
.ro .pf-head p span { display: inline-flex; align-items: center; gap: 6px; }
.ro .pf-head p .ico { width: 16px; height: 16px; }
.ro .pf-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--pt-gap); align-items: start; }
.ro .pf-main, .ro .pf-side { display: grid; gap: var(--pt-gap); min-width: 0; }
.ro .pf-side { position: sticky; top: calc(var(--nav-h) + 18px); }
.ro .pf-figs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px 20px; }
.ro .pf-unlocks { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 0; padding: 0; list-style: none; }
.ro .pf-unlocks li { display: inline-flex; align-items: center; gap: 8px; height: 32px; padding: 0 12px 0 6px; border-radius: 999px; background: var(--surface-2); font-size: var(--t-label); }
.ro .pf-unlocks .ico { width: 20px; height: 20px; padding: 3px; border-radius: 50%; background: var(--surface); color: var(--ink-2); }
@media (max-width: 1239px) {
  .ro .pf-grid { grid-template-columns: minmax(0, 1fr); }
  .ro .pf-side { position: static; }
}
@container ptmain (max-width: 900px) {
  .ro .pf-grid { grid-template-columns: minmax(0, 1fr); }
  .ro .pf-side { position: static; }
}

@container (max-width: 860px) {
  .ro .rp-figs6 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 1023.98px) {
  .ro .pt-site { display: block; }
  .ro .pt-site-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 8px; margin: 0; padding: 0; list-style: none; }
  .ro .pt-site-links a { display: flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 10px; color: var(--ink-2); font-size: var(--t-body); text-decoration: none; transition: background-color 140ms ease, color 140ms ease; }
  .ro .pt-site-links a:hover { background: rgba(var(--shadow-rgb), 0.05); color: var(--ink); }
  .ro .pt-foot-help { display: none; }
  .ro .portal-shell { display: block; padding-top: 16px; }
  .ro .portal-sidebar { position: fixed; top: 0; right: 0; bottom: 0; left: auto; z-index: 60; width: min(320px, 86vw); max-width: none; height: 100dvh; max-height: none; padding: 14px 12px 28px; border: 0; border-radius: 20px 0 0 20px; background: var(--surface); box-shadow: var(--shadow-object); transform: translateX(104%); visibility: hidden; }
  .ro .portal-sidebar.is-open { transform: none; visibility: visible; }
  .ro .portal-user-card { padding: 4px 0 4px 8px; }
  .ro .portal-drawer-close { display: inline-grid; place-items: center; flex: none; width: 40px; height: 40px; margin-left: auto; padding: 0; border: 0; border-radius: 50%; background: var(--surface-2); color: var(--ink-2); cursor: pointer; }
  .ro .portal-drawer-close:hover { background: var(--surface-3); }
  .ro .portal-scrim { display: block; position: fixed; inset: 0; z-index: 55; background: rgba(24, 29, 35, 0.32); backdrop-filter: none; }
  .ro .portal-main { overflow-x: clip; }
  .ro .rp-summary { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .ro .rp-gradeblock { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .ro .portal-page-header { align-items: stretch; }
  .ro .pt-head-acts { justify-content: center; width: 100%; }
  .ro .pt-head-acts:has(> :nth-child(4)) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ro .pt-head-acts:has(> :nth-child(4)) > .btn { justify-content: center; }
  .ro .table-box { background: linear-gradient(90deg, var(--surface) 30%, transparent) 0 0 / 28px 100% no-repeat local, linear-gradient(270deg, var(--surface) 30%, transparent) 100% 0 / 28px 100% no-repeat local, radial-gradient(farthest-side at 0 50%, rgba(var(--shadow-rgb), 0.16), transparent) 0 0 / 12px 100% no-repeat scroll, radial-gradient(farthest-side at 100% 50%, rgba(var(--shadow-rgb), 0.16), transparent) 100% 0 / 12px 100% no-repeat scroll, var(--surface); }
  .ro .rp-summary { grid-template-columns: minmax(0, 1fr); padding: 18px 16px; }
  .ro .rp-gradeblock { min-width: 0; }
  .ro .rp-figs6 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ro .rp-figs3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ro .rp-acts { justify-content: center; }
  .ro .rp-sticky .w { display: none; }
  .ro .db-steps { grid-template-columns: minmax(0, 1fr); }
  .ro .db-step .go { gap: 0; }
  .ro .db-step .go .link { min-height: 44px; font-size: var(--t-body); }
  .ro .db-more { margin-top: 2px; }
  .ro .db-more .link { min-height: 44px; }
  .ro .pt-home .pt-head-acts .btn.primary, .ro .pt-home .pt-head-acts .btn.quiet { height: 44px; font-size: var(--t-body); }
  .ro .st-table th { white-space: normal; }
  .ro .st-table th, .ro .st-table td.num { overflow-wrap: normal; word-break: normal; }
  .ro .st-table th, .ro .st-table td { padding-inline: 10px; }
  .ro .st-table td:first-child { white-space: normal; }
  .ro .st-table td.num .mini { display: block; width: 44px; margin: 4px 0 0 auto; }
  .ro .st-table .st-name { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; overflow-wrap: anywhere; }
  .ro .db-verify, .ro .db-verify .acts, .ro .db-nudge { justify-content: center; }
  .ro .db-row { grid-template-columns: auto minmax(0, 1fr); }
  .ro .db-row .btn { grid-column: 1 / -1; justify-self: center; }
  .ro .lb-f-sort { flex: 1 1 100%; margin-left: 0; }
  .ro .lb-filter .lb-filter-acts { order: 1; width: 100%; justify-content: center; }
  .ro .lb-count { order: 2; width: 100%; margin-left: 0; text-align: center; }
  .ro .lb-bulk, .ro .lb-pages { justify-content: center; }
  .ro .st-figs, .ro .pf-figs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .ro .st-grades li { grid-template-columns: 30px minmax(0, 1fr) 72px; gap: 10px; }
  .ro .ac-lead, .ro .dbf-invite { grid-template-columns: minmax(0, 1fr); }
  .ro .ac-sec + .ac-sec { margin-top: 10px; }
  .ro .ac-sec:first-of-type + .ac-sec { margin-top: 28px; }
  .ro .ac-group { border-radius: var(--r-panel); background: var(--surface); box-shadow: var(--shadow-panel); }
  .ro .ac-gh { grid-template-columns: auto minmax(0, 1fr) auto; grid-template-areas: "ico name chev" "ico prog chev"; gap: 2px 12px; margin: 0; padding: 14px 12px 14px 14px; border-radius: var(--r-panel); }
  .ro .ac-gh .tile-ico { grid-area: ico; width: 42px; }
  .ro .ac-gh h2 { grid-area: name; font-size: 17px; }
  .ro .ac-gh p { grid-area: prog; gap: 8px; font-size: 13px; }
  .ro .ac-gh .ac-meter { width: 56px; }
  .ro .ac-chev { grid-area: chev; }
  .ro .ac-gh:focus-visible { outline-offset: -2px; }
  .ro .ac-group[open] > .ac-gh { padding-bottom: 8px; }
  .ro .ac-group .ac-items { padding: 0 4px 8px; }
  .ro .ac-sec-lede { margin: 0 14px 12px; }
  .ro ol.ac-ladder { grid-template-columns: minmax(0, 1fr); gap: 10px; margin: 0 14px 14px; }
  .ro .ac-ladder li { grid-template-columns: minmax(0, 1fr) auto; gap: 0 12px; padding-right: 0; }
  .ro .ac-ladder .seg { grid-column: 1 / -1; margin: 0 0 6px; height: 4px; }
  .ro .ac-ladder .at { justify-self: end; }
  .ro .ac-ladder .story, .ro .ac-ladder .got { grid-column: 1 / -1; }
  .ro .ac-mastery { gap: 8px; padding: 0 8px 10px; }
  .ro .ac-group .ac-fam { background: var(--surface-2); box-shadow: none; }
  .ro .dbf-inv { grid-template-columns: minmax(0, 1fr); }
  .ro .dbf-inv .acts { justify-content: center; }
  .ro .dbf-invite .acts, .ro .dbf-form .acts { justify-content: center; }
  .ro .pf-head { justify-content: center; text-align: center; }
  .ro .pf-head p { justify-content: center; }
}

@media (prefers-reduced-motion: no-preference) {
  html.motion .ro [data-rise] { transition: opacity 620ms var(--ease-out), transform 760ms var(--ease-out); transition-delay: var(--d, 0ms); }
  html.motion .ro [data-rise]:not(.in) { opacity: 0; transform: translateY(18px); }
  html.motion .ro [data-rise] .grow { transform-origin: 0 50%; transition: transform 900ms var(--ease-out); transition-delay: calc(var(--d, 0ms) + 260ms); }
  html.motion .ro [data-rise]:not(.in) .grow { transform: scaleX(0); }
  html.motion .ro [data-rise] .sc-meter .tick { transition: opacity 400ms ease; transition-delay: calc(var(--d, 0ms) + 700ms); }
  html.motion .ro [data-rise]:not(.in) .sc-meter .tick { opacity: 0; }
  html.motion .ro [data-rise] .ap-drawing .b { transition: opacity 180ms linear; transition-delay: calc(var(--d, 0ms) + 200ms + var(--k, 0) / var(--n, 60) * 900ms); }
  html.motion .ro [data-rise]:not(.in) .ap-drawing .b { opacity: 0; }
  html.motion .ro [data-rise] .ap-drawing .ld { transform-box: fill-box; transform-origin: 50% 0; transition: transform 520ms var(--ease-out); transition-delay: calc(var(--d, 0ms) + 1100ms); }
  html.motion .ro [data-rise]:not(.in) .ap-drawing .ld { transform: scaleY(0); }
  html.motion .ro [data-rise] .ap-drawing .lb { transition: opacity 420ms ease; transition-delay: calc(var(--d, 0ms) + 1300ms); }
  html.motion .ro [data-rise]:not(.in) .ap-drawing .lb { opacity: 0; }
  html.motion .ro [data-rise] .rw-drawing rect[style*="var(--accent)"] { transition: transform 700ms var(--ease-out), opacity 500ms ease; transition-delay: calc(var(--d, 0ms) + 380ms); }
  html.motion .ro [data-rise]:not(.in) .rw-drawing rect[style*="var(--accent)"] { transform: translateX(-36px); opacity: 0; }
  html.motion .ro [data-rise] .rw-drawing line[style*="--leader"] { transform-box: fill-box; transform-origin: 50% 0; transition: transform 520ms var(--ease-out); transition-delay: calc(var(--d, 0ms) + 960ms); }
  html.motion .ro [data-rise]:not(.in) .rw-drawing line[style*="--leader"] { transform: scaleY(0); }
  html.motion .ro [data-rise] :is(.db-stage, .pb-stage) .sc { transition: transform 900ms var(--ease-out), opacity 700ms ease; transition-delay: calc(var(--d, 0ms) + 120ms); }
  html.motion .ro [data-rise]:not(.in) :is(.db-stage, .pb-stage) .sc { transform: translateY(26px) scale(0.985); opacity: 0.35; }
  html.motion .ro [data-rise] :is(.st-grades .bar i, .ac-meter i, .ac-tiers .seg i, .ac-ladder .seg i, .st-table .mini i, .lb-parts .fill i) { transform-origin: 0 50%; transition: transform 820ms var(--ease-out); transition-delay: calc(var(--d, 0ms) + 220ms + var(--j, 0) * 70ms); }
  html.motion .ro [data-rise]:not(.in) :is(.st-grades .bar i, .ac-meter i, .ac-tiers .seg i, .ac-ladder .seg i, .st-table .mini i, .lb-parts .fill i) { transform: scaleX(0); }
  html.motion .ro [data-rise] .st-months .col { transform-origin: 50% 100%; transition: transform 760ms var(--ease-out); transition-delay: calc(var(--d, 0ms) + 200ms + var(--j, 0) * 60ms); }
  html.motion .ro [data-rise]:not(.in) :is(.st-months, .st-aplus) .col { transform: scaleY(0); }
  html.motion .ro [data-rise].in .st-period { animation: ro-fade 360ms var(--ease-out) both; }
  html.motion .ro [data-rise].in .st-aplus .col { transform-origin: 50% 100%; animation: ro-grow-up 640ms var(--ease-out) both; animation-delay: calc(200ms + var(--j, 0) * 40ms); }
  html.motion:not(.ro-live) .ro [data-rise]:not(.in),
  html.motion:not(.ro-live) .ro [data-rise]:not(.in) :is(.grow, .b, .ld, .sc, .col, .bar i, .ac-meter i, .seg i, .mini i, .fill i, rect, circle, line) { animation: ro-failsafe 1ms linear 2.5s forwards; }
  html.motion:not(.ro-live) .ro [data-rise]:not(.in) :is(.tick, .lb) { animation: ro-failsafe-o 1ms linear 2.5s forwards; }
  html.motion .ro #portal-main.pt-arrive { animation: ro-fade 320ms var(--ease-out) both; }
  html.motion .ro .rp-sticky { transition: transform 420ms var(--ease-out), opacity 260ms ease; }
  html.motion .ro .portal-sidebar { transition: transform 320ms var(--ease-out), visibility 0s linear 320ms; }
  html.motion .ro .portal-sidebar.is-open { transition: transform 380ms var(--ease-out), visibility 0s; }
}
@keyframes ro-failsafe { to { opacity: 1; transform: none; } }
@keyframes ro-failsafe-o { to { opacity: 1; } }
@keyframes ro-fade { from { opacity: 0; } }
@keyframes ro-grow-up { from { transform: scaleY(0); } }
@keyframes ro-pop { from { opacity: 0; transform: translateY(10px) scale(0.98); } }
