/* Tavro Shift V2 · Focused Depth. One semantic system, no legacy CSS. */
:root {
  --shift-bg: #111418;
  --shift-surface-1: #1c2229;
  --shift-surface-2: #282e36;
  --shift-surface-raised: #323a44;
  --shift-text: #fff5e8;
  --shift-text-muted: #b7b5ae;
  --shift-text-dim: #8c9196;
  --shift-accent: #f06432;
  --shift-accent-soft: rgba(240, 100, 50, 0.1);
  --shift-divider: rgba(243, 240, 232, 0.09);
  --shift-edge-light: rgba(255, 232, 205, 0.09);
  --shift-shadow: 0 9px 24px #00000024, inset 0 1px 0 var(--shift-edge-light);
  --shift-radius-sm: 13px;
  --shift-radius-md: 17px;
  --shift-radius-lg: 23px;
  --shift-space-1: 4px;
  --shift-space-2: 8px;
  --shift-space-3: 12px;
  --shift-space-4: 16px;
  --shift-space-5: 20px;
  --shift-space-6: 24px;
  --shift-space-8: 32px;
  --shift-motion-fast: 120ms;
  --shift-motion-route: 180ms;
  --shift-motion-resolve: 620ms;
  --shift-ease: cubic-bezier(0.2, 0.75, 0.2, 1);
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  color: var(--shift-text);
  background: #0d0f11;
  font-synthesis: none;
  -webkit-text-size-adjust: 100%;
  color-scheme: dark;
}
* {
  box-sizing: border-box;
}
body {
  margin: 0;
}
button,
input,
textarea,
select {
  font: inherit;
}
button,
a,
input,
textarea {
  -webkit-tap-highlight-color: transparent;
}
button {
  cursor: pointer;
}
button {
  color: inherit;
}
button,
a {
  -webkit-touch-callout: none;
}
button {
  touch-action: manipulation;
}
button:disabled {
  cursor: default;
  opacity: 0.5;
}
:focus-visible {
  outline: 2px solid var(--shift-accent);
  outline-offset: 4px;
}
button {
  border: 0;
  background: none;
  padding: 0;
}
a {
  color: var(--shift-accent);
  text-decoration: none;
}
p,
h1,
h2,
h3 {
  margin: 0;
}
p {
  line-height: 1.5;
}
svg {
  display: block;
}
.icon {
  width: 22px;
  height: 22px;
  flex: none;
}
b,
strong {
  font-weight: 550;
}
.app-shell {
  position: relative;
  max-width: 440px;
  min-height: 100svh;
  margin: 0 auto;
  background:
    radial-gradient(ellipse 100% 48% at 92% 0, #454e5938, transparent 76%),
    radial-gradient(ellipse 65% 30% at 0 36%, #a55a2410, transparent 80%),
    linear-gradient(155deg, #191e24 0%, #111418 58%, #171b20 100%);
  isolation: isolate;
}
.topbar {
  height: calc(66px + env(safe-area-inset-top, 0px));
  padding: calc(12px + env(safe-area-inset-top, 0px)) 23px 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.brand {
  display: flex;
  align-items: center;
  gap: 9px;
  text-align: left;
  min-height: 42px;
}
.brand img {
  width: 36px;
  height: 36px;
  border-radius: 11px;
  box-shadow: 0 4px 13px #0006, 0 0 0 1px #fff2;
}
.brand-words {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.brand-words b {
  font-size: 10px;
  letter-spacing: 2.7px;
  font-weight: 600;
}
.brand-words span {
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.3px;
}
.account-status {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 10px;
  letter-spacing: 0.2px;
  color: var(--shift-text-muted);
  min-height: 44px;
}
.account-status i {
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: var(--shift-accent);
  box-shadow: 0 0 9px #f0643238;
}
.account-status .icon {
  width: 15px;
  height: 15px;
}
#main {
  padding: 9px 24px calc(96px + env(safe-area-inset-bottom, 0px));
  min-height: calc(100svh - 66px);
  outline: none;
}
.route-enter {
  animation: route-in var(--shift-motion-route) var(--shift-ease) both;
}
.page-heading {
  display: flex;
  align-items: center;
  min-height: 46px;
  gap: 8px;
  margin: 0 0 13px;
}
.page-heading h1 {
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.5px;
  flex: 1;
}
.page-heading .icon-button {
  margin-left: -11px;
}
.page-heading .right-action {
  margin-left: auto;
  margin-right: -9px;
}
.eyebrow {
  color: var(--shift-text-muted);
  font-size: 11px;
  letter-spacing: 0.35px;
}
.section-caption {
  font-size: 11px;
  color: var(--shift-text-muted);
  margin: 20px 0 8px;
}
.hero {
  position: relative;
  padding-top: 8px;
}
.hero label {
  display: block;
  color: var(--shift-text-muted);
  font-size: 12px;
  margin-bottom: 7px;
}
.amount-line {
  display: flex;
  align-items: baseline;
  gap: 7px;
  white-space: nowrap;
  min-width: 0;
}
.amount-input {
  background: none;
  border: 0;
  border-radius: 0;
  color: var(--shift-text);
  width: 100%;
  min-width: 0;
  padding: 0;
  font-size: clamp(38px, 11.7vw, 48px);
  font-weight: 400;
  text-shadow: 0 2px 22px #fff0d512;
  letter-spacing: -2px;
  font-variant-numeric: tabular-nums;
  line-height: 1.25;
  outline-offset: 5px;
}
.currency {
  font-size: 25px;
  font-weight: 350;
  color: #d9cfbf;
}
.amount-display {
  font-size: clamp(34px, 10.5vw, 46px);
  font-weight: 350;
  letter-spacing: -1.6px;
  line-height: 1.25;
  font-variant-numeric: tabular-nums;
  overflow-wrap: anywhere;
}
.amount-display small {
  font-size: 24px;
  color: var(--shift-text-muted);
  letter-spacing: -0.5px;
}
.hero-rule {
  height: 1px;
  background: linear-gradient(90deg, #e6bb8252, #f3f0e81a 50%, #f3f0e805);
  margin-top: 15px;
}
.scheme-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 12px;
  gap: 10px;
  margin-top: 3px;
}
.scheme-row span {
  color: var(--shift-text-muted);
}
.scheme-row b {
  color: var(--shift-text);
  font-weight: 400;
}
.text-button {
  color: var(--shift-text-muted);
  font-size: 12px;
  min-height: 44px;
  padding: 5px 0;
}
.text-button.accent {
  color: var(--shift-accent);
}
.orbit-scene {
  height: 98px;
  position: relative;
  overflow: hidden;
  margin: -3px -8px 0;
  contain: paint;
}
.orbit-scene > svg {
  width: 100%;
  height: 100%;
}
.orbit-sweep {
  position: absolute;
  left: 18%;
  right: 18%;
  top: 48%;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--shift-accent),
    transparent
  );
  opacity: 0;
}
.resolving .orbit-sweep {
  animation: sweep var(--shift-motion-resolve) var(--shift-ease);
}
.resolving .scene-star {
  animation: star-pulse var(--shift-motion-resolve) var(--shift-ease);
}
.resolve-status {
  font-size: 11px;
  display: flex;
  align-items: center;
  gap: 6px;
  color: var(--shift-text-muted);
  min-height: 27px;
  margin-bottom: 3px;
}
.resolve-status .icon {
  width: 13px;
  height: 13px;
  color: var(--shift-accent);
}
.allocation-list {
  position: relative;
}
.allocation-row {
  display: flex;
  align-items: center;
  gap: 10px;
  min-height: 58px;
  border-bottom: 1px solid var(--shift-divider);
}
.allocation-row:last-child {
  border-bottom: 0;
}
.category-ring {
  width: 31px;
  height: 31px;
  flex: none;
  color: #f09556;
}
.ring-track {
  fill: none;
  stroke: #545b63;
  stroke-width: 1.2;
}
.ring-fill {
  fill: none;
  stroke: currentColor;
  stroke-width: 1.5;
  stroke-linecap: round;
}
.category-copy {
  flex: 1;
  min-width: 0;
}
.category-copy b {
  font-size: 13px;
  font-weight: 450;
  display: block;
  overflow-wrap: anywhere;
}
.category-copy small {
  font-size: 10px;
  color: var(--shift-text-muted);
  display: block;
  margin-top: 4px;
}
.row-money {
  font-size: 14px;
  font-weight: 500;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  letter-spacing: -0.2px;
}
.total-row {
  display: flex;
  justify-content: space-between;
  padding: 15px 0 16px;
  border-top: 1px solid var(--shift-divider);
  margin-top: 5px;
  font-size: 12px;
}
.total-row span {
  color: var(--shift-text-muted);
}
.total-row strong {
  font-weight: 450;
}
.primary,
.secondary,
.danger-button {
  width: 100%;
  min-height: 46px;
  border-radius: var(--shift-radius-sm);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
  transition:
    transform var(--shift-motion-fast),
    filter var(--shift-motion-fast);
}
.primary {
  position: relative;
  overflow: hidden;
  background: linear-gradient(165deg, #fc9558 0%, #ef713c 38%, #d95328 100%);
  color: #20130d;
  font-weight: 650;
  box-shadow: inset 0 1px 0 #ffe6c882, inset 0 -1px 0 #9b351080, 0 5px 18px #bd471925;
}
.primary:active,
.secondary:active,
.danger-button:active {
  transform: translateY(1px) scale(0.986);
  filter: brightness(0.94);
}
.secondary {
  background: linear-gradient(160deg, #303741, #21272e);
  box-shadow: var(--shift-shadow);
  border: 1px solid #ffffff06;
  color: var(--shift-text);
}
.danger-button {
  color: var(--shift-accent);
  background: var(--shift-accent-soft);
}
.action-stack {
  display: grid;
  gap: 8px;
  margin-top: 14px;
}
.action-stack .text-button {
  width: 100%;
  text-align: center;
  min-height: 42px;
}
.caption {
  font-size: 11px;
  color: var(--shift-text-muted);
  line-height: 1.6;
}
.quiet-note {
  font-size: 10px;
  color: var(--shift-text-dim);
  text-align: center;
  margin: 15px 0 0;
}
.bottom-nav {
  position: fixed;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: min(100%, 440px);
  padding: 7px 10px calc(7px + env(safe-area-inset-bottom, 0px));
  display: flex;
  border-top: 1px solid var(--shift-divider);
  background: rgba(17, 20, 24, 0.94);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  z-index: 10;
}
.bottom-nav:empty {
  display: none;
}
.nav-item {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  min-height: 49px;
  color: #9b9d9d;
  font-size: 9px;
}
.nav-item .icon {
  width: 21px;
  height: 21px;
}
.nav-item.active {
  color: var(--shift-accent);
}
.nav-item.active:before {
  content: '';
  position: absolute;
  top: -8px;
  left: 50%;
  width: 17px;
  transform: translateX(-50%);
  height: 1px;
  background: var(--shift-accent);
  box-shadow: 0 0 9px #f0643244;
}
.icon-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  flex: none;
  color: var(--shift-text-muted);
  border-radius: 50%;
}
.icon-button:active {
  background: var(--shift-surface-2);
}
.icon-button .icon {
  width: 20px;
  height: 20px;
}
.panel {
  background: linear-gradient(135deg, #303742b8, #1c222aaa);
  border: 1px solid #ffffff05;
  border-radius: var(--shift-radius-md);
  box-shadow: var(--shift-shadow);
  padding: 16px;
}
.history-month {
  margin: 22px 0 4px;
  font-size: 11px;
  color: var(--shift-text-muted);
}
.history-item {
  width: 100%;
  padding: 17px 0;
  border-bottom: 1px solid var(--shift-divider);
  display: flex;
  gap: 11px;
  text-align: left;
  align-items: center;
}
.history-mark {
  width: 6px;
  height: 6px;
  flex: none;
  border: 1px solid #bb784b;
  border-radius: 50%;
  align-self: flex-start;
  margin-top: 8px;
}
.history-copy {
  flex: 1;
  min-width: 0;
}
.history-top {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 7px;
}
.history-top b {
  font-size: 20px;
  letter-spacing: -0.4px;
  font-weight: 400;
}
.history-top time {
  font-size: 10px;
  color: var(--shift-text-muted);
  white-space: nowrap;
}
.history-meta {
  margin-top: 7px;
  color: var(--shift-text-muted);
  font-size: 10px;
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
}
.history-item > .icon {
  width: 14px;
  height: 14px;
  color: var(--shift-text-dim);
}
.edited {
  color: #bd8965;
}
.meta-list {
  display: grid;
  gap: 13px;
  padding: 18px 0;
  border-top: 1px solid var(--shift-divider);
  font-size: 12px;
  margin-top: 17px;
}
.meta-line {
  display: flex;
  justify-content: space-between;
  gap: 16px;
}
.meta-line span {
  color: var(--shift-text-muted);
}
.meta-line b {
  font-weight: 400;
  text-align: right;
  overflow-wrap: anywhere;
}
.note {
  font-size: 12px;
  color: var(--shift-text-muted);
  padding: 13px 0;
  line-height: 1.6;
  overflow-wrap: anywhere;
}
.group-label {
  font-size: 9px;
  letter-spacing: 1.5px;
  color: var(--shift-text-dim);
  margin: 23px 0 3px;
  font-weight: 500;
}
.menu-row {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  min-height: 64px;
  text-align: left;
  border-bottom: 1px solid var(--shift-divider);
}
.menu-row > .icon:first-child {
  width: 19px;
  height: 19px;
  color: var(--shift-text-muted);
}
.menu-row > .icon:last-child {
  width: 14px;
  height: 14px;
  color: var(--shift-text-dim);
}
.menu-copy {
  flex: 1;
  min-width: 0;
}
.menu-copy strong {
  font-weight: 400;
  display: block;
  font-size: 13px;
}
.menu-copy small {
  display: block;
  font-size: 10px;
  color: var(--shift-text-muted);
  margin-top: 4px;
  line-height: 1.4;
}
.plus-tag {
  font-size: 9px;
  letter-spacing: 1px;
  color: #db9b76;
}
.inline-label {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}
.field {
  display: block;
  margin: 17px 0 0;
}
.field > span {
  display: block;
  font-size: 11px;
  color: var(--shift-text-muted);
  margin-bottom: 8px;
}
.field input,
.field textarea,
.field select {
  display: block;
  width: 100%;
  background: linear-gradient(150deg, #252c34, #1d232b);
  border: 1px solid #f3f0e814;
  box-shadow: inset 0 1px 4px #0003;
  border-radius: var(--shift-radius-sm);
  padding: 12px 13px;
  color: var(--shift-text);
  font-size: 16px;
  min-height: 47px;
}
.field textarea {
  min-height: 82px;
  resize: vertical;
}
.field input:focus,
.field textarea:focus {
  border-color: #f0643266;
  outline: none;
}
.field input[aria-invalid='true'] {
  border-color: var(--shift-accent);
}
.error {
  color: #ffa779;
  font-size: 12px;
  line-height: 1.5;
  margin: 10px 0;
  min-height: 0;
}
.error:empty {
  display: none;
}
.auth-intro {
  padding: 8px 0 12px;
}
.auth-intro h2 {
  font-size: 27px;
  line-height: 1.2;
  letter-spacing: -0.7px;
  font-weight: 400;
  margin: 14px 0 9px;
}
.auth-intro p {
  color: var(--shift-text-muted);
  font-size: 12px;
  max-width: 280px;
}
.auth-intro .signal {
  width: 40px;
  height: 40px;
  position: relative;
  display: inline-block;
  flex: none;
  color: var(--shift-accent);
}
.signal > svg { width: 100%; height: 100%; overflow: visible; }
.signal-halo { stroke: #e1844a22; stroke-width: 9; }
.signal-outer { stroke: #efa66b; stroke-width: 1.3; }
.signal-inner { stroke: #e191544f; stroke-width: 1; }
.signal-node { fill: #ffd1a0; stroke: none; }
.signal-core { fill: #f7924e; filter: drop-shadow(0 0 5px #ee874876); }
.signal-glint { fill: #ffe6c1; }
.signal-wave { stroke: #f1b47c; opacity: 0; }
.signal-outer, .signal-inner, .signal-core, .signal-glint, .signal-wave {
  transform-box: view-box;
  transform-origin: 40px 40px;
}
.signal.loading .signal-outer { animation: orbit 920ms linear infinite; }
.signal.loading .signal-inner { animation: orbit 1500ms linear infinite reverse; }
.signal.loading .signal-core, .signal.loading .signal-glint { animation: core-breathe 920ms ease-in-out infinite; }
.signal.inline { width: 25px; height: 25px; }
.signal.inline .signal-halo { display: none; }
.signal.inline .signal-outer { stroke-width: 2.4; }
.signal.inline .signal-inner { stroke-width: 1.8; }
.state-view > .signal { width: 76px; height: 76px; margin-bottom: 8px; }
.state-view {
  min-height: 280px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  gap: 12px;
  padding: 24px 14px;
}
.state-view h2 {
  font-size: 17px;
  font-weight: 450;
  letter-spacing: -0.3px;
}
.state-view p {
  font-size: 12px;
  color: var(--shift-text-muted);
  max-width: 245px;
}
.state-view > .icon {
  width: 32px;
  height: 32px;
  color: var(--shift-text-dim);
}
.state-view .secondary {
  max-width: 210px;
  margin-top: 6px;
}
.toast {
  position: fixed;
  bottom: calc(88px + env(safe-area-inset-bottom, 0px));
  left: 50%;
  transform: translate(-50%, 8px);
  width: max-content;
  max-width: calc(100% - 32px);
  z-index: 30;
  background: #2b2e31;
  border: 1px solid #ffffff0b;
  box-shadow: 0 8px 30px #0006;
  padding: 13px 16px;
  border-radius: 10px;
  font-size: 12px;
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 160ms,
    transform 160ms;
  display: flex;
  align-items: center;
  gap: 9px;
}
.toast.show {
  opacity: 1;
  transform: translate(-50%, 0);
}
.toast .icon {
  color: var(--shift-accent);
  width: 16px;
  height: 16px;
  animation: star-pulse 520ms;
}
dialog {
  position: fixed;
  inset: auto 0 0;
  width: min(100%, 440px);
  max-width: 440px;
  max-height: calc(100dvh - env(safe-area-inset-top, 0px) - 24px);
  margin: 0 auto;
  padding: 8px 24px calc(24px + env(safe-area-inset-bottom, 0px));
  background: linear-gradient(145deg, #333b45, #1b2129);
  color: var(--shift-text);
  border: 1px solid #ffffff09;
  border-bottom: 0;
  border-radius: 26px 26px 0 0;
  box-shadow: 0 -20px 70px #0004;
  overflow-y: auto;
}
dialog[open] {
  animation: sheet-in 180ms var(--shift-ease);
}
dialog::backdrop {
  background: #070809b0;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}
.sheet-handle {
  width: 30px;
  height: 3px;
  background: #55595d;
  border-radius: 4px;
  margin: 0 auto 10px;
}
.sheet-heading {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}
.sheet-heading h2 {
  font-weight: 450;
  letter-spacing: -0.4px;
  font-size: 20px;
  flex: 1;
}
.sheet-heading .icon-button {
  margin-right: -10px;
}
.demo-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin: 12px 0 17px;
}
.demo-grid button {
  font-size: 12px;
  padding: 11px 14px;
  border-radius: 12px;
  background: #ffffff06;
  border: 1px solid #ffffff07;
  min-height: 42px;
}
.demo-grid button.selected {
  color: #f4ab80;
  background: #f0643210;
  border-color: #f0643240;
}
.sheet-copy {
  font-size: 13px;
  line-height: 1.65;
  color: var(--shift-text-muted);
  margin-bottom: 16px;
}
.success-panel {
  text-align: center;
  padding: 14px 0;
}
.success-panel > .signal {
  width: 50px;
  height: 50px;
  margin: 0 auto 13px;
}
.success-panel h2 {
  font-size: 21px;
  letter-spacing: -0.4px;
  font-weight: 450;
  margin-bottom: 8px;
}
.inline-info {
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 11px;
  line-height: 1.5;
  color: var(--shift-text-muted);
  margin: 12px 0;
}
.inline-info .icon {
  width: 15px;
  height: 15px;
  flex: none;
  margin-top: 1px;
}
body.sheet-open {
  overflow: hidden;
}
@keyframes route-in {
  from {
    opacity: 0;
    transform: translateY(4px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes sheet-in {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: none;
  }
}
@keyframes orbit {
  to {
    transform: rotate(360deg);
  }
}
@keyframes sweep {
  0% {
    opacity: 0;
    transform: scaleX(0.1) rotate(-15deg);
  }
  35% {
    opacity: 0.7;
  }
  100% {
    opacity: 0;
    transform: scaleX(1.6) rotate(12deg);
  }
}
@keyframes star-pulse {
  0%,
  100% {
    opacity: 1;
    filter: drop-shadow(0 0 0 transparent);
  }
  45% {
    opacity: 0.8;
    filter: drop-shadow(0 0 7px #ff9855);
  }
}
@media (min-width: 600px) {
  .app-shell {
    box-shadow:
      0 0 0 1px #ffffff06,
      0 0 100px #0006;
  }
  #main {
    padding-top: 12px;
  }
}
@media (max-width: 350px) {
  .topbar {
    padding-left: 17px;
    padding-right: 17px;
  }
  #main {
    padding-left: 18px;
    padding-right: 18px;
  }
  .row-money {
    font-size: 12px;
  }
  .allocation-row {
    gap: 7px;
    min-height: 56px;
  }
  .category-copy b {
    font-size: 12px;
  }
  .goal-card {
    padding: 15px 12px;
  }
  .goal-meta strong {
    font-size: 14px;
  }
  .history-top b {
    font-size: 18px;
  }
  .editor-row {
    gap: 3px;
    grid-template-columns: 22px minmax(0, 1fr) 48px 25px;
  }
  .editor-row input {
    letter-spacing: -0.5px;
  }
}
@media (max-height: 650px) {
  .orbit-scene {
    height: 55px;
  }
  .topbar {
    height: calc(57px + env(safe-area-inset-top, 0px));
  }
  .page-heading {
    margin-bottom: 6px;
  }
  .allocation-row {
    min-height: 52px;
  }
}

/* Contextual conversion and receipt editing: restrained, never modal on entry. */
.edit-distribution {
  width: 100%;
  display: flex;
  gap: 10px;
  align-items: center;
  text-align: left;
  padding: 10px 12px;
  min-height: 56px;
  border-radius: var(--shift-radius-sm);
  background: linear-gradient(120deg, #30343a77, #252a3066);
  border: 1px solid #ffffff06;
}
.edit-distribution > .icon:first-child { color: #e7a471; width: 18px; height: 18px; }
.edit-distribution > .icon:last-child { color: var(--shift-text-dim); width: 14px; }
.edit-distribution span { flex: 1; min-width: 0; }
.edit-distribution strong { display: block; font-size: 12px; font-weight: 500; }
.edit-distribution small { display: block; font-size: 10px; color: var(--shift-text-muted); margin-top: 4px; }
.scout-message { min-width: 0; }
.scout-label { font-size: 8px; letter-spacing: 1.5px; color: #e9ab78; }
.scout-message h2 { margin: 6px 0 7px; font-size: 14px; font-weight: 550; }
.scout-message p { font-size: 11px; line-height: 1.6; }
.conversion-surface {
  margin-top: 18px;
  padding: 15px;
  border-radius: var(--shift-radius-md);
  background: radial-gradient(ellipse at 100% 0, #cf7a3020, transparent 65%), linear-gradient(140deg, #2d343e, #1d242c);
  border: 1px solid #eab9861a;
  box-shadow: var(--shift-shadow);
}
.conversion-heading { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; }
.conversion-heading .signal { width: 29px; height: 29px; }
.conversion-heading > div { flex: 1; min-width: 0; }
.conversion-heading h2 { font-size: 15px; font-weight: 500; letter-spacing: -.2px; }
.conversion-heading .eyebrow { font-size: 9px; letter-spacing: 1px; color: #deb087; margin-bottom: 4px; }
.conversion-surface p { font-size: 11px; color: var(--shift-text-muted); line-height: 1.6; }
.conversion-surface .secondary { margin-top: 12px; color: #f3c69e; border-color: #e9ad741c; }
.conversion-surface .demo-note { font-size: 9px; color: var(--shift-text-dim); margin-top: 9px; }
.upgrade-surface { margin-top: 18px; }
.upgrade-hero { padding: 8px 0 12px; text-align: center; }
.upgrade-hero .signal { width: 66px; height: 66px; }
.upgrade-hero h3 { font-size: 26px; line-height: 1.2; font-weight: 400; margin: 12px 0; letter-spacing: -.6px; }
.upgrade-feature { display: flex; gap: 12px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--shift-divider); }
.upgrade-feature > .icon { color: #e9ad78; width: 19px; height: 19px; margin-top: 2px; }
.upgrade-feature strong { display: block; font-size: 13px; font-weight: 500; }
.upgrade-feature p { color: var(--shift-text-muted); font-size: 11px; margin-top: 5px; }
.icon-button { transition: background var(--shift-motion-fast), transform var(--shift-motion-fast); }
.page-heading .icon-button { background: #ffffff04; box-shadow: inset 0 1px 0 #ffffff06; }
.icon-button:active { transform: scale(.94); }
.primary:disabled { opacity: 1; filter: saturate(.8); }
.primary .signal-core { fill: #472710; filter: none; }
.primary .signal-outer { stroke: #51270f; }
.primary .signal-glint, .primary .signal-node { fill: #fff0d0; }
.primary::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(110deg, transparent 20%, #fff2 50%, transparent 80%);
  transform: translateX(-110%);
  pointer-events: none;
}
.is-saving .primary::after { animation: button-sheen 620ms ease-out; }
.orbit-threads { stroke-width: .8; }
.scene-nucleus { transform-origin: 175px 57px; filter: drop-shadow(0 0 7px #f68d4245); }
.completion-ring { opacity: 0; transform-origin: 175px 57px; }
.scene-star { transform-origin: 175px 57px; }
.orbit-nodes, .orbit-satellites { transform-origin: 175px 57px; }
.resolving .scene-star, .completed .scene-star { animation: core-resolve 640ms var(--shift-ease); }
.resolving .completion-ring, .completed .completion-ring { animation: ring-resolve 640ms ease-out; }
.resolving .orbit-nodes, .completed .orbit-nodes { animation: node-resolve 600ms ease-out; }
.completed .orbit-threads { animation: star-pulse 640ms ease-out; }
.is-saving .scene-nucleus { animation: core-breathe 680ms ease-in-out infinite; }
.is-resolving .allocation-row { animation: allocation-settle 420ms var(--shift-ease) both; }
.is-resolving .allocation-row:nth-child(2) { animation-delay: 35ms; }
.is-resolving .allocation-row:nth-child(3) { animation-delay: 70ms; }
.is-resolving .allocation-row:nth-child(4) { animation-delay: 105ms; }
.is-completed .hero-rule { animation: star-pulse 640ms ease-out; }
.is-completed #receipt-submit { box-shadow: inset 0 1px 0 #ffe3be70, 0 0 22px #f08a4030; }
.toast .signal { width: 25px; height: 25px; }
.toast.show .signal-wave { animation: ring-resolve-small 650ms ease-out; }
.toast.show .signal-core { animation: core-breathe 650ms ease-out; }
@keyframes core-breathe { 50% { transform: scale(.86); opacity: .7; } }
@keyframes core-resolve { 0% { transform: scale(.65) rotate(-30deg); } 48% { transform: scale(1.18) rotate(8deg); } 100% { transform: scale(1); } }
@keyframes ring-resolve { 0% { opacity: .7; transform: scale(.55); } 100% { opacity: 0; transform: scale(2.4); } }
@keyframes ring-resolve-small { 0% { opacity: .8; transform: scale(.6); } 100% { opacity: 0; transform: scale(2.1); } }
@keyframes node-resolve { 0% { opacity: .3; } 45% { opacity: 1; filter: drop-shadow(0 0 3px #ffc089); } 100% { opacity: 1; } }
@keyframes allocation-settle { from { transform: translateY(3px); background: #e9984610; } to { transform: none; background: transparent; } }
@keyframes button-sheen { to { transform: translateX(110%); } }
@media (max-width: 350px) {
  .scout-note { padding-right: 10px; gap: 5px; }
  .scout-note svg { width: 73px; height: 100px; }
  .scout-message h2 { font-size: 13px; }
  .conversion-surface { padding: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation: none !important;
    transition: none !important;
    scroll-behavior: auto !important;
  }
  .orbit-sweep {
    display: none;
  }
  .signal.loading .signal-core { fill: #ffc389; }
}
@media (forced-colors: active) {
  .primary,
  .secondary,
  .panel,
  .goal-card {
    border: 1px solid ButtonText;
  }
  .goal-fill {
    background: Highlight;
  }
  .nav-item.active {
    outline: 1px solid Highlight;
  }
}
.goal-meta > div,
.goal-title h2 {
  min-width: 0;
}
.goal-meta strong {
  display: block;
  overflow-wrap: anywhere;
}
.goal-title h2 {
  overflow-wrap: anywhere;
}
.history-top {
  flex-wrap: wrap;
}
.history-top b {
  overflow-wrap: anywhere;
}
.amount-line {
  justify-content: flex-start;
}
.amount-input {
  flex: 0 1 auto;
}
.sheet-copy,
.caption {
  overflow-wrap: anywhere;
}
