/* Right Track page content. Chrome (sidebar/header/tabs) is untouched.
   Everything here is namespaced .rt-*. Accent atoms (dot, letter pill, bar,
   rings, type scale) are shared; each tab owns its own layout.

   Type scale — used consistently, never ad-hoc:
     segment / card title ... 14.5px / 600
     body ..................... 13px / 400
     meta ..................... 12px / secondary
     micro label (caps) ....... 10.5px / 600 / 0.4px
     big numbers: KPI 26 · course 22 · statcell 19 · solver 21
   Page gutter = 28px (the site rule). Deadlines is the one exception: a flat,
   edge-to-edge dashboard list at a 20px inset.

   Loaded AFTER page.css, so the few selectors the native chrome also defines
   (.rt-flag, .rt-calc-grid) resolve to these rules. The page body is wrapped
   in .rt-page (not the chrome's .right-track-page), so the chrome's scoped
   .right-track-page rules never touch this markup. */

.rt-page {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  background: #fdfdfd;
  font-family: var(--font-app);
  color: var(--text-primary);
}
.rt-wrap { padding: 16px 28px 52px; }

/* ───────────────────────── shared accent atoms ───────────────────────── */

.rt-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; display: inline-block; }
.rt-dot.is-sm { width: 8px; height: 8px; }

.rt-letter {
  display: inline-flex;
  align-items: center;
  height: 19px;
  padding: 0 7px;
  border-radius: 5px;
  font-size: 11.5px;
  font-weight: 600;
  line-height: 1;
  vertical-align: 1px;
}
.rt-letter.is-a { background: #ecfdf5; color: #047857; }
.rt-letter.is-b { background: #e0ecff; color: #1e5aad; }
.rt-letter.is-c { background: #fef3cd; color: #92600a; }
.rt-letter.is-d { background: #fff3e0; color: #c2630a; }
.rt-letter.is-f { background: #fde8e8; color: #b91c1c; }
.rt-letter.is-none { background: #f0f0f0; color: #6b6b6b; }

.rt-ring { width: 16px; height: 16px; flex: 0 0 auto; }
.rt-ring.is-done { color: #22c55e; }
.rt-ring.is-progress { color: #e8893c; }
.rt-ring.is-pending { color: #a78bfa; }
.rt-ring.is-overdue { color: #ef4444; }
.rt-ring.is-todo { color: #c9c9c9; }

.rt-flag { width: 13px; height: 13px; flex: 0 0 auto; }
.rt-flag-urgent, .rt-flag-high { color: #ef4444; }
.rt-flag-medium { color: #e8893c; }
.rt-flag-low { color: #3b82f6; }
.rt-flag-none { color: #d4d4d4; }

.rt-prio {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 11.5px;
  font-weight: 500;
  white-space: nowrap;
}
.rt-prio-urgent, .rt-prio-high { background: #fee2e2; color: #dc2626; }
.rt-prio-medium { background: #fef3c7; color: #d97706; }
.rt-prio-low { background: #dbeafe; color: #2563eb; }
.rt-prio-none { background: #ececec; color: #737373; }

.rt-offerpill {
  display: inline-flex;
  align-items: center;
  height: 22px;
  padding: 0 9px;
  border: 1px solid #eeeeee;
  border-radius: 999px;
  background: #fff;
  font-size: 11.5px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}
.rt-offerpill.is-sm { height: 20px; padding: 0 8px; font-size: 11px; }
.rt-offerpill.is-ontrack, .rt-offerpill.is-met { border-color: #cfe5e2; background: #f6fbfa; color: #2f746f; }
.rt-offerpill.is-risk { border-color: #efd6bd; background: #fbfbfb; color: #9a6226; }
.rt-offerpill.is-below { border-color: #f0c0c0; background: #fef0f0; color: #c0392b; }

.rt-bar { display: block; position: relative; height: 5px; border-radius: 999px; background: #ececec; overflow: visible; }
.rt-bar-fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 999px; background: #1a1a1a; transition: width 0.2s ease; }
.rt-bar-thresh { position: absolute; top: -1.5px; width: 1.5px; height: 8px; background: #b3b3b3; }
.rt-bar-marker { position: absolute; top: 50%; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: #1a1a1a; border: 1.5px solid #fff; box-shadow: 0 0 0 1px #1a1a1a; }

.rt-tbd { color: var(--text-muted); font-style: italic; }
.rt-note { display: block; font-size: 10.5px; color: #b45309; white-space: nowrap; margin-top: 1px; }
.rt-empty-row { padding: 14px 2px; font-size: 12.5px; color: var(--text-muted); }
.rt-num { text-align: right; }

.rt-seg { display: flex; align-items: baseline; gap: 9px; margin: 26px 0 12px; }
.rt-seg-title { font-size: 14.5px; font-weight: 600; color: #1f1f1f; }
.rt-seg-count { font-size: 11px; color: #696969; background: #eeeeee; border-radius: 999px; padding: 1px 7px; }
.rt-seg-meta { margin-left: auto; font-size: 12px; color: var(--text-muted); }

/* ──────────────────────────── Overview ──────────────────────────── */

.rt-toolbar { display: flex; align-items: center; min-height: 22px; margin-bottom: 14px; }
.rt-toolbar-note { font-size: 12.5px; color: var(--text-secondary); }

.rt-offer {
  display: grid;
  grid-template-columns: 138px minmax(0, 1fr) 226px;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 12px;
  box-shadow: 0 1px 2px rgba(20, 20, 20, 0.04), 0 8px 22px rgba(20, 20, 20, 0.045);
  overflow: hidden;
}
.rt-offer-gauge { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; padding: 18px 10px; }
.rt-offer-gauge-cap { font-size: 10.5px; color: var(--text-muted); white-space: nowrap; }
.rt-donut { width: 90px; height: 90px; }
.rt-donut-track { fill: none; stroke: #ececec; stroke-width: 7; }
.rt-donut-val { fill: none; stroke-width: 7; stroke-linecap: round; }
.rt-donut.is-on_track .rt-donut-val, .rt-donut.is-met .rt-donut-val { stroke: #22a35a; }
.rt-donut.is-at_risk .rt-donut-val { stroke: #e8893c; }
.rt-donut.is-not_meeting .rt-donut-val { stroke: #ef4444; }
.rt-donut-tick { stroke: #2c2c2c; stroke-width: 2; }
.rt-donut-num { fill: var(--text-primary); font-family: var(--font-app); font-size: 21px; font-weight: 600; text-anchor: middle; }
.rt-donut-pct { font-size: 12px; fill: var(--text-secondary); }
.rt-donut-lbl { fill: var(--text-muted); font-family: var(--font-app); font-size: 8px; font-weight: 600; letter-spacing: 0.5px; text-anchor: middle; text-transform: uppercase; }

.rt-offer-mid { padding: 17px 22px; border-left: 1px solid var(--border-light); min-width: 0; }
.rt-offer-head { display: flex; align-items: center; gap: 10px; }
.rt-offer-title { font-size: 16px; font-weight: 600; letter-spacing: -0.1px; }
.rt-offer-sub { margin-top: 5px; font-size: 12.5px; color: var(--text-secondary); }
.rt-offer-via { color: var(--text-muted); }
.rt-offer-conds { margin-top: 13px; display: flex; flex-direction: column; gap: 8px; }
.rt-cond { display: flex; align-items: center; gap: 9px; font-size: 12.5px; }
.rt-cond-mark { width: 16px; height: 16px; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; color: #22a35a; }
.rt-cond.is-bad .rt-cond-mark { color: #dc2626; }
.rt-cond-mark svg { width: 15px; height: 15px; }
.rt-cond-label { color: var(--text-primary); }
.rt-cond-value { margin-left: auto; color: var(--text-muted); white-space: nowrap; }

.rt-offer-need { display: flex; flex-direction: column; justify-content: center; padding: 17px 22px; border-left: 1px solid var(--border-light); background: #fcfcfc; }
.rt-offer-need-label { font-size: 11.5px; color: var(--text-secondary); }
.rt-offer-need-value { font-size: 30px; font-weight: 650; letter-spacing: -0.5px; line-height: 1.05; margin: 3px 0 2px; }
.rt-offer-need-sub { font-size: 11.5px; color: var(--text-muted); line-height: 1.4; }
.rt-offer-need-foot { display: flex; align-items: center; gap: 5px; margin-top: 11px; padding-top: 10px; border-top: 1px solid var(--border-light); font-size: 11.5px; color: var(--text-secondary); }
.rt-clock { width: 13px; height: 13px; flex: 0 0 auto; }

/* KPI tiles — larger scale for five across */
.rt-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.rt-kpi { position: relative; background: #fff; border: 1px solid #e5e5e5; border-radius: 11px; box-shadow: 0 1px 2px rgba(20, 20, 20, 0.04), 0 6px 18px rgba(20, 20, 20, 0.035); padding: 15px 17px 14px; min-width: 0; }
.rt-kpi-label { display: flex; align-items: center; gap: 5px; font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.4px; color: var(--text-secondary); }
.rt-info { width: 12px; height: 12px; color: var(--text-muted); opacity: 0.7; }
.rt-kpi-value { display: flex; align-items: center; gap: 7px; font-size: 26px; font-weight: 650; letter-spacing: -0.4px; line-height: 1.1; margin-top: 6px; font-variant-numeric: tabular-nums; }
.rt-kpi-ratio { display: inline-flex; align-items: baseline; gap: 6px; }
.rt-kpi-ratio strong { font: inherit; }
.rt-kpi-ratio span { color: #8b8b8b; font-weight: 520; }
.rt-kpi-ratio em { font-style: normal; color: #636363; font-weight: 560; font-size: 0.82em; }
.rt-kpi-sub { display: block; font-size: 11.5px; color: var(--text-muted); margin-top: 4px; }
.rt-kpi.has-tip { cursor: default; }
.rt-kpi.has-tip::after {
  content: attr(data-tip);
  position: absolute;
  left: 16px; right: 16px; bottom: calc(100% - 2px);
  background: #2a2a2a; color: #fff;
  font-size: 11px; font-weight: 400; line-height: 1.4; letter-spacing: 0;
  text-transform: none;
  padding: 8px 10px; border-radius: 7px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.18);
  opacity: 0; transform: translateY(4px); pointer-events: none;
  transition: opacity 0.14s, transform 0.14s;
  z-index: 20;
}
.rt-kpi.has-tip:hover::after { opacity: 1; transform: translateY(0); }

/* course cards (lifted from Course Compass), four per row */
.rt-cc-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 13px; }
.rt-cc {
  background: #fff; border: 1px solid #e5e5e5; border-radius: 10px; padding: 14px;
  cursor: pointer; min-width: 0; position: relative;
  box-shadow: 0 1px 2px rgba(20, 20, 20, 0.04), 0 6px 18px rgba(20, 20, 20, 0.035);
  transition: box-shadow 0.16s, border-color 0.16s, transform 0.16s;
}
.rt-cc:hover { transform: translateY(-1px); box-shadow: 0 2px 5px rgba(20, 20, 20, 0.07), 0 12px 28px rgba(20, 20, 20, 0.075); border-color: #dddddd; }
.rt-cc-top { display: flex; align-items: center; gap: 8px; min-width: 0; }
.rt-cc-code { font-size: 13.5px; font-weight: 600; flex: 0 0 auto; }
.rt-cc-title { flex: 1 1 auto; min-width: 0; font-size: 13px; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-cc-meta { font-size: 11.5px; color: var(--text-secondary); margin-top: 5px; }
.rt-cc-grade { display: flex; align-items: center; gap: 8px; margin-top: 13px; }
.rt-cc-pct { font-size: 22px; font-weight: 600; line-height: 1; font-variant-numeric: tabular-nums; }
.rt-cc-below { height: 19px; display: inline-flex; align-items: center; padding: 0 7px; border-radius: 5px; background: #fde8e8; color: #b91c1c; font-size: 11px; font-weight: 500; }
.rt-cc-prog { margin-top: 13px; }
.rt-cc-prog-row { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; font-size: 11.5px; color: var(--text-secondary); margin-top: 7px; }
.rt-cc-next { display: flex; align-items: center; gap: 7px; margin-top: 12px; padding-top: 11px; border-top: 1px solid var(--border-light); min-width: 0; font-size: 12px; }
.rt-cc-next-label { flex: 0 0 auto; font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.4px; color: var(--text-muted); }
.rt-cc-next-name { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-cc-next-none { color: var(--text-muted); }
.rt-cc-next-date { flex: 0 0 auto; color: var(--text-secondary); white-space: nowrap; }
.rt-cc-next-date.is-overdue { color: #b91c1c; font-weight: 500; }
.rt-cc-next-date.is-urgent { color: #c2630a; font-weight: 500; }
.rt-cc-next-date.is-soon { color: #c2630a; }

/* split: upcoming deadlines | signals */
.rt-split { display: grid; grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr); gap: 0; }
.rt-split-col { min-width: 0; padding: 0 4px; }
.rt-split-col:first-child { padding-left: 0; padding-right: 26px; }
.rt-split-col:last-child { padding-left: 26px; padding-right: 0; }
.rt-split-rule { background: var(--border-light); }

.rt-up-list { display: flex; flex-direction: column; gap: 3px; }
.rt-up { display: flex; align-items: center; gap: 11px; padding: 8px 11px; border-radius: 9px; border: 1px solid transparent; transition: background 0.12s, border-color 0.12s; }
.rt-up:hover { background: #f8f8f8; border-color: #eeeeee; }
.rt-up-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.rt-up-type { font-size: 11px; color: var(--text-muted); }
.rt-up-name { font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-up-weight { flex: 0 0 auto; font-size: 12px; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.rt-up-due { flex: 0 0 64px; text-align: right; font-size: 12px; color: var(--text-secondary); white-space: nowrap; }
.rt-up-due.is-overdue { color: #dc2626; font-weight: 600; }
.rt-up-due.is-urgent { color: #dc2626; font-weight: 500; }
.rt-up-due.is-soon { color: #d97706; }
.rt-up-course { flex: 0 0 auto; display: inline-flex; }

.rt-overview-pair {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 1px minmax(0, 1fr);
  gap: 0;
  align-items: start;
  margin-top: 18px;
}
.rt-overview-pane { min-width: 0; }
.rt-overview-pane:first-child { padding-right: 24px; }
.rt-overview-pane:last-child { padding-left: 24px; }
.rt-overview-signals { margin-top: 0; }
.rt-overview-signals .rt-seg { margin-top: 0; min-height: 46px; align-items: center; }

/* Compact Ref2-informed board, translated back into Right Track's overview scale. */
.rt-board {
  position: relative;
  margin-top: 0;
  background: #fff;
  border: 1px solid #e5e5e5;
  border-radius: 11px;
  box-shadow: 0 1px 2px rgba(20, 20, 20, 0.04), 0 6px 18px rgba(20, 20, 20, 0.035);
  overflow: visible;
}
.rt-board-head {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  min-height: 46px;
  padding: 0 12px 0 14px;
  border-bottom: 1px solid var(--border-light);
}
.rt-board-titlebar { display: flex; align-items: center; gap: 7px; min-width: 0; }
.rt-board-appicon {
  width: 17px;
  height: 17px;
  border-radius: 4px;
  object-fit: cover;
  box-shadow: 0 1px 1px rgba(20, 20, 20, 0.08);
}
.rt-board-name {
  min-width: 0;
  font-size: 13.5px;
  font-weight: 600;
  color: #141414;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rt-board-globe {
  width: 14px;
  height: 14px;
  color: #151515;
  flex: 0 0 auto;
}
.rt-board-total {
  display: inline-flex;
  align-items: center;
  height: 18px;
  padding: 0 6px;
  border-radius: 5px;
  background: #f0f0f0;
  color: #232323;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}
.rt-board-tools {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  min-width: 0;
  flex-wrap: nowrap;
}
.rt-board-tool,
.rt-board-iconbtn,
.rt-board-menu-item {
  font-family: var(--font-app);
  color: #1f1f1f;
}
.rt-board-tool {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  height: 24px;
  padding: 0 8px;
  border: 1px solid #e3e3e3;
  border-radius: 7px;
  background: #fff;
  font-size: 11.5px;
  line-height: 1;
  cursor: pointer;
  white-space: nowrap;
}
.rt-board-tool:hover,
.rt-board-iconbtn:hover { background: #f7f7f7; }
.rt-board-tool.is-active { background: #f1f1f1; border-color: #dbdbdb; }
.rt-board-tool svg {
  width: 12px;
  height: 12px;
  flex: 0 0 auto;
}
.rt-board-more { position: relative; display: inline-flex; }
.rt-board-iconbtn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 999px;
  background: transparent;
  cursor: pointer;
}
.rt-board-iconbtn.is-active { color: #151515; background: #f0f0f0; border-color: #e2e2e2; }
.rt-board-iconbtn svg { width: 14px; height: 14px; }
.rt-board-menu {
  position: absolute;
  right: 0;
  top: calc(100% + 8px);
  z-index: 80;
  width: 190px;
  padding: 6px;
  border: 1px solid #dddddd;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 12px 28px rgba(20, 20, 20, 0.14);
}
.rt-board-menu-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  min-height: 31px;
  padding: 0 9px;
  border: 0;
  border-radius: 7px;
  background: transparent;
  font-size: 12.5px;
  text-align: left;
  cursor: pointer;
}
.rt-board-menu-item:hover,
.rt-board-menu-item.is-active { background: #f4f4f4; }
.rt-board-menu-item svg,
.rt-menu-empty {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
}
.rt-board-body {
  max-height: 390px;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0 0 8px;
  scrollbar-width: thin;
  scrollbar-color: #d7d7d7 transparent;
}
.rt-board-body::-webkit-scrollbar { width: 6px; }
.rt-board-body::-webkit-scrollbar-thumb { background: #d7d7d7; border-radius: 999px; }
.rt-board-seg { border-bottom: 1px solid #ebebeb; }
.rt-board-seg:last-child { border-bottom: none; }
.rt-board-seg-head {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  padding: 0 14px;
}
.rt-board-seg-dot {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  flex: 0 0 auto;
}
.rt-board-seg-title {
  font-size: 12.5px;
  font-weight: 600;
  color: #232323;
  letter-spacing: 0;
}
.rt-board-count {
  display: inline-flex;
  align-items: center;
  height: 18px;
  padding: 0 6px;
  border-radius: 5px;
  background: #f3f3f3;
  color: #424242;
  font-size: 10.5px;
  font-variant-numeric: tabular-nums;
}
.rt-board-weight { font-size: 11px; color: var(--text-muted); }
.rt-board-seg-actions {
  display: inline-flex;
  align-items: center;
  gap: 3px;
  margin-left: auto;
}
.rt-board-rows {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 0 10px 12px;
}
.rt-board-row {
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr) 34px 78px 54px 11px;
  align-items: center;
  column-gap: 8px;
  min-height: 35px;
  padding: 0 10px;
  border: 1px solid #e8e8e8;
  border-radius: 8px;
  background: #fff;
  box-shadow: none;
}
.rt-board-row:hover { background: #fbfbfb; border-color: #d7d7d7; }
.rt-board-row.is-done .rt-board-title { color: var(--text-secondary); }
.rt-board-status,
.rt-board-mini {
  display: inline-flex;
  align-items: center;
}
.rt-board-status .rt-ring { width: 18px; height: 18px; }
.rt-board-title {
  min-width: 0;
  font-size: 12.5px;
  font-weight: 500;
  color: #151515;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.rt-board-mini {
  gap: 5px;
  color: #8a8a8a;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}
.rt-board-mini svg { width: 12px; height: 12px; }
.rt-board-tag {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  height: 21px;
  padding: 0 7px;
  border: 1px solid #dfdfdf;
  border-radius: 6px;
  color: #212121;
  background: #fff;
  font-size: 10.5px;
  font-weight: 520;
  white-space: nowrap;
}
.rt-board-date {
  justify-self: end;
  color: #282828;
  font-size: 12px;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
}
.rt-board-date.is-overdue { color: #dc2626; font-weight: 560; }
.rt-board-date.is-urgent { color: #dc2626; font-weight: 540; }
.rt-board-date.is-soon { color: #d97706; }
.rt-board-date.is-muted { color: var(--text-muted); }
.rt-board-avatar {
  justify-self: end;
  width: 11px;
  height: 11px;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #fff;
}
.rt-board-empty {
  padding: 16px;
  color: var(--text-muted);
  font-size: 12.5px;
}
.rt-board-foot {
  padding: 0 14px 12px;
  color: var(--text-muted);
  font-size: 11.5px;
}

.rt-sig-list { display: flex; flex-direction: column; }
.rt-sig { display: flex; gap: 11px; padding: 11px 2px; border-bottom: 1px solid var(--border-light); }
.rt-sig:last-child { border-bottom: none; }
.rt-sig-icon { flex: 0 0 auto; width: 26px; height: 26px; border-radius: 7px; display: inline-flex; align-items: center; justify-content: center; }
.rt-sig-icon svg { width: 15px; height: 15px; }
.rt-sig-icon.is-warn { background: #fff6ec; color: #d97706; }
.rt-sig-icon.is-info { background: #f1edfe; color: #6d4ed6; }
.rt-sig-icon.is-muted { background: #f2f2f2; color: #8a8a8a; }
.rt-sig-body { flex: 1 1 auto; min-width: 0; }
.rt-sig-top { display: flex; align-items: center; gap: 7px; }
.rt-sig-course { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 500; color: var(--text-secondary); }
.rt-sig-top .rt-flag { margin-left: auto; }
.rt-sig-text { display: block; font-size: 12.5px; line-height: 1.45; color: var(--text-primary); margin-top: 3px; }
.rt-sig-text strong { font-weight: 600; }

/* ──────────────────────── Course Details ──────────────────────── */

.rt-picker { display: flex; align-items: center; gap: 6px; }
.rt-chip { display: inline-flex; align-items: center; gap: 7px; height: 28px; padding: 0 12px; border: 1px solid var(--border); border-radius: 8px; background: #fff; font-family: var(--font-app); font-size: 12.5px; font-weight: 550; color: var(--text-primary); cursor: pointer; }
.rt-chip:hover { background: #f7f7f7; }
.rt-chip.is-active { background: #f3f3f3; border-color: #d8d8d8; }
.rt-picker-title { margin-left: 10px; font-size: 12.5px; color: var(--text-secondary); }

.rt-statband { display: flex; margin-top: 16px; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.rt-statcell { flex: 1 1 0; min-width: 0; padding: 13px 18px 13px 0; }
.rt-statcell + .rt-statcell { padding-left: 18px; border-left: 1px solid var(--border-light); }
.rt-statcell-label { display: block; font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.4px; color: var(--text-secondary); }
.rt-statcell-value { display: flex; align-items: center; gap: 7px; font-size: 19px; font-weight: 650; letter-spacing: -0.2px; margin-top: 5px; font-variant-numeric: tabular-nums; }
.rt-statcell-sub { display: block; font-size: 11px; color: var(--text-muted); margin-top: 3px; }

.rt-rule-row { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; margin-top: 14px; }
.rt-rule-chip { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 10px; border: 1px solid var(--border); border-radius: 7px; background: #fff; font-size: 11.5px; color: var(--text-secondary); }
.rt-rule-chip.is-ok { color: #2f746f; border-color: #d6e9e6; background: #f6fbfa; }
.rt-rule-chip.is-review { color: #9a6226; border-color: #efd6bd; background: #fbfbfb; }
.rt-mini { width: 12.5px; height: 12.5px; flex: 0 0 auto; }

.rt-cat { display: flex; align-items: center; gap: 9px; height: 30px; margin-top: 12px; }
.rt-cat-name { font-size: 10.5px; font-weight: 600; letter-spacing: 0.6px; text-transform: uppercase; color: var(--text-secondary); white-space: nowrap; }
.rt-cat-rule { font-size: 11px; color: #b45309; white-space: nowrap; }
.rt-cat-line { flex: 1; height: 1px; background: var(--border-light); }

.rt-atable { margin-top: 2px; }
.rt-acolhead, .rt-arow { display: grid; grid-template-columns: 124px minmax(210px, 1fr) 128px 58px 118px 78px 70px 60px; align-items: center; column-gap: 10px; }
.rt-acolhead { height: 30px; border-bottom: 1px solid var(--border); font-size: 11px; color: var(--text-muted); }
.rt-arow { min-height: 40px; border-bottom: 1px solid var(--border-light); font-size: 13px; }
.rt-arow:hover { background: #f8f8f8; }
.rt-arow.is-dropped .rt-arow-name, .rt-arow.is-dropped .rt-arow-pct { color: var(--text-muted); }
.rt-arow-type { font-size: 11.5px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-arow-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-arow-due { font-size: 12px; color: var(--text-secondary); white-space: nowrap; }
.rt-arow-worth, .rt-arow-pct, .rt-arow-drop { font-size: 12.5px; text-align: right; padding-right: 6px; font-variant-numeric: tabular-nums; }
.rt-arow-pct, .rt-arow-drop { color: var(--text-secondary); }
.rt-arow-stamp { font-size: 11px; color: var(--text-muted); white-space: nowrap; }
.rt-arow-grade { display: inline-flex; align-items: center; gap: 5px; }

.rt-input { width: 52px; height: 25px; padding: 0 7px; border: 1px solid var(--border); border-radius: 6px; background: #fff; font-family: var(--font-app); font-size: 12.5px; color: var(--text-primary); text-align: right; font-variant-numeric: tabular-nums; }
.rt-input::placeholder { color: #c6c6c6; }
.rt-input:focus { outline: none; border-color: #b9b9b9; }
.rt-input.is-pending { color: #7c5cd6; font-weight: 600; }
.rt-input.is-invalid { border-color: #ef4444; color: #dc2626; }
.rt-of { font-size: 11px; color: var(--text-muted); white-space: nowrap; }

.rt-scale { display: flex; flex-wrap: wrap; gap: 6px; }
.rt-scale-chip { display: inline-flex; align-items: center; gap: 5px; height: 24px; padding: 0 9px; border: 1px solid transparent; border-radius: 6px; font-size: 11px; font-variant-numeric: tabular-nums; }
.rt-scale-chip.is-a { background: #f3faf6; color: #3a7d63; }
.rt-scale-chip.is-b { background: #f1f5fd; color: #3d6098; }
.rt-scale-chip.is-c { background: #fafafa; color: #8a6a2c; }
.rt-scale-chip.is-d { background: #f8f8f8; color: #9a6433; }
.rt-scale-chip.is-f { background: #fdf2f2; color: #a14848; }
.rt-scale-chip strong { font-weight: 650; }
.rt-scale-chip.is-current { outline: 1.5px solid #c8c8c8; }

/* ──────────────────────────── Forecast ──────────────────────────── */

.rt-scenario-row { display: flex; align-items: center; gap: 6px; }
.rt-scenario-pill { display: inline-flex; align-items: center; height: 28px; padding: 0 14px; border: 1px solid var(--border); border-radius: 8px; background: #fff; font-family: var(--font-app); font-size: 12.5px; font-weight: 500; color: var(--text-primary); cursor: pointer; white-space: nowrap; }
.rt-scenario-pill:hover { background: #f7f7f7; }
.rt-scenario-pill.is-active { background: #1a1a1a; border-color: #1a1a1a; color: #fff; }
.rt-scenario-note { margin-left: 10px; font-size: 11.5px; color: var(--text-muted); }

.rt-compare { margin-top: 16px; border: 1px solid #e5e5e5; border-radius: 11px; background: #fff; overflow: hidden; box-shadow: 0 1px 2px rgba(20, 20, 20, 0.03); }
.rt-compare-row { display: grid; grid-template-columns: 168px repeat(4, 1fr); align-items: center; min-height: 38px; border-bottom: 1px solid var(--border-light); font-size: 12.5px; }
.rt-compare-row:last-child { border-bottom: none; }
.rt-compare-row > span { padding: 0 16px; }
.rt-compare-row > span:first-child { color: var(--text-secondary); border-right: 1px solid var(--border-light); align-self: stretch; display: flex; align-items: center; }
.rt-compare-row.is-head { background: #fafafa; min-height: 32px; font-size: 11px; text-transform: uppercase; letter-spacing: 0.4px; font-weight: 600; color: var(--text-secondary); }
.rt-compare-row > span.is-active { background: #f6f6f6; }
.rt-compare-row i { font-style: normal; color: var(--text-muted); font-size: 11px; margin-left: 4px; }
.rt-compare-row [data-rt-bind] { font-variant-numeric: tabular-nums; }

.rt-fgroups { border-top: 1px solid var(--border-light); }
.rt-fgroup { border-bottom: 1px solid var(--border-light); padding-bottom: 6px; }
.rt-fhead { display: flex; align-items: center; gap: 11px; height: 48px; }
.rt-cc-code { font-size: 13.5px; font-weight: 600; }
.rt-fhead-title { font-size: 13px; color: var(--text-secondary); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-fhead-range { flex: 0 0 150px; margin-left: auto; }
.rt-fhead-proj { flex: 0 0 auto; font-size: 12px; color: var(--text-muted); white-space: nowrap; display: inline-flex; align-items: center; gap: 6px; }
.rt-fhead-proj strong { font-size: 14px; font-weight: 650; color: var(--text-primary); }

.rt-frow { display: grid; grid-template-columns: 124px minmax(210px, 1fr) 96px 58px 112px 64px; align-items: center; column-gap: 10px; min-height: 38px; border-top: 1px solid var(--border-light); font-size: 13px; }
.rt-frow:first-of-type { border-top: none; }
.rt-frow.is-dropped .rt-frow-name, .rt-frow.is-dropped .rt-frow-pct { color: var(--text-muted); }
.rt-frow-type { font-size: 11.5px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-frow-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-frow-due { font-size: 12px; color: var(--text-secondary); white-space: nowrap; }
.rt-frow-worth, .rt-frow-pct { font-size: 12.5px; text-align: right; padding-right: 6px; color: var(--text-secondary); font-variant-numeric: tabular-nums; }
.rt-frow-grade { display: inline-flex; align-items: center; gap: 5px; }
.rt-blank { color: var(--text-muted); padding-right: 26px; }

/* ──────────────────────────── Deadlines (flat exception) ──────────────────────────── */

.rt-dl { font-family: var(--font-app); }
.rt-dl-meta { display: flex; align-items: center; padding: 11px 20px; font-size: 12px; color: var(--text-secondary); border-bottom: 1px solid var(--border-light); }
.rt-dl-meta-right { margin-left: auto; color: var(--text-muted); }

.rt-dl-head { display: flex; align-items: center; gap: 9px; padding: 8px 20px; background: #fafafa; border-bottom: 1px solid var(--border); position: sticky; top: 0; z-index: 5; }
.rt-dl-head.is-current { background: #f8f8f8; }
.rt-dl-statusdot { width: 14px; height: 14px; border-radius: 50%; flex: 0 0 auto; }
.rt-dl-headname { font-size: 13px; font-weight: 600; }
.rt-dl-count { font-size: 11.5px; color: #696969; background: #efefef; border-radius: 4px; padding: 1px 7px; }
.rt-now { font-size: 10.5px; font-weight: 650; letter-spacing: 0.4px; text-transform: uppercase; color: #d97706; }
.rt-reading { font-size: 11.5px; color: #8a7ab8; }
.rt-dl-headmeta { margin-left: auto; font-size: 11.5px; color: var(--text-muted); }

.rt-dl-colhead, .rt-dl-row { display: grid; grid-template-columns: 20px 116px minmax(220px, 1fr) 92px 96px 130px 116px; align-items: center; column-gap: 10px; padding: 0 20px; }
.rt-dl-colhead { height: 28px; border-bottom: 1px solid var(--border-light); background: #fff; font-size: 11px; color: var(--text-muted); }
.rt-dl-colhead .rt-num, .rt-dl-row .rt-dl-days { text-align: left; }
.rt-dl-row { height: 42px; border-bottom: 1px solid var(--border-light); font-size: 13px; }
.rt-dl-row:hover { background: #fafafa; }
.rt-dl.is-compact .rt-dl-row { height: 33px; }
.rt-dl-row.is-done .rt-dl-name { color: var(--text-secondary); }
.rt-dl-type { font-size: 11.5px; color: var(--text-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-dl-name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-dl-days { font-size: 12.5px; color: var(--text-secondary); white-space: nowrap; font-variant-numeric: tabular-nums; }
.rt-dl-days.is-overdue { color: #dc2626; font-weight: 600; }
.rt-dl-days.is-urgent { color: #dc2626; font-weight: 500; }
.rt-dl-days.is-soon { color: #d97706; }
.rt-dl-days.is-done { color: #16a34a; }
.rt-dl-days.is-pending { color: #7c5cd6; }
.rt-dl-days.is-muted { color: var(--text-muted); }
.rt-dl-due { font-size: 12.5px; color: var(--text-secondary); white-space: nowrap; }
.rt-dl-course { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--text-secondary); white-space: nowrap; }

.rt-dl-thin { display: flex; align-items: center; gap: 12px; height: 30px; padding: 0 20px; border-bottom: 1px solid var(--border-light); background: #fff; }
.rt-dl-thin > span:first-child { font-size: 11.5px; color: var(--text-muted); }
.rt-dl-none { font-size: 11.5px; color: #c9c9c9; font-style: italic; }
.rt-dl-thin.is-reading { background: #fafafa; }

/* ──────────────────────────── Calculator ──────────────────────────── */

.rt-calc-grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, 1fr); gap: 14px; align-items: start; }
.rt-calc-card { background: #fff; border: 1px solid #e5e5e5; border-radius: 11px; padding: 2px 18px 16px; box-shadow: 0 1px 2px rgba(20, 20, 20, 0.03), 0 6px 18px rgba(20, 20, 20, 0.03); }
.rt-calc-card .rt-seg { margin-top: 14px; }
.rt-calc-side { display: flex; flex-direction: column; gap: 14px; }
.rt-calc-scopes { display: flex; flex-wrap: wrap; gap: 6px; }
.rt-calc-target { display: flex; align-items: center; gap: 8px; margin-top: 14px; }
.rt-calc-target-label { font-size: 12px; color: var(--text-secondary); }
.rt-calc-target-input { width: 62px; height: 27px; font-size: 13px; }
.rt-calc-fixed { font-size: 12.5px; }
.rt-calc-letters { display: inline-flex; gap: 4px; margin-left: 6px; }
.rt-letter-btn { height: 23px; min-width: 28px; padding: 0 6px; border: 1px solid var(--border); border-radius: 5px; background: #fff; font-family: var(--font-app); font-size: 11px; font-weight: 600; color: var(--text-secondary); cursor: pointer; }
.rt-letter-btn:hover { background: #f7f7f7; }
.rt-letter-btn.is-active { background: #f3f3f3; color: var(--text-primary); border-color: #d8d8d8; }

.rt-solver-out { display: flex; align-items: flex-start; gap: 12px; margin-top: 16px; padding: 14px 16px; border: 1px solid var(--border-light); border-radius: 9px; background: #fafafa; }
.rt-solver-mark { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; margin-top: 1px; }
.rt-solver-mark svg { width: 14px; height: 14px; }
.rt-solver-big { font-size: 21px; font-weight: 650; letter-spacing: -0.3px; line-height: 1.1; }
.rt-solver-sub { font-size: 12px; color: var(--text-secondary); margin-top: 3px; max-width: 480px; line-height: 1.45; }
.rt-solver-out.is-ok { background: #f3faf5; border-color: #dcefe0; }
.rt-solver-out.is-ok .rt-solver-mark { background: #dcf3e3; color: #1f9d57; }
.rt-solver-out.is-secured { background: #f3faf4; border-color: #dcefe0; }
.rt-solver-out.is-secured .rt-solver-mark { background: #dcf3e3; color: #1f9d57; }
.rt-solver-out.is-stretch { background: #fffaef; border-color: #f1dfba; }
.rt-solver-out.is-stretch .rt-solver-mark { background: #fbeccb; color: #c2630a; }
.rt-solver-out.is-bad { background: #fef4f3; border-color: #f3d8d5; }
.rt-solver-out.is-bad .rt-solver-mark { background: #fbdedb; color: #c0392b; }

.rt-solver-percourse { margin-top: 14px; border-top: 1px solid var(--border-light); }
.rt-solver-courserow { display: flex; align-items: center; gap: 9px; min-height: 38px; border-bottom: 1px solid var(--border-light); font-size: 12.5px; }
.rt-solver-coursereq { color: var(--text-secondary); }
.rt-solver-rowmark { margin-left: auto; width: 16px; height: 16px; display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; }
.rt-solver-rowmark.is-ok { color: #22a35a; }
.rt-solver-rowmark.is-bad { color: #d97706; }
.rt-solver-rowmark svg { width: 14px; height: 14px; }

.rt-solver-breakdown { margin-top: 14px; }
.rt-solver-minihead, .rt-solver-itemrow { display: grid; grid-template-columns: minmax(0, 1fr) 64px 130px; align-items: center; column-gap: 10px; }
.rt-solver-minihead { height: 26px; font-size: 11px; color: var(--text-muted); border-bottom: 1px solid var(--border); }
.rt-solver-itemrow { min-height: 36px; border-bottom: 1px solid var(--border-light); font-size: 12.5px; }
.rt-solver-itemtitle { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-solver-min { font-weight: 600; font-variant-numeric: tabular-nums; }
.rt-solver-note { margin-top: 9px; font-size: 11.5px; color: var(--text-muted); }

.rt-lookup-row { display: flex; align-items: center; gap: 9px; }
.rt-lookup-input { width: 64px; height: 27px; font-size: 13px; }
.rt-lookup-arrow { color: var(--text-muted); }
.rt-lookup-band { font-size: 11.5px; color: var(--text-muted); }

.rt-lever-list { display: flex; flex-direction: column; }
.rt-lever { display: flex; align-items: center; gap: 9px; height: 37px; border-bottom: 1px solid var(--border-light); font-size: 12.5px; }
.rt-lever:last-child { border-bottom: none; }
.rt-lever-name { flex: 1 1 auto; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rt-lever-course { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--text-secondary); }
.rt-lever-bar { flex: 0 0 70px; height: 4px; background: #efefef; border-radius: 2px; overflow: hidden; }
.rt-lever-bar i { display: block; height: 100%; border-radius: 2px; }
.rt-lever-gain { flex: 0 0 50px; text-align: right; font-size: 11.5px; color: var(--text-secondary); font-variant-numeric: tabular-nums; }

/* ──────────────────────────── responsive ──────────────────────────── */

@media (max-width: 1320px) {
  .rt-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rt-cc-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .rt-calc-grid { grid-template-columns: 1fr; }
}
@media (max-width: 1080px) {
  .rt-cc-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rt-offer { grid-template-columns: 1fr; }
  .rt-offer-mid, .rt-offer-need { border-left: none; border-top: 1px solid var(--border-light); }
  .rt-split { grid-template-columns: 1fr; }
  .rt-split-rule { display: none; }
  .rt-split-col, .rt-split-col:first-child, .rt-split-col:last-child { padding: 0; }
  .rt-overview-pair { grid-template-columns: 1fr; row-gap: 18px; }
  .rt-overview-pane:first-child,
  .rt-overview-pane:last-child { padding: 0; }
  .rt-acolhead, .rt-arow { grid-template-columns: 104px minmax(160px, 1fr) 110px 54px 110px 70px; }
  .rt-acolhead span:nth-child(7), .rt-arow-drop, .rt-acolhead span:nth-child(8), .rt-arow-stamp { display: none; }
  .rt-dl-colhead, .rt-dl-row { grid-template-columns: 20px 100px minmax(150px, 1fr) 86px 92px 116px; }
  .rt-dl-colhead span:last-child, .rt-dl-course { display: none; }
  .rt-board-head { align-items: center; flex-direction: row; padding: 0 12px 0 14px; }
  .rt-board-tools { justify-content: flex-start; }
  .rt-board-seg-head { padding: 0 14px; }
  .rt-board-rows { padding-left: 10px; padding-right: 10px; }
  .rt-board-row { grid-template-columns: 16px minmax(0, 1fr) 34px 78px 54px 11px; column-gap: 8px; padding: 0 10px; }
}
@media (max-width: 760px) {
  .rt-board-head { align-items: flex-start; flex-direction: column; min-height: 0; padding: 11px 12px; }
  .rt-board-tool { height: 24px; padding: 0 8px; font-size: 11.5px; }
  .rt-board-weight { display: none; }
  .rt-board-seg-head { min-height: 34px; gap: 8px; }
  .rt-board-row { grid-template-columns: 16px minmax(0, 1fr) 54px; min-height: 35px; }
  .rt-board-mini,
  .rt-board-tag,
  .rt-board-avatar { display: none; }
  .rt-board-date { justify-self: end; }
}
