/* Cold chrome, readable controls, and motion that stays out of the way. */
:root {
  --muted: #a2acb7;
  color-scheme: dark;
}
:root[data-theme="light"] {
  --muted: #586776;
  color-scheme: light;
}
select,
option,
optgroup {
  color: var(--text);
  background-color: var(--input);
}
select {
  color-scheme: dark;
}
:root[data-theme="light"] select {
  color-scheme: light;
}
option:checked {
  background: var(--surface2);
  color: var(--text);
}
select:disabled,
input:disabled {
  opacity: 0.65;
}
input::placeholder,
textarea::placeholder {
  color: var(--muted);
  opacity: 0.85;
}
button,
input,
textarea,
select,
.global-filters select {
  font-size: 12px;
}
label,
.check-label {
  font-size: 12px;
}
.small-note {
  font-size: 11px;
  line-height: 1.75;
}
.global-filters > span {
  font-size: 11px;
  line-height: 1.6;
}
button:focus-visible,
a:focus-visible,
summary:focus-visible {
  outline: 2px solid var(--steel);
  outline-offset: 4px;
}
.brand {
  gap: 10px;
}
.brand-mark {
  width: 34px;
  height: 34px;
  object-fit: contain;
}
.wordmark {
  font-size: 20px;
  font-weight: 550;
  letter-spacing: -0.8px;
}
.nav-item {
  font-size: 12px;
}
.workspace-trigger {
  background: transparent;
  border: 0;
  color: var(--muted);
  font-weight: 400;
  white-space: nowrap;
}
.workspace-trigger.active {
  color: var(--text);
}
.profit-tile::after {
  display: none;
}
.profit-tile {
  border-radius: 10px;
}
.profit-tile-top > b {
  color: var(--steel);
  font-weight: 400;
}
.profit-palette {
  grid-column: 1/-1;
}
.profit-preview-stage {
  position: relative;
}
.profit-preview canvas {
  border-radius: 12px;
}
.workspace-dialog {
  width: min(860px, calc(100vw - 30px));
  max-height: calc(100dvh - 40px);
  padding: 30px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface);
  color: var(--text);
}
.workspace-dialog h2 {
  font-size: 25px;
  letter-spacing: -0.6px;
  font-weight: 500;
  margin: 10px 0 0;
}
.workspace-search {
  display: block;
  margin: 25px 0;
  color: var(--muted);
}
.workspace-search input {
  width: 100%;
  margin-top: 8px;
}
.workspace-groups {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px;
}
.workspace-groups h3 {
  font-size: 11px;
  color: var(--muted);
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0 0 12px;
}
.workspace-tool {
  display: flex;
  gap: 10px;
  padding: 15px 8px;
  color: var(--text);
  text-decoration: none;
  border-radius: 7px;
  min-width: 0;
  align-items: flex-start;
}
.workspace-tool > span {
  flex-shrink: 0;
  color: var(--steel);
}
.workspace-tool svg {
  width: 17px;
  height: 17px;
}
.workspace-tool > span:last-child {
  margin-left: auto;
  color: var(--muted);
  font-size: 13px;
}
.workspace-tool > div {
  min-width: 0;
}
.workspace-tool b {
  display: block;
  font-size: 12px;
  font-weight: 500;
}
.workspace-tool small {
  display: block;
  color: var(--muted);
  line-height: 1.65;
  margin-top: 6px;
  font-size: 11px;
}
.workspace-tool:hover,
.workspace-tool.active {
  background: var(--surface2);
}
.workspace-no-results {
  color: var(--muted);
  padding: 20px 0;
}
.goal-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.goal-card {
  min-width: 0;
  padding: 23px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--surface);
}
.goal-card-heading {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted);
  font-size: 11px;
  align-items: flex-start;
}
.goal-card-heading .eyebrow {
  color: var(--steel);
  font-size: 10px;
}
.goal-card h3 {
  font-size: 20px;
  font-weight: 450;
  letter-spacing: -0.4px;
  margin: 24px 0 18px;
  overflow-wrap: anywhere;
}
.goal-current {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.goal-current strong {
  font-size: 29px;
  letter-spacing: -0.8px;
  font-weight: 450;
  overflow-wrap: anywhere;
}
.goal-current > span {
  color: var(--muted);
  font-size: 12px;
}
.goal-progress-label {
  margin: 25px 0 9px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 11px;
  color: var(--muted);
}
.goal-progress-label b {
  color: var(--text);
  font-weight: 500;
}
.goal-card progress {
  display: block;
  width: 100%;
  height: 4px;
  appearance: none;
  border: 0;
  accent-color: var(--steel);
  background: var(--border);
  border-radius: 4px;
  overflow: hidden;
}
.goal-card progress::-webkit-progress-bar {
  background: var(--border);
}
.goal-card progress::-webkit-progress-value {
  background: var(--steel);
  border-radius: 4px;
}
.goal-card progress::-moz-progress-bar {
  background: var(--steel);
}
.goal-card.achieved {
  border-color: var(--steel);
}
.goal-card > p {
  font-size: 11px;
  color: var(--muted);
  line-height: 1.7;
  margin: 13px 0 0;
}
.goal-card-actions {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 18px;
}
.goal-card-actions button {
  font-size: 11px;
  padding: 5px 0;
}
.goal-invitation {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 20px 0;
}
.goal-invitation h3 {
  font-size: 20px;
  font-weight: 450;
  margin: 0 0 8px;
}
.goal-invitation p,
.goals-workspace .section-actions p {
  font-size: 12px;
  color: var(--muted);
  line-height: 1.8;
  margin: 0;
}
.goal-invitation button {
  flex-shrink: 0;
}
.goals-empty {
  padding: 45px 0;
}
.goals-empty h2 {
  font-size: 34px;
  font-weight: 450;
  letter-spacing: -1px;
}
.goals-empty p {
  max-width: 480px;
  color: var(--muted);
  line-height: 1.8;
  margin: 18px 0 25px;
}
.daily-review-toolbar {
  display: flex;
  justify-content: space-between;
  gap: 15px;
  align-items: end;
  flex-wrap: wrap;
  padding-bottom: 24px;
  border-bottom: 1px solid var(--border);
}
.daily-review-toolbar > div:last-child {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}
.daily-review-toolbar label {
  color: var(--muted);
  font-size: 11px;
}
.daily-review-toolbar input {
  margin-top: 7px;
}
.daily-review-summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  padding: 30px 0;
}
.daily-review-summary h2 {
  font-size: 40px;
  font-weight: 450;
  letter-spacing: -1.5px;
  margin: 14px 0;
}
.daily-review-summary p {
  color: var(--muted);
  font-size: 12px;
}
.daily-review-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 45px;
  align-items: start;
}
.daily-review-layout #journal-form {
  display: block;
  min-width: 0;
}
.daily-review-layout h3 {
  margin: 12px 0 18px;
  font-weight: 450;
  font-size: 21px;
  letter-spacing: -0.4px;
}
.daily-review-layout label:not(.check-label) {
  display: block;
  margin: 20px 0;
  color: var(--muted);
}
.daily-review-layout input:not([type="checkbox"]),
.daily-review-layout textarea,
.daily-review-layout select {
  width: 100%;
  margin-top: 9px;
}
.day-checklist {
  display: flex;
  flex-direction: column;
  gap: 13px;
  padding: 16px 0;
  margin-bottom: 10px;
}
.day-checklist .check-label {
  color: var(--text);
  line-height: 1.6;
  margin: 0;
}
.daily-review-layout textarea {
  min-height: 100px;
  resize: vertical;
}
.day-trade-list {
  border-left: 1px solid var(--border);
  padding-left: 30px;
  min-width: 0;
}
.day-trade-list-heading h3 {
  font-size: 16px;
  margin: 0 0 9px;
}
.day-trade-list-heading > span {
  color: var(--muted);
  font-size: 11px;
}
.day-trade-card {
  border: 1px solid var(--border);
  border-radius: 9px;
  margin-top: 20px;
  padding: 20px;
  overflow: hidden;
}
.day-trade-card.trade-of-day {
  border-color: var(--steel);
}
.day-trade-main {
  display: flex;
  justify-content: space-between;
  width: 100%;
  background: transparent;
  border: 0;
  padding: 0;
  text-align: left;
  gap: 15px;
  align-items: start;
}
.day-trade-main b {
  font-weight: 550;
  font-size: 16px;
}
.day-trade-main small {
  display: block;
  color: var(--muted);
  margin-top: 6px;
  font-size: 11px;
  line-height: 1.6;
}
.day-trade-main strong {
  font-size: 19px;
  font-weight: 500;
  white-space: nowrap;
}
.day-entry-note {
  margin-top: 24px;
}
.day-entry-note .eyebrow {
  color: var(--muted);
  font-size: 9px;
}
.day-entry-note p {
  font-size: 13px;
  line-height: 1.8;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  margin: 10px 0 0;
}
.day-trade-tags {
  margin-top: 13px;
}
.day-trade-shots {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 18px;
}
.day-trade-shots button {
  padding: 0;
  overflow: hidden;
  background: var(--surface2);
  border: 1px solid var(--border);
  border-radius: 5px;
}
.day-trade-shots img {
  display: block;
  width: 100%;
  height: 130px;
  object-fit: contain;
}
.journal-media-section {
  margin-top: 30px;
}
.journal-save-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 15px;
  flex-wrap: wrap;
  margin-top: 24px;
}
.journal-save-row > div {
  display: flex;
  gap: 9px;
  flex-wrap: wrap;
}
.journal-save-row > span {
  color: var(--muted);
  font-size: 11px;
}
.calendar-cell > span {
  display: flex;
  align-items: baseline;
  gap: 6px;
}
.calendar-cell > span > small {
  font-size: 10px;
  color: var(--muted);
}
.calendar-cell b {
  font-size: 13px;
}
.trade-delete {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  background: transparent;
  border: 0;
  color: var(--muted);
  padding: 7px;
  border-radius: 5px;
  font-size: 11px;
  flex-shrink: 0;
}
.trade-delete svg {
  width: 15px;
  height: 15px;
}
.trade-delete:hover {
  background: var(--surface2);
  color: var(--red);
}
.table-row-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}
@media (prefers-reduced-motion: no-preference) {
  :root[data-effects="on"] button,
  :root[data-effects="on"] a,
  :root[data-effects="on"] input,
  :root[data-effects="on"] textarea,
  :root[data-effects="on"] select {
    transition:
      background-color 160ms ease,
      border-color 160ms ease,
      color 160ms ease,
      box-shadow 160ms ease;
  }
  :root[data-effects="on"] .profit-tile,
  :root[data-effects="on"] .goal-card,
  :root[data-effects="on"] .day-trade-card {
    transition:
      transform 180ms ease,
      border-color 180ms ease;
  }
  :root[data-effects="on"] .profit-tile:hover,
  :root[data-effects="on"] .goal-card:hover {
    transform: translateY(-2px);
    border-color: var(--steel);
  }
  :root[data-effects="on"] #content {
    animation: page-enter 200ms ease-out;
  }
  :root[data-effects="on"] dialog[open] {
    animation: page-enter 160ms ease-out;
  }
  @keyframes page-enter {
    from {
      opacity: 0.5;
      transform: translateY(5px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }
}
:root[data-effects="off"] *,
:root[data-effects="off"] *::before,
:root[data-effects="off"] *::after {
  animation: none !important;
  transition: none !important;
}
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
}
@media (max-width: 1100px) and (min-width: 641px) {
  .sidebar {
    grid-template-columns: 1fr auto;
    padding-bottom: 12px;
  }
  #navigation {
    grid-column: 1/-1;
    grid-row: 2;
    margin-top: 8px;
    justify-content: center;
  }
  .header-actions {
    grid-column: 2;
    grid-row: 1;
  }
}
@media (max-width: 1000px) {
  .goal-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .daily-review-layout {
    gap: 25px;
  }
  .day-trade-list {
    padding-left: 22px;
  }
}
@media (max-width: 850px) {
  .daily-review-layout {
    grid-template-columns: 1fr;
    gap: 35px;
  }
  .day-trade-list {
    border-left: 0;
    border-top: 1px solid var(--border);
    padding: 30px 0 0;
  }
}
@media (max-width: 640px) {
  .brand-mark {
    width: 30px;
    height: 30px;
  }
  #navigation > a[href="#reports"] {
    display: none;
  }
  #navigation .nav-item {
    font-size: 9px;
    padding: 8px 1px;
    gap: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
  }
  #navigation .nav-item span {
    margin: 0;
  }
  .workspace-trigger {
    font-size: 8px !important;
  }
  .workspace-dialog {
    padding: 22px;
    max-height: calc(100dvh - 26px);
  }
  .workspace-groups {
    grid-template-columns: 1fr;
    gap: 22px;
  }
  .workspace-tool {
    padding: 13px 8px;
  }
  .workspace-tool small {
    font-size: 12px;
  }
  .goal-cards {
    grid-template-columns: 1fr;
    gap: 15px;
  }
  .goal-invitation {
    align-items: start;
    flex-direction: column;
  }
  .daily-review-summary {
    align-items: start;
    flex-direction: column;
    gap: 8px;
  }
  .daily-review-summary h2 {
    font-size: 35px;
  }
  .daily-review-toolbar .period-nav {
    gap: 7px;
    flex-wrap: wrap;
  }
  .daily-review-toolbar .period-nav button {
    padding: 8px;
  }
  .day-trade-card {
    padding: 17px;
  }
  .trade-delete span {
    display: none;
  }
  .global-filters > span {
    font-size: 11px;
  }
  .journal-trade-main small,
  .journal-note,
  .journal-time {
    font-size: 11px;
  }
  .journal-row {
    gap: 8px;
  }
}
@media print {
  .workspace-dialog,
  .trade-delete {
    display: none !important;
  }
}
@media (max-width: 640px) {
  .page-heading {
    flex-wrap: wrap;
    gap: 18px;
  }
  .page-heading > .actions {
    width: 100%;
    flex-wrap: wrap;
    justify-content: flex-start;
  }
}
