.pulssi-panel {
  max-width: min(28rem, 100%);
  margin: 0 auto;
}

.pulssi-header {
  text-align: center;
  margin-bottom: 0.75rem;
}

.pulssi-date {
  font-size: 0.82rem;
  color: var(--muted);
  letter-spacing: 0.04em;
}

.pulssi-mode-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin-top: 0.35rem;
  padding: 0.35rem 0.75rem;
  border-radius: 999px;
  background: rgba(91, 141, 239, 0.12);
  border: 1px solid rgba(91, 141, 239, 0.35);
  font-weight: 600;
  font-size: 0.9rem;
  color: #e8f0ff;
}

.pulssi-prompt {
  text-align: center;
  margin: 1rem 0 0.5rem;
}

.pulssi-prompt h2 {
  margin: 0 0 0.35rem;
  font-size: 1.15rem;
  color: #f0f6ff;
}

.pulssi-sub {
  color: #c8dcf5;
  font-size: 1.05rem;
  font-weight: 600;
}

.pulssi-grid-symbols {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.5rem;
  max-width: 14rem;
  margin: 1rem auto;
}

.pulssi-sym-btn {
  aspect-ratio: 1;
  font-size: 1.75rem;
  border-radius: 12px;
  background: var(--surface2);
  border: 2px solid var(--border);
  color: #f5f9ff;
  cursor: pointer;
  transition: border-color 0.15s, transform 0.1s, background 0.15s;
}

.pulssi-sym-btn:hover:not(:disabled) {
  border-color: var(--accent);
  transform: scale(1.04);
}

.pulssi-choices {
  display: grid;
  gap: 0.5rem;
  margin: 1rem 0;
}

.pulssi-choice {
  padding: 0.75rem 1rem;
  text-align: center;
  border-radius: 12px;
  background: rgba(20, 32, 52, 0.95);
  border: 2px solid rgba(120, 160, 220, 0.35);
  color: #f0f6ff;
  font-weight: 600;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.pulssi-choice:hover:not(:disabled) {
  border-color: var(--accent);
  background: rgba(91, 141, 239, 0.12);
  color: #fff;
}

.pulssi-choice.correct {
  border-color: #3dd68c;
  background: rgba(61, 214, 140, 0.22);
  color: #b8ffd9;
}

.pulssi-choice.wrong {
  border-color: #e85d5d;
  background: rgba(201, 74, 74, 0.22);
  color: #ffc4c4;
}

.pulssi-tries {
  display: flex;
  gap: 0.35rem;
  justify-content: center;
  margin: 0.75rem 0;
}

.pulssi-logic-steps {
  display: flex;
  gap: 0.4rem;
  justify-content: center;
  margin: 0.35rem 0 0.75rem;
}

.pulssi-logic-steps.hidden {
  display: none;
}

.pulssi-logic-step {
  width: 1.65rem;
  height: 1.65rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  border: 2px solid var(--border);
  background: var(--surface2);
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--muted);
}

.pulssi-logic-step.active {
  border-color: var(--accent);
  color: var(--accent);
  box-shadow: 0 0 0 2px rgba(91, 141, 239, 0.2);
}

.pulssi-logic-step.done {
  border-color: var(--accent2);
  background: rgba(61, 214, 140, 0.2);
  color: var(--accent2);
}

.pulssi-logic-step.fail {
  border-color: var(--danger);
  background: rgba(201, 74, 74, 0.12);
  color: #f0a0a0;
}

.pulssi-logic-label {
  text-align: center;
  font-size: 0.82rem;
  font-weight: 600;
  color: var(--muted);
  margin: 0 0 0.25rem;
}

.pulssi-try {
  width: 1.75rem;
  height: 1.75rem;
  border-radius: 6px;
  border: 2px solid var(--border);
  background: var(--surface2);
}

.pulssi-try.used {
  background: rgba(232, 168, 56, 0.35);
  border-color: rgba(232, 168, 56, 0.6);
}

.pulssi-try.win {
  background: rgba(61, 214, 140, 0.35);
  border-color: var(--accent2);
}

.pulssi-result {
  text-align: center;
  padding: 0.75rem;
  border-radius: 12px;
  margin: 0.75rem 0;
  font-weight: 600;
}

.pulssi-result.win {
  background: rgba(61, 214, 140, 0.12);
  border: 1px solid rgba(61, 214, 140, 0.4);
  color: #b8ffd9;
}

.pulssi-result.lose {
  background: rgba(201, 74, 74, 0.1);
  border: 1px solid rgba(201, 74, 74, 0.35);
  color: #ffc4c4;
}

.pulssi-share-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: center;
  margin-top: 0.75rem;
}

.pulssi-creator-form {
  display: grid;
  gap: 0.65rem;
  max-width: 18rem;
  margin: 1rem auto;
}

.pulssi-creator-form label {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  font-size: 0.88rem;
}

.pulssi-creator-form input {
  padding: 0.45rem 0.6rem;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--surface2);
  color: var(--text);
}

.pulssi-week {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  justify-content: center;
  margin-top: 1rem;
  font-size: 0.78rem;
  color: var(--muted);
}

.pulssi-week span {
  padding: 0.2rem 0.45rem;
  border-radius: 6px;
  border: 1px solid var(--border);
}

.pulssi-week span.today {
  border-color: var(--accent);
  color: var(--accent);
  font-weight: 600;
}
