/* Canonical base rules precede responsive/theme overrides. Keep media scopes below. */
/* Design tokens and shared defaults. Responsive variants stay in their media scope. */
:root {
  color-scheme:light dark;
  --bg:#f5f7fa;
  --panel:#ffffff;
  --border:#e1e7ee;
  --text:#172b3a;
  --muted:#5b6b7d;
  --accent:#0f766e;
  --danger:#b42332;
  --warning:#925b0b;
  --subtle:#eef7f5;
  --positive:#13754c;
  --negative:#b42332;
  --surface:#f8fafb;
  --focus:#087f8c;
  font-size:15px;
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  line-height:1.5;
}
.workspace-header h1 {
  font-size:1.6rem;
}
.workspace-nav button {
  margin-left:auto;
}
.workspace-page #workspace-message {
  margin-bottom:16px;
}
.workspace-child .access {
  display:none;
}
.frequency-table {
  width:100%;
  border-collapse:collapse;
  margin-top:16px;
  font-size:.86rem;
}
.frequency-table th,.frequency-table td {
  text-align:left;
  padding:12px;
  border-bottom:1px solid var(--border);
  vertical-align:top;
}
.frequency-table th {
  color:var(--accent);
}
* {
  box-sizing:border-box;
}
h1,h2,h3,p {
  margin:0;
}
p+p {
  margin-top:8px;
}
.portfolio-page .record {
  display:block;
}
.portfolio-page .record > p {
  margin-top:6px;
}
.portfolio-page .record > button {
  margin-top:12px;
  margin-right:8px;
}
.portfolio-page .access {
  display:block;
}
.portfolio-page .access form {
  margin-top:12px;
}
.portfolio-page .review-form button {
  align-self:end;
}
.portfolio-page input[readonly] {
  border-style:dashed;
  color:var(--muted);
}
.eyebrow {
  font-size:.7rem;
  letter-spacing:.15em;
  color:var(--accent);
  margin-bottom:12px;
  font-weight:700;
}
.masthead,.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
}
.connection {
  text-align:right;
}
.connection p {
  margin-top:8px;
}
.access {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}
.access form {
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  min-width:0;
}
.access p {
  margin-top:4px;
}
input,button {
  font:inherit;
  border-radius:7px;
  min-height:44px;
  padding:10px 14px;
}
input {
  border:1px solid var(--border);
  background:var(--bg);
  color:var(--text);
  width:220px;
  min-width:0;
}
button.danger {
  background:var(--danger);
  border-color:var(--danger);
  color:#ffffff;
}
button:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible {
  outline:3px solid var(--focus);
  outline-offset:3px;
}
#message {
  font-size:.85rem;
  color:var(--muted);
  min-height:26px;
  margin:0 0 14px;
  overflow-wrap:anywhere;
}
#message.error {
  color:var(--warning);
}
.metrics {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.metric .amount {
  font-size:clamp(1.55rem,3vw,2.1rem);
  font-variant-numeric:tabular-nums;
  letter-spacing:-.03em;
  overflow-wrap:anywhere;
  margin:8px 0;
}
.workspace {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:18px;
}
.section-heading {
  margin-bottom:12px;
}
.controls {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
  margin:18px 0;
}
.readiness-checks {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));
  gap:12px;
  margin:20px 0;
}
.readiness-check p {
  font-size:.85rem;
  margin:8px 0;
}
.readiness-check a {
  font-size:.85rem;
  display:inline-block;
  min-height:32px;
  padding-top:8px;
}
.preparation-steps {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:24px;
  margin-top:20px;
}
.preparation-steps article {
  min-width:0;
  border:1px solid var(--border);
  border-radius:10px;
  padding:18px;
}
.preparation-steps h3 {
  font-size:1rem;
  margin:0 0 12px;
}
.preparation-steps p {
  font-size:.87rem;
  margin:12px 0;
}
.preparation-steps label:not(.check) {
  display:block;
  margin:18px 0 8px;
}
.preparation-steps .check {
  display:flex;
  align-items:flex-start;
  gap:12px;
  min-height:44px;
  padding:10px 0;
  font-size:.87rem;
}
.preparation-steps .check input[type=checkbox] {
  width:20px;
  height:20px;
  min-height:20px;
  flex:0 0 20px;
  margin:3px 0;
  accent-color:var(--accent);
}
.preparation-steps select,.preparation-steps textarea,.preparation-steps input:not([type=checkbox]) {
  width:100%;
  box-sizing:border-box;
}
.preparation-steps textarea {
  resize:vertical;
  background:var(--bg);
  color:var(--text);
  border:1px solid var(--border);
  border-radius:8px;
  padding:12px;
  font:inherit;
  font-size:.85rem;
}
.preparation-steps progress {
  width:100%;
  height:12px;
  accent-color:var(--accent);
}
.preparation-steps .dialog-actions {
  flex-wrap:wrap;
  justify-content:flex-start;
}
.preparation-failure {
  margin-top:16px;
  padding:16px;
  border:2px solid #b42318;
  border-left-width:6px;
  border-radius:8px;
  background:#fff1f0;
  color:#7a271a;
  overflow-wrap:anywhere;
}
.preparation-failure h4 {
  margin:0;
  font-size:1rem;
}
.preparation-failure a {
  display:inline-block;
  padding:10px 0;
  color:#7a271a;
  font-weight:700;
  text-decoration:underline;
}
.preparation-prerequisites {
  margin:16px 0;
  padding:16px;
  border:2px solid #b54708;
  border-radius:8px;
  background:#fffaeb;
  color:#713b12;
  overflow-wrap:anywhere;
}
.preparation-prerequisites.is-ready {
  border-color:var(--border);
  background:var(--bg);
  color:var(--text);
}
.preparation-prerequisites h4 { margin:0; font-size:1rem; }
.preparation-prerequisites a {
  display:inline-block;
  padding:10px 0;
  color:inherit;
  font-weight:700;
  text-decoration:underline;
}
.notice.feed-connected,.notice.feed-failed { padding:14px 16px; border-radius:8px; }
.notice.feed-connected { border:2px solid #217454; background:#edf9f0; color:#145137; }
.notice.feed-failed { border:2px solid #b42318; background:#fff1f0; color:#7a271a; }
.readiness-panel details {
  margin-top:18px;
}
#mode-status,#next-action {
  overflow-wrap:anywhere;
}
.records {
  display:grid;
  gap:10px;
  margin-top:12px;
}
.record {
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:8px 24px;
  border-top:1px solid var(--border);
  padding-top:12px;
  font-size:.86rem;
  overflow-wrap:anywhere;
}
.record p {
  min-width:0;
}
.record strong {
  font-weight:600;
}
.record .muted {
  font-size:.78rem;
}
.record .record-value {
  text-align:right;
  font-variant-numeric:tabular-nums;
}
pre {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  font-size:.76rem;
  line-height:1.6;
  margin-top:16px;
}
footer {
  padding:8px 0 18px;
}
dialog {
  background:var(--panel);
  color:var(--text);
  border:1px solid var(--border);
  border-radius:12px;
  padding:24px;
  max-width:460px;
  width:calc(100% - 32px);
}
dialog::backdrop {
  background:#172b3a66;
}
dialog p {
  margin-top:12px;
  font-size:.9rem;
}
.dialog-actions {
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:22px;
}
.sr-only,.skip:not(:focus) {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
}
.skip:focus {
  display:block;
  color:var(--accent);
  margin-bottom:16px;
}
[hidden] {
  display:none !important;
}
.review-form {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:14px;
  margin-top:18px;
}
.claim-metrics {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:16px;
  margin:20px 0;
}
.claim-metrics > div {
  min-width:0;
}
.claim-metrics dt {
  color:var(--muted);
  font-size:.85rem;
}
.claim-metrics dd {
  margin:6px 0 0;
  font-size:1.35rem;
  overflow-wrap:anywhere;
}
.claim-metrics .claim-note {
  color:var(--muted);
  font-size:.8rem;
  line-height:1.5;
}
.review-form label {
  display:flex;
  flex-direction:column;
  gap:6px;
  color:var(--muted);
  font-size:.85rem;
  min-width:0;
}
.review-form input {
  width:100%;
}
.review-form .check {
  grid-column:1/-1;
  flex-direction:row;
  align-items:center;
}
.review-form input[type=checkbox] {
  width:20px;
  flex:0 0 20px;
}
/* Trading desk: one clear mode, reviewable proposal cards and responsive touch targets. */
.mode-options {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px;
  margin:20px 0;
}
.mode-option h3,.trade-card h3 {
  margin:0;
  color:var(--text);
  font-size:1rem;
}
.trade-card p {
  margin-top:8px;
  font-size:.9rem;
}
.trade-card button {
  margin-top:14px;
  margin-right:10px;
}
.trade-card details {
  margin-top:16px;
}
.trade-card pre {
  max-height:420px;
  overflow:auto;
  font-size:.8rem;
  white-space:pre-wrap;
}
.desk-links {
  display:flex;
  flex-wrap:wrap;
  gap:16px;
  margin-top:18px;
}
.desk-page select {
  min-height:44px;
  background:var(--bg);
  color:var(--text);
  border:1px solid var(--border);
  padding:8px 12px;
  border-radius:6px;
  margin:12px;
}
.desk-page .access form {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
}
.desk-page #shortlist-preview {
  margin:16px 0;
}
/* Guided setup keeps the common path short; evidence remains accessible. */
#guided-dialog {
  width:min(720px,calc(100vw - 40px));
  max-width:720px;
  max-height:85vh;
  overflow:auto;
  box-sizing:border-box;
}
#guided-dialog p,#guided-dialog label {
  overflow-wrap:anywhere;
}
#guided-dialog pre {
  max-height:230px;
  overflow:auto;
  white-space:pre-wrap;
  font-size:.85rem;
}
#guided-dialog .check {
  display:flex;
  align-items:flex-start;
  gap:12px;
  padding:12px 0;
}
#guided-dialog input[type=checkbox] {
  width:22px;
  height:22px;
  flex:0 0 22px;
  margin:2px 0;
}
#prep-advanced {
  margin:20px 0;
}
#guided-review {
  width:100%;
  min-height:48px;
}
/* Components: workspace, broker setup and source-backed research. */
body {
  margin:0 auto;
  padding:32px;
  max-width:1500px;
  background:var(--bg);
  color:var(--text);
}
h1 {
  font-size:1.8rem;
  letter-spacing:-.035em;
  font-weight:700;
}
h2 {
  font-size:1.05rem;
  font-weight:650;
}
h3 {
  font-size:.95rem;
  margin:24px 0 12px;
  color:var(--muted);
}
.muted {
  color:var(--muted);
  font-size:.88rem;
  line-height:1.65;
}
.panel {
  border:1px solid var(--border);
  background:var(--panel);
  border-radius:12px;
  padding:24px;
  margin-bottom:18px;
  min-width:0;
  box-shadow:0 2px 5px #172b3a03;
}
.panel > p {
  margin-top:10px;
}
.masthead {
  margin-bottom:24px;
  align-items:flex-start;
}
.masthead .muted {
  margin-top:6px;
}
button {
  border:1px solid var(--accent);
  background:var(--accent);
  color:#ffffff;
  font-size:.85rem;
  font-weight:650;
  cursor:pointer;
  border-radius:7px;
  box-shadow:0 1px 2px #172b3a08;
}
button:hover:not(:disabled) {
  filter:brightness(.96);
}
button:disabled {
  opacity:.55;
  cursor:not-allowed;
}
button.quiet,button.secondary {
  background:var(--panel);
  color:var(--text);
  border-color:#c3cdd8;
}
button.danger.secondary {
  background:transparent;
  color:var(--danger);
  border-color:#edb5bc;
}
select {
  min-height:44px;
  padding:10px 12px;
  max-width:100%;
}
input:focus,select:focus,textarea:focus {
  border-color:var(--accent);
}
:focus-visible {
  outline:3px solid var(--focus);
  outline-offset:3px;
}
input[type=checkbox] {
  accent-color:var(--accent);
}
a {
  color:var(--accent);
  text-underline-offset:3px;
}
a:hover {
  color:var(--accent);
}
.pill {
  letter-spacing:.06em;
  display:inline-block;
  border:1px solid #3b625e;
  border-radius:4px;
  padding:3px 7px;
  margin-left:8px;
  color:var(--warning);
  background:var(--surface);
  border-color:#f0dfaa;
  font-size:.68rem;
  font-weight:750;
  white-space:nowrap;
}
.badge {
  display:inline-block;
  border:1px solid var(--border);
  background:var(--surface);
  color:var(--muted);
  border-radius:99px;
  padding:5px 10px;
  font-size:.75rem;
  white-space:nowrap;
  font-weight:550;
}
.badge.good {
  color:var(--positive);
  border-color:#b5ded1;
  background:var(--subtle);
}
.badge.warn {
  color:var(--warning);
  border-color:#edd5a4;
  background:var(--surface);
}
.notice {
  font-size:.87rem;
  color:var(--muted);
  border-top:1px solid var(--border);
  padding-top:16px;
  line-height:1.65;
}
.reasons {
  padding-left:20px;
  color:var(--warning);
  font-size:.88rem;
  margin:16px 0;
  overflow-wrap:anywhere;
  line-height:1.75;
}
.records > p {
  line-height:1.6;
}
.metric .amount,.desk-value,.claim-metrics dd {
  font-variant-numeric:tabular-nums;
  letter-spacing:-.03em;
}
.metric h2 {
  color:var(--muted);
  font-size:.82rem;
  font-weight:550;
}
.metric {
  position:relative;
  overflow:hidden;
}
.metric::before {
  content:'';
  position:absolute;
  height:3px;
  left:24px;
  right:24px;
  top:0;
  background:var(--accent);
  opacity:.22;
}
.check-ready {
  color:var(--positive);
}
.check-waiting {
  color:var(--warning);
}
.readiness-check {
  border:1px solid var(--border);
  border-radius:10px;
  padding:16px;
  min-width:0;
  overflow-wrap:anywhere;
  background:var(--surface);
}
.readiness-check h3 {
  font-size:.92rem;
  margin:0 0 10px;
}
.trade-card {
  display:block;
  border:1px solid var(--border);
  border-radius:10px;
  margin-top:16px;
  padding:18px;
  overflow-wrap:anywhere;
  background:var(--panel);
}
.trade-card h3 {
  font-size:1rem;
}
.mode-option {
  border:1px solid var(--border);
  border-radius:10px;
  padding:20px;
  display:flex;
  flex-direction:column;
  gap:12px;
  background:var(--surface);
}
.mode-option h3 {
  font-size:.95rem;
}
.mode-option p {
  font-size:.88rem;
  color:var(--muted);
  flex:1;
  line-height:1.65;
}
summary {
  cursor:pointer;
  font-weight:600;
  min-height:44px;
  display:list-item;
  align-content:center;
}
details[open] > summary {
  margin-bottom:16px;
}
.details-note {
  margin-top:12px;
}
.subnav {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:24px;
  border-bottom:1px solid var(--border);
  padding-bottom:12px;
}
.subnav a {
  padding:10px 14px;
  min-height:44px;
  text-decoration:none;
  border-radius:7px;
}
.subnav a[aria-current=page] {
  background:var(--subtle);
  font-weight:650;
}
/* Desktop shell. The sidebar never shares the content scroll or crowds its cards. */
body.workspace-page {
  max-width:none;
  margin:0;
  padding:0;
}
.workspace-brand small {
  display:block;
  font-size:.55rem;
  color:var(--muted);
  font-weight:600;
  letter-spacing:.1em;
  margin-top:4px;
}
.brand-mark {
  width:34px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:var(--accent);
  color:white;
}
.brand-mark svg {
  width:23px;
  height:23px;
}
.workspace-nav a > span {
  width:20px;
  font-size:1.25rem;
  text-align:center;
  color:#6e8394;
}
.workspace-nav a.active {
  background:var(--subtle);
  color:var(--accent);
  font-weight:700;
}
.workspace-nav a.active > span {
  color:var(--accent);
}
.workspace-nav a:hover {
  background:var(--surface);
}
.workspace-nav a.nav-secondary {
  min-height:36px;
  padding:7px 12px 7px 45px;
  font-size:.78rem;
}
.sidebar-bottom > a.active {
  color:var(--accent);
  font-weight:650;
}
.paper-note {
  display:flex;
  gap:8px;
  align-items:flex-start;
  padding:16px 6px 0;
  margin-top:12px;
  border-top:1px solid var(--border);
  font-size:.76rem;
}
.paper-note small {
  display:block;
  margin-top:4px;
  color:var(--muted);
  font-size:.68rem;
}
.status-dot {
  display:inline-block;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--accent);
  margin-top:6px;
  flex-shrink:0;
}
.workspace-content {
  margin-left:236px;
  min-width:0;
}
.workspace-header {
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  margin-bottom:18px;
  min-height:83px;
  padding:16px 32px;
  border-bottom:1px solid var(--border);
  background:var(--panel);
  margin:0;
}
.workspace-header .eyebrow {
  font-size:.68rem;
  letter-spacing:.08em;
  color:var(--muted);
  margin:0 0 4px;
}
.workspace-header .eyebrow > span {
  margin-left:10px;
}
#workspace-title {
  color:var(--text);
}
.workspace-header .muted {
  font-size:.78rem;
}
.workspace-session {
  display:flex;
  gap:12px;
  align-items:center;
  flex-direction:row;
}
.workspace-session .badge {
  font-size:.7rem;
}
.workspace-session .pill {
  margin:0;
}
.workspace-body {
  padding:28px 30px 16px;
  max-width:1640px;
  margin:auto;
}
.workspace-page iframe {
  width:100%;
  min-height:640px;
  border:0;
  margin-top:12px;
  background:var(--bg);
  margin:0;
  display:block;
}
.workspace-child {
  padding:0;
  max-width:none;
}
.workspace-child .masthead .eyebrow {
  display:none;
}
.workspace-child .masthead .badge {
  margin-top:7px;
}
#workspace-message.error {
  color:var(--danger);
}
#workspace-section-note {
  font-size:.74rem;
  margin:0 0 14px;
}
.workspace-page footer {
  font-size:.72rem;
  padding:20px 0 12px;
  border-top:1px solid var(--border);
  margin-top:12px;
}
#workspace-access {
  max-width:740px;
  margin:36px auto;
  padding:32px;
}
#workspace-access h2 {
  font-size:1.4rem;
}
#workspace-unlock {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
}
#workspace-unlock label {
  width:100%;
  font-size:.85rem;
  font-weight:600;
}
#workspace-unlock input {
  flex:1;
  min-width:150px;
}
#workspace-access > .muted:last-child {
  font-size:.76rem;
}
.onboarding-banner .muted {
  font-size:.8rem;
  margin-top:4px;
}
.button-link {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:10px 16px;
  border-radius:7px;
  background:var(--accent);
  color:#fff;
  text-decoration:none;
  font-size:.85rem;
  font-weight:650;
  white-space:nowrap;
}
.button-link:hover {
  color:white;
  background:#0b625c;
}
/* Progressive broker connection steps. */
.connection-overview {
  border-top:3px solid var(--accent);
}
.connection-facts {
  display:flex;
  flex-wrap:wrap;
  gap:12px 30px;
  margin:20px 0;
}
.connection-facts > div {
  min-width:160px;
}
.connection-facts dt {
  color:var(--muted);
  font-size:.8rem;
}
.connection-facts dd {
  margin:6px 0 0;
  font-weight:600;
}
.setup-step {
  padding:0;
  overflow:hidden;
}
.setup-step > summary {
  padding:18px 22px;
  list-style:none;
  display:flex;
  gap:14px;
  align-items:center;
}
.setup-step > summary::-webkit-details-marker {
  display:none;
}
.setup-step > summary::after {
  content:'＋';
  margin-left:auto;
  color:var(--muted);
}
.setup-step[open] > summary::after {
  content:'−';
}
.setup-step[open] > summary {
  margin:0;
  border-bottom:1px solid var(--border);
  background:var(--surface);
}
.step-number {
  background:var(--surface);
  color:var(--accent);
  width:32px;
  height:32px;
  border-radius:50%;
  display:grid;
  place-items:center;
  flex:0 0 32px;
  font-size:.85rem;
  font-weight:700;
}
.step-title {
  flex:1;
  font-weight:650;
}
.setup-step-state {
  font-size:.78rem;
  color:var(--muted);
}
.setup-step-body {
  padding:22px;
}
.setup-step-body > p {
  margin:10px 0;
}
.setup-step-navigation {
  display:flex;
  gap:10px;
  justify-content:space-between;
  border-top:1px solid var(--border);
  padding-top:16px;
  margin-top:20px;
}
.setup-step-navigation a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  font-size:.85rem;
}
/* Source-backed analysis and accessible data table. */
.analysis-toolbar {
  display:flex;
  align-items:flex-end;
  flex-wrap:wrap;
  gap:14px;
}
.analysis-toolbar input {
  min-width:200px;
}
.analysis-layout {
  display:grid;
  grid-template-columns:minmax(0,3fr) minmax(230px,1fr);
  gap:20px;
}
.analysis-chart svg {
  width:100%;
  height:auto;
  display:block;
  margin-top:20px;
}
.chart-grid {
  stroke:var(--border);
  stroke-width:1;
}
.chart-label {
  fill:var(--muted);
  font:11px system-ui;
}
.candle-down {
  fill:#c14d59;
  stroke:#c14d59;
}
.indicator-line {
  fill:none;
  stroke:#5d70b2;
  stroke-width:1.7;
}
.indicator-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(120px,1fr));
  gap:16px;
  margin:20px 0;
}
.indicator-grid dt {
  color:var(--muted);
  font-size:.78rem;
}
.indicator-grid dd {
  margin:6px 0 0;
  font-weight:650;
  font-variant-numeric:tabular-nums;
}
.analysis-table-wrap {
  overflow-x:auto;
}
.analysis-table-wrap table {
  width:100%;
  border-collapse:collapse;
  font-size:.82rem;
  font-variant-numeric:tabular-nums;
}
.analysis-table-wrap th,.analysis-table-wrap td {
  padding:12px;
  text-align:right;
  border-bottom:1px solid var(--border);
  white-space:nowrap;
}
.analysis-table-wrap th:first-child,.analysis-table-wrap td:first-child {
  text-align:left;
}
.analysis-table-wrap th {
  color:var(--muted);
  font-weight:550;
  background:var(--surface);
}
.portfolio-metrics {
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.financial-gain {
  color:var(--positive);
}
.financial-loss {
  color:var(--negative);
}
.activity-metrics {
  grid-template-columns:repeat(3,minmax(0,1fr));
}
.indicator-long {
  stroke:#a27620;
}
.volume-bar {
  opacity:.35;
  fill:#338d80;
}
.indicator-grid span {
  display:block;
  font-size:.76rem;
  color:var(--muted);
}
.indicator-grid strong {
  display:block;
  font-size:1rem;
  margin-top:5px;
  overflow-wrap:anywhere;
}
.analysis-toolbar > div {
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
}
.analysis-toolbar > p {
  flex-basis:100%;
}
.analysis-toolbar label {
  display:flex;
  flex-direction:column;
  gap:6px;
  color:var(--muted);
  font-size:.82rem;
  font-weight:550;
}
.analysis-toolbar select {
  min-width:140px;
  max-width:260px;
}
.nav-caption {
  color:var(--muted);
  font-size:.63rem;
  font-weight:650;
  letter-spacing:.12em;
  margin:40px 14px 10px;
}
input,select,textarea {
  background:var(--panel);
  color:var(--text);
  border:1px solid #c8d2dc;
  border-radius:7px;
  font:inherit;
  border-color:#81909f;
}
.desk-value {
  font-size:1.25rem;
  font-weight:650;
  margin:12px 0;
  overflow-wrap:anywhere;
}
.candle-up {
  fill:#198a7d;
  stroke:#198a7d;
}
.workspace-header,.workspace-session {
  flex-wrap:wrap;
}
.workspace-page > .skip:focus {
  position:fixed;
  top:8px;
  left:250px;
  z-index:100;
  padding:12px 16px;
  border-radius:6px;
  background:var(--panel);
  box-shadow:0 3px 12px #172b3a33;
}
/* Phase 3 grouped navigation and shared investment views. */
.workspace-sidebar {
  width:236px;
  position:fixed;
  inset:0 auto 0 0;
  background:var(--panel);
  border-right:1px solid var(--border);
  display:flex;
  flex-direction:column;
  padding:28px 16px 20px;
  z-index:10;
  overflow-y:auto;
  padding-top:22px;
}
.workspace-brand {
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 8px;
  color:var(--text);
  text-decoration:none;
  font-size:1.05rem;
  font-weight:750;
  padding-bottom:8px;
}
.workspace-nav-group {
  margin-top:16px;
}
.workspace-nav-group .nav-caption {
  margin:0 13px 5px;
  font-size:.65rem;
  letter-spacing:.08em;
}
.workspace-nav {
  display:block;
  flex-wrap:wrap;
  gap:5px;
  padding:0;
  margin-bottom:18px;
  position:static;
  top:0;
  z-index:5;
  background:transparent;
  border-bottom:1px solid var(--border);
  flex-direction:column;
  border:0;
  margin:0;
  overflow:visible;
}
.workspace-nav a {
  display:inline-flex;
  align-items:center;
  min-height:44px;
  padding:9px 13px;
  border:0;
  border-radius:7px;
  text-decoration:none;
  width:100%;
  justify-content:flex-start;
  font-size:.88rem;
  color:var(--muted);
  gap:12px;
  font-weight:550;
  margin:2px 0;
}
#workspace-menu-toggle {
  display:none;
}
.sidebar-bottom {
  margin-top:auto;
  padding:32px 8px 0;
  padding-top:22px;
}
.invest-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.invest-grid .panel {
  margin-bottom:0;
}
.invest-toolbar {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:end;
  margin:18px 0;
}
.invest-toolbar label {
  display:flex;
  flex-direction:column;
  gap:6px;
  font-size:.85rem;
  color:var(--muted);
  min-width:0;
}
.invest-toolbar input,.invest-toolbar select {
  max-width:100%;
}
.invest-card-list,.invest-learning-grid {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr));
  gap:16px;
  margin:18px 0;
}
.invest-card-list > article,.invest-learning-grid > article {
  border:1px solid var(--border);
  border-radius:9px;
  padding:18px;
  min-width:0;
  background:var(--panel);
}
.invest-card-list h3,.invest-learning-grid h3 {
  margin:0 0 10px;
  color:var(--text);
  font-size:1rem;
}
.invest-card-list p,.invest-learning-grid p {
  font-size:.88rem;
  line-height:1.65;
  overflow-wrap:anywhere;
}
.invest-definitions {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));
  gap:18px;
  margin:20px 0;
}
.invest-definitions dt {
  color:var(--muted);
  font-size:.83rem;
}
.invest-definitions > div {
  min-width:0;
}
.invest-definitions dd {
  margin:6px 0 0;
  font-variant-numeric:tabular-nums;
  overflow-wrap:anywhere;
}
.invest-evidence {
  border-top:1px solid var(--border);
  padding-top:12px;
  margin-top:16px;
}
.investment-page .amount {
  overflow-wrap:anywhere;
}
.investment-page table button {
  margin:2px;
}
.investment-page code {
  overflow-wrap:anywhere;
  font-size:.85rem;
}
.investment-page pre {
  padding:14px;
  border-radius:7px;
  background:var(--surface);
  font-size:.85rem;
}
.investment-page .check {
  display:flex;
  gap:8px;
  align-items:center;
}
.investment-page .check input {
  width:20px;
  min-height:20px;
  height:20px;
}
dialog > h2 {
  position:sticky;
  top:0;
  background:var(--panel);
  z-index:2;
  padding:4px 0 12px;
  border-bottom:1px solid var(--border);
}
dialog > .dialog-actions {
  position:sticky;
  bottom:0;
  background:var(--panel);
  z-index:2;
  padding-top:12px;
  border-top:1px solid var(--border);
}
.investment-page .metrics {
  grid-template-columns:repeat(4,minmax(0,1fr));
}
.investment-page .invest-evidence {
  min-width:220px;
  max-width:450px;
  white-space:normal;
}
.investment-page input[type="checkbox"] {
  width:24px;
  min-height:44px;
  cursor:pointer;
}
/* Research overlays keep chart coordinate rounding separate from exact tables. */
.indicator-longest {
  stroke:#7c4cad;
  stroke-width:2;
}
.research-indicator-table td {
  white-space:normal;
  min-width:140px;
}
/* Isolated backtest evidence keeps large exact values and wide tables readable. */
.backtesting-page .table-wrap {
  overflow:auto;
  max-width:100%;
  margin:18px 0;
}
.backtesting-page table {
  width:100%;
  border-collapse:collapse;
  font-size:.83rem;
  font-variant-numeric:tabular-nums;
}
.backtesting-page th,.backtesting-page td {
  padding:10px;
  text-align:left;
  vertical-align:top;
  border-bottom:1px solid var(--border);
  overflow-wrap:anywhere;
  min-width:110px;
}
.backtesting-page dd {
  overflow-wrap:anywhere;
}
.backtesting-page #ack-label {
  display:flex;
  gap:10px;
  align-items:center;
}
.backtesting-page #ack {
  width:24px;
  min-height:44px;
  flex:0 0 24px;
}
.backtesting-page button {
  margin:5px 5px 5px 0;
}
/* Policy planning stays separate from the installed strategy and its controls. */
.policy-field-group {
  border:1px solid var(--border);
  border-radius:12px;
  padding:20px;
  margin:24px 0;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px;
}
.policy-field-group legend {
  font-weight:700;
  padding:0 8px;
}
.policy-field label {
  display:block;
  font-weight:600;
  margin-bottom:8px;
}
.policy-field input,.policy-field select {
  width:100%;
  max-width:none;
  min-width:0;
}
.policy-field p {
  font-size:.875rem;
  margin:8px 0 0;
}
.policy-page .invest-card-list pre {
  white-space:pre-wrap;
  overflow-wrap:anywhere;
}
.policy-page #ack {
  width:24px;
  min-height:44px;
  margin-right:8px;
}
.policy-page #confirm-identity dd {
  overflow-wrap:anywhere;
}
.policy-page #policy-label {
  display:block;
  width:100%;
  max-width:640px;
  margin-bottom:16px;
}
.policy-page .invest-card-list article {
  overflow-wrap:anywhere;
}
.policy-page table {
  width:100%;
  border-collapse:collapse;
  font-variant-numeric:tabular-nums;
}
.policy-page th,.policy-page td {
  padding:10px;
  text-align:left;
  vertical-align:top;
  border-bottom:1px solid var(--border);
}
.policy-page label[for="ack"] {
  display:flex;
  align-items:center;
  gap:8px;
}
.policy-page label[for="ack"] input {
  margin:0;
  flex:0 0 24px;
}
/* Shared, local icons supplement labels; layout never depends on the asset loading. */
.icon {
  display:inline-block;
  width:20px;
  height:20px;
  flex:0 0 20px;
  vertical-align:middle;
  pointer-events:none;
}
button > .icon,.button-link > .icon,h2 > .icon {
  margin-right:8px;
}
.button-link > .icon:last-child {
  margin:0 0 0 8px;
}
h2 > .icon {
  color:var(--accent);
}
.workspace-nav a > .icon {
  color:var(--muted);
}
.workspace-nav a[aria-current="page"] > .icon {
  color:var(--accent);
}
.sidebar-bottom > a {
  display:flex;
  min-height:44px;
  padding:10px 6px;
  text-decoration:none;
  font-size:.85rem;
  color:var(--muted);
  align-items:center;
  gap:8px;
}
.workspace-session button {
  min-height:44px;
  font-size:.77rem;
  padding:10px 14px;
}
#workspace-menu-label {
  width:auto;
}
.access-intro {
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--accent);
}
.access-intro .eyebrow {
  margin:0;
}
.access-help {
  margin-top:20px;
  border-top:1px solid var(--border);
  padding-top:12px;
}
.access-help summary {
  min-height:44px;
  display:list-item;
  align-content:center;
}
.onboarding-banner {
  display:block;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  border:1px solid #c4ded8;
  background:var(--subtle);
  padding:0 20px;
  border-radius:10px;
  margin-bottom:22px;
}
.onboarding-banner > summary {
  display:flex;
  align-items:center;
  gap:10px;
  min-height:54px;
  list-style:none;
  margin:0;
}
.onboarding-banner > summary::-webkit-details-marker {
  display:none;
}
.onboarding-banner > summary::after {
  content:'⌄';
  font-size:1.2rem;
  margin-left:auto;
}
.onboarding-banner[open] > summary::after {
  content:'⌃';
}
.onboarding-banner h2 {
  font-size:.9rem;
}
.onboarding-body {
  display:flex;
  gap:20px;
  align-items:center;
  justify-content:space-between;
  padding:0 0 16px 30px;
}
.onboarding-body .muted {
  margin:0;
}
#workspace-message {
  font-size:.85rem;
  color:var(--muted);
  margin:0 0 14px;
}
#workspace-message:empty,.workspace-child > #message:empty {
  display:none;
}
.workspace-child .masthead {
  margin-bottom:20px;
}
.inline-help {
  margin-top:16px;
  border-top:1px solid var(--border);
  padding-top:8px;
}
.inline-help > summary,.chart-help > summary,.report-evidence > summary {
  min-height:44px;
  align-content:center;
}
.inline-help > p,.chart-help > p {
  margin:8px 0 12px;
}
.analysis-toolbar > .chart-help {
  flex-basis:100%;
}
.report-evidence {
  border-top:1px solid var(--border);
  margin-top:12px;
}
.report-evidence .table-wrap {
  max-height:520px;
  overflow:auto;
}
.report-evidence th {
  position:sticky;
  top:0;
  background:var(--panel);
  z-index:1;
}
#holding-rows td:last-child {
  white-space:normal;
  min-width:230px;
  max-width:360px;
  text-align:left;
}
.control-group {
  margin:20px 0 0;
  padding:16px;
  border:1px solid var(--border);
  border-radius:10px;
  min-width:0;
}
.control-group legend {
  font-size:.85rem;
  font-weight:650;
  padding:0 6px;
}
.control-group .controls {
  margin-top:0;
}
.emergency-controls {
  border-color:#e7c8cb;
  background:var(--panel);
}
.emergency-controls legend {
  color:var(--danger);
}
.policy-step-nav {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:24px 0 12px;
}
.policy-step-button {
  display:grid;
  grid-template-columns:28px 1fr;
  gap:4px 10px;
  align-items:center;
  text-align:left;
  background:var(--panel);
  color:var(--text);
  border-color:var(--border);
  padding:12px;
}
.policy-step-button:hover {
  background:var(--surface);
  color:var(--text);
}
.policy-step-button[aria-current="step"] {
  border:2px solid var(--accent);
  padding:11px;
  background:var(--subtle);
  color:var(--text);
}
.policy-step-number {
  display:grid;
  place-items:center;
  grid-row:span 2;
  width:28px;
  height:28px;
  border:1px solid var(--border);
  border-radius:50%;
  color:var(--muted);
}
.policy-step-button[aria-current="step"] .policy-step-number {
  background:var(--accent);
  border-color:var(--accent);
  color:white;
}
.policy-step-text {
  font-weight:650;
}
.policy-step-status {
  font-size:.8rem;
  font-weight:400;
  color:var(--muted);
}
.policy-step-intro {
  grid-column:1 / -1;
  color:var(--muted);
  font-size:.9rem;
}
.policy-progress-summary {
  color:var(--muted);
  font-size:.9rem;
}
.policy-step-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  align-items:center;
}
.policy-step-actions #review {
  margin-left:auto;
}
.policy-field-error {
  color:var(--danger);
}
.policy-field [aria-invalid="true"] {
  border:2px solid var(--danger);
}
.policy-field-group:focus {
  outline:2px solid var(--accent);
  outline-offset:4px;
}
.policy-page .table-wrap {
  overflow-x:auto;
  max-width:100%;
}
/* Feedback, readable visual summaries and shared loading state. */
.setup-page .record {
  display:block;
}
.setup-page .access {
  display:block;
}
.setup-page .access form {
  margin-top:12px;
}
.access label {
  flex-basis:100%;
  font-size:.85rem;
  font-weight:600;
}
.workspace-lock-note {
  padding:8px 30px;
  border-bottom:1px solid var(--border);
  background:var(--surface);
  font-size:.8rem;
}
.workspace-toast {
  position:sticky;
  top:8px;
  z-index:20;
  display:flex;
  align-items:center;
  gap:12px;
  border:2px solid var(--accent);
  background:var(--panel);
  padding:12px 16px;
  border-radius:8px;
  box-shadow:0 4px 20px #0002;
  margin-bottom:16px;
}
.workspace-toast.error {
  border-color:var(--danger);
}
.workspace-toast p {
  flex:1;
  overflow-wrap:anywhere;
}
.workspace-toast button {
  flex-shrink:0;
}
.workspace-toast[hidden] {
  display:none;
}
.loading-state {
  padding:18px;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:8px;
  margin-bottom:16px;
}
.skeleton {
  display:block;
  height:8px;
  max-width:420px;
  margin-top:12px;
  border-radius:4px;
  background:linear-gradient(90deg,var(--border),var(--panel),var(--border));
  background-size:200% 100%;
  animation:loading-shimmer 1.8s linear infinite;
}
.holding-bars {
  display:grid;
  gap:10px;
  margin:18px 0;
}
.holding-bar {
  display:grid;
  grid-template-columns:minmax(85px,1fr) minmax(100px,3fr) minmax(110px,1fr);
  align-items:center;
  gap:12px;
  font-size:.85rem;
}
.holding-bar svg {
  width:100%;
  height:24px;
}
.holding-bar rect {
  fill:currentColor;
}
.holding-bar strong {
  overflow-wrap:anywhere;
  text-align:right;
}
.allocation-summary {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:20px;
  margin:18px 0;
}
.allocation-summary svg {
  flex:0 0 180px;
  max-width:100%;
}
.allocation-key {
  list-style:none;
  padding:0;
  margin:0;
  flex:1;
  min-width:160px;
}
.allocation-key li {
  border-left:5px solid var(--accent);
  padding-left:12px;
  margin:8px 0;
  overflow-wrap:anywhere;
}
.allocation-segment {
  fill:none;
  stroke-width:28;
}
.allocation-0 {
  stroke:#338d80;
  border-color:#338d80!important;
}
.allocation-1 {
  stroke:#607ad4;
  border-color:#607ad4!important;
}
.allocation-2 {
  stroke:#a27620;
  border-color:#a27620!important;
}
.allocation-3 {
  stroke:#a762a7;
  border-color:#a762a7!important;
}
.allocation-4 {
  stroke:#d76844;
  border-color:#d76844!important;
}
.allocation-5 {
  stroke:#608f28;
  border-color:#608f28!important;
}
.analysis-chart {
  min-width:0;
  overflow-x:auto;
}
.analysis-chart svg.candle-chart {
  width:auto;
  max-width:none;
}
.chart-inspection {
  padding:12px;
  background:var(--subtle);
  border-radius:8px;
  min-height:3em;
}
.chart-crosshair {
  stroke:var(--muted);
  stroke-dasharray:4 3;
  pointer-events:none;
}
.chart-hit-area {
  fill:transparent;
  cursor:crosshair;
  touch-action:pan-x pan-y;
}
.chart-atr {
  fill:none;
  stroke:var(--muted);
  stroke-dasharray:4 3;
  stroke-width:1.3;
}
.chart-rsi,.chart-macd {
  fill:none;
  stroke:#5d70b2;
  stroke-width:1.7;
}
.chart-macd-signal {
  fill:none;
  stroke:#a36b0a;
  stroke-width:1.7;
}
.chart-histogram {
  fill:#338d80;
  opacity:.55;
}
.research-curve {
  fill:none;
  stroke:var(--positive);
  stroke-width:2;
}
.research-curve.secondary {
  stroke:#5d70b2;
  stroke-dasharray:6 3;
}
.drawdown-area {
  fill:var(--negative);
  opacity:.18;
}
.chart-toolbar {
  display:flex;
  gap:12px;
  flex-wrap:wrap;
  align-items:center;
}
.chart-toolbar label {
  display:flex;
  gap:6px;
  align-items:center;
}
.chart-toolbar input[type=checkbox] {
  width:auto;
}
/* Responsive layouts, system theme and motion preference. */
@media(max-width:640px) {
.workspace-nav { position:static; }
  .workspace-nav a { flex:1 1 45%; justify-content:center; text-align:center; }
  .workspace-nav button { margin-left:0; width:100%; }
  .workspace-page { padding:20px 12px; }
  .frequency-table th,.frequency-table td { padding:8px 5px; overflow-wrap:anywhere; }
}
@media(max-width:900px) {
.preparation-steps{grid-template-columns:1fr}.preparation-steps article{padding:14px}
}
@media(max-width:900px) {
.access {
    align-items:flex-start;
    flex-direction:column
  }
  .access form {
    width:100%
  }
  .access input {
    flex:1
  }
}
@media(max-width:640px) {
body {
    padding:20px 14px
  }
  .masthead {
    align-items:flex-start;
    flex-direction:column;
    gap:14px
  }
  .connection {
    text-align:left
  }
  .metrics,.workspace {
    grid-template-columns:1fr;
    gap:0
  }
  .panel {
    padding:18px;
    margin-bottom:14px
  }
  .metric .amount {
    font-size:1.9rem
  }
  .access form {
    display:grid;
    grid-template-columns:minmax(0,1fr) auto
  }
  .access input {
    width:100%;
    grid-column:1/-1
  }
  .controls {
    grid-template-columns:1fr
  }
  .section-heading {
    align-items:flex-start;
    flex-wrap:wrap
  }
  .record {
    flex-direction:column;
    gap:4px
  }
  .record .record-value {
    text-align:left
  }
  .eyebrow {
    letter-spacing:.1em
  }
  footer {
    font-size:.75rem
  }
}
@media(max-width:640px) {
.review-form {
    grid-template-columns: minmax(0,1fr);
  }
}
@media(max-width:767px) {
.mode-options { grid-template-columns:minmax(0,1fr); } .trade-card button { width:100%; margin-right:0; }
}
@media(max-width:640px) {
.workspace-header h1 { font-size:1.15rem; }
  .workspace-header .muted { display:none; }
  .workspace-header .eyebrow { font-size:.6rem; letter-spacing:.08em; }
  .workspace-session { flex-direction:column; gap:4px; }
  .workspace-session button { min-height:32px; padding:6px 8px; font-size:.75rem; white-space:nowrap; }
  .workspace-nav { flex-wrap:nowrap; overflow-x:auto; padding:6px 0 10px; gap:8px; }
  .workspace-nav a { flex:0 0 auto; min-height:44px; padding:6px 10px; font-size:.8rem; white-space:nowrap; }
  .desk-page .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
  .desk-page .metric { padding:12px; }
  .desk-page .metric:last-child { grid-column:1/-1; }
  .desk-page .desk-value { font-size:1rem; }
}
@media(max-width:640px) {
#guided-dialog { padding:18px; } #guided-dialog .dialog-actions { flex-direction:column; } #guided-dialog button { width:100%; }
}
@media(min-width:1500px) {
.workspace-body { padding:34px 40px 20px; }
}
@media(max-width:1100px) {
.workspace-sidebar { width:210px; padding-left:12px; padding-right:12px; }.workspace-content { margin-left:210px; }.workspace-body { padding:24px 22px 12px; }.workspace-header { padding:16px 22px; }.workspace-nav a { font-size:.82rem; }.workspace-brand { font-size:.95rem; }.analysis-layout { grid-template-columns:1fr; }
}
@media(max-width:767px) {
body { padding:20px 16px; }
 .workspace-sidebar { position:static; width:auto; padding:16px 16px 0; border-right:0; border-bottom:1px solid var(--border); overflow:visible; }
 .workspace-brand { font-size:1rem; }.workspace-brand small { font-size:.52rem; }.nav-caption,.sidebar-bottom { display:none; }
 .workspace-nav { display:flex; flex-direction:row; flex-wrap:nowrap; overflow-x:auto; gap:4px; margin-top:18px; padding-bottom:10px; }
 .workspace-nav a { flex:0 0 auto; width:auto; min-height:44px; padding:10px 12px; font-size:.8rem; white-space:nowrap; }.workspace-nav a > span { display:none; }.workspace-nav a.nav-secondary { padding:10px 12px; min-height:44px; font-size:.8rem; }
 .workspace-content { margin:0; }.workspace-header { padding:12px 16px; min-height:62px; gap:10px; }.workspace-header .muted { display:none; }.workspace-session { flex-direction:row; gap:6px; }.workspace-session .pill { font-size:.58rem; }.workspace-session button { font-size:.7rem; padding:6px 8px; }
 .workspace-body { padding:20px 16px 12px; }.workspace-page iframe { min-height:500px; }
 .workspace-child { padding:0; }.workspace-child .masthead { flex-direction:row; gap:10px; }.workspace-child .masthead h1 { font-size:1.6rem; }
 .workspace-child .masthead .badge { font-size:.65rem; }
 .panel { padding:20px; }.onboarding-banner { padding:14px; flex-direction:column; align-items:flex-start; gap:10px; }.onboarding-banner .button-link { width:100%; }
 #workspace-access { margin:18px auto; padding:22px; }#workspace-unlock { display:grid; grid-template-columns:minmax(0,1fr); }#workspace-unlock input { width:100%; }
 .setup-step > summary { padding:14px; gap:10px; }.setup-step-body { padding:16px; }.setup-step-state { font-size:.7rem; }.step-title { font-size:.88rem; }
 .desk-page .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }.desk-page .metric:last-child { grid-column:auto; }.desk-page .metric { padding:16px; }
 .frequency-table { display:block; overflow-x:auto; }.frequency-table th,.frequency-table td { min-width:120px; }
 .analysis-toolbar > label,.analysis-toolbar select,.analysis-toolbar input { width:100%; }.analysis-toolbar > button { flex:1; }
}
@media(prefers-reduced-motion:reduce) {
*,*::before,*::after { scroll-behavior:auto!important; animation:none!important; transition:none!important; }
}
@media(max-width:1100px) {
.portfolio-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:460px) {
.portfolio-metrics { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:640px) {
.analysis-toolbar > div { width:100%; }.analysis-toolbar select { max-width:none; }.activity-metrics { grid-template-columns:1fr; }
}
@media(max-width:460px) {
.desk-page .portfolio-metrics { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:767px) {
.workspace-page > .skip:focus { left:8px; }
}
@media(max-width:900px) {
.invest-grid { grid-template-columns:1fr; }
}
@media(max-width:767px) {
.workspace-sidebar { padding:16px; }
 #workspace-menu-toggle { display:block; width:100%; margin-top:14px; text-align:left; min-height:44px; }
 .workspace-nav { display:block; margin-top:14px; padding:0; overflow:visible; }
 .workspace-nav a { display:flex; width:100%; min-height:44px; margin:2px 0; font-size:.9rem; }
 .workspace-nav-group .nav-caption { display:block; }
 .workspace-nav-group { margin:14px 0; }
 .sidebar-bottom { display:none; }
 .invest-toolbar > div,.invest-toolbar input,.invest-toolbar select { width:100%; }
 dialog > .dialog-actions { flex-wrap:wrap; }
}
@media(max-width:1100px) {
.investment-page .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:460px) {
.investment-page .metrics { grid-template-columns:minmax(0,1fr); }
}
@media(max-width:767px) {
.policy-field-group { grid-template-columns:minmax(0,1fr); padding:16px; gap:18px; }
}
@media(max-width:767px) {
#workspace-menu-toggle { display:flex; align-items:center; }
 .workspace-nav a { justify-content:flex-start; text-align:left; flex:none; }
 .workspace-session { flex-wrap:wrap; }
 .onboarding-body { flex-direction:column; align-items:flex-start; padding-left:0; gap:12px; }
 .onboarding-body .button-link { white-space:normal; }
 .policy-step-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .policy-step-actions > button { flex:1 1 45%; }
 .policy-step-actions #review { flex-basis:100%; margin-left:0; }
 .control-group { padding:12px; }
}
@keyframes loading-shimmer {
to { background-position:-200% 0; }
}
@media(prefers-color-scheme:dark) {
:root { --bg:#111a23; --panel:#192631; --border:#425565; --text:#e7eef5; --muted:#b5c4d1; --accent:#65d2bc; --danger:#ff9ca8; --warning:#f0ca80; --positive:#78d8a2; --negative:#ffa4ae; --subtle:#203d3a; --surface:#22323f; --focus:#87e3f0; }
  button,.button-link { color:#10211e; }
  button.danger { color:#25151a; }
  .brand-mark,.policy-step-button[aria-current="step"] .policy-step-number { color:#10211e; }
  .workspace-nav a.active { background:var(--subtle); }
  .workspace-nav a:hover,.policy-step-button:hover { background:var(--surface); }
  .analysis-table-wrap th { background:var(--surface); }
  .chart-rsi,.chart-macd,.research-curve.secondary { stroke:#a6b9ff; }
  .chart-macd-signal,.indicator-long { stroke:#efc877; }
  .candle-up { fill:#65d2bc; stroke:#65d2bc; }
  .candle-down { fill:#ff9ca8; stroke:#ff9ca8; }
}
@media(max-width:640px) {
.workspace-lock-note { padding:8px 16px; }
  .workspace-toast { flex-wrap:wrap; }
  .holding-bar { grid-template-columns:90px minmax(0,1fr); }
  .holding-bar strong { grid-column:2; text-align:left; }
}
@media(prefers-reduced-motion:reduce) {
.skeleton { animation:none; }
}

/* Shared daily journey: desktop and narrow browser layouts. */
.daily-stepper{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;list-style:none;padding:0;margin:24px 0}
.daily-stepper li{padding:12px 8px;border:1px solid var(--line,#dce5ee);border-radius:12px;text-align:center;overflow-wrap:anywhere;color:#526779;background:#f4f7fa}
.daily-stepper .day-current{background:#1d7b73;color:white;border-color:#1d7b73;font-weight:700}
.daily-stepper .day-done{background:#e5f4ed;color:#166344;border-color:#b9dece}
.daily-journey{max-width:100%;min-width:0}.daily-journey details{margin-top:20px}.daily-journey .button{display:inline-block;padding:14px 18px;min-height:48px;box-sizing:border-box}.daily-journey [hidden]{display:none!important}
@media(max-width:480px){.daily-stepper{gap:4px}.daily-stepper li{font-size:.83rem;padding:12px 4px}}
