main:has(.desk-page:not(.hidden)) > header,
main:has(.desk-page:not(.hidden)) > #notice { display: none; }

aside { overflow-y: auto; }
.desk-page {
  --desk-ink: #18312e;
  --desk-muted: #5d716b;
  --desk-border: #dce7e1;
  --desk-white: #fff;
  color: var(--desk-ink);
}
.desk-page h1, .desk-page h2, .desk-page h3, .desk-page p { margin-top: 0; }
.desk-page h2 { font-size: 19px; margin-bottom: 12px; }
.desk-page h3 { font-size: 14px; margin-bottom: 12px; }
.desk-page p { line-height: 1.55; }
.desk-hero {
  background: linear-gradient(120deg, #102d28 0%, #183e35 64%, #245348 100%);
  color: #f2faf6;
  border-radius: 20px;
  padding: 26px 30px 22px;
}
.desk-kicker { color: #557969; font-size: 10px; letter-spacing: .17em; font-weight: 750; }
.desk-hero .desk-kicker { color: #a8cab7; display: flex; align-items: center; gap: 12px; }
.desk-hero .desk-kicker span {
  color: #d1eedc; letter-spacing: .1em; background: #294f43; border: 1px solid #456c5c;
  padding: 4px 8px; border-radius: 6px;
}
.desk-hero-main { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-top: 23px; }
.desk-hero h1, .desk-title h1 { font-size: clamp(26px, 3vw, 40px); letter-spacing: -.04em; margin: 0 0 7px; }
.desk-date { font-size: 12px; color: #b1cbbf; margin-bottom: 5px; }
#deskHeadline { color: #c7dfd3; margin-bottom: 0; font-size: 15px; }
.desk-primary {
  border: 1px solid transparent; background: #d6f2d9; color: #173b31;
  border-radius: 9px; padding: 12px 17px; white-space: nowrap; font-weight: 700;
}
.desk-primary:hover { background: #e5f9e7; }
.desk-primary:disabled, .desk-page button:disabled { opacity: .55; cursor: default; }
.desk-job-status { color: #d9ebdf; margin: 12px 0 0; font-size: 12px; }
.desk-job-status:empty { display: none; }
.desk-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin: 15px 0; }
.desk-kpi, .desk-panel {
  border: 1px solid var(--desk-border); background: var(--desk-white); border-radius: 14px;
}
.desk-kpi { padding: 16px 17px; display: grid; gap: 4px; min-width: 0; }
.desk-kpi strong { font-size: 29px; letter-spacing: -.035em; font-variant-numeric: tabular-nums; }
.desk-kpi small, .desk-muted, .desk-empty { color: var(--desk-muted); }
.desk-grid { display: grid; grid-template-columns: minmax(0, 2.25fr) minmax(238px, 1fr); gap: 15px; align-items: start; }
.desk-side { display: grid; gap: 15px; }
.desk-panel { padding: 18px 20px; min-width: 0; }
.desk-panel > .desk-kicker { margin-bottom: 6px; }
.desk-panel-header { display: flex; align-items: start; justify-content: space-between; gap: 12px; margin-bottom: 6px; }
.desk-panel-header .desk-kicker { margin-bottom: 5px; }
.desk-filter { margin: 0; min-width: 102px; color: var(--desk-muted); }
.desk-filter select { margin: 3px 0 0; padding: 6px 9px; }
.desk-case {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center;
  gap: 13px; padding: 12px 0; border-top: 1px solid #edf2ef;
}
.desk-case p { margin: 5px 0 3px; overflow-wrap: anywhere; }
.desk-case-title { display: flex; gap: 7px; align-items: baseline; flex-wrap: wrap; }
.desk-case-title small { color: var(--desk-muted); }
.desk-case-actions { display: grid; gap: 5px; justify-items: end; }
.desk-case-actions .link { font-size: 12px; padding: 4px; }
.desk-holdings { margin-top: 15px; }
.desk-holdings summary { cursor: pointer; font-weight: 700; }
.desk-holdings summary span { color: var(--desk-muted); font-weight: 400; }
.desk-holdings p { margin: 10px 0; }
.desk-pill { display: inline-block; padding: 3px 7px; font-size: 11px; font-weight: 700;
  color: #376653; background: #e8f2eb; border-radius: 5px; white-space: nowrap; }
.desk-critical .desk-pill { color: #a13229; background: #fcebe8; }
.desk-high .desk-pill { color: #8f5414; background: #fbefdf; }
.desk-data .desk-pill { color: #4b5b83; background: #eef0fa; }
.desk-case .desk-review-note { color: #376653; overflow-wrap: anywhere; }
.desk-reviewed { color: #376653; }
.desk-review-button { font-size: 12px; white-space: nowrap; }
.desk-health-row { border-top: 1px solid #edf2ef; padding: 9px 0; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.desk-health-row small { display: block; flex-basis: 100%; color: var(--desk-muted); }
.desk-health-row b { margin-right: auto; font-size: 13px; }
.desk-dot { border-radius: 50%; width: 7px; height: 7px; background: #d28c30; }
.desk-dot.ready { background: #2e9877; }
.desk-audit { overflow-wrap: anywhere; font-size: 12px; margin: 7px 0; }
.desk-title { margin: 6px 0 20px; }
.desk-title .desk-kicker { margin-bottom: 8px; }
.desk-title p { color: var(--desk-muted); }
.desk-fields { display: grid; grid-template-columns: repeat(auto-fit, minmax(135px, 1fr)); gap: 10px; }
.desk-fields input, .desk-fields select { margin-top: 5px; }
.desk-presets { margin: 8px 0 15px; }
.desk-scenario-summary { margin: 14px 0; }
.desk-scenario-summary p { margin: 6px 0 0; color: var(--desk-muted); }
.desk-sleeves, .desk-journal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin: 14px 0; }
.desk-loss { display: grid; gap: 4px; margin: 3px 0 12px; }
.desk-loss strong { font-size: clamp(20px, 3vw, 30px); color: #913d34; font-variant-numeric: tabular-nums; }
.desk-loss small, .desk-loss span, .desk-contribution small { color: var(--desk-muted); }
.desk-contribution { display: grid; gap: 4px; margin: 11px 0; }
.desk-contribution > div { display: flex; justify-content: space-between; gap: 8px; }
.desk-contribution progress { width: 100%; height: 8px; accent-color: #337c63; }
.desk-plan { display: flex; align-items: center; justify-content: space-between; gap: 10px; border-top: 1px solid #edf2ef; padding: 10px 0; }
.desk-plan p { margin: 3px 0; }
.desk-journal-row { display: grid; gap: 4px; border-top: 1px solid #edf2ef; padding: 9px 0; overflow-wrap: anywhere; }
.desk-journal-row small { color: var(--desk-muted); }
#deskReviewForm textarea { width: 100%; font: inherit; padding: 10px; border: 1px solid #cbdad1; border-radius: 8px; }
.desk-ai { color: #18312e; }
.desk-ai h2 { margin-top: 5px; }
.desk-ai-meta, .desk-ai-fact small { color: #5d716b; }
.desk-ai-method { background: #eaf4ef; padding: 12px; margin: 10px 0; border-radius: 10px; }
.desk-ai-method .desk-kicker { margin-bottom: 4px; }
.desk-ai-method p { margin: 5px 0; }
.desk-ai-method small { color: #5d716b; display: block; }
.desk-ai-method details { margin-top: 7px; }
.desk-ai-card { padding: 12px; margin: 10px 0; border: 1px solid #dce7e1; border-radius: 10px; background: #f7faf8; }
.desk-ai-card h3, .desk-ai-card p { margin: 0 0 7px; line-height: 1.55; }
.desk-ai details summary { cursor: pointer; color: #316d59; }
.desk-ai-fact { margin: 8px 0; padding: 7px 0; border-top: 1px solid #dce7e1; }
.desk-ai-fact p { margin: 4px 0; }
.desk-ai-sources { margin: 10px 0; }
.opportunity-panel { margin: 0 0 22px; }
.opportunity-header, .opportunity-title { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.opportunity-header h2 { margin: 5px 0 6px; }
.opportunity-header p, #opportunityStatus, .opportunity-coverage small { color: #5d716b; }
.opportunity-coverage, .opportunity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.opportunity-coverage article, .opportunity-card { background: #f8fbf9; border: 1px solid #dce7e1; border-radius: 12px; padding: 13px; }
.opportunity-coverage article { display: grid; gap: 5px; }
#opportunityFilters { margin: 14px 0; }
.opportunity-title b { color: #18312e; }
.opportunity-title span { color: #536b63; }
.opportunity-metrics { margin: 9px 0; display: flex; flex-wrap: wrap; gap: 6px 11px; font-size: 12px; color: #416d5e; }
.opportunity-card p { margin: 6px 0 9px; font-size: 13px; line-height: 1.55; }
.opportunity-levels { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; margin: 10px 0; }
.opportunity-levels div { border-top: 1px solid #dce7e1; padding-top: 7px; display: grid; gap: 3px; }
.opportunity-levels small { color: #5d716b; }
.opportunity-flow, .opportunity-event { display: block; margin: 6px 0; color: #416d5e; }
.opportunity-flow.flow-out { color: #a25a30; }
.opportunity-event { color: #6c7672; }
.opportunity-card button { margin-top: 4px; }
.opportunity-method { margin-top: 15px; }
.opportunity-method summary, .opportunity-coverage summary { cursor: pointer; }
.watch-candles {
  margin: 9px 0; padding: 9px 10px; background: #fff;
  border: 1px solid #dce7e1; border-radius: 9px; min-width: 0;
}
.watch-candles figcaption, .candle-legend { display: flex; flex-wrap: wrap; gap: 4px 12px; }
.watch-candles figcaption { justify-content: space-between; align-items: baseline; color: #18312e; font-size: 13px; }
.watch-candles figcaption span, .candle-quote { color: #516962; font-size: 11px; }
.watch-candles svg { display: block; width: 100%; margin: 3px 0; }
.watch-candles svg:focus-visible { outline: 2px solid #23776b; outline-offset: 2px; }
.candle-tick { fill: #516962; font-size: 11.5px; }
.candle-grid { stroke: #dfe9e4; }
.candle-up { color: #198875; }
.candle-down { color: #bc5252; }
.candle-mark line { stroke: currentColor; }
.candle-mark rect { fill: currentColor; }
.candle-mark .candle-volume { opacity: .44; }
.candle-mark .candle-hit, .candle-mark .candle-cross { fill: transparent; }
.candle-active .candle-cross { fill: #edf4f0; }
.candle-quote { font-variant-numeric: tabular-nums; line-height: 1.45; }
.candle-legend { margin-top: 5px; font-size: 11px; }
.candle-legend span::before {
  content: ''; display: inline-block; width: 12px; margin: 0 5px 3px 0; border-top: 1px dashed currentColor;
}
.chart-watch { color: #2665a1; }
.chart-risk { color: #9d3f39; }
.chart-target { color: #197965; }
.candle-level { stroke: currentColor; stroke-dasharray: 5 4; }
.watch-chart-placeholder { display: block; padding: 10px 0; color: #5d716b; }
@media (max-width: 900px) {
  .opportunity-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 600px) {
  .opportunity-header { display: block; }
  .opportunity-coverage { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 1100px) {
  .desk-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .desk-grid { grid-template-columns: minmax(0, 1fr); }
  .desk-side { grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); }
}
@media (max-width: 650px) {
  .desk-hero { padding: 19px; }
  .desk-hero-main { align-items: start; flex-direction: column; }
  .desk-kpi, .desk-panel { padding: 12px; }
  .desk-case, .desk-sleeves, .desk-journal-grid { grid-template-columns: minmax(0, 1fr); }
  .desk-review-button { justify-self: start; }
  .desk-case-actions { display: flex; flex-wrap: wrap; align-items: center; }
}

#cloudBanner{margin:0 0 18px} body label:has(input[type=file]){display:none}
