:root {
  --soft-shadow:0 14px 32px rgba(0,0,0,0.18);
  --lift-shadow:0 18px 42px rgba(0,0,0,0.24);
  --edge-glow:rgba(79,110,247,0.22);
  --warm-edge:rgba(45,184,122,0.16);
}

html[data-theme="light"] {
  --soft-shadow:0 12px 26px rgba(42,50,70,0.10);
  --lift-shadow:0 16px 34px rgba(42,50,70,0.14);
  --edge-glow:rgba(79,110,247,0.18);
  --warm-edge:rgba(45,184,122,0.14);
}

:is(.setting-row,.editor,.profile-card,.card,.sum-cell,.data-card,.choice,.result-btn,.state-btn,.check-row,.crit-row,.decision,.score-card,.result-block,.empty-state,.context-card,.insight,.trade-card,.notice,.legal-note) {
  position:relative;
  overflow:hidden;
  box-shadow:var(--soft-shadow), inset 0 1px 0 var(--shine, rgba(255,255,255,0.04));
}

:is(.setting-row,.editor,.profile-card,.card,.sum-cell,.data-card,.choice,.result-btn,.state-btn,.check-row,.crit-row,.decision,.score-card,.result-block,.empty-state,.context-card,.insight,.trade-card,.notice,.legal-note)::before {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
  background:
    linear-gradient(135deg, var(--edge-glow), transparent 28%),
    linear-gradient(315deg, var(--warm-edge), transparent 34%);
  transition:opacity 0.22s ease;
}

:is(.setting-row,.card,.choice,.result-btn,.state-btn,.check-row,.crit-row,.trade-card,.data-btn,.small-btn,.pick-btn,.ttab,.ptab,.sptab) {
  transition:border-color 0.18s ease, background-color 0.18s ease, color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}

:is(.setting-row,.choice,.result-btn,.state-btn,.check-row,.crit-row,.trade-card):hover {
  border-color:var(--border2);
  transform:translateY(-1px);
  box-shadow:var(--lift-shadow), inset 0 1px 0 var(--shine, rgba(255,255,255,0.04));
}

:is(.setting-row,.choice,.result-btn,.state-btn,.check-row,.crit-row,.trade-card):hover::before,
:is(.card,.data-card,.profile-card):hover::before {
  opacity:1;
}

:is(.btn,.data-btn,.small-btn,.pick-btn,.ttab,.ptab,.sptab):focus-visible {
  outline:2px solid var(--accent);
  outline-offset:3px;
}

:is(.btn,.data-btn,.small-btn,.pick-btn):active {
  transform:translateY(1px) scale(0.99);
}

.bottom-nav {
  box-shadow:0 -14px 38px rgba(0,0,0,0.22), inset 0 1px 0 var(--shine, rgba(255,255,255,0.04));
}

.nav-item {
  transition:transform 0.18s ease, color 0.18s ease;
}

.nav-item:active {
  transform:translateY(1px);
}

.nav-item.active .nav-icon {
  filter:drop-shadow(0 0 10px var(--edge-glow));
}
