:root {
  color-scheme: light;
  --bg: #f4f6f7;
  --paper: #ffffff;
  --ink: #182126;
  --muted: #637078;
  --line: #d8dee1;
  --teal: #086f65;
  --teal-dark: #05554e;
  --blue: #245d91;
  --red: #a93232;
  --red-soft: #fff0f0;
  --amber: #956414;
  --amber-soft: #fff7df;
  --green-soft: #eaf7f2;
  font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.briefing-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin: 22px 0;
}

.briefing-action-card {
  display: grid;
  gap: 12px;
  padding: 20px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: var(--surface, #fff);
}

.briefing-action-card label {
  display: flex;
  gap: 8px;
  align-items: center;
}

.briefing-result {
  margin-bottom: 18px;
}

.briefing-quality-strip {
  margin: 12px 0 18px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--green-soft);
}

.briefing-quality-strip > div {
  min-width: 0;
  padding: 10px 12px;
  border-right: 1px solid var(--line);
  display: grid;
  gap: 3px;
}

.briefing-quality-strip > div:last-child {
  border-right: 0;
}

.briefing-quality-strip span,
.briefing-event-grid span,
.briefing-event-grid small,
.briefing-company-events small {
  color: var(--muted);
  font-size: 0.72rem;
}

.briefing-events {
  margin: 22px 0;
  padding-top: 18px;
  border-top: 1px solid var(--line);
}

.briefing-event-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.briefing-event-grid article {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 6px;
  display: grid;
  gap: 4px;
}

.briefing-company-events > div {
  margin-top: 12px;
  display: grid;
  grid-template-columns: 70px minmax(0, 1fr);
  gap: 12px;
}

.briefing-company-events ul {
  margin: 0;
  padding-left: 18px;
}

.briefing-company-events li {
  margin-bottom: 7px;
}

.briefing-company-events small {
  display: block;
}

.briefing-ai-summary {
  margin-top: 18px;
  padding: 18px;
  border-left: 3px solid var(--accent, #195bd7);
  background: var(--surface-muted, #f5f7fb);
}

.briefing-ai-content {
  margin: 12px 0 16px;
  line-height: 1.7;
}

.briefing-ai-content > :first-child {
  margin-top: 0;
}

.briefing-ai-content > :last-child {
  margin-bottom: 0;
}

.briefing-ai-content h1,
.briefing-ai-content h2,
.briefing-ai-content h3,
.briefing-ai-content h4 {
  margin: 20px 0 8px;
  font-size: 1rem;
  line-height: 1.4;
}

.briefing-ai-content p,
.briefing-ai-content ul,
.briefing-ai-content ol,
.briefing-ai-content blockquote {
  margin: 8px 0;
}

.briefing-ai-content ul,
.briefing-ai-content ol {
  padding-left: 22px;
}

.briefing-ai-content li + li {
  margin-top: 5px;
}

.briefing-ai-content blockquote {
  padding: 8px 12px;
  border-left: 3px solid var(--line);
  color: var(--muted);
}

.briefing-ai-content table {
  width: 100%;
  margin: 12px 0;
  border-collapse: collapse;
  font-size: 0.9rem;
}

.briefing-ai-content th,
.briefing-ai-content td {
  padding: 8px 10px;
  border: 1px solid var(--line);
  text-align: left;
}

.briefing-ai-content th {
  background: var(--paper);
}

.briefing-history > div {
  display: grid;
  grid-template-columns: 120px minmax(0, 1fr) auto;
  gap: 12px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
}

@media (max-width: 760px) {
  .briefing-actions,
  .briefing-history > div,
  .briefing-quality-strip,
  .briefing-event-grid,
  .briefing-company-events > div {
    grid-template-columns: 1fr;
  }

  .briefing-quality-strip > div {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  min-width: 320px;
  background: var(--bg);
  color: var(--ink);
  line-height: 1.5;
}

a {
  color: var(--blue);
}

.topbar {
  min-height: 60px;
  padding: 0 24px;
  border-bottom: 1px solid var(--line);
  background: var(--paper);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.brand {
  color: var(--ink);
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 750;
  text-decoration: none;
}

.brand-mark {
  width: 30px;
  height: 30px;
  display: inline-grid;
  place-items: center;
  border-radius: 6px;
  color: #fff;
  background: var(--teal);
}

.primary-nav {
  display: flex;
  align-items: center;
  gap: 4px;
}

.primary-nav a {
  padding: 7px 10px;
  border-radius: 5px;
  color: var(--muted);
  font-size: 0.82rem;
  font-weight: 700;
  text-decoration: none;
}

.primary-nav a:hover,
.primary-nav a:focus-visible {
  color: var(--teal-dark);
  background: var(--green-soft);
}

.account {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--muted);
  font-size: 0.9rem;
}

.account form {
  margin: 0;
}

.shell {
  width: min(1180px, calc(100% - 32px));
  margin: 0 auto;
  padding: 34px 0 56px;
}

.auth-shell {
  min-height: calc(100vh - 61px);
  display: grid;
  place-items: start center;
  padding: 9vh 20px 48px;
}

.auth-shell-wide {
  padding-top: 5vh;
}

.auth-panel {
  width: min(420px, 100%);
  padding: 30px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
}

.setup-panel {
  width: min(620px, 100%);
}

.section-heading h1,
.page-heading h1 {
  margin: 0;
  font-size: 1.65rem;
}

.section-heading p:not(.eyebrow) {
  color: var(--muted);
  margin: 8px 0 0;
}

.eyebrow {
  color: var(--teal);
  font-size: 0.72rem;
  font-weight: 800;
  margin: 0 0 6px;
}

.form-stack {
  display: grid;
  gap: 16px;
  margin-top: 26px;
}

.form-stack.compact {
  gap: 13px;
  margin-top: 18px;
}

label {
  display: grid;
  gap: 6px;
  color: var(--muted);
  font-size: 0.86rem;
  font-weight: 650;
}

input,
select,
textarea {
  width: 100%;
  min-height: 42px;
  padding: 9px 11px;
  border: 1px solid #bdc7cc;
  border-radius: 6px;
  color: var(--ink);
  background: #fff;
  font: inherit;
}

textarea {
  min-height: 92px;
  resize: vertical;
}

input:focus,
select:focus,
textarea:focus {
  border-color: var(--teal);
  outline: 3px solid rgba(8, 111, 101, 0.14);
}

.check-row {
  grid-template-columns: 18px 1fr;
  align-items: center;
}

.check-row input {
  width: 18px;
  min-height: 18px;
  margin: 0;
}

.button {
  min-height: 40px;
  padding: 9px 15px;
  border: 1px solid transparent;
  border-radius: 6px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 750;
  text-decoration: none;
  cursor: pointer;
}

.button-primary {
  color: #fff;
  background: var(--teal);
}

.button-primary:hover {
  background: var(--teal-dark);
}

.button-secondary {
  color: var(--ink);
  border-color: #aeb9be;
  background: #fff;
}

.button-danger {
  color: #fff;
  background: var(--red);
}

.button-quiet {
  min-height: 32px;
  padding: 5px 10px;
  color: var(--muted);
  border-color: var(--line);
  background: #fff;
}

.alert {
  margin: 20px 0 0;
  padding: 11px 13px;
  border-radius: 6px;
}

.alert-error {
  color: var(--red);
  border: 1px solid #e8b6b6;
  background: var(--red-soft);
}

.enrollment {
  margin-top: 24px;
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 24px;
  align-items: center;
}

.qr-code {
  border: 1px solid var(--line);
  border-radius: 6px;
}

.field-caption {
  color: var(--muted);
  font-size: 0.82rem;
}

.secret-code {
  overflow-wrap: anywhere;
  font-size: 0.92rem;
}

.recovery-grid {
  margin: 24px 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 6px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 24px;
  background: #f8fafb;
}

.page-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 20px;
  margin-bottom: 24px;
}

.status-row {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.status-badge {
  padding: 5px 9px;
  border: 1px solid var(--line);
  border-radius: 999px;
  font-size: 0.78rem;
  font-weight: 750;
}

.status-ok {
  color: var(--teal-dark);
  background: var(--green-soft);
}

.status-warn {
  color: var(--amber);
  background: var(--amber-soft);
}

.status-bad {
  color: var(--red);
  background: var(--red-soft);
}

.metric-strip {
  min-height: 82px;
  padding: 16px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  margin-bottom: 26px;
}

.metric-strip div {
  padding: 0 18px;
  border-right: 1px solid var(--line);
  display: grid;
  gap: 5px;
}

.metric-strip div:first-child {
  padding-left: 0;
}

.metric-strip div:last-child {
  border-right: 0;
}

.metric-strip span {
  color: var(--muted);
  font-size: 0.78rem;
}

.metric-strip strong {
  overflow-wrap: anywhere;
  font-size: 1rem;
}

.market-regime-section {
  margin-bottom: 28px;
}

.market-regime-heading {
  min-height: 68px;
  padding: 0 2px 14px;
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
}

.market-regime-heading h2 {
  margin: 0;
  font-size: 1.08rem;
}

.market-regime-heading p:not(.eyebrow) {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.78rem;
}

.market-regime-heading form {
  margin: 0;
}

.regime-summary {
  min-height: 116px;
  padding: 18px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 180px minmax(280px, 1fr) minmax(250px, 0.75fr);
  gap: 22px;
  align-items: center;
}

.regime-score {
  min-width: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: baseline;
  column-gap: 10px;
}

.regime-score span {
  grid-column: 1 / -1;
  color: var(--muted);
  font-size: 0.72rem;
}

.regime-score strong {
  font-size: 2.15rem;
  line-height: 1.15;
}

.regime-score em {
  font-size: 0.84rem;
  font-style: normal;
  font-weight: 800;
}

.regime-fear .regime-score strong,
.regime-fear .regime-score em {
  color: var(--red);
}

.regime-neutral .regime-score strong,
.regime-neutral .regime-score em {
  color: var(--blue);
}

.regime-greed .regime-score strong,
.regime-greed .regime-score em {
  color: var(--teal-dark);
}

.regime-copy {
  min-width: 0;
}

.regime-copy > strong {
  font-size: 0.86rem;
}

.regime-copy p {
  margin: 4px 0;
  color: #39454b;
  font-size: 0.82rem;
}

.regime-copy span {
  color: var(--muted);
  font-size: 0.7rem;
}

.regime-components {
  display: grid;
  gap: 6px;
}

.regime-components div {
  min-height: 28px;
  padding: 4px 0;
  border-bottom: 1px solid #e7ebed;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.regime-components span {
  color: var(--muted);
  font-size: 0.72rem;
}

.regime-components strong {
  font-size: 0.78rem;
}

.market-indicator-grid {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.market-indicator-card {
  min-width: 0;
  min-height: 166px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  gap: 9px;
  box-shadow: 0 2px 8px rgb(24 33 38 / 4%);
}

.market-indicator-top {
  min-width: 0;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.market-indicator-top > div {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 6px;
}

.market-indicator-top strong {
  overflow-wrap: anywhere;
  font-size: 0.78rem;
}

.proxy-label {
  padding: 2px 5px;
  border: 1px solid #cad5d9;
  border-radius: 999px;
  color: var(--muted);
  font-size: 0.58rem;
  font-weight: 750;
  white-space: nowrap;
}

.market-date {
  color: var(--muted);
  font-size: 0.64rem;
  white-space: nowrap;
}

.market-value {
  margin: 0;
  font-size: 1.32rem;
  font-weight: 800;
}

.market-changes {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
}

.market-changes div {
  min-width: 0;
  padding-top: 6px;
  border-top: 1px solid #e7ebed;
  display: grid;
  gap: 2px;
}

.market-changes dt {
  color: var(--muted);
  font-size: 0.6rem;
}

.market-changes dd {
  margin: 0;
  overflow-wrap: anywhere;
  font-size: 0.68rem;
  font-weight: 750;
}

.market-indicator-card footer {
  min-width: 0;
  color: var(--muted);
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.6rem;
}

.market-indicator-card footer span:first-child {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.market-regime-footer {
  min-height: 34px;
  padding: 9px 2px 0;
  color: var(--muted);
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-size: 0.68rem;
}

.market-regime-empty {
  padding: 32px 20px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: center;
}

.market-regime-empty p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.8rem;
}

.connection-section {
  margin-bottom: 22px;
}

.connection-section-heading {
  min-height: 62px;
  padding: 0 2px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.connection-section-heading h2 {
  margin: 0;
  font-size: 1.02rem;
}

.connection-summary {
  display: flex;
  align-items: baseline;
  gap: 6px;
}

.connection-summary-ready strong {
  color: var(--teal-dark);
}

.connection-summary-warn strong {
  color: var(--amber);
}

.connection-summary strong {
  font-size: 1.15rem;
}

.connection-summary span {
  color: var(--muted);
  font-size: 0.76rem;
}

.connection-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.connection-card {
  min-width: 0;
  min-height: 126px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  display: grid;
  grid-template-rows: 36px 1fr;
  gap: 12px;
  box-shadow: 0 2px 8px rgb(24 33 38 / 4%);
}

.connection-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.provider-mark {
  width: 36px;
  height: 36px;
  border-radius: 7px;
  display: grid;
  place-items: center;
  color: #fff;
  font-size: 0.68rem;
  font-weight: 850;
}

.provider-teal {
  background: var(--teal);
}

.provider-blue {
  background: var(--blue);
}

.provider-green {
  background: #347856;
}

.provider-amber {
  background: var(--amber);
}

.connection-copy {
  min-width: 0;
  display: grid;
  align-content: start;
  gap: 3px;
}

.connection-copy strong {
  font-size: 0.92rem;
}

.connection-copy span {
  color: var(--muted);
  font-size: 0.74rem;
  overflow-wrap: anywhere;
}

.connection-dot {
  width: 8px;
  height: 8px;
  flex: 0 0 8px;
  border-radius: 50%;
  background: var(--line);
}

.connection-ready .connection-dot {
  background: var(--teal);
  box-shadow: 0 0 0 3px var(--green-soft);
}

.connection-warn .connection-dot {
  background: var(--amber);
  box-shadow: 0 0 0 3px var(--amber-soft);
}

.connection-state {
  min-height: 27px;
  padding: 4px 8px;
  border: 1px solid var(--line);
  border-radius: 999px;
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 750;
}

.connection-ready .connection-state {
  color: var(--teal-dark);
  border-color: #b9dcd2;
  background: var(--green-soft);
}

.connection-warn .connection-state {
  color: var(--amber);
  border-color: #e6c67e;
  background: var(--amber-soft);
}

.connection-section-footer {
  min-height: 34px;
  padding: 9px 2px 0;
  color: var(--muted);
  display: flex;
  justify-content: space-between;
  gap: 16px;
  font-size: 0.7rem;
}

.feature-section {
  margin-bottom: 26px;
}

.feature-section-heading {
  min-height: 62px;
  padding: 0 2px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
}

.feature-section-heading h2 {
  margin: 0;
  font-size: 1.02rem;
}

.feature-section-heading > span {
  color: var(--muted);
  font-size: 0.74rem;
}

.feature-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.feature-card {
  min-width: 0;
  min-height: 168px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  color: var(--ink);
  background: var(--paper);
  display: grid;
  grid-template-rows: 36px 1fr auto;
  gap: 12px;
  text-decoration: none;
  box-shadow: 0 2px 8px rgb(24 33 38 / 4%);
}

.feature-card:hover,
.feature-card:focus-visible {
  border-color: #8fb8b2;
  box-shadow: 0 5px 16px rgb(24 33 38 / 8%);
}

.feature-card-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.feature-mark {
  width: 36px;
  height: 36px;
  border-radius: 7px;
  color: #fff;
  display: grid;
  place-items: center;
  font-size: 0.72rem;
  font-weight: 850;
}

.feature-teal {
  background: var(--teal);
}

.feature-blue {
  background: var(--blue);
}

.feature-green {
  background: #347856;
}

.feature-amber {
  background: var(--amber);
}

.feature-red {
  background: var(--red);
}

.feature-status {
  min-height: 27px;
  padding: 4px 8px;
  border: 1px solid #b9dcd2;
  border-radius: 999px;
  color: var(--teal-dark);
  background: var(--green-soft);
  font-size: 0.68rem;
  font-weight: 750;
  white-space: nowrap;
}

.feature-status-warn {
  color: var(--amber);
  border-color: #e6c67e;
  background: var(--amber-soft);
}

.feature-card strong {
  font-size: 0.94rem;
}

.feature-card p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.75rem;
}

.feature-action {
  color: var(--blue);
  font-size: 0.74rem;
  font-weight: 750;
}

.workspace-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.watchlist-tools {
  margin: 18px 0;
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 18px;
  align-items: end;
}

.watchlist-add {
  grid-template-columns: 1fr 140px 1fr auto;
  align-items: end;
  margin: 0;
}

.watchlist-run {
  grid-template-columns: 1fr;
  margin: 0;
}

.inline-form {
  margin: 0;
}

.table-actions {
  white-space: nowrap;
}

.table-actions .inline-form {
  display: inline-block;
  margin-left: 8px;
}

.table-actions a + a {
  margin-left: 10px;
}

.panel {
  min-width: 0;
  padding: 22px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
}

.panel-heading {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 12px;
}

.panel-heading h2 {
  margin: 0;
  font-size: 1.02rem;
}

.panel-heading span {
  color: var(--muted);
  font-size: 0.78rem;
}

.field-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}

.field-grid-symbol {
  grid-template-columns: minmax(0, 2fr) minmax(100px, 1fr);
}

.status-list {
  margin: 18px 0;
}

.status-list div {
  padding: 9px 0;
  border-bottom: 1px solid #edf0f1;
  display: flex;
  justify-content: space-between;
  gap: 18px;
}

.status-list dt {
  color: var(--muted);
}

.status-list dd {
  margin: 0;
  font-weight: 700;
}

.control-stack {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-items: end;
}

.control-stack form:first-child .button,
.control-stack form:last-child .button {
  width: 100%;
}

.panel-subaction {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid #edf0f1;
}

.panel-subaction .button {
  width: 100%;
}

.panel-subaction-link {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid #edf0f1;
  color: var(--blue);
  display: block;
  font-size: 0.76rem;
  font-weight: 750;
  text-align: right;
}

.report-section {
  margin-top: 28px;
}

.note-grid {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.note-card {
  min-width: 0;
  padding: 18px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  color: var(--ink);
  display: grid;
  gap: 8px;
  text-decoration: none;
}

.note-card:hover,
.note-card:focus-visible {
  border-color: var(--teal);
  box-shadow: 0 4px 16px rgb(24 33 38 / 8%);
}

.note-card strong {
  font-size: 0.98rem;
  line-height: 1.4;
}

.note-card p {
  margin: 0;
  color: var(--muted);
  font-size: 0.84rem;
}

.note-category {
  color: var(--teal);
  font-size: 0.72rem;
  font-weight: 800;
}

.note-meta {
  margin-top: 4px;
  color: var(--blue);
  font-size: 0.75rem;
  font-weight: 700;
}

.note-page {
  width: min(820px, 100%);
  margin: 0 auto;
}

.breadcrumb {
  margin-bottom: 28px;
  color: var(--muted);
  display: flex;
  gap: 8px;
  font-size: 0.8rem;
}

.note-header {
  padding-bottom: 34px;
  border-bottom: 1px solid var(--line);
}

.note-header h1 {
  max-width: 720px;
  margin: 0;
  font-size: 2rem;
  line-height: 1.25;
}

.note-lead {
  max-width: 720px;
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 1.02rem;
  line-height: 1.8;
}

.note-byline {
  margin-top: 18px;
  color: var(--muted);
  display: flex;
  gap: 16px;
  font-size: 0.78rem;
}

.note-section {
  position: relative;
  padding: 38px 0 38px 54px;
  border-bottom: 1px solid var(--line);
}

.section-number {
  position: absolute;
  top: 42px;
  left: 0;
  color: var(--teal);
  font-size: 0.78rem;
  font-weight: 800;
}

.note-section h2 {
  margin: 0 0 16px;
  font-size: 1.3rem;
}

.note-section > p {
  margin: 0 0 12px;
  color: #39454b;
  line-height: 1.8;
}

.note-checklist {
  margin-top: 24px;
  padding: 18px 20px;
  border-left: 3px solid var(--teal);
  background: var(--green-soft);
}

.note-checklist h3 {
  margin: 0 0 10px;
  font-size: 0.88rem;
}

.note-checklist ul {
  margin: 0;
  padding-left: 20px;
  color: #39454b;
}

.note-checklist li + li {
  margin-top: 6px;
}

.note-closing {
  padding-top: 32px;
}

.note-closing strong {
  color: var(--teal);
  font-size: 0.78rem;
}

.note-closing p {
  margin: 8px 0 22px;
  font-size: 1.05rem;
  font-weight: 700;
}

.table-wrap {
  overflow-x: auto;
  margin-top: 12px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
}

table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.86rem;
}

th,
td {
  padding: 11px 13px;
  border-bottom: 1px solid #e8ecee;
  text-align: left;
  white-space: nowrap;
}

th {
  color: var(--muted);
  font-size: 0.76rem;
  background: #f8fafb;
}

tr:last-child td {
  border-bottom: 0;
}

.table-reason {
  min-width: 300px;
  white-space: normal;
}

.action-label {
  font-weight: 800;
}

.action-rebalance,
.action-buy {
  color: var(--blue);
}

.action-hold {
  color: var(--muted);
}

.action-sell {
  color: var(--red);
}

.empty {
  padding: 28px;
  color: var(--muted);
  text-align: center;
}

.quick-action {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 18px;
  justify-content: flex-end;
}

.quick-action p {
  color: var(--muted);
  font-size: 0.82rem;
}

.result-heading {
  align-items: center;
}

.result-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.result-summary {
  padding: 18px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 18px;
}

.result-summary div {
  min-width: 0;
  display: grid;
  gap: 5px;
}

.result-summary span {
  color: var(--muted);
  font-size: 0.76rem;
}

.result-summary strong {
  overflow-wrap: anywhere;
  font-size: 0.95rem;
}

.result-detail {
  margin-top: 22px;
}

.result-detail summary {
  cursor: pointer;
  color: var(--blue);
  font-size: 0.88rem;
  font-weight: 750;
}

.result-detail[open],
.result-detail details[open] summary {
  margin-bottom: 12px;
}

.result-panel {
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #12191e;
}

.result-panel pre {
  margin: 0;
  padding: 22px;
  overflow: auto;
  color: #dbe7e9;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.86rem;
  line-height: 1.6;
}

.page-description {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 0.86rem;
}

.section-block {
  margin-top: 20px;
}

.notice-line,
.disclaimer-line {
  margin: 0 0 18px;
  padding: 10px 13px;
  border-left: 3px solid var(--teal);
  color: #334247;
  background: var(--green-soft);
  font-size: 0.84rem;
}

.decision-layout {
  display: grid;
  grid-template-columns: minmax(250px, 0.7fr) minmax(620px, 2fr);
  gap: 18px;
  align-items: start;
}

.scenario-panel {
  position: sticky;
  top: 18px;
}

td small,
.freshness-symbol span,
.change-row > div span,
.risk-position header span {
  margin-top: 2px;
  color: var(--muted);
  display: block;
  font-size: 0.7rem;
}

.decision-update {
  min-width: 380px;
  display: grid;
  grid-template-columns: 120px 1fr auto;
  gap: 6px;
}

.decision-update input,
.decision-update select {
  min-height: 34px;
  padding: 5px 7px;
  font-size: 0.76rem;
}

.state-label {
  padding: 3px 7px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  background: #f8fafb;
  font-size: 0.68rem;
  font-weight: 800;
  white-space: nowrap;
}

.state-pending,
.state-deferred,
.state-watch,
.state-review_missed_move,
.state-changed {
  color: var(--amber);
  border-color: #e6c67e;
  background: var(--amber-soft);
}

.state-accepted,
.state-observed,
.state-favorable,
.state-normal,
.state-unchanged {
  color: var(--teal-dark);
  border-color: #add8ca;
  background: var(--green-soft);
}

.state-rejected,
.state-unfavorable,
.state-high,
.state-no_report {
  color: var(--red);
  border-color: #e8b6b6;
  background: var(--red-soft);
}

.empty-cell,
.empty-state {
  padding: 24px;
  color: var(--muted);
  text-align: center;
}

.scenario-grid {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  gap: 1px;
  background: var(--line);
}

.scenario-cell {
  min-width: 0;
  min-height: 108px;
  padding: 12px;
  background: #fff;
  display: grid;
  align-content: center;
  gap: 4px;
}

.scenario-cell span,
.scenario-cell small {
  color: var(--muted);
  font-size: 0.68rem;
}

.scenario-cell strong {
  overflow-wrap: anywhere;
  font-size: 0.76rem;
}

.scenario-naver_to_target {
  box-shadow: inset 0 3px 0 var(--blue);
}

.scenario-target_to_naver {
  box-shadow: inset 0 3px 0 var(--teal);
}

.monitor-summary,
.risk-hero {
  margin-bottom: 20px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid;
}

.monitor-summary {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.risk-hero {
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.monitor-summary div,
.risk-hero div {
  min-width: 0;
  padding: 14px 18px;
  border-right: 1px solid var(--line);
  display: grid;
  gap: 3px;
}

.monitor-summary div:last-child,
.risk-hero div:last-child {
  border-right: 0;
}

.monitor-summary span,
.risk-hero span {
  color: var(--muted);
  font-size: 0.72rem;
}

.monitor-summary strong,
.risk-hero strong {
  font-size: 1.12rem;
}

.risk-high strong:first-of-type {
  color: var(--red);
}

.risk-watch strong:first-of-type {
  color: var(--amber);
}

.risk-normal strong:first-of-type {
  color: var(--teal-dark);
}

.freshness-list,
.change-list {
  margin-top: 14px;
  border-top: 1px solid var(--line);
}

.freshness-row {
  min-height: 62px;
  padding: 10px 0;
  border-bottom: 1px solid #e8ecee;
  display: grid;
  grid-template-columns: minmax(150px, 0.8fr) minmax(420px, 2fr) auto;
  gap: 16px;
  align-items: center;
}

.freshness-signals {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 5px;
}

.freshness-chip {
  padding: 5px 6px;
  border-bottom: 3px solid var(--line);
  color: var(--muted);
  font-size: 0.67rem;
  text-align: center;
}

.freshness-fresh {
  border-color: var(--teal);
  color: var(--teal-dark);
}

.freshness-stale {
  border-color: var(--amber);
  color: var(--amber);
}

.freshness-missing {
  border-color: var(--red);
  color: var(--red);
}

.freshness-row > a,
.change-row > a {
  font-size: 0.76rem;
  font-weight: 750;
}

.change-row {
  min-height: 58px;
  padding: 10px 0;
  border-bottom: 1px solid #e8ecee;
  display: grid;
  grid-template-columns: minmax(160px, 0.8fr) auto minmax(250px, 1.8fr) auto;
  gap: 14px;
  align-items: center;
}

.change-row p {
  margin: 0;
  color: var(--muted);
  font-size: 0.82rem;
}

.risk-flags {
  margin-bottom: 20px;
  border: 1px solid #e6c67e;
  background: var(--amber-soft);
}

.risk-flags p {
  margin: 0;
  padding: 9px 13px;
  border-bottom: 1px solid #eed9a6;
  color: #624714;
  font-size: 0.8rem;
}

.risk-flags p:last-child {
  border-bottom: 0;
}

.risk-position-grid {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.risk-position {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--teal);
  border-radius: 6px;
}

.risk-position-watch {
  border-top-color: var(--amber);
}

.risk-position-high {
  border-top-color: var(--red);
}

.risk-position header {
  display: flex;
  justify-content: space-between;
  gap: 10px;
}

.risk-position dl {
  margin: 14px 0 0;
}

.risk-position dl div {
  padding: 5px 0;
  border-top: 1px solid #edf0f1;
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 0.76rem;
}

.risk-position dt {
  color: var(--muted);
}

.risk-position dd {
  margin: 0;
  font-weight: 750;
}

.account-overview {
  margin-bottom: 8px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.account-overview > div,
.account-metric-strip > div {
  min-width: 0;
  padding: 15px 18px;
  border-right: 1px solid var(--line);
  display: grid;
  gap: 3px;
}

.account-overview > div:first-child,
.account-metric-strip > div:first-child {
  padding-left: 0;
}

.account-overview > div:last-child,
.account-metric-strip > div:last-child {
  border-right: 0;
}

.account-overview span,
.account-metric-strip span {
  color: var(--muted);
  font-size: 0.7rem;
}

.account-overview strong,
.account-metric-strip strong {
  overflow-wrap: anywhere;
  font-size: 1.05rem;
}

.account-separation-note {
  margin: 10px 0 30px;
  color: var(--muted);
  font-size: 0.74rem;
}

.account-analysis-list {
  display: grid;
  gap: 36px;
}

.account-analysis-section {
  min-width: 0;
  padding-top: 18px;
  border-top: 4px solid var(--teal);
}

.account-analysis-section:nth-child(even) {
  border-top-color: var(--blue);
}

.account-analysis-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.account-analysis-heading p {
  margin: 0 0 3px;
  color: var(--muted);
  font-size: 0.68rem;
  font-weight: 750;
}

.account-analysis-heading h2 {
  margin: 0;
  font-size: 1.18rem;
}

.account-analysis-heading > div:last-child {
  display: flex;
  align-items: center;
  gap: 12px;
}

.account-analysis-heading > div:last-child > strong {
  font-size: 1rem;
}

.account-metric-strip {
  margin-top: 16px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.account-risk-high {
  border-top-color: var(--red);
}

.account-risk-watch {
  border-top-color: var(--amber);
}

.account-needs-data {
  margin-top: 16px;
  padding: 16px;
  border-left: 3px solid var(--amber);
  background: var(--amber-soft);
}

.account-needs-data p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.76rem;
}

.account-analysis-section .risk-flags {
  margin: 14px 0 0;
}

.allocation-list {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.allocation-row {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--teal);
  border-radius: 6px;
  background: var(--paper);
}

.allocation-reduce {
  border-top-color: var(--red);
}

.allocation-review,
.allocation-review_increase {
  border-top-color: var(--amber);
}

.allocation-row header,
.allocation-row footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.allocation-row header > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.allocation-row header span,
.allocation-row footer,
.allocation-row p {
  color: var(--muted);
  font-size: 0.7rem;
}

.allocation-row p {
  min-height: 34px;
  margin: 10px 0;
}

.allocation-weights {
  margin-top: 12px;
  display: grid;
  grid-template-columns: auto minmax(20px, 1fr) auto;
  gap: 9px;
  align-items: center;
}

.allocation-weights i {
  height: 1px;
  background: var(--line);
}

.allocation-weights strong {
  color: var(--ink);
  font-size: 0.82rem;
}

.allocation-row footer {
  padding-top: 9px;
  border-top: 1px solid #edf0f1;
}

.empty-panel {
  padding: 48px 24px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  text-align: center;
}

.empty-panel p {
  margin: 6px 0 0;
  color: var(--muted);
}

.refining-heading {
  align-items: center;
}

.period-tabs {
  width: fit-content;
  margin: -6px 0 22px;
  padding: 3px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #e9edef;
  display: flex;
  gap: 2px;
}

.period-tabs a {
  min-width: 64px;
  padding: 6px 10px;
  border-radius: 5px;
  color: var(--muted);
  font-size: 0.76rem;
  font-weight: 750;
  text-align: center;
  text-decoration: none;
}

.period-tabs a.active {
  color: var(--ink);
  background: var(--paper);
  box-shadow: 0 1px 3px rgb(24 33 38 / 12%);
}

.automatic-outlook {
  margin: 8px 0 28px;
  padding: 20px 0 18px;
  border-top: 4px solid var(--teal);
  border-bottom: 1px solid var(--line);
}

.automatic-strong,
.automatic-positive {
  border-top-color: var(--teal);
}

.automatic-neutral {
  border-top-color: var(--amber);
}

.automatic-weak,
.automatic-very_weak {
  border-top-color: var(--red);
}

.automatic-outlook-heading {
  display: grid;
  grid-template-columns: minmax(300px, 1fr) 130px 150px;
  gap: 24px;
  align-items: center;
}

.automatic-outlook-heading h2 {
  margin: 0;
  font-size: 1.3rem;
}

.automatic-outlook-heading > div:first-child > p:last-child {
  max-width: 680px;
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 0.76rem;
}

.automatic-score,
.automatic-coverage {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.automatic-score span,
.automatic-coverage span,
.automatic-coverage small {
  color: var(--muted);
  font-size: 0.68rem;
}

.automatic-score strong {
  font-size: 2.1rem;
  line-height: 1;
}

.automatic-score em {
  color: var(--teal-dark);
  font-size: 0.74rem;
  font-style: normal;
  font-weight: 800;
}

.automatic-coverage {
  min-height: 66px;
  padding-left: 18px;
  border-left: 1px solid var(--line);
  align-content: center;
}

.automatic-coverage strong {
  font-size: 1.15rem;
}

.automatic-component-grid {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.automatic-component-grid article,
.oil-price-strip article,
.free-fundamental-grid article {
  min-width: 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--paper);
}

.automatic-component-grid article {
  min-height: 120px;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 8px;
}

.automatic-component-grid header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.automatic-component-grid header span,
.automatic-component-grid footer,
.automatic-component-grid p {
  color: var(--muted);
  font-size: 0.69rem;
}

.automatic-component-grid header strong {
  color: var(--ink);
}

.automatic-component-grid p {
  margin: 0;
}

.automatic-component-grid footer {
  padding-top: 7px;
  border-top: 1px solid #e7ebed;
}

.automatic-boundary,
.section-source {
  margin: 13px 0 0;
  color: var(--muted);
  font-size: 0.68rem;
}

.refining-environment-hero {
  margin: 8px 0 18px;
  padding: 22px 0;
  border-top: 4px solid var(--teal);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: minmax(280px, 1.6fr) 160px minmax(150px, 0.7fr) minmax(170px, 0.8fr);
  gap: 24px;
  align-items: center;
}

.refining-environment-title h2 {
  margin: 0;
  font-size: 1.3rem;
}

.refining-environment-title > p:last-child {
  margin: 6px 0 0;
  color: var(--muted);
  font-size: 0.76rem;
}

.refining-score-main,
.refining-score-side {
  min-width: 0;
  display: grid;
  gap: 3px;
}

.refining-score-main span,
.refining-score-side span,
.refining-score-side small {
  color: var(--muted);
  font-size: 0.68rem;
}

.refining-score-main strong {
  font-size: 2.1rem;
  line-height: 1;
}

.refining-score-main em {
  color: var(--teal-dark);
  font-size: 0.76rem;
  font-style: normal;
  font-weight: 800;
}

.refining-score-side {
  min-height: 68px;
  padding-left: 18px;
  border-left: 1px solid var(--line);
  align-content: center;
}

.refining-score-side strong {
  overflow-wrap: anywhere;
  font-size: 1.02rem;
}

.environment-super_cycle {
  border-top-color: var(--red);
}

.environment-very_negative,
.environment-negative {
  border-top-color: var(--red);
}

.environment-neutral {
  border-top-color: var(--amber);
}

.notice-warn {
  border-left-color: var(--amber);
  background: var(--amber-soft);
}

.refining-driver-grid {
  margin: 18px 0 28px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.refining-driver-grid article {
  min-width: 0;
  min-height: 104px;
  padding: 15px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--paper);
  display: grid;
  align-content: space-between;
  gap: 4px;
}

.refining-driver-grid span,
.refining-driver-grid small {
  color: var(--muted);
  font-size: 0.68rem;
  overflow-wrap: anywhere;
}

.refining-driver-grid strong {
  font-size: 0.96rem;
  overflow-wrap: anywhere;
}

.refining-environment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}

.refining-environment-grid .refining-section {
  margin-top: 0;
}

.refining-component-list {
  margin-top: 12px;
}

.refining-component-list > div {
  min-height: 42px;
  padding: 8px 0;
  border-bottom: 1px solid #e7ebed;
  display: grid;
  grid-template-columns: minmax(120px, 1fr) 48px 48px minmax(90px, 0.7fr);
  gap: 8px;
  align-items: center;
  font-size: 0.72rem;
}

.refining-component-list span,
.refining-component-list small {
  color: var(--muted);
  overflow-wrap: anywhere;
}

.refining-component-list em {
  color: var(--blue);
  font-style: normal;
  font-weight: 750;
}

.business-separation {
  margin-top: 16px;
  padding-top: 14px;
  border-top: 2px solid var(--ink);
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 18px;
}

.business-separation div {
  display: grid;
  gap: 3px;
}

.business-separation span {
  color: var(--muted);
  font-size: 0.66rem;
}

.business-separation p {
  grid-column: 1 / -1;
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 0.72rem;
}

.factor-columns {
  margin-top: 12px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.factor-columns > div:first-child strong {
  color: var(--teal-dark);
}

.factor-columns > div:last-child strong {
  color: var(--red);
}

.factor-columns p,
.offsetting-box p,
.cycle-reasons p {
  margin: 7px 0 0;
  color: var(--muted);
  font-size: 0.73rem;
}

.offsetting-box,
.cycle-reasons {
  margin-top: 14px;
  padding: 13px 14px;
  border-left: 3px solid var(--amber);
  background: var(--amber-soft);
}

.cycle-reasons {
  border-left-color: var(--red);
  background: var(--red-soft);
}

.refining-ai-panel {
  margin-top: 28px;
  padding: 20px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--blue);
  border-radius: 7px;
  background: var(--paper);
}

.ai-summary {
  margin: 15px 0 0;
  font-size: 0.94rem;
  font-weight: 700;
}

.ai-interpretation-grid {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 22px;
}

.ai-interpretation-grid > div {
  padding-top: 10px;
  border-top: 1px solid var(--line);
}

.ai-interpretation-grid p,
.previous-analysis-copy,
.ai-unavailable p {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 0.76rem;
}

.refining-ai-panel footer {
  margin-top: 13px;
  color: var(--muted);
  font-size: 0.64rem;
  text-align: right;
}

.ai-unavailable {
  margin-top: 14px;
  padding: 14px;
  border-left: 3px solid var(--muted);
  background: #f5f7f8;
}

.previous-analysis-strip {
  margin-top: 18px;
  padding: 12px 0;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1.3fr repeat(3, minmax(0, 1fr));
  gap: 16px;
  color: var(--muted);
  font-size: 0.72rem;
}

.data-limitations {
  margin-top: 14px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  color: var(--muted);
  font-size: 0.74rem;
}

.data-limitations summary,
.refining-input-panel > summary {
  cursor: pointer;
  font-weight: 750;
}

.refining-input-panel {
  margin: 24px 0 30px;
  padding: 16px 18px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: var(--paper);
}

.refining-input-panel > summary {
  color: var(--blue);
}

.refining-input-form {
  margin-top: 18px;
  display: grid;
  grid-template-columns: 150px minmax(220px, 1fr) minmax(220px, 1fr) 180px;
  gap: 14px;
  align-items: end;
}

.refining-input-intro {
  grid-column: 1 / -1;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

.refining-input-intro p {
  margin: 4px 0 0;
  color: var(--muted);
  font-size: 0.74rem;
}

.refining-input-group {
  grid-column: 1 / -1;
  padding-top: 4px;
}

.refining-input-group h3 {
  margin: 0 0 9px;
  font-size: 0.82rem;
}

.refining-field-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 10px;
}

.refining-input-form .check-row {
  grid-column: 1 / 4;
}

.refining-metrics {
  margin: 24px 0 30px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.refining-metrics > div {
  min-width: 0;
  padding: 16px 18px;
  border-right: 1px solid var(--line);
  display: grid;
  gap: 4px;
}

.refining-metrics > div:first-child {
  padding-left: 0;
}

.refining-metrics > div:last-child {
  border-right: 0;
}

.refining-metrics span,
.refining-metrics small {
  color: var(--muted);
  font-size: 0.72rem;
}

.refining-metrics strong {
  overflow-wrap: anywhere;
  font-size: 1.18rem;
}

.refining-price-guidance {
  border-top: 4px solid var(--teal);
}

.refining-price-guidance-grid {
  margin-top: 16px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.refining-price-guidance-grid article {
  min-width: 0;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #f8fafb;
  display: grid;
  gap: 5px;
}

.refining-price-guidance-grid span,
.refining-price-guidance-grid small {
  color: var(--muted);
  font-size: 0.72rem;
}

.refining-price-guidance-grid strong {
  font-size: 1.22rem;
}

.refining-price-guidance-grid p {
  margin: 4px 0 0;
  font-size: 0.78rem;
  font-weight: 700;
}

.refining-price-guidance-grid .guidance-buy {
  border-top: 3px solid var(--teal);
}

.refining-price-guidance-grid .guidance-sell {
  border-top: 3px solid var(--red);
}

.refining-price-guidance-grid .guidance-review {
  border-top: 3px solid var(--amber);
}

.refining-guidance-context {
  margin: 12px 0;
  padding: 10px 12px;
  border-radius: 7px;
  background: var(--green-soft);
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.78rem;
}

.refining-guidance-context span {
  color: var(--muted);
  text-align: right;
}

.refining-section {
  min-width: 0;
  margin-top: 24px;
  padding: 18px 0 22px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.refining-section-heading {
  min-height: 48px;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
}

.refining-section-heading h2 {
  margin: 0;
  font-size: 1.02rem;
}

.refining-section-heading p {
  max-width: 760px;
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 0.76rem;
}

.chart-legend {
  flex: 0 0 auto;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 8px 12px;
}

.chart-legend span {
  color: var(--muted);
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.68rem;
  white-space: nowrap;
}

.chart-legend i {
  width: 15px;
  height: 3px;
  border-radius: 2px;
  background: var(--line);
}

.chart-legend .legend-s-oil,
.chart-legend .legend-price {
  background: var(--teal);
}

.chart-legend .legend-crack,
.chart-legend .legend-ma20 {
  background: var(--amber);
}

.chart-legend .legend-ma60 {
  background: var(--blue);
}

.chart-shell {
  position: relative;
  min-width: 0;
  height: 250px;
  margin-top: 12px;
  padding-left: 58px;
}

.chart-shell-large {
  height: 340px;
}

.chart-shell svg {
  width: 100%;
  height: 100%;
  overflow: visible;
}

.chart-scale {
  position: absolute;
  top: 8px;
  bottom: 8px;
  left: 0;
  width: 50px;
  color: var(--muted);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  font-size: 0.62rem;
  text-align: right;
}

.chart-dates {
  margin-top: 1px;
  color: var(--muted);
  display: flex;
  justify-content: space-between;
  font-size: 0.62rem;
}

.chart-grid-line {
  stroke: #dfe5e7;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
}

.chart-line {
  fill: none;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  vector-effect: non-scaling-stroke;
}

.chart-line-s-oil,
.chart-line-price {
  stroke: var(--teal);
}

.chart-line-crack,
.chart-line-ma20 {
  stroke: var(--amber);
}

.chart-line-ma20,
.chart-line-ma60 {
  stroke-width: 1.4;
}

.chart-line-ma60 {
  stroke: var(--blue);
}

.chart-legend .legend-wti,
.chart-line-wti {
  background: var(--blue);
  stroke: var(--blue);
}

.chart-legend .legend-brent,
.chart-line-brent {
  background: var(--red);
  stroke: var(--red);
}

.oil-price-strip {
  margin: 10px 0 18px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.oil-price-strip article,
.free-fundamental-grid article {
  display: grid;
  gap: 4px;
}

.oil-price-strip span,
.oil-price-strip small,
.free-fundamental-grid span,
.free-fundamental-grid small {
  color: var(--muted);
  font-size: 0.69rem;
}

.oil-price-strip strong,
.free-fundamental-grid strong {
  font-size: 1.05rem;
  overflow-wrap: anywhere;
}

.oil-chart-shell {
  height: 290px;
}

.free-fundamental-grid {
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}

.refining-chart-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}

.refining-analysis-grid {
  margin-top: 28px;
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(260px, 0.7fr);
  gap: 28px;
}

.correlation-table,
.proxy-components {
  min-width: 0;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.correlation-table dl,
.proxy-components dl {
  margin: 8px 0 0;
}

.correlation-table dl div,
.proxy-components dl div {
  min-height: 42px;
  padding: 9px 0;
  border-bottom: 1px solid #e7ebed;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}

.correlation-table dt,
.proxy-components dt {
  color: var(--muted);
  font-size: 0.76rem;
}

.correlation-table dd,
.proxy-components dd {
  margin: 0;
  font-size: 0.82rem;
  font-weight: 800;
}

.refining-footer {
  margin-top: 28px;
  color: var(--muted);
  font-size: 0.72rem;
}

.refining-footer > p:not(.disclaimer-line) {
  margin: 4px 0;
}

.refining-footer .disclaimer-line {
  margin-top: 14px;
}

.dashboard-overview {
  margin-bottom: 28px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dashboard-overview a {
  min-width: 0;
  padding: 17px 18px;
  border-right: 1px solid var(--line);
  color: var(--ink);
  display: grid;
  gap: 3px;
  text-decoration: none;
}

.dashboard-overview a:first-child {
  padding-left: 0;
}

.dashboard-overview a:last-child {
  border-right: 0;
}

.dashboard-overview a:hover strong,
.dashboard-overview a:focus-visible strong {
  color: var(--teal-dark);
}

.dashboard-overview span,
.dashboard-overview small {
  color: var(--muted);
  font-size: 0.7rem;
}

.dashboard-overview strong {
  overflow-wrap: anywhere;
  font-size: 1.16rem;
}

.connection-grid-compact .connection-card {
  min-height: 112px;
}

.dashboard-two-column {
  margin-top: 28px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 28px;
}

.dashboard-list-section {
  min-width: 0;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}

.dashboard-list-section .panel-heading > a {
  font-size: 0.75rem;
  font-weight: 750;
}

.dashboard-list {
  margin-top: 9px;
}

.dashboard-list > div,
.dashboard-list > a {
  min-height: 58px;
  padding: 10px 0;
  border-bottom: 1px solid #e7ebed;
  color: var(--ink);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  text-decoration: none;
}

.dashboard-list > div > span:first-child,
.dashboard-list > a > span:first-child {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.dashboard-list strong {
  font-size: 0.82rem;
}

.dashboard-list small {
  max-width: 420px;
  overflow: hidden;
  color: var(--muted);
  font-size: 0.68rem;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.dashboard-list > a > span:last-child {
  color: var(--muted);
  font-size: 0.72rem;
  white-space: nowrap;
}

.dashboard-disclaimer {
  margin-top: 28px;
}

.watchlist-create-panel {
  margin-bottom: 28px;
}

.watchlist-create-form {
  margin-top: 16px;
  display: grid;
  grid-template-columns: minmax(130px, 0.6fr) 110px minmax(150px, 0.8fr) minmax(260px, 1.6fr) auto;
  gap: 12px;
  align-items: end;
}

.watchlist-note-field textarea {
  min-height: 42px;
  height: 42px;
}

.watchlist-edit-grid {
  margin-top: 14px;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.watchlist-edit-card {
  min-width: 0;
  padding: 17px;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: var(--paper);
  box-shadow: 0 2px 8px rgb(24 33 38 / 4%);
}

.watchlist-edit-card > header {
  display: flex;
  justify-content: space-between;
  gap: 12px;
}

.watchlist-edit-card > header > div {
  display: grid;
}

.watchlist-edit-card > header .state-label {
  align-self: center;
}

.watchlist-edit-card > header span:not(.state-label) {
  color: var(--muted);
  font-size: 0.68rem;
}

.watchlist-edit-card textarea {
  min-height: 104px;
}

.watchlist-disabled {
  background: #f8fafb;
}

.watchlist-delete {
  margin-top: 9px;
  padding-top: 9px;
  border-top: 1px solid #e7ebed;
  text-align: right;
}

.forecast-layout {
  margin-top: 14px;
  display: grid;
  grid-template-columns: minmax(320px, 0.75fr) minmax(500px, 1.5fr);
  gap: 18px;
  align-items: start;
}

.forecast-layout .table-wrap {
  margin-top: 0;
}

.manual-summary {
  margin-bottom: 28px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.manual-summary div {
  min-width: 0;
  padding: 15px 18px;
  border-right: 1px solid var(--line);
  display: grid;
  gap: 3px;
}

.manual-summary div:first-child {
  padding-left: 0;
}

.manual-summary div:last-child {
  border-right: 0;
}

.manual-summary span {
  color: var(--muted);
  font-size: 0.7rem;
}

.manual-summary strong {
  overflow-wrap: anywhere;
  font-size: 1.08rem;
}

.manual-entry-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.manual-asset-help {
  margin: 0;
  padding: 10px 12px;
  border-left: 3px solid var(--teal);
  background: #f3f8f8;
  color: var(--muted);
  font-size: 0.72rem;
  line-height: 1.55;
}

.manual-asset-help strong {
  color: var(--ink);
}

.manual-account-list {
  margin-top: 14px;
  display: grid;
  gap: 18px;
}

.manual-account {
  padding: 20px;
  border: 1px solid var(--line);
  border-top: 4px solid var(--teal);
  border-radius: 8px;
  background: var(--paper);
}

.manual-account-inactive {
  border-top-color: var(--muted);
  background: #f8fafb;
}

.manual-account > header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.manual-account > header > div {
  display: flex;
  align-items: center;
  gap: 9px;
}

.manual-account > header span:not(.state-label) {
  color: var(--muted);
  font-size: 0.72rem;
}

.manual-account-form {
  margin-top: 16px;
  padding: 14px 0;
  border-top: 1px solid #e7ebed;
  border-bottom: 1px solid #e7ebed;
  display: grid;
  grid-template-columns: 1.2fr 90px 90px 120px 120px minmax(150px, 1fr) auto auto;
  gap: 9px;
  align-items: end;
}

.manual-account-form input,
.manual-account-form .button {
  min-height: 36px;
  padding: 6px 8px;
  font-size: 0.76rem;
}

.manual-account-form label > span {
  font-size: 0.66rem;
}

.manual-holdings {
  margin-top: 14px;
}

.manual-holding-head,
.manual-holding-row {
  display: grid;
  grid-template-columns: minmax(220px, 1.5fr) minmax(150px, 0.7fr) 64px;
  gap: 14px;
  align-items: center;
}

.manual-holding-head {
  padding: 0 0 7px;
  color: var(--muted);
  font-size: 0.68rem;
}

.manual-holding-row {
  min-height: 66px;
  padding: 10px 0;
  border-top: 1px solid #e7ebed;
}

.manual-holding-row > div {
  min-width: 0;
  display: grid;
  gap: 2px;
}

.manual-holding-row > div:nth-child(2) {
  text-align: right;
}

.manual-holding-row span,
.manual-holding-row small {
  color: var(--muted);
  font-size: 0.68rem;
  overflow-wrap: anywhere;
}

.manual-holding-row .manual-asset-type {
  display: inline-flex;
  margin-left: 5px;
  padding: 2px 6px;
  border-radius: 999px;
  background: #e7f2f1;
  color: var(--teal);
  font-size: 0.62rem;
  font-weight: 750;
  vertical-align: middle;
}

.manual-holding-row details {
  position: relative;
}

.manual-holding-row details:not([open]) > :not(summary) {
  display: none;
}

.manual-holding-row details[open] {
  grid-column: 1 / -1;
  width: 100%;
}

.manual-holding-row summary {
  color: var(--blue);
  cursor: pointer;
  font-size: 0.74rem;
  font-weight: 750;
}

.manual-holding-edit {
  min-width: 0;
  width: 100%;
  margin: 12px 0;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 7px;
  background: #f8fafb;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 9px;
}

.manual-delete-form,
.manual-account-delete {
  margin-top: 10px;
  text-align: right;
}

.principle-index {
  border-top: 1px solid var(--line);
}

.principle-index > a {
  min-height: 126px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
  color: var(--ink);
  display: grid;
  grid-template-columns: 48px minmax(0, 1fr) 50px;
  gap: 18px;
  align-items: start;
  text-decoration: none;
}

.principle-index > a:hover strong,
.principle-index > a:focus-visible strong {
  color: var(--teal-dark);
}

.principle-number,
.principle-time {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 750;
}

.principle-index > a > div {
  display: grid;
  gap: 5px;
}

.principle-index strong {
  font-size: 1.08rem;
}

.principle-index p {
  margin: 0;
  color: var(--muted);
  font-size: 0.84rem;
}

.principle-time {
  text-align: right;
}

.note-case-study,
.note-decision-block {
  padding: 38px 0;
  border-bottom: 1px solid var(--line);
}

.note-case-study h2,
.note-decision-block h2 {
  margin: 0 0 16px;
  font-size: 1.3rem;
}

.note-case-study > p {
  color: #39454b;
  line-height: 1.8;
}

.case-compare {
  margin-top: 20px;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.case-compare > div {
  padding: 17px;
  border: 1px solid var(--line);
  border-top: 3px solid var(--red);
  border-radius: 7px;
  background: var(--paper);
}

.case-compare .case-disciplined {
  border-top-color: var(--teal);
}

.case-compare span {
  color: var(--muted);
  font-size: 0.72rem;
  font-weight: 800;
}

.case-compare p {
  margin: 8px 0 0;
  font-size: 0.85rem;
}

.challenge-list {
  margin: 0;
  padding: 0;
  list-style: none;
  counter-reset: challenge;
}

.challenge-list li {
  min-height: 52px;
  padding: 12px 0 12px 44px;
  border-bottom: 1px solid #e7ebed;
  counter-increment: challenge;
  position: relative;
}

.challenge-list li::before {
  content: counter(challenge, decimal-leading-zero);
  position: absolute;
  left: 0;
  color: var(--teal);
  font-size: 0.72rem;
  font-weight: 800;
}

.decision-template {
  border-top: 1px solid var(--line);
}

.decision-template div {
  min-height: 66px;
  padding: 12px 0;
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 140px 1fr;
  gap: 18px;
}

.decision-template strong {
  font-size: 0.82rem;
}

.decision-template span {
  color: var(--muted);
  font-size: 0.84rem;
}

@media (max-width: 1000px) {
  .primary-nav a {
    padding: 7px 6px;
    font-size: 0.76rem;
  }

  .connection-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .feature-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .regime-summary {
    grid-template-columns: 150px 1fr;
  }

  .regime-components {
    grid-column: 1 / -1;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .market-indicator-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .decision-layout {
    grid-template-columns: 1fr;
  }

  .scenario-panel {
    position: static;
  }

  .scenario-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .refining-metrics {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .automatic-component-grid,
  .free-fundamental-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .refining-environment-hero {
    grid-template-columns: minmax(260px, 1.5fr) repeat(3, minmax(130px, 0.7fr));
    gap: 14px;
  }

  .refining-input-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .refining-field-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .refining-input-form .check-row {
    grid-column: 1;
  }

  .refining-metrics > div:nth-child(2) {
    border-right: 0;
  }

  .refining-metrics > div:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }

  .watchlist-create-form {
    grid-template-columns: 1fr 110px 1fr;
  }

  .watchlist-note-field {
    grid-column: 1 / 3;
  }

  .watchlist-edit-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .forecast-layout {
    grid-template-columns: 1fr;
  }

  .manual-account-form {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }

  .manual-account-notes {
    grid-column: span 2;
  }
}

@media (max-width: 760px) {
  .topbar {
    padding: 0 16px;
  }

  .shell {
    width: min(100% - 24px, 1180px);
    padding-top: 24px;
  }

  .page-heading {
    align-items: flex-start;
    flex-direction: column;
  }

  .refining-heading form,
  .refining-heading .button {
    width: 100%;
  }

  .automatic-outlook-heading {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .automatic-outlook-heading > div:first-child {
    grid-column: 1 / -1;
  }

  .automatic-coverage {
    border-left: 1px solid var(--line);
  }

  .refining-environment-hero {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .refining-environment-title {
    grid-column: 1 / -1;
  }

  .refining-score-main,
  .refining-score-side {
    min-height: 76px;
    padding: 10px 0 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .refining-driver-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .refining-environment-grid,
  .ai-interpretation-grid {
    grid-template-columns: 1fr;
  }

  .previous-analysis-strip {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .previous-analysis-strip > span {
    grid-column: 1 / -1;
  }

  .refining-chart-grid,
  .refining-analysis-grid,
  .refining-price-guidance-grid {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .refining-section-heading {
    flex-direction: column;
    gap: 10px;
  }

  .refining-guidance-context {
    flex-direction: column;
  }

  .refining-guidance-context span {
    text-align: left;
  }

  .chart-legend {
    justify-content: flex-start;
  }

  .dashboard-overview,
  .manual-summary {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dashboard-overview a:nth-child(2),
  .manual-summary div:nth-child(2) {
    border-right: 0;
  }

  .dashboard-overview a:nth-child(-n + 2),
  .manual-summary div:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }

  .dashboard-two-column,
  .manual-entry-grid {
    grid-template-columns: 1fr;
  }

  .watchlist-create-form,
  .manual-account-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .watchlist-note-field,
  .manual-account-notes {
    grid-column: 1 / -1;
  }

  .manual-holding-head,
  .manual-holding-row {
    grid-template-columns: minmax(0, 1fr) auto;
  }

  .manual-holding-row details {
    grid-column: 1 / -1;
  }

  .manual-holding-edit {
    min-width: 0;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .market-regime-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .market-regime-heading .button {
    width: 100%;
  }

  .regime-summary {
    grid-template-columns: 120px 1fr;
  }

  .market-regime-footer {
    flex-direction: column;
    gap: 3px;
  }

  .metric-strip {
    grid-template-columns: 1fr 1fr;
  }

  .connection-grid {
    grid-template-columns: 1fr 1fr;
  }

  .monitor-summary,
  .risk-hero {
    grid-template-columns: 1fr;
  }

  .monitor-summary div,
  .risk-hero div {
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .monitor-summary div:last-child,
  .risk-hero div:last-child {
    border-bottom: 0;
  }

  .freshness-row,
  .change-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  .freshness-signals {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .risk-position-grid {
    grid-template-columns: 1fr 1fr;
  }

  .account-overview,
  .account-metric-strip,
  .allocation-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .account-overview > div:nth-child(2),
  .account-metric-strip > div:nth-child(2) {
    border-right: 0;
  }

  .account-overview > div:nth-child(-n + 2),
  .account-metric-strip > div:nth-child(-n + 2) {
    border-bottom: 1px solid var(--line);
  }

  .scenario-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .metric-strip div {
    padding: 10px 12px;
    border-bottom: 1px solid var(--line);
  }

  .metric-strip div:nth-child(2) {
    border-right: 0;
  }

  .workspace-grid {
    grid-template-columns: 1fr;
  }

  .watchlist-tools,
  .watchlist-add {
    grid-template-columns: 1fr;
  }

  .note-grid {
    grid-template-columns: 1fr 1fr;
  }

  .enrollment {
    grid-template-columns: 1fr;
  }

  .recovery-grid {
    grid-template-columns: 1fr;
  }

  .quick-action {
    align-items: flex-start;
    flex-direction: column;
  }
}

@media (max-width: 440px) {
  .account > span {
    display: none;
  }

  .topbar {
    flex-wrap: wrap;
    gap: 8px;
    padding-top: 8px;
    padding-bottom: 8px;
  }

  .primary-nav {
    order: 3;
    width: 100%;
    overflow-x: auto;
  }

  .primary-nav a {
    white-space: nowrap;
  }

  .auth-panel {
    padding: 22px;
  }

  .field-grid,
  .field-grid-symbol,
  .control-stack {
    grid-template-columns: 1fr;
  }

  .regime-summary,
  .regime-components,
  .market-indicator-grid {
    grid-template-columns: 1fr;
  }

  .regime-components {
    grid-column: auto;
  }

  .metric-strip strong {
    font-size: 0.9rem;
  }

  .note-grid {
    grid-template-columns: 1fr;
  }

  .risk-position-grid {
    grid-template-columns: 1fr;
  }

  .account-overview,
  .account-metric-strip,
  .allocation-list {
    grid-template-columns: 1fr;
  }

  .account-overview > div,
  .account-overview > div:first-child,
  .account-metric-strip > div,
  .account-metric-strip > div:first-child {
    padding: 12px 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .account-overview > div:last-child,
  .account-metric-strip > div:last-child {
    border-bottom: 0;
  }

  .account-analysis-heading {
    flex-direction: column;
    gap: 10px;
  }

  .account-analysis-heading > div:last-child {
    width: 100%;
    justify-content: space-between;
  }

  .note-header h1 {
    font-size: 1.65rem;
  }

  .note-section {
    padding-left: 0;
  }

  .section-number {
    position: static;
    display: block;
    margin-bottom: 8px;
  }

  .period-tabs {
    width: 100%;
  }

  .period-tabs a {
    min-width: 0;
    flex: 1 1 0;
  }

  .refining-metrics {
    grid-template-columns: 1fr;
  }

  .automatic-outlook-heading,
  .automatic-component-grid,
  .oil-price-strip,
  .free-fundamental-grid {
    grid-template-columns: 1fr;
  }

  .automatic-outlook-heading > div:first-child {
    grid-column: auto;
  }

  .automatic-score,
  .automatic-coverage {
    min-height: 0;
    padding: 10px 0 0;
    border-top: 1px solid var(--line);
    border-left: 0;
  }

  .refining-environment-hero,
  .refining-driver-grid,
  .factor-columns,
  .business-separation,
  .refining-input-form,
  .refining-field-grid,
  .previous-analysis-strip {
    grid-template-columns: 1fr;
  }

  .refining-environment-title,
  .previous-analysis-strip > span,
  .business-separation p,
  .refining-input-intro,
  .refining-input-group {
    grid-column: auto;
  }

  .refining-score-main,
  .refining-score-side {
    min-height: 0;
  }

  .refining-component-list > div {
    grid-template-columns: minmax(100px, 1fr) 44px 42px;
  }

  .refining-component-list small {
    grid-column: 1 / -1;
  }

  .refining-ai-panel,
  .refining-input-panel {
    padding: 15px;
  }

  .refining-metrics > div,
  .refining-metrics > div:first-child {
    padding: 13px 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .refining-metrics > div:last-child {
    border-bottom: 0;
  }

  .chart-shell,
  .chart-shell-large {
    height: 220px;
    padding-left: 46px;
  }

  .chart-scale {
    width: 39px;
  }

  .dashboard-overview,
  .manual-summary,
  .watchlist-edit-grid,
  .watchlist-create-form,
  .manual-account-form,
  .manual-holding-edit,
  .case-compare {
    grid-template-columns: 1fr;
  }

  .dashboard-overview a,
  .dashboard-overview a:first-child,
  .manual-summary div,
  .manual-summary div:first-child {
    padding: 13px 0;
    border-right: 0;
    border-bottom: 1px solid var(--line);
  }

  .dashboard-overview a:last-child,
  .manual-summary div:last-child {
    border-bottom: 0;
  }

  .watchlist-note-field,
  .manual-account-notes {
    grid-column: auto;
  }

  .manual-account {
    padding: 15px;
  }

  .manual-account > header {
    align-items: flex-start;
    flex-direction: column;
  }

  .principle-index > a {
    grid-template-columns: 34px minmax(0, 1fr);
  }

  .principle-time {
    display: none;
  }

  .decision-template div {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}

/* Quant Strategy Center: native forms, bounded tables, no polling. */
.manual-summary.qsc-summary { grid-template-columns: repeat(7, minmax(0, 1fr)); }
.qsc-filters { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 12px; align-items: end; }
.qsc-filters label { display: grid; gap: 6px; }
.qsc-table-wrap { max-width: 100%; overflow-x: auto; }
.qsc-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.qsc-table th, .qsc-table td { padding: 12px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.qsc-table small { display: block; margin-top: 6px; }
.qsc-table td { max-width: 280px; min-width: 80px; white-space: normal; overflow-wrap: anywhere; }
.qsc-badge { display: inline-block; padding: 4px 8px; border: 1px solid var(--line); border-radius: 6px; background: var(--bg); font-size: 12px; }
.qsc-progress { display: inline-flex; align-items: center; gap: 8px; }
.qsc-progress progress { width: 110px; height: 12px; accent-color: var(--teal); }
.qsc-tabs, .qsc-pages { display: flex; flex-wrap: wrap; gap: 16px; margin: 20px 0; }
.qsc-tabs a { padding: 10px 8px; border-bottom: 2px solid transparent; }
.qsc-tabs a[aria-current=page] { border-color: var(--teal); font-weight: 700; }
.qsc-facts { display: grid; grid-template-columns: minmax(120px, 1fr) 3fr; gap: 10px 20px; }
.qsc-facts dt { font-weight: 600; }
.qsc-facts dd { margin: 0; overflow-wrap: anywhere; }
.qsc-checks details, .qsc .panel > details { border-bottom: 1px solid var(--line); padding: 12px 0; }
.qsc-checks summary, .qsc .panel > details > summary { cursor: pointer; padding: 8px 0; }
.qsc pre { white-space: pre-wrap; overflow-wrap: anywhere; max-width: 100%; }
.qsc-form-panel { max-width: 900px; }
@media (max-width: 640px) { .manual-summary.qsc-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); } .qsc-facts { grid-template-columns: 1fr; } .qsc-table { min-width: 880px; } .qsc-tabs { gap: 4px; } }
